Grim Squeaker Posted August 17, 2005 Share Posted August 17, 2005 At Domi's request I am reposting my advice on use of Journal entries. This is an issue I encountered before and after some suggestions by Cam and devSin, got sorted out. Adding journal entries is nice and easy. You just slap it after the THEN (or optional DO) in a dialogue and use JOURNAL/SOLVED_JOURNAL/UNSOLVED_JOURNAL ~String~ where String is your journal entry. However, this only works for dialogues. If you want to add journal entries in a script you use AddJournalEntry(~String~,JOURTYPE) where JOURTYPE is either USER/QUEST/QUEST_DONE/INFO and it adds it the correct part. You can use AddJournalEntry() in dialogues but there's no reason to (and there's a trick to it similar to the one discussed below). Erasing journal entries is done the same way in dialogues and scripts: using EraseJournalEntry(). This takes one argument and works as follows. EraseJournalEntry(~String~) will remove that String from QUEST, QUEST_DONE and INFO sections (not user, according to the IESDP as its stored somewhere else). However, when you are doing this in dialogue the obvious syntax would be: DO ~EraseJournalEntry(~String~)~ This won't work as WeiDU will parse it like this: DO ~EraseJournalEntry(~String~)~ It'll then throw a hissy fit on the first word of the string as it thinks its the end of the DO list. So what you instead do is this: DO ~EraseJournalEntry(%String%)~ % is a valid string marker but not the usual one. However, because you are using a different one it can't mismatch the ~ with the % and it will be parsed correctly. If you are doing AddJournalEntry() in dialogues you just use the same trick. Moving journal entries to done can be done two ways (apparently). Now the way the game does it is it erases all the journal entries for a quest and then adds a summary one for the whole quest in the DONE section. So thats fairly simple. Just a series of EraseJournalEntry()s and then add the journal entry to the DONE section. However, there is another action described in the IESDP as follows: 235 SetQuestDone(I:STRREF*)Although untested, this probably does the same thing as EraseJournalEntry(), in that it removes the given STRREF from the QUEST section of the journal. Be careful, that's what SimDing0 says... he's a dodgy fellow. I've never used this so I don't have any advise on it. I just stick to the first method. Link to comment
This topic is now archived and is closed to further replies.