soupdragon1234 Posted October 26, 2014 Share Posted October 26, 2014 (edited) Hi, I'm having some trouble with getting a script to function, I'm a complete newbie when it comes to scripts I have no idea what I'm doing wrong... What I know so far: Quest: DialogueSolitude contains the dialogue and papyrus fragments for the kid's tag game in Solitude: "Hey, wanna play tag?""come back if you want to play tag""5,4,3,2.1 Go!"etc. I can hack another child actor into this quest and it works, for vanilla actors anyway (Hearthfire actors do not for some reason, which is one part of the problem, if they all worked I could use this as a workaround) But if I try add the papyrus fragment and script to any quest that involves the HF kids it fails miserably. I can get the dialogue to show up just fine, but the tag game never starts. Does anyone have a clue how to make it work? Fragment from DialogueSolitude quest looks like this: WI.StartGameTag(akspeaker, game.getplayer(), 60, self) and script looks like this: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment;NEXT FRAGMENT INDEX 1Scriptname TIF__000B2FCD Extends TopicInfo Hidden;BEGIN FRAGMENT Fragment_0Function Fragment_0(ObjectReference akSpeakerRef)Actor akSpeaker = akSpeakerRef as Actor;BEGIN CODEWI.StartGameTag(akspeaker, game.getplayer(), 60, self);END CODEEndFunction;END FRAGMENT;END FRAGMENT CODE - Do not edit anything between this and the begin commentwifunctionsscript Property WI Auto;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; I can get the fragment and script to compile ok, but like I say it does nothing other than when its in DialogueSolitude quest. Clearly I'm missing something, but what? ++++++++++++++++++++++++++++++++++++++++++++++++++ edit: ok I fixed it. Couple of points: 1) DialogueSolitude quest script will work with HF kids but only if they're not adopted yet, once they are they're handled by the BYOHRelationshipAdoption quest exclusively 3) Adopted kids have their own version of the tag game within the adoption scripts which can be called via script fragment 4) HF script fragments are tricky to compile the source file needs to be in scripts\source and not scripts\source\hearthfires. Even then the fragment will still fail to compile on occasion with ;FRAGMENT NOT LOADED errors. Not sure why. Perseverence is the key here. Maybe reboot the CK? 5) Once fragment is added, generate. Then open the script source and add "Quest Property RelationshipAdoption Auto" to the end of the script source, save, and compile again as it won't add it automatically. Not sure why I have to add it manually and compile twice (did I mention I'm a script noob?) 6) done! Adopted kids should now be able to play tag on demand as well as unadopted ones. n.b. @ArronDominion thats very interesting, thanks. Edited November 3, 2014 by soupdragon1234 Link to comment Share on other sites More sharing options...
ArronDominion Posted November 2, 2014 Share Posted November 2, 2014 Sorry in advance, but this will be a long post response since this system is not as easy as it might seem. About your current issue: Fragment scripts are things auto-generated by the Creation Kit and drives the behavior of the script. Changing the fragment will cause the dialogue script not to work. Something I did as a quick test: Did a dirty test (since I am using DialogueSolitude for the test) and added Blaise in the dialogue branches, by copying Kayd's dialogue branch (would have to copy the female child for female children), and changing the actor check to Blaise getting a favorable result in the immediate, but would potential make it incompatible with other mods if they happen to use or change DialogueSolitude. Explanation of their script: WI indicates that it is a World Interaction which is under the radiant quest system, and it is calling the WI quest to execute the function StartGameTag(FirstPlayer, SecondPlayer, duration, self[forget what this one does atm]). It has been awhile since I have fiddled with radiant quests so forgive me for not being much help at this point. Lets define the variables in their call of StartGameTag:akspeaker - childgame.getplayer() - the player60 - The duration in secondsself - Calling the Form Self as explained in the WIFunctionScript.psc What needs to happen: What you need to do in your dialogue is to somehow get WI.StartGameTag(akspeaker, game.getplayer(), 60 [or whatever duration you set or implement in your mod in seconds], self) to be called correctly. Here is what comes from the comment section directly from the script:;HOW TO USE THIS: Make this Quest a property cast as this quest, in the calling quest, and then you can access it's functions using the properties set up on WI quest. How to do that for your new quest is outside of my understanding at this moment, if someone else knows this system better please help this modder out. Link to comment Share on other sites More sharing options...
Recommended Posts