Jump to content

solitude kid's tag game script help?


Recommended Posts

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 1
Scriptname TIF__000B2FCD Extends TopicInfo Hidden

;BEGIN FRAGMENT Fragment_0
Function Fragment_0(ObjectReference akSpeakerRef)
Actor akSpeaker = akSpeakerRef as Actor
;BEGIN CODE
WI.StartGameTag(akspeaker, game.getplayer(), 60, self)
;END CODE
EndFunction
;END FRAGMENT

;END FRAGMENT CODE - Do not edit anything between this and the begin comment

wifunctionsscript 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 by soupdragon1234
Link to comment
Share on other sites

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 - child

game.getplayer() - the player

60 - The duration in seconds

self - 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

  • Recently Browsing   0 members

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