subtledoctor Posted February 28, 2019 Posted February 28, 2019 (edited) Anyone know why this is throwing a syntax error? ACTION_IF GAME_IS ~iwdee~ BEGIN <<<<<<<< d5/delisia+.d EXTEND_BOTTOM DELISIA 0 IF ~Global("Bard_Greeting","GLOBAL",0) OR(9) Kit(LastTalkedToBy,D5_BARD) Kit(LastTalkedToBy,D5_BLADE) Kit(LastTalkedToBy,D5_JESTER) Kit(LastTalkedToBy,D5_SKALD) Kit(LastTalkedToBy,D5_GALLANT) Kit(LastTalkedToBy,D5_HERALD) Kit(LastTalkedToBy,D5_MEISTER) Kit(LastTalkedToBy,D5_JINXER) Kit(LastTalkedToBy,D5_AGENT)~ THEN REPLY #5153 DO ~SetGlobal("Bard_Greeting","GLOBAL",1) AddXP2DA("Level_1_Easy") DisplayStringNoNameDlg(Myself,30979) SetGlobal("Know_Elisia","GLOBAL",1) AddJournalEntry(23507,QUEST)~ GOTO 3 IF ~Global("Bard_Greeting","GLOBAL",1) OR(9) Kit(LastTalkedToBy,D5_BARD) Kit(LastTalkedToBy,D5_BLADE) Kit(LastTalkedToBy,D5_JESTER) Kit(LastTalkedToBy,D5_SKALD) Kit(LastTalkedToBy,D5_GALLANT) Kit(LastTalkedToBy,D5_HERALD) Kit(LastTalkedToBy,D5_MEISTER) Kit(LastTalkedToBy,D5_JINXER) Kit(LastTalkedToBy,D5_AGENT)~ THEN REPLY #5157 EXIT END EXTEND_BOTTOM DELISIA 1 IF ~Global("Bard_Greeting","GLOBAL",0) OR(9) Kit(LastTalkedToBy,D5_BARD) Kit(LastTalkedToBy,D5_BLADE) Kit(LastTalkedToBy,D5_JESTER) Kit(LastTalkedToBy,D5_SKALD) Kit(LastTalkedToBy,D5_GALLANT) Kit(LastTalkedToBy,D5_HERALD) Kit(LastTalkedToBy,D5_MEISTER) Kit(LastTalkedToBy,D5_JINXER) Kit(LastTalkedToBy,D5_AGENT)~ THEN REPLY #5153 DO ~SetGlobal("Bard_Greeting","GLOBAL",1) AddXP2DA("Level_1_Easy") DisplayStringNoNameDlg(Myself,30979)~ GOTO 3 IF ~Global("Bard_Greeting","GLOBAL",1) OR(9) Kit(LastTalkedToBy,D5_BARD) Kit(LastTalkedToBy,D5_BLADE) Kit(LastTalkedToBy,D5_JESTER) Kit(LastTalkedToBy,D5_SKALD) Kit(LastTalkedToBy,D5_GALLANT) Kit(LastTalkedToBy,D5_HERALD) Kit(LastTalkedToBy,D5_MEISTER) Kit(LastTalkedToBy,D5_JINXER) Kit(LastTalkedToBy,D5_AGENT)~ THEN REPLY #5157 EXIT END EXTEND_BOTTOM DELISIA 10 IF ~!Class(LastTalkedToBy,BARD_ALL) OR(9) Kit(LastTalkedToBy,D5_BARD) Kit(LastTalkedToBy,D5_BLADE) Kit(LastTalkedToBy,D5_JESTER) Kit(LastTalkedToBy,D5_SKALD) Kit(LastTalkedToBy,D5_GALLANT) Kit(LastTalkedToBy,D5_HERALD) Kit(LastTalkedToBy,D5_MEISTER) Kit(LastTalkedToBy,D5_JINXER) Kit(LastTalkedToBy,D5_AGENT)~ THEN REPLY #34554 GOTO 13 >>>>>>>> COMPILE ~d5/delisia+.d~ END Edited February 28, 2019 by subtledoctor Quote
jastey Posted February 28, 2019 Posted February 28, 2019 I'm not sure. My inlined .d-files start like this: <<<<<<<< ...inlined/ja#gervis_bg1npc.d (...) >>>>>>>> COMPILE EVALUATE_BUFFER ~...inlined/ja#gervis_bg1npc.d~ In case your syntax is also valid, is there any more info with regard to the error, and / or a line number etc.? Quote
subtledoctor Posted February 28, 2019 Author Posted February 28, 2019 It's a syntax error, in the virtual .d file, at the last line of the file. I've found that the imaginary directory you claim the inlined file is in is completely arbitrary; some use "inlined," while others use things like their moder prefix. I like using my modder prefix for some reason. It works just the same. Anyway I got around this with a fudge: instead of EXTENDING the responses in the .dlg file, I just replace the IF conditionals: COPY_EXISTING ~delisia.dlg~ ~OVERRIDE~ DECOMPILE_AND_PATCH BEGIN REPLACE_TEXTUALLY ~Class(LastTalkedToBy,BARD_ALL)~ ~OR(10) Class(LastTalkedToBy,BARD_ALL) Kit(LastTalkedToBy,D5_BARD) Kit(LastTalkedToBy,D5_BLADE) Kit(LastTalkedToBy,D5_JESTER) Kit(LastTalkedToBy,D5_SKALD) Kit(LastTalkedToBy,D5_GALLANT) Kit(LastTalkedToBy,D5_HERALD) Kit(LastTalkedToBy,D5_MEISTER) Kit(LastTalkedToBy,D5_JINXER) Kit(LastTalkedToBy,D5_AGENT)~ END BUT_ONLY Not ideal, but it works - the mermaid or whatever sees my mage/thief as a bard, and I get my extra XP. It's the only bard-specific interaction in IWD and the dialogue is pretty simple, so I might just leave it like this. I already have BG2 stronghold stuff working with the safer EXTEND_BOTTOM method... because CamDawg spoonfed us the necessary code in a thread around here. Now on to SoD, where there are about 30 dialogues in need of patching. Then I can finally release what might be the coolest mod I've ever made... Quote
DavidW Posted March 2, 2019 Posted March 2, 2019 Inlined files share a common namespace, so there are edge-case bug possibilities if you don’t use a unique inline name and some other mod in your install stack uses that same name. Quote
subtledoctor Posted March 2, 2019 Author Posted March 2, 2019 Actually I figured it out: the .d file includes not just the dialogue stuff, but the Weidu EXTEND_BOTTOM command to insert its content into the in-game dialogue. It's not terribly clear ftom the error message, but the inlined code was lacking and END to close out that command. Quote
jastey Posted March 2, 2019 Posted March 2, 2019 Oh, you are right! Now I see that he last EXTEND_BOTTOM was missing an END, indeed. Man, and I looked at that really carefully. Oh well. Quote
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.