Jump to content

New modder, trouble making quest in creation kit


monkeyrazzar

Recommended Posts

Hello, I'm new here on the forums but i love the nexus. I am having trouble making a relativity simple quest and I've watched tutorials and searched online but i cant seem to find the information i need. Basically i am making a quest where you need to bring a ghost all the 8 original dragon priest masks (not the one from labrinthian that requires the 8, that's for later in the quest).here's what i want to happen;

-The ghost asks you to bring him the masks

-the quest is activated,

-once you have all the masks, you bring them to him and he takes them, completing the quest. (later on you go with him to get the 9th masks from labrinthian, but i'm sticking to basics for now.)

 

this should be simple right? i did a quest for Madesi, you bring him a gold ore, and 2 rubies (something like that). when you have the gold ore, a message pops up that says: gold ore 1/1. when you have the rubies it shows you have ore 1/1, rubies 2/2. i looked into the quest files, and its more complicated than the quest seems. i also tried watching tutorials, but they all focus on specific items, like one specific sword, or amulet. what about an item general? for instance, any piece of gold ore. but do this with the priest masks. so you can bring him 'any Otar' (even though there is only one). but do this with every mask so you bring him all 8 of them. if anyone can help it will be much appreciated. its basically a simple a simple fetch quest where you bring him the masks, but i can't get it to work!

Link to comment
Share on other sites

Bajeesus!!! I looked at the quest as well and it is much more complicated then it seems. Luckily I do have some experience with modding so I may be able to decipher it.

I'll have to mess around with it first though so I'll get back to you unless your question is answered before I can figure it out.

 

*Edit

 

After experimenting. I found little information but ran into a wall. Basically you need to make a GlobalValue for the count of how many masks you need to complete the quest.

An example make a new globalvalue called DragonPriestMasks and set the value to 0. Then make a duplicate and call it whatever you want, now set the value to how many dragon priest masks needed

to complete the collection. you said you wanted the last mask out of the count, so 8 is the value. (check variable type as short in both globals.)

 

This now tells the script how many at start, and how many at most.

Then you need to set up an Armor Property for each mask, and a global value for the counter, so that the script knows WHAT its looking for, and HOW many there are.

 

Here is a basic script I wrote.

 

Scriptname DragonPriestMasks extends Quest  


Armor Property DP1  Auto  conditional


Armor Property DP2  Auto  conditional


Armor Property DP3  Auto  conditional 


Armor Property DP4  Auto  conditional


Armor Property DP5   Auto  conditional


Armor Property DP6  Auto  conditional


Armor Property DP7  Auto   conditional


Armor Property DP8  Auto   conditional
GlobalVariable Property MODMaskCount  Auto   conditional


Quest Property QQ1  Auto  


Function GemCounted()


float CurrentCount = Game.GetPlayer().GetItemCount(DP1)


MODMaskCount.Value = CurrentCount
UpdateCurrentInstanceGlobal(MODMaskCount)
if CurrentCount >= 8
QQ1.SetObjectiveCompleted(10,1)
QQ1.SetObjectiveDisplayed(15,true,true)
elseif CurrentCount < 8
QQ1.SetObjectiveCompleted(10,0)
QQ1.SetObjectiveDisplayed(15,0)
QQ1.SetObjectiveDisplayed(10,true,true) 
endif


endFunction

QQ1 being YourQuest property

DP1 through 8 being the masks.

MODMaskCount being the globalVariable

 

This script basically tells the game to begin adding to the counter every time you pick up the DP1 mask. which is DragonPriest1. But it will not yet display the counter

in game. you need to work around with the stages section for that. The problem I ran into was making the quest sense all DP masks.

 

I tried the following

float CurrentCount = Game.GetPlayer().GetItemCount(DP1 && DP2 && DP3 && DP4 && DP5 && DP6 && DP7 && DP8)

Unfortunately that didn't work. But it does in the New Vegas Geck for Fallout. So I tried, but I came up short, its very complicated, but hopefully the information I provided may help you, or someone else who see's this may know where I went wrong.

Edited by Kurzusseus
Link to comment
Share on other sites

Bajeesus!!! I looked at the quest as well and it is much more complicated then it seems. Luckily I do have some experience with modding so I may be able to decipher it.

I'll have to mess around with it first though so I'll get back to you unless your question is answered before I can figure it out.

 

*Edit

 

After experimenting. I found little information but ran into a wall. Basically you need to make a GlobalValue for the count of how many masks you need to complete the quest.

An example make a new globalvalue called DragonPriestMasks and set the value to 0. Then make a duplicate and call it whatever you want, now set the value to how many dragon priest masks needed

to complete the collection. you said you wanted the last mask out of the count, so 8 is the value. (check variable type as short in both globals.)

 

This now tells the script how many at start, and how many at most.

Then you need to set up an Armor Property for each mask, and a global value for the counter, so that the script knows WHAT its looking for, and HOW many there are.

 

Here is a basic script I wrote.

 

 

Scriptname DragonPriestMasks extends Quest  


Armor Property DP1  Auto  conditional


Armor Property DP2  Auto  conditional


Armor Property DP3  Auto  conditional 


Armor Property DP4  Auto  conditional


Armor Property DP5   Auto  conditional


Armor Property DP6  Auto  conditional


Armor Property DP7  Auto   conditional


Armor Property DP8  Auto   conditional
GlobalVariable Property MODMaskCount  Auto   conditional


Quest Property QQ1  Auto  


Function GemCounted()


float CurrentCount = Game.GetPlayer().GetItemCount(DP1)


MODMaskCount.Value = CurrentCount
UpdateCurrentInstanceGlobal(MODMaskCount)
if CurrentCount >= 8
QQ1.SetObjectiveCompleted(10,1)
QQ1.SetObjectiveDisplayed(15,true,true)
elseif CurrentCount < 8
QQ1.SetObjectiveCompleted(10,0)
QQ1.SetObjectiveDisplayed(15,0)
QQ1.SetObjectiveDisplayed(10,true,true) 
endif


endFunction
QQ1 being YourQuest property

DP1 through 8 being the masks.

MODMaskCount being the globalVariable

 

This script basically tells the game to begin adding to the counter every time you pick up the DP1 mask. which is DragonPriest1. But it will not yet display the counter

in game. you need to work around with the stages section for that. The problem I ran into was making the quest sense all DP masks.

 

I tried the following

float CurrentCount = Game.GetPlayer().GetItemCount(DP1 && DP2 && DP3 && DP4 && DP5 && DP6 && DP7 && DP8)
Unfortunately that didn't work. But it does in the New Vegas Geck for Fallout. So I tried, but I came up short, its very complicated, but hopefully the information I provided may help you, or someone else who see's this may know where I went wrong.
Link to comment
Share on other sites

Bajeesus!!! I looked at the quest as well and it is much more complicated then it seems. Luckily I do have some experience with modding so I may be able to decipher it.

I'll have to mess around with it first though so I'll get back to you unless your question is answered before I can figure it out.

 

*Edit

 

After experimenting. I found little information but ran into a wall. Basically you need to make a GlobalValue for the count of how many masks you need to complete the quest.

An example make a new globalvalue called DragonPriestMasks and set the value to 0. Then make a duplicate and call it whatever you want, now set the value to how many dragon priest masks needed

to complete the collection. you said you wanted the last mask out of the count, so 8 is the value. (check variable type as short in both globals.)

 

This now tells the script how many at start, and how many at most.

Then you need to set up an Armor Property for each mask, and a global value for the counter, so that the script knows WHAT its looking for, and HOW many there are.

 

Here is a basic script I wrote.

 

 

Scriptname DragonPriestMasks extends Quest  


Armor Property DP1  Auto  conditional


Armor Property DP2  Auto  conditional


Armor Property DP3  Auto  conditional 


Armor Property DP4  Auto  conditional


Armor Property DP5   Auto  conditional


Armor Property DP6  Auto  conditional


Armor Property DP7  Auto   conditional


Armor Property DP8  Auto   conditional
GlobalVariable Property MODMaskCount  Auto   conditional


Quest Property QQ1  Auto  


Function GemCounted()


float CurrentCount = Game.GetPlayer().GetItemCount(DP1)


MODMaskCount.Value = CurrentCount
UpdateCurrentInstanceGlobal(MODMaskCount)
if CurrentCount >= 8
QQ1.SetObjectiveCompleted(10,1)
QQ1.SetObjectiveDisplayed(15,true,true)
elseif CurrentCount < 8
QQ1.SetObjectiveCompleted(10,0)
QQ1.SetObjectiveDisplayed(15,0)
QQ1.SetObjectiveDisplayed(10,true,true) 
endif


endFunction
QQ1 being YourQuest property

DP1 through 8 being the masks.

MODMaskCount being the globalVariable

 

This script basically tells the game to begin adding to the counter every time you pick up the DP1 mask. which is DragonPriest1. But it will not yet display the counter

in game. you need to work around with the stages section for that. The problem I ran into was making the quest sense all DP masks.

 

I tried the following

float CurrentCount = Game.GetPlayer().GetItemCount(DP1 && DP2 && DP3 && DP4 && DP5 && DP6 && DP7 && DP8)
Unfortunately that didn't work. But it does in the New Vegas Geck for Fallout. So I tried, but I came up short, its very complicated, but hopefully the information I provided may help you, or someone else who see's this may know where I went wrong.

Oops, fail on the first quote! Thanks for all the help, i'll see what i can do. I was thinking i could do an individual quest for each mask, then for the quest with the ninth mask, setup 8 conditions, one for each standard mask quest, and all must be past the return mask stage to allow the dialogue option to be available for the next quest. This would (to my knowledge) work, if not a little sloppy. Because it makes it more blatantly a bunch of fetch quests, Which people don't seem like the thought of (even though most adventures have the hero doing tons of things all over the place, to usually get something (fetch) or kill something). The quest is given with more of a 'get these when you can' state of mind. Anyway thanks again for the help, not sure yet if my method works, but thought it might be useful information you could use in the future. Happy modding

Link to comment
Share on other sites

hmm..... looking at the script above...if you don't mind trying this, attach this script to a player alias you made for the quest.

 

 

 

Scriptname DragonPriestMasks extends ReferenceAlias

Armor[] Property DPtoCheck Auto ;; set 8 slots for this and fill all 8 slots with the required masks
GlobalVariable Property MODMaskCount Auto
Quest Property QQ1 Auto
Int i

Event OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer)
          i = 0
          While i < DPtoCheck.Length
                    if akBaseItem == DPtoCheck[i] as Form
                           MODMASKCount.SetValueInt(MODMASKCount.GetValueInt() + 1)
                           DPtoCheck[i] = none
                    endif
                    i+=1
          endWhile
          if MODMASKCount.GetValueInt() == 8
                    QQ1.SetObjectiveCompleted(10)
                    QQ1.SetObjectiveDisplayed(15,true)
          else
                    QQ1.SetObjectiveCompleted(10,false)
                    QQ1.SetObjectiveDisplayed(10,true,true)
          endif
endEvent

 

 

Edited by fantasy19
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...