monkeyrazzar Posted May 24, 2014 Share Posted May 24, 2014 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 More sharing options...
Kurzusseus Posted May 24, 2014 Share Posted May 24, 2014 (edited) 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 neededto 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 endFunctionQQ1 being YourQuest propertyDP1 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 counterin 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 May 24, 2014 by Kurzusseus Link to comment Share on other sites More sharing options...
monkeyrazzar Posted May 25, 2014 Author Share Posted May 25, 2014 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 neededto 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 endFunctionQQ1 being YourQuest propertyDP1 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 counterin 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 More sharing options...
monkeyrazzar Posted May 25, 2014 Author Share Posted May 25, 2014 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 neededto 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 endFunctionQQ1 being YourQuest propertyDP1 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 counterin 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 More sharing options...
fantasy19 Posted May 25, 2014 Share Posted May 25, 2014 (edited) 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 May 25, 2014 by fantasy19 Link to comment Share on other sites More sharing options...
Recommended Posts