Guest pro5 Posted August 21, 2006 Share Posted August 21, 2006 Not sure if it's a fixpack problem, but I never had this till now (I have Beta 1 installed). I got two meetings with Delon (boy who gives you the Shade Lord quest in Umar Hills), one in Gate District and later second in Government district. Link to comment
berelinde Posted August 21, 2006 Share Posted August 21, 2006 I've had this in an unmodded game. Link to comment
Guest Guest Posted August 21, 2006 Share Posted August 21, 2006 I've had this in an unmodded game. Well, then it should be fixed and added to this fixpack. Link to comment
CamDawg Posted August 21, 2006 Share Posted August 21, 2006 Not sure if it's a fixpack problem, but I never had this till now (I have Beta 1 installed). I got two meetings with Delon (boy who gives you the Shade Lord quest in Umar Hills), one in Gate District and later second in Government district. Did you accept or decline his quest when you met him the first time? And the second time? Is Minsc in the party? Link to comment
Guest pro5 Posted August 21, 2006 Share Posted August 21, 2006 Did you accept or decline his quest when you met him the first time? And the second time? Is Minsc in the party? I accepted the quest, Minsc was in party and had his usual "heroic" interjection during that dialog. Journal entries did appear as they should. In the government district, exactly the same dialog happened again (with Minsc speaking again). Don't know if it matters but my PC is Archer, so this is my stronghold quest. Link to comment
berelinde Posted August 21, 2006 Share Posted August 21, 2006 Nope. The important thing is that Minsc was in the party. Delon is supposed to spawn in the government district. He is supposed to approach the party and initiate conversation if Minsc is in the party. Otherwise, you have to initiate conversation with Delon. That part is working as it should. Here's the tricky bit: Delon is supposed to spawn in other parts of Athkatla if Minsc is in the party and you haven't accepted Delon's quest yet. Some global is not setting properly if you're getting Delon in both places. It can get even weirder. I've done the Umar Hills quest and had Delon track me down again in Waukeen's Promenade afterward and give me the quest *again*. I was so confused, I went to go talk to Minister Lloyd, but I don't remember whether he acted like I'd done the quest or not. I do know that my journal reflected *both* the first completed quest and Delon's new assignement. That was in an unmodded game. Link to comment
CamDawg Posted August 26, 2006 Share Posted August 26, 2006 OK, got a handle on this. Delon's script includes provision for the Gov't district version to disappear if he's spawned by Minsc's script. However, the trigger conditions are more geared towards whether Minsc should spawn Delon instead of whether he actually has. So a couple of changes to be made: Delon should absolutely, positively leave the Gov't district if he's spawned by Minsc and the party interacts with that version. (The mere spawning shouldn't make the Gov't copy disappear, as he could potentially spawn and be missed by the party, or spawned in an inaccessible area). The inverse is already true: if spoken to in the Gov't district, Minsc does not spawn Delon. If Delon gets spawned by Minsc, and the party does not speak to him, the spawned version needs to go away if the party instead interacts with the Gov't district copy. It's unlikely, but Delon can spawned by Minsc in one of the random city encounter areas (ar0046). This is bad if you ever want to go back and talk to him. Moving to pending. Link to comment
Roana Posted October 28, 2006 Share Posted October 28, 2006 OK, got a handle on this. Delon's script includes provision for the Gov't district version to disappear if he's spawned by Minsc's script. However, the trigger conditions are more geared towards whether Minsc should spawn Delon instead of whether he actually has. So a couple of changes to be made: Delon should absolutely, positively leave the Gov't district if he's spawned by Minsc and the party interacts with that version. (The mere spawning shouldn't make the Gov't copy disappear, as he could potentially spawn and be missed by the party, or spawned in an inaccessible area). The inverse is already true: if spoken to in the Gov't district, Minsc does not spawn Delon. If Delon gets spawned by Minsc, and the party does not speak to him, the spawned version needs to go away if the party instead interacts with the Gov't district copy. It's unlikely, but Delon can spawned by Minsc in one of the random city encounter areas (ar0046). This is bad if you ever want to go back and talk to him. Moving to pending. Hello, Well, I have changed your solution and now the bug should be solved with all your conditions above As there are no dialogue changes nessecary, I have this time coded it in WeiDU too : ORIGINAL OLD FIX: // delon's script using wrong variable for talking to Lloyd; had EscapeArea() issues COPY_EXISTING ~delon.bcs~ ~override~ DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~TalkedToMayor~ ~TalkedToLloyd~ REPLACE_TEXTUALLY ~Global("Acceptance","GLOBAL",1)~ ~False()~ REPLACE_TEXTUALLY ~AreaCheck("AR1000")~ ~True()~ REPLACE_TEXTUALLY ~Global("DelonMoves","LOCALS",0)~ ~Global("DelonMoves","LOCALS",0) AreaCheck("AR1000")~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES CHANGED FIX: // delon's script using wrong variable for talking to Lloyd; had EscapeArea() issues COPY_EXISTING ~delon.bcs~ ~override~ DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~TalkedToMayor~ ~TalkedToLloyd~ REPLACE_TEXTUALLY ~Global("TalkedToDelon","GLOBAL",0)~ ~Global("TalkedToDelon","GLOBAL",1)~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES // minsc's script need some additional checks; to prevent him from spawning delon in areas with random encounters COPY_EXISTING ~minsc.bcs~ ~override~ DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~!AreaCheck("AR1000")~ ~!AreaCheck("AR0020") !AreaCheck("AR0041") !AreaCheck("AR0042") !AreaCheck("AR0043") !AreaCheck("AR0045") !AreaCheck("AR0046") !AreaCheck("AR1000")~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES Explanation: REPLACE_TEXTUALLY ~TalkedToMayor~ ~TalkedToLloyd~ // right ! REPLACE_TEXTUALLY ~Global("Acceptance","GLOBAL",1)~ ~False()~ Don't Know, why you have done this . The Global variable: Global("Acceptance","GLOBAL",1) is set by Delon himself in his dialogue and should be 1 to force him do went home in AR1000 after you have accepted his quest... and in addition with this REPLACE_TEXTUALLY ~AreaCheck("AR1000")~ ~True()~ it will result in the original Script of Delon in the block with the Acceptance variable in: IF OR(4) false() // canged variable: Global("Acceptance","GLOBAL",1) Global("Villagesaved","GLOBAL",1) Global("TalkedToMayor","GLOBAL",1) InParty("Mazzy") true() // changed variable: AreaCheck("AR1000") Global("DelonGoesHome","LOCALS",0) THEN RESPONSE #100 SetGlobal("DelonGoesHome","LOCALS",1) EscapeArea() END Hm... well, I have never got a script running with false() AND true() as one condition... But don't worry about it: you have written 458 pages TP2 (count from my Winword) and so I guess, everyone will forgive you, as me (of course) REPLACE_TEXTUALLY ~Global("DelonMoves","LOCALS",0)~ ~Global("DelonMoves","LOCALS",0) AreaCheck("AR1000")~ Not nessecary to change here anything, regarding that I have notchanged the area check at all. The Global variable for: Global("TalkedToDelon","GLOBAL",0) is really wrong and this is the bug that caused Delon to not leave after you have spoken to him. He sets it by himself in his dialogue to 1 just after greeting the Mainchar or Minsc. So if you will force him to go after Minsc or the Mainchar has spoken to him, it should be Global("TalkedToDelon","GLOBAL",1), which will result in: IF GlobalTimerExpired("MinscDelon","GLOBAL") //Timer set by Minsc right after entering the area AR0400 is reached InParty("Minsc") // and Minsc is in Party !Dead("Minsc") // and Minsc is not dead AreaCheck("AR1000") // only run, if he is in this area, the only area, he will not spawn, because he is Actor here Global("DelonMoves","LOCALS",0) // and he is still in the area, in which he is as Actor Global("TalkedToDelon","GLOBAL",1) // and you have talked to him once (because if the timer is expired, Minsc will spawn Delon elsewhere - and after greeting, you have spoken to him) Global("TalkedToLloyd","GLOBAL",0) // and you have not been in Umar Hills yet (the other case is checked in the script block above) THEN RESPONSE #100 SetGlobal("DelonMoves","LOCALS",1) // then please leave this area EscapeArea() END I hope, this makes clear, why and how I have changed your fix Regards Roana Link to comment
devSin Posted October 28, 2006 Share Posted October 28, 2006 Delon ... Noled ... Satan OHMYGOD!!!! Delon has always been broken. I posit that his demonic powers will prevent us from ever truly fixing him. Link to comment
Roana Posted October 28, 2006 Share Posted October 28, 2006 Hm... well, I have never got a script running with false() AND true() as one condition... But don't worry about it: you have written 458 pages TP2 (count from my Winword) and so I guess, everyone will forgive you, as me (of course) The False() is under the OR(4) conditional, so as long as any one of those four statements is true, the script continues Hello, well, I'll reformate it for you: IF OR(4) false() // canged variable: Global("Acceptance","GLOBAL",1) Global("Villagesaved","GLOBAL",1) Global("TalkedToMayor","GLOBAL",1) InParty("Mazzy") AND true() // changed variable: AreaCheck("AR1000") Global("DelonGoesHome","LOCALS",0) THEN RESPONSE #100 SetGlobal("DelonGoesHome","LOCALS",1) EscapeArea() END I guess, this unqouted, by hand formated script will say all, I wanted to say (grrrr - why will this Editor never allow spaces at the begin of a line ??) Regards Roana Link to comment
Roana Posted October 28, 2006 Share Posted October 28, 2006 Delon ... Noled ... Satan OHMYGOD!!!! Delon has always been broken. I posit that his demonic powers will prevent us from ever truly fixing him. Hello, oh boy, don't give up: give my changes a try - and call me silly, if its not working, after testing it out I would very aprreciate to have someone, who know so much about area-fixing as you, for to really big area-bugs in BG1, that I'm not able to fix, cause I simply lag knowledge how to rewrite Vertices (I have only a _suggeston_ what exactly vertices are, but I know very well from IETME, that they are broken in two areas in BG1) These are the AR1801 (where Davaeorn is, which have very... hm ... spurios walls and vertices...) and the AR0514 (in Durlags tower - with that broken Door, which has a sight through, when its closed - I think the bug is in the wall-grafics there...) But I really can script in BG1 and BG2, if I am more than half sleeping Regards Roana Link to comment
Roana Posted October 28, 2006 Share Posted October 28, 2006 I'm just trying to say that this: IF OR(4) False() Global("VillageSaved","GLOBAL",1) Global("TalkedToMayor","GLOBAL",1) InParty("Mazzy") True() Global("DelonGoesHome","LOCALS",0) THEN RESPONSE #100 SetGlobal("DelonGoesHome","LOCALS",1) EscapeArea() END does exactly the same thing as this: IF OR(3) Global("VillageSaved","GLOBAL",1) Global("TalkedToMayor","GLOBAL",1) InParty("Mazzy") Global("DelonGoesHome","LOCALS",0) THEN RESPONSE #100 SetGlobal("DelonGoesHome","LOCALS",1) EscapeArea() END The True() and the False() are not part of the same conditional, so this is ok Hello, well, the script will work, but its really senseless to use true() and false() it this way... What leaves the question: Why didn't you written the fix in the way, you have quoted without these values? I'm just curious (oh my... only two hours to sleep yet - and then I have to master PnP... ...) Regards Roana Link to comment
devSin Posted October 28, 2006 Share Posted October 28, 2006 oh boy, don't give up: give my changes a try - and call me silly, if its not working, after testing it out That was simply a joke aimed at the work and discussion involved in his previous fix and wasn't based on your suggestions. Link to comment
Roana Posted October 28, 2006 Share Posted October 28, 2006 oh boy, don't give up: give my changes a try - and call me silly, if its not working, after testing it out That was simply a joke aimed at the work and discussion involved in his previous fix and wasn't based on your suggestions. Hello, I didn't have taken and meaned this so serious too - so never mind (If I will ever be angry, you don't will find any " " in the post - but I suppose, this will never be happen in this G3-forums with such fine people ) Regards Roana Link to comment
CamDawg Posted October 31, 2006 Share Posted October 31, 2006 Roana, your fix isn't quite doing it either. Delon's AreaCheck("ar1000") has to be removed from his third scripting block: IF OR(4) Global("Acceptance","GLOBAL",1) Global("Villagesaved","GLOBAL",1) Global("TalkedToMayor","GLOBAL",1) InParty("Mazzy") AreaCheck("AR1000") Global("DelonGoesHome","LOCALS",0) THEN RESPONSE #100 SetGlobal("DelonGoesHome","LOCALS",1) EscapeArea() END otherwise Delon will stick around forever if he's spawned anywhere other than the Gov't district by Minsc. As for this: REPLACE_TEXTUALLY ~Global("Acceptance","GLOBAL",1)~ ~False()~ Delon has valid dialogue if you speak with him between the time you accept the quest and when you complete it. If you leave this condition in his script, he leaves and you never see this additional bit of dialogue. The last of Delon's script can be simplified greatly. It's there to prevent the Gov't Delon from hanging around if Minsc spawns him somewhere else--however, the party can miss the spawned Delon, or he could be spawned somewhere where he can not reach the party. We need to allow for the possibility that Minsc could spawn Delon, but the party still speaks to the Gov't version of him. This should be very simple to rectify--a global variable is set if you actually speak to Delon, but NumTimesTalkedTo is local in scope: IF Global("DelonMoves","LOCALS",0) Global("TalkedToDelon","GLOBAL",1) NumTimesTalkedTo(0) THEN RESPONSE #100 SetGlobal("DelonMoves","LOCALS",1) DestroySelf() END Once you speak with one Delon, this block should cause the other to disappear immediately. We could use EscapeArea(), but if the spawned Delon is close to a map edge, it's possible the party could spot him leaving when they enter his area. Rather than trying to transform Delon's last scripting block into this, I say we just append this block and False() the existing one. So, all told, this should do it: // delon's script using wrong variable for talking to Lloyd; had EscapeArea() issues COPY_EXISTING ~delon.bcs~ ~override~ DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~TalkedToMayor~ ~TalkedToLloyd~ REPLACE_TEXTUALLY ~OR(4)[%tab% %lnl%%mnl%%wnl%]+Global("Acceptance","GLOBAL",1)~ ~OR(3)~ REPLACE_TEXTUALLY ~AreaCheck("AR1000")~ ~~ REPLACE_TEXTUALLY ~GlobalTimerExpired("MinscDelon","GLOBAL")~ ~False()~ APPEND_FILE ~bg2fixpack/baf/delon.baf~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES // Minsc shouldn't spawn Delon in random encounter areas COPY_EXISTING ~minsc.bcs~ ~override~ DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~!AreaCheck("AR1000")~ ~!AreaCheck("AR0041") !AreaCheck("AR0045") !AreaCheck("AR0046") !AreaCheck("AR1000")~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES ar0020 is the City Gates, and ar0043 and ar0044 aren't flagged as city areas. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.