jastey Posted November 11, 2006 Share Posted November 11, 2006 I didn't find this in the fixed bug list so I assume it is not covered yet: The drow slave dialogue file "daslave1.dlg" has a wrong answer trigger, it should be "!IsValidForPartyDialog("Nalia")" for the first answer option. The way it is now, this leads to an "NO VALID LINK OR REPLY" if neither Nalia nor Jaheira are able to talk: IF ~~ THEN BEGIN 10 // from: 5.3 3.2 2.3 SAY #56875 /* ~Ihr würdet... uns in dieser Stadt freisetzen, unbewaffnet, ohne irgendetwas? Wir werden bald tot sein. Aber... aber vielleicht besser, als die Alternative. So soll es sein.~ */ IF ~!IsValidForPartyDialog("Jaheira") IsValidForPartyDialog("Nalia")~ THEN DO ~SetGlobal("SlaveResult","GLOBAL",4)~ EXIT IF ~IsValidForPartyDialog("Jaheira")~ THEN DO ~SetGlobal("SlaveResult","GLOBAL",4)~ EXTERN ~JAHEIRAJ~ 510 IF ~!IsValidForPartyDialog("Jaheira") IsValidForPartyDialog("Nalia")~ THEN DO ~SetGlobal("SlaveResult","GLOBAL",4)~ EXTERN ~NALIAJ~ 303 END Link to comment
CamDawg Posted November 11, 2006 Share Posted November 11, 2006 Nice catch. Transition 0 can never fire, as transition 2 has the same conditions and is evaluated first. We can take advantage of that and use EXTEND_TOP instead of trying to replace the entire state. .d code: // fixes 'no valid' error for slave leader in ust natha EXTEND_TOP DASLAVE1 10 IF ~~ THEN DO ~SetGlobal("SlaveResult","GLOBAL",4)~ EXIT END A trigger here would actually be redundant, as we'll only evaluate this transition if Jaheira and Nalia are not valid for dialogue. Link to comment
CamDawg Posted November 11, 2006 Share Posted November 11, 2006 Oh, and while I'm here... I have it on my list to fix Anomen's interjection out at Windspear, but IIRC you mentioned you already have it fixed? If so, can we blatantly steal it? Link to comment
jastey Posted November 12, 2006 Author Share Posted November 12, 2006 I'd feel honored if you find anything of my work worth stealing. Which interjection at Windspear do you mean exactly? (Some could be seen as UB stuff) If you mean what I listed here , feel free to use whatever you think fits. I edited the post (found a bug in the originally posted code ) and added more comments about whether I see the changes as a tweak or a fix, so you should be able to see easily what I was trying to do. If you have any more questions (concerning my code) let me know. Link to comment
CamDawg Posted November 17, 2006 Share Posted November 17, 2006 So, if I read that correctly, most of those are extra safeguards to ensure original dialogues don't fire if prompted by a mod? It looks like these are fixes and need to go in: // This is a fix so that Anomen's second "dead sister" complaint can be triggered at all ADD_TRANS_ACTION ANOMENJ BEGIN 28 END BEGIN END ~SetGlobal("AnomenComplain","LOCALS",1)~ //Puts the variable setting in front of the dialogue triggering so that Anomen's complaint about delaying Garren kid's quest gets triggered COPY_EXISTING ~anomen.bcs~ ~override~ DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~\(StartDialogu?e?NoSet(Player1)[%tab% %lnl%%mnl%%wnl%]+\)\(SetGlobal("ddAnomenWhine","LOCALS",1)\)~ ~\2 \1~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES This, I disagree--I think it's a fix: // add slight delay so Anomen can comment on dead Windspear knights before Garren COPY_EXISTING ~garren.bcs~ ~override~ DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~\(GlobalLT("DomainPaladinBattle","GLOBAL",4)[%tab% %lnl%%mnl%%wnl%]+THEN[%tab% %lnl%%mnl%%wnl%]+RESPONSE #100\)[%tab% %lnl%%mnl%%wnl%]+\(StartDialogu?e?NoSet(Player1)\)~ ~\1 Wait(1) \2~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES As for the following, I just want to ask one question: do the dialogues trigger correctly in an unmodded game? If so, then these won't be included: /* add state trigger for Anomen's after knight test talk(s): */ /*CN Anomen*/ ADD_STATE_TRIGGER AnomenJ 101 ~Global("AnomenSpeaksAfterTrial","LOCALS",1)~ /*LG Anomen*/ ADD_STATE_TRIGGER AnomenJ 110 ~Global("AnomenSpeaksAfterTrial","LOCALS",1)~ /*Anomen's warning dialogue in the tanner's house*/ ADD_STATE_TRIGGER AnomenJ 205 ~Global("TannerWarning","AR0502",1)~ /*Anomen's comment on the dead watchman's body (tanner house)*/ ADD_STATE_TRIGGER AnomenJ 207 ~Global("FoundAegis2","LOCALS",1)~ /*Anomen's comment on dead Saerk, after he killed him and his daughter*/ ADD_STATE_TRIGGER AnomenJ 282 ~Global("TheBadManIsDead","LOCALS",1)~ You can see how much I play with Anomen. Link to comment
jastey Posted November 18, 2006 Author Share Posted November 18, 2006 So, if I read that correctly, most of those are extra safeguards to ensure original dialogues don't fire if prompted by a mod? Yes, exactly. It looks like these are fixes and need to go in: (...) That are the real fixes, yes. This, I disagree--I think it's a fix: I would be happy if it would be included, as it seems the only way for Anomen to get enough time for his monster talk. You might want to make it "Wait(2)", though, as I combined the 1 s wait with a deletion of the 1 s wait in Anomen's trigger script. As for the following, I just want to ask one question: do the dialogues trigger correctly in an unmodded game? If so, then these won't be included: (...)Umm... I ever played LG Anomen, and the only talk I can confirm is the "LG Anomen after knight test talk". I never saw the tanner warning when entering the house, or at least I don't recall it...The other ones I can't say, as I played the game differently. Link to comment
berelinde Posted November 18, 2006 Share Posted November 18, 2006 The tanner warning fires. I've never seen dead Aegisfield, so I can't speak for him. I know that Anomen got the Garren line out exactly once in all my BG2 playthroughs, which was most frustrating. Link to comment
jastey Posted November 18, 2006 Author Share Posted November 18, 2006 Thanks, berelinde. Yes, the tanner warning does fire in an unmodded game, I just played it while being offline. The other ones I can't confirm, (but if the tanner one works the other ones should fire correctly, too.) [EDIT: Maybe I can play dead Aegisfeld, just give me a moment.] EDIT 2: Yes, Anomen's dead Leutnant Aegisfeld dialogue triggers correctly, too. Link to comment
berelinde Posted November 18, 2006 Share Posted November 18, 2006 Sometime, you're going to tell me how to get to that one. I had no idea such a thing existed. Link to comment
CamDawg Posted November 18, 2006 Share Posted November 18, 2006 Lessee... you confront Reijek in his shop, but don't pursue him down the stairs. You report this to Aegisfield. Later, when you return to Reijek's shop you'll find the body of Aegisfield in a container on the second floor (obviously he didn't fare so well in his visit). You can return Aegisfield's body to the inspector in the council building (Brega?) for a reward. Link to comment
Guest Guest Posted November 19, 2006 Share Posted November 19, 2006 Lessee... you confront Reijek in his shop, but don't pursue him down the stairs. You report this to Aegisfield. Later, when you return to Reijek's shop you'll find the body of Aegisfield in a container on the second floor (obviously he didn't fare so well in his visit). You can return Aegisfield's body to the inspector in the council building (Brega?) for a reward. IIRC it's possible to collect all evidence and report to Aegisfield w/o even entering tanner's house. Link to comment
jastey Posted November 19, 2006 Author Share Posted November 19, 2006 IIRC it's possible to collect all evidence and report to Aegisfield w/o even entering tanner's house.That's what I did. I have a save game from right before entering the tanner's house (with all the evidence), so that was easy. (I am glad this didn't occurr to me when playing the game. Poor Aegisfeld. Jaheira made a spoilerish "letting him go to the tanner on his own was probably not a good idea", but no possibility to accompany him there. Sounds like a neat quest extention to me.) Link to comment
CamDawg Posted November 25, 2006 Share Posted November 25, 2006 Added, moving to archives. Link to comment
jastey Posted January 8, 2008 Author Share Posted January 8, 2008 Nice catch. Transition 0 can never fire, as transition 2 has the same conditions and is evaluated first. We can take advantage of that and use EXTEND_TOP instead of trying to replace the entire state. .d code: // fixes 'no valid' error for slave leader in ust natha EXTEND_TOP DASLAVE1 10 IF ~~ THEN DO ~SetGlobal("SlaveResult","GLOBAL",4)~ EXIT END A trigger here would actually be redundant, as we'll only evaluate this transition if Jaheira and Nalia are not valid for dialogue. I was thinking about this... Wouldn't it be much mod-friendlier to EXTEND_BOTTOM in this case? I just thought of all the possible A_T_A and A_T_T that would get messed up: EXTEND_BOTTOM DASLAVE1 10 IF ~!IsValidForPartyDialog("Jaheira") !IsValidForPartyDialog("Nalia")~ THEN DO ~SetGlobal("SlaveResult","GLOBAL",4)~ EXIT Link to comment
CamDawg Posted January 8, 2008 Share Posted January 8, 2008 I was thinking about this... Wouldn't it be much mod-friendlier to EXTEND_BOTTOM in this case? I just thought of all the possible A_T_A and A_T_T that would get messed up: EXTEND_BOTTOM DASLAVE1 10 IF ~!IsValidForPartyDialog("Jaheira") !IsValidForPartyDialog("Nalia")~ THEN DO ~SetGlobal("SlaveResult","GLOBAL",4)~ EXIT Actually, now ALTER_TRANS can do this even better: // fixes 'no valid' error for slave leader in ust natha ALTER_TRANS DASLAVE1 // file name BEGIN 10 END // state number (can be more than one) BEGIN 0 END // transition number (can be more than one) BEGIN // list of changes, see below for flags TRIGGER ~~ END This will also preserve the transition order. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.