athies Posted April 23, 2020 Share Posted April 23, 2020 I'm trying to get journal entries to work, but for some reason, it only ever reads the bracketed entry. If a later entry is meant to show up, the quest is relegated from the Quest section to the Journal section, and contains only text from the bracketed entry. If the quest's first entry is anything other than the bracketed entry, it never shows up at all. This is what I have in the Tp2 ADD_JOURNAL TITLE (@9001) @9002 @9003 USING ~Theil/Translations/%LANGUAGE%/YY#TH.TRA~ ADD_JOURNAL TITLE (@9004) @9005 USING ~Theil/Translations/%LANGUAGE%/YY#TH.TRA~ This is what I have in .d CHAIN YY#TH YY#Theil2_wait ~Then I shall remain for a while to gain my bearings. But I will have to attempt this on my own, before the trail goes cold, if you are not returned within the day.~ DO ~SetGlobal("YY#Theil00","GLOBAL",5) SetGlobalTimer("YY#TheilDespawn","GLOBAL",ONE_DAY) AddJournalEntry(@9004,QUEST)~ EXIT CHAIN IF ~Global("YY#TheilJoined","GLOBAL",0) Global("YY#Theil00","GLOBAL",5)~ THEN YY#TH YY#Theil3_return ~You return. Have you decided, then?~ END ++ ~Yes, join with me and let's go.~ DO ~SetGlobal("YY#Theil00","GLOBAL",6) SetGlobal("YY#TheilJoined","GLOBAL",1) JoinParty() AddJournalEntry(@9005,QUEST) SetGlobal("YY#TheilHinatva","GLOBAL",0)~ EXIT These are their entries in the tra. @9004 = ~Of Cats and Birds. The woman in the sphere calls herself "Theil", and has asked for my help with something that could prove dangerous. I get the feeling she isn't being completely upfront, but she has given me a day to consider her proposal.~ @9005 = ~Of Cats and Birds. The woman in the sphere calls herself "Theil", and has asked for my help with something that could prove dangerous. I get the feeling she isn't being completely upfront, but I have agreed to help her nevertheless. Perhaps I'll find the door to this key in Waukeen's Promenade.~ Quote Link to comment
jastey Posted April 23, 2020 Share Posted April 23, 2020 What do you mean by bracketed entry? Quote Link to comment
athies Posted April 23, 2020 Author Share Posted April 23, 2020 In the tp2, preceding the rest in the array. Quote ADD_JOURNAL TITLE (@9004) Quote Link to comment
jastey Posted April 23, 2020 Share Posted April 23, 2020 Still not sure I understand this. If you use 1 minute ago, athies said: ADD_JOURNAL TITLE (@9004) @900x ... then @9004 is only a title, in your case this would be e.g. Quote @9004 = ~Of Cats and Birds.~ Nothing else. Then the other entries after that are the actual entries. And they will all be grouped under the journal title "Of Cats and Birds." Quote Link to comment
athies Posted April 23, 2020 Author Share Posted April 23, 2020 Hm... that keeps it in the quest log, but the entry for 9005 (now 9006) still won't show up. Quote Link to comment
jastey Posted April 23, 2020 Share Posted April 23, 2020 It's because of the order of your transactions. You have to put JoinParty() last. Any transactions after that do not get executed. (I didn't look at that properly before.) With the two changes it should work. Quote Link to comment
athies Posted April 24, 2020 Author Share Posted April 24, 2020 Ahh, that did it, thank you!! Quote Link to comment
jastey Posted April 24, 2020 Share Posted April 24, 2020 Other actions that should be put last: -EscapeArea() -EscapeAreaDestroy() -MoveBetweenAreas() JFI. It's some of these things that you either know or you despair why it doesn't work in game. Quote Link to comment
athies Posted April 24, 2020 Author Share Posted April 24, 2020 Yeah, I went in and changed some of those around when you pointed out transaction order was a thing. Worked like a charm EscapeArea seemed the obvious culprit given the similarities. Is ordering relevant in scripts too? I've had some trouble with getting StartDialogueNoSet() to fire, which I've been circumventing by simply finding ways to keep triggers to a minimum. Quote Link to comment
jastey Posted April 24, 2020 Share Posted April 24, 2020 The only time where order of triggers in scripts played a real role was with AreaType() check in the deam script (the script that triggers before rest) of an NPC leads to a crash if the NPC cannot talk (or is dead) and that another trigger giving false in that case should be on top to prevent the crash. Meaning, that the "NPC can talk" check (!StateCheck(Myself,CD_STATE_NOTVALID)) should be before the AreaType() check, e.g. Quote IF !StateCheck(Myself,CD_STATE_NOTVALID) %BGT_VAR% AreaType(FOREST) InParty("%IMOEN_DV%") InParty(Myself) CombatCounter(0) !See([ENEMY]) See("%IMOEN_DV%") !StateCheck("%IMOEN_DV%",CD_STATE_NOTVALID) RealGlobalTimerExpired("DreamTalk","GLOBAL") Global("XZIM1","GLOBAL",2) THEN RESPONSE #100 Other than that, ordering the triggers in teh scripts such that a false trigger would be on top might be optimal because the engine is quicker with going through the script files if it can skip the script block in question sooner. But what the optimum order of triggers would be here and also whether this has really an impact is a good question that could use more input from all the modder veterans out there. Quote Link to comment
athies Posted April 25, 2020 Author Share Posted April 25, 2020 Hm, I'll keep that in mind when I get to the things that will need that trigger. Quote Link to comment
Recommended Posts
Join the conversation
You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.