I have Letter to Prelate Wessalen. I enter Order of the Radiant Heart (AR0903) and go to office.
Prelate Wessalen keeps spawning endlessly. I quickly talk to one of him and he takes the letter (and leaves?). Spawning continues and when i try to talk one of Prelete Wessalen he has nothing to say about Soubar letter until i find the right one and i get the answer to Soubar.
Then the spawning stops and i have many Prelate Wesselan that have nothing to say. Odd.
Edited by micbaldur, 04 February 2011 - 03:27 PM.
CHARNAMEs excellent adventures in the world of BWP expert-install here
Thanks to Leonardo Watson for making this possible
I have Letter to Prelate Wessalen. I enter Order of the Radiant Heart (AR0903) and go to office.
Prelate Wessalen keeps spawning endlessly. I quickly talk to one of him and he takes the letter (and leaves?). Spawning continues and when i try to talk one of Prelete Wessalen he has nothing to say about Soubar letter until i find the right one and i get the answer to Soubar.
Then the spawning stops and i have many Prelate Wesselan that have nothing to say. Odd.
Strange. I've looked at the script; there are two different 'prelate Wesselan"; when the first one is spawned, he should deactivate "hprelate", and that should prevent him from spawning again. Unless someone tampered with some death variables..
IF
Global("CbStopPrelate","GLOBAL",1)
IsActive("HPRELATE")
THEN
RESPONSE #100
ActionOverride("HPRELATE",Deactivate("HPRELATE"))
CreateCreature("CBFIXPRE",[348.587],10)
Continue()
END
IF
!Global("CbStopPrelate","GLOBAL",1)
!IsActive("HPRELATE")
Exists("CBFIXPRE")
Delay(3)
THEN
RESPONSE #100
ActionOverride("CBFIXPRE",DestroySelf())
ActionOverride("HPRELATE",Activate("HPRELATE"))
Continue()
END
Could you attach your area script, hprelate.cre and cbfixpre.cre?
Strange. I've looked at the script; there are two different 'prelate Wesselan"; when the first one is spawned, he should deactivate "hprelate", and that should prevent him from spawning again. Unless someone tampered with some death variables..
IF
Global("CbStopPrelate","GLOBAL",1)
IsActive("HPRELATE")
THEN
RESPONSE #100
ActionOverride("HPRELATE",Deactivate("HPRELATE"))
CreateCreature("CBFIXPRE",[348.587],10)
Continue()
END
IF
!Global("CbStopPrelate","GLOBAL",1)
!IsActive("HPRELATE")
Exists("CBFIXPRE")
Delay(3)
THEN
RESPONSE #100
ActionOverride("CBFIXPRE",DestroySelf())
ActionOverride("HPRELATE",Activate("HPRELATE"))
Continue()
END
Could you attach your area script, hprelate.cre and cbfixpre.cre?
Here they are. AR0903.BAF7.8K608 downloads CBFIXPRE.CRE1.13K502 downloads HPRELATE.CRE1.72K493 downloads Hope it helps. But i wonder do these NPC comments when enter area might cause trouble. For example Arktivisti Wandering Merchant goes berserk like this spawning endlessly sometimes when NPC comment or something like that happens appearing first when enter new area.
Well i playing right now and also watching this funny Mike Prolla drama. He He
CHARNAMEs excellent adventures in the world of BWP expert-install here
Thanks to Leonardo Watson for making this possible
If Global("CbStopPrelate","GLOBAL",1) and hprelate is active
SoS (through area script) spawns a new version of the prelate (cbfixpre) and deactivates hprelate (which should prevent the spawning to occur again).
but Check the Bodies gives hprelate a script (CBXTRSDS) which activates it under particular circumstances.
Spoiler
IF
Heard([ANYONE],402)
!IsActive(Myself)
THEN
RESPONSE #100
Activate(Myself)
DisplayStringHead(Myself,71560) // Thief! How dare you!!
ChangeClass(Myself,INNOCENT)
Shout(402)
ChangeEnemyAlly(Myself,ENEMY)
END
IF
!IsActive(Myself)
Allegiance(Myself,ENEMY)
THEN
RESPONSE #100
Activate(Myself)
DisplayStringHead(Myself,71560) // Thief! How dare you!!
ChangeClass(Myself,INNOCENT)
Shout(402)
ChangeEnemyAlly(Myself,ENEMY)
END
IF
!IsActive(Myself)
See([GOODCUTOFF])
Range(LastTrigger,15)
THEN
RESPONSE #50
Activate(Myself)
DisplayStringHead(Myself,71560) // Thief! How dare you!!
ChangeClass(Myself,INNOCENT)
Shout(402)
ChangeEnemyAlly(Myself,ENEMY)
RESPONSE #50
Activate(Myself)
DisplayStringHead(Myself,58585) // Thief!
ChangeClass(Myself,INNOCENT)
Shout(402)
ChangeEnemyAlly(Myself,ENEMY)
END
IF
OR(2)
Global("CbXTThiefStealsFromPaladins","GLOBAL",1)
Global("CbXTThiefStealsFromPaladins","GLOBAL",2)
IsActive(Myself)
AreaCheck("AR0903")
OR(2)
TimeGT(20)
TimeLT(5)
!Allegiance(Myself,ENEMY)
THEN
RESPONSE #100
Deactivate(Myself)
END
IF
OR(2)
Global("CbXTThiefStealsFromPaladins","GLOBAL",1)
Global("CbXTThiefStealsFromPaladins","GLOBAL",2)
!IsActive(Myself)
AreaCheck("AR0903")
TimeLT(DUSK_START)
TimeGT(4)
THEN
RESPONSE #100
Activate(Myself)
END
IF
GlobalGT("CbXTThiefStealsFromPaladins","GLOBAL",2)
AreaCheck("AR0903")
!IsActive(Myself)
THEN
RESPONSE #100
Activate(Myself)
END
Therefore, the area script deactivates hprelate and spawns CBFIXPRE, then HPRELATE re-activates himself, and the area script is triggered again, thus creating an endless spawning.
I don't know CtB so I can't be sure that the conditions for the re-activation of HPRELATE are met in your case, but this could explain the issue (especially the forelast block, which does not include shouts, anyone becoming enemy,...).
Possible fixes (if this is really the issue): as I don't know the mod, I don't know which of the two quests should 'dominate', so there are two possibilities:
1- Change the ctb script: instead of just re-activating, you should also Destroy cbfixpre and set CbStopPrelate to some strange number (this causes the SoS quest to be broken if you make the prelate angry due to the CtB quest)
2- add a condition to all blocks that trigger if he's not active:
!Global("CbStopPrelate","GLOBAL",1) would prevent him from re-activating till the letter-quest is finished, thus saving the SoS quest.
I don't know which would be more realistic (the first one, perhaps?); another option would be to remove cbfixpre and just add some more dialogues to hprelate, with the sos content
edit: I would not, on the other hand, use a "spawn-variable" (which is set to 1 when he's spawned, and is checked to be 0 in order to spawn) which would only prevent him from spawning more than once, but not really solve the problem; it would cause two prelates to exist together
If Global("CbStopPrelate","GLOBAL",1) and hprelate is active SoS (through area script) spawns a new version of the prelate (cbfixpre) and deactivates hprelate (which should prevent the spawning to occur again). but Check the Bodies gives hprelate a script (CBXTRSDS) which activates it under particular circumstances.
Spoiler
IF Heard([ANYONE],402) !IsActive(Myself) THEN RESPONSE #100 Activate(Myself) DisplayStringHead(Myself,71560) // Thief! How dare you!! ChangeClass(Myself,INNOCENT) Shout(402) ChangeEnemyAlly(Myself,ENEMY) END
IF !IsActive(Myself) Allegiance(Myself,ENEMY) THEN RESPONSE #100 Activate(Myself) DisplayStringHead(Myself,71560) // Thief! How dare you!! ChangeClass(Myself,INNOCENT) Shout(402) ChangeEnemyAlly(Myself,ENEMY) END
IF !IsActive(Myself) See([GOODCUTOFF]) Range(LastTrigger,15) THEN RESPONSE #50 Activate(Myself) DisplayStringHead(Myself,71560) // Thief! How dare you!! ChangeClass(Myself,INNOCENT) Shout(402) ChangeEnemyAlly(Myself,ENEMY) RESPONSE #50 Activate(Myself) DisplayStringHead(Myself,58585) // Thief! ChangeClass(Myself,INNOCENT) Shout(402) ChangeEnemyAlly(Myself,ENEMY) END
IF OR(2) Global("CbXTThiefStealsFromPaladins","GLOBAL",1) Global("CbXTThiefStealsFromPaladins","GLOBAL",2) IsActive(Myself) AreaCheck("AR0903") OR(2) TimeGT(20) TimeLT(5) !Allegiance(Myself,ENEMY) THEN RESPONSE #100 Deactivate(Myself) END
IF OR(2) Global("CbXTThiefStealsFromPaladins","GLOBAL",1) Global("CbXTThiefStealsFromPaladins","GLOBAL",2) !IsActive(Myself) AreaCheck("AR0903") TimeLT(DUSK_START) TimeGT(4) THEN RESPONSE #100 Activate(Myself) END
IF GlobalGT("CbXTThiefStealsFromPaladins","GLOBAL",2) AreaCheck("AR0903") !IsActive(Myself) THEN RESPONSE #100 Activate(Myself) END
Therefore, the area script deactivates hprelate and spawns CBFIXPRE, then HPRELATE re-activates himself, and the area script is triggered again, thus creating an endless spawning.
I don't know CtB so I can't be sure that the conditions for the re-activation of HPRELATE are met in your case, but this could explain the issue (especially the forelast block, which does not include shouts, anyone becoming enemy,...).
Possible fixes (if this is really the issue): as I don't know the mod, I don't know which of the two quests should 'dominate', so there are two possibilities: 1- Change the ctb script: instead of just re-activating, you should also Destroy cbfixpre and set CbStopPrelate to some strange number (this causes the SoS quest to be broken if you make the prelate angry due to the CtB quest) 2- add a condition to all blocks that trigger if he's not active: !Global("CbStopPrelate","GLOBAL",1) would prevent him from re-activating till the letter-quest is finished, thus saving the SoS quest. I don't know which would be more realistic (the first one, perhaps?); another option would be to remove cbfixpre and just add some more dialogues to hprelate, with the sos content
edit: I would not, on the other hand, use a "spawn-variable" (which is set to 1 when he's spawned, and is checked to be 0 in order to spawn) which would only prevent him from spawning more than once, but not really solve the problem; it would cause two prelates to exist together
Thank you.
Oh.. ah.. You want me too what?
I think that i let Hoppy to take care of this. I'm only a humble player no modder so that's all greek to me and i'm not from Greece.
Fortunately i'm rather late in stage in SoA. After Soubar i'm going to Suldanesselar and to Hell then TDD Main Quest and then probably ToB. So i don't probably need (any of those 13) Prelate Wessalen any more. Well at least i hope i don't know for sure.
CHARNAMEs excellent adventures in the world of BWP expert-install here
Thanks to Leonardo Watson for making this possible
I think that i let Hoppy to take care of this. I'm only a humble player no modder so that's all greek to me and i'm not from Greece.
Fortunately i'm rather late in stage in SoA. After Soubar i'm going to Suldanesselar and to Hell then TDD Main Quest and then probably ToB. So i don't probably need (any of those 13) Prelate Wessalen any more. Well at least i hope i don't know for sure.
yeah, that was a general hint for whoever will take care of this (Hoppy?)
@ micbaldur: could you please also attach hprelate's dialogue file? I think it's Hprelate.dlg Thanks
Perhaps, SoS could only patch the dialogue (using weights) instead of adding a new prelate.
Of course. Here's the file. HPRELATE.DLG31.15K518 downloads
thanks. Unfortunately, I can't see all modded string references could you please decompile it and post the .d file (just command line, from your game folder, weidu.exe hprelate.dlg )
the fix is almost ready, but I need to know something more about the prelate's dialogue
edit: no need; I've managed to get the fix working; it still needs testing, but I hope it can be useful for the next version. I'm not sure if it can break anything else, but it shouldn't: the weight does not interfere with more urgent states from other mods. I've added some extra-replies which allow to also ask for help for the solamnic knights/against Bodhi, instead of asking for the letter, even when the conditions for the SOS dialogue are met
1. Remove following lines from .tp2 EXTEND_TOP ~AR0903.BCS~ ~SOS/SNIP/tAR0903.BAF~
COPY + ~SoS/CRE/CBFIXPRE.CRE~ ~SOS-CRE~
2. Delete following files: SOS/SNIP/tAR0903.BAF SOS/CRE/cbfixpre.cre SOS/D/cbfixpre.d
(the first part should read the weight of the state which leads to the paladin stronghold; the SOS dialogue is then appended with that same weight, so that it triggers just 'after' that state) 4. Create a new DLG folder in the SOS folder and put attached file inside:
@micbaldur: do you still have a save just before that bug occurred? If you do, please tell me, because I could give you a fix to test
I'm have still multiple saves from Soubar before and after the Prelate Wessalen. Well not just before at Temple but not far away from it at Soubar.
That's great. Could you please keep that save? I'll prepare a way to install that fix on your game; when I post it, could you please test it (I'll tell you what I need when it's ready)? TIA
That's great. Could you please keep that save? I'll prepare a way to install that fix on your game; when I post it, could you please test it (I'll tell you what I need when it's ready)? TIA
Ok. I'll test it.
CHARNAMEs excellent adventures in the world of BWP expert-install here
Thanks to Leonardo Watson for making this possible
Thanks. Here it is; please install it, load that game you were talking about (before giving the letter to the prelate) and go there with the letter; when you enter, wait a few moments and count the prelates (there should be only one and he could be away at night; if there's none, try returning a bit later). If that's ok, talk to him and please screenshot the first dialog state, so that I can see the possible answers. Thank you very much for your cooperation
edit: I've corrected the fix; now it works. If you have SoS in other languages and you still have the SoS folder, you can edit the .tp2 file in the tu_wassalen folder (with any text editor such as wordpad) in order to have the fixed dialogue in your language: after USING ~, just replace tu_wassalen/ with the path to the SoS language directory (eg USING ~SOS/LANGUAGE/italian/cbfixpre.d~
Thanks. Here it is; please install it, load that game you were talking about (before giving the letter to the prelate) and go there with the letter; when you enter, wait a few moments and count the prelates (there should be only one and he could be away at night; if there's none, try returning a bit later). If that's ok, talk to him and please screenshot the first dialog state, so that I can see the possible answers. Thank you very much for your cooperation