Jump to content
athies

Need help with journal entries

Recommended Posts

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.~

 

Share this post


Link to post

In the tp2, preceding the rest in the array. 

Quote

ADD_JOURNAL TITLE (@9004)

 

Share this post


Link to post

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."

Share this post


Link to post

Hm... that keeps it in the quest log, but the entry for 9005 (now 9006) still won't show up. 

Share this post


Link to post

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.

Share this post


Link to post

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.

Share this post


Link to post

😅 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.

Share this post


Link to post

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.

Share this post


Link to post

Hm, I'll keep that in mind when I get to the things that will need that trigger. 

Share this post


Link to post
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...