Can't cast spells in the Govt district?
#1
Posted 30 November 2009 - 11:01 AM
Whenever one of my characters casts a mage spell in the govt district, or uses an item with a mage spell effect, that character immediately drops all their equipment on the ground and runs away, leaving the party. Even <CHARNAME>.
Doesn't happen in other districts eg Waukeen's Promenade.
I have no idea what's going on.
Here's my Weidu.log
http://www.shsforums...t...st&id=18249
Cheers
Vandervecken
#2
Posted 30 November 2009 - 11:28 AM
So I'm in Ch 6, late game.
Whenever one of my characters casts a mage spell in the govt district, or uses an item with a mage spell effect, that character immediately drops all their equipment on the ground and runs away, leaving the party. Even <CHARNAME>.
Doesn't happen in other districts eg Waukeen's Promenade.
I have no idea what's going on.
Here's my Weidu.log
http://www.shsforums...t...st&id=18249
Cheers
Vandervecken
I don't see anything in your log that I would expect to have anything like that sort of effect, but you do have an awful lot of mod components, many of which are trying to affect the same stuff, so there may have been a weird combination. It sounds vaguely cowled wizard related. Did you ever get yourself a wizard license?
Do you have AI running? Try turning it off and see if the same thing happens.
Edited by Arkenor, 30 November 2009 - 11:33 AM.
Ark's Ark Whois
Meddling in the affairs of modders. Modding in the affairs of genie.
#3
Posted 30 November 2009 - 11:34 AM
So I'm in Ch 6, late game.
Whenever one of my characters casts a mage spell in the govt district, or uses an item with a mage spell effect, that character immediately drops all their equipment on the ground and runs away, leaving the party. Even <CHARNAME>.
Doesn't happen in other districts eg Waukeen's Promenade.
I have no idea what's going on.
Here's my Weidu.log
http://www.shsforums...t...st&id=18249
Cheers
Vandervecken
I don't see anything in your log that I would expect to have anything like that sort of effect, but you do have an awful lot of mod components, many of which are trying to affect the same stuff, so there may have been a weird combination. It sounds vaguely cowled wizard related. Did you ever get yourself a wizard license? Did the cowlies turn up normally on casting a mage spell at any point in your game?
Do you have AI running? Try turning it off and see if the same thing happens.
Edit: I really didn't mean to accidentally quote myself instead of editing my first post...
Using near infinity or other tool, can you take a look at AR1000.bcs and post it here?
Edited by Arkenor, 30 November 2009 - 11:50 AM.
Ark's Ark Whois
Meddling in the affairs of modders. Modding in the affairs of genie.
#4
Posted 30 November 2009 - 11:59 AM
So I'm in Ch 6, late game.
Whenever one of my characters casts a mage spell in the govt district, or uses an item with a mage spell effect, that character immediately drops all their equipment on the ground and runs away, leaving the party. Even <CHARNAME>.
Doesn't happen in other districts eg Waukeen's Promenade.
I have no idea what's going on.
Here's my Weidu.log
http://www.shsforums...t...st&id=18249
Cheers
Vandervecken
I don't see anything in your log that I would expect to have anything like that sort of effect, but you do have an awful lot of mod components, many of which are trying to affect the same stuff, so there may have been a weird combination. It sounds vaguely cowled wizard related. Did you ever get yourself a wizard license? Did the cowlies turn up normally on casting a mage spell at any point in your game?
Do you have AI running? Try turning it off and see if the same thing happens.
Edit: I really didn't mean to accidentally quote myself instead of editing my first post...
Using near infinity or other tool, can you take a look at AR1000.bcs and post it here?
I don't use AI, I have had a wizard license for ages. They literally just immediately leave the party and run.
Attached is my AR1000.bcs
Attached Files
#5
Posted 30 November 2009 - 12:22 PM
[codebox]IF
SpellCast([PC],0)
!GlobalTimerNotExpired("SpellsBad","GLOBAL")
Global("BribedCowled","GLOBAL",0)
GlobalLT("CowledWarning","GLOBAL",7)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,338342))
CreateCreatureObjectDoor("COWENF2",LastTrigger,0,0,0)
SetGlobalTimer("SpellsBad","GLOBAL",ONE_HOUR)
END
IF
SpellCast([PC],0)
Global("BribedCowled","GLOBAL",0)
GlobalTimerNotExpired("SpellsBad","GLOBAL")
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,338343))
Wait(1)
END
[/codebox]
Whereas mine says:
[codebox]IF
SpellCast([PC],0)
!GlobalTimerNotExpired("SpellsBad","GLOBAL")
Global("BribedCowled","GLOBAL",0)
GlobalLT("CowledWarning","GLOBAL",7)
THEN
RESPONSE #100
CreateCreatureObjectDoor("COWENF2",LastTrigger,0,0,0) // Cowled Enforcer
SetGlobalTimer("SpellsBad","GLOBAL",ONE_HOUR)
END
IF
SpellCast([PC],0)
Global("BribedCowled","GLOBAL",0)
GlobalTimerNotExpired("SpellsBad","GLOBAL")
THEN
RESPONSE #100
Wait(1)
END[/codebox]
The difference between the two is "ActionOverride(Player1,DisplayString(Myself,338342))"
I'm not entirely sure what that line does. I'd have thought it would just display a string, but maybe it does something terrible. Try putting what I have in place of what you've got, and see if that makes a difference.
Edited by Arkenor, 30 November 2009 - 12:23 PM.
Ark's Ark Whois
Meddling in the affairs of modders. Modding in the affairs of genie.
#6
Posted 30 November 2009 - 12:30 PM
[codebox]IF
SpellCast([PC],0)
!GlobalTimerNotExpired("SpellsBad","GLOBAL")
Global("BribedCowled","GLOBAL",0)
GlobalLT("CowledWarning","GLOBAL",7)
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,338342))
CreateCreatureObjectDoor("COWENF2",LastTrigger,0,0,0)
SetGlobalTimer("SpellsBad","GLOBAL",ONE_HOUR)
END
IF
SpellCast([PC],0)
Global("BribedCowled","GLOBAL",0)
GlobalTimerNotExpired("SpellsBad","GLOBAL")
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,338343))
Wait(1)
END
[/codebox]
Whereas mine says:
[codebox]IF
SpellCast([PC],0)
!GlobalTimerNotExpired("SpellsBad","GLOBAL")
Global("BribedCowled","GLOBAL",0)
GlobalLT("CowledWarning","GLOBAL",7)
THEN
RESPONSE #100
CreateCreatureObjectDoor("COWENF2",LastTrigger,0,0,0) // Cowled Enforcer
SetGlobalTimer("SpellsBad","GLOBAL",ONE_HOUR)
END
IF
SpellCast([PC],0)
Global("BribedCowled","GLOBAL",0)
GlobalTimerNotExpired("SpellsBad","GLOBAL")
THEN
RESPONSE #100
Wait(1)
END[/codebox]
The difference between the two is "ActionOverride(Player1,DisplayString(Myself,338342))"
I'm not entirely sure what that line does. I'd have thought it would just display a string, but maybe it does something terrible. Try putting what I have in place of what you've got, and see if that makes a difference.[/quote]
Oh, sorry.
That is something from a previous problem, where we ran a stutter test. There is a line attached to every single if/then statement, that tells me when one has been triggered. I keep this set of BAFs so that if I have a major stutter issue, I can see which script is causing it. I just gave you AR1000 from that set of BAFs. In my real game, none of those DisplayString lines exist.
Ignore all those lines.
#7
Posted 30 November 2009 - 12:35 PM
There could be something bizarre hiding on a creature script in the zone, I guess. Not sure what else could trigger such a strange situation in only a single zone.
Edited by Arkenor, 30 November 2009 - 12:44 PM.
Ark's Ark Whois
Meddling in the affairs of modders. Modding in the affairs of genie.
#8
Posted 30 November 2009 - 01:26 PM
The Old Gold - v0.2 WIP (mod for BGT/BWP/BWS)
#9
Posted 30 November 2009 - 01:43 PM
Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle
#10
Posted 30 November 2009 - 01:52 PM
I might be mistaken but I'm rather sure that "AI lantern" turns off only override level script. Remember Charlotte NPC in old versions of SoS, and how much complain there were about her being suicidal even when "AI lantern" was off?Does it happen with the AI lantern off? If so, that should rule out character scripts.
Edited by Creepin, 30 November 2009 - 02:40 PM.
The Old Gold - v0.2 WIP (mod for BGT/BWP/BWS)
#11
Posted 30 November 2009 - 02:49 PM
#12
Posted 01 December 2009 - 01:04 AM
The stutter debugger should be effective at identifying the script, if it is a script that is causing this. Just look at what scripts are triggering when your guys start running for their lives.
When I put all the stutter scripts in, this doesn't happen.
When I take them out, it does.
I looked again at AR1000, but it has no SpellCast effects other than the cowled wizard ones above.
Also, it doesn't happen with Cleric casting.
I have no idea what's going on.
#13
Posted 01 December 2009 - 01:08 AM
The stutter debugger should be effective at identifying the script, if it is a script that is causing this. Just look at what scripts are triggering when your guys start running for their lives.
When I put all the stutter scripts in, this doesn't happen.
When I take them out, it does.
I looked again at AR1000, but it has no SpellCast effects other than the cowled wizard ones above.
Also, it doesn't happen with Cleric casting.
I have no idea what's going on.
If the stutter scripts are truly identical to your other ones, with the exception of the string displaying, then that makes absolutely no sense to me at all. You are completely certain that the stutter scripts were made from this exact same modded install?
Edited by Arkenor, 01 December 2009 - 01:09 AM.
Ark's Ark Whois
Meddling in the affairs of modders. Modding in the affairs of genie.
#14
Posted 01 December 2009 - 05:44 AM
Then it is a script that is causing it and you are overwriting it by using your other set of files. If you want to identify the script, you need to actually install the stutter debugger. Copying over scripts is no way of debugging stutter or anything else. Don't do that.When I put all the stutter scripts in, this doesn't happen.
When I take them out, it does.
I looked again at AR1000, but it has no SpellCast effects other than the cowled wizard ones above.
Also, it doesn't happen with Cleric casting.
I have no idea what's going on.
#15
Posted 01 December 2009 - 08:10 AM
Then it is a script that is causing it and you are overwriting it by using your other set of files. If you want to identify the script, you need to actually install the stutter debugger. Copying over scripts is no way of debugging stutter or anything else. Don't do that.When I put all the stutter scripts in, this doesn't happen.
When I take them out, it does.
I looked again at AR1000, but it has no SpellCast effects other than the cowled wizard ones above.
Also, it doesn't happen with Cleric casting.
I have no idea what's going on.
I found the offending script piece:
IF
Global("CbAngryVillagersRevolt","GLOBAL",4)
OR(17)
Exists("CBAVRCWa")
Exists("CBAVRCWb")
Exists("CBAVRCWc")
Exists("CBAVRVLa")
Exists("CBAVRVLb")
Exists("CBAVRVLc")
Exists("CBAVRVLd")
Exists("CBAVRVLe")
Exists("CBAVRVLf")
Exists("CBAVRSLa")
Exists("CBAVRSLb")
Exists("CBAVRSLc")
Exists("CBAVRSLd")
Exists("CBAVRSLe")
Exists("CBAVRSLf")
Exists("CBAVRSLg")
Exists("m05pcspy")
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,338339))
ActionOverride(LastTrigger,EscapeAreaDestroy(90))
Continue()
END
in AR1000.
It runs constantly, even though AFAIK I killed everyone involved in the villager revolt.
Set the variable in it to 5, and the problem goes away.
What the hell?
#16
Posted 01 December 2009 - 08:43 AM
Then it is a script that is causing it and you are overwriting it by using your other set of files. If you want to identify the script, you need to actually install the stutter debugger. Copying over scripts is no way of debugging stutter or anything else. Don't do that.When I put all the stutter scripts in, this doesn't happen.
When I take them out, it does.
I looked again at AR1000, but it has no SpellCast effects other than the cowled wizard ones above.
Also, it doesn't happen with Cleric casting.
I have no idea what's going on.
I found the offending script piece:
IF
Global("CbAngryVillagersRevolt","GLOBAL",4)
OR(17)
Exists("CBAVRCWa")
Exists("CBAVRCWb")
Exists("CBAVRCWc")
Exists("CBAVRVLa")
Exists("CBAVRVLb")
Exists("CBAVRVLc")
Exists("CBAVRVLd")
Exists("CBAVRVLe")
Exists("CBAVRVLf")
Exists("CBAVRSLa")
Exists("CBAVRSLb")
Exists("CBAVRSLc")
Exists("CBAVRSLd")
Exists("CBAVRSLe")
Exists("CBAVRSLf")
Exists("CBAVRSLg")
Exists("m05pcspy")
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,338339))
ActionOverride(LastTrigger,EscapeAreaDestroy(90))
Continue()
END
in AR1000.
It runs constantly, even though AFAIK I killed everyone involved in the villager revolt.
Set the variable in it to 5, and the problem goes away.
What the hell?
If I'm not mistaken, I detect the hand of Mr Ceeb Ison in all of this. Presumably that EscapeAreaDestroy is supposed to be acting on leftover Angry Villagers rather than you though.
However, I notice that is from your stutter detecting script version that you said doesn't suffer from the bug anyway rather than the one you're using in game that does suffer from the bug. Would you please stop using that, and let us see the actual one in your actual game that is causing the problem.
Edit: So when it causes you to destroy yourself for casting a spell, it is because it has decided that the character that just cast a spell is now the LastTrigger. I don't know enough about triggers, and specifically, how the LastTrigger is decided, to be able to debug this properly. The Spellcast references take place after this part of the script anyway, so I'm not sure how they're interacting.
Edited by Arkenor, 01 December 2009 - 09:04 AM.
Ark's Ark Whois
Meddling in the affairs of modders. Modding in the affairs of genie.
#17
Posted 01 December 2009 - 12:22 PM
Then it is a script that is causing it and you are overwriting it by using your other set of files. If you want to identify the script, you need to actually install the stutter debugger. Copying over scripts is no way of debugging stutter or anything else. Don't do that.When I put all the stutter scripts in, this doesn't happen.
When I take them out, it does.
I looked again at AR1000, but it has no SpellCast effects other than the cowled wizard ones above.
Also, it doesn't happen with Cleric casting.
I have no idea what's going on.
I found the offending script piece:
IF
Global("CbAngryVillagersRevolt","GLOBAL",4)
OR(17)
Exists("CBAVRCWa")
Exists("CBAVRCWb")
Exists("CBAVRCWc")
Exists("CBAVRVLa")
Exists("CBAVRVLb")
Exists("CBAVRVLc")
Exists("CBAVRVLd")
Exists("CBAVRVLe")
Exists("CBAVRVLf")
Exists("CBAVRSLa")
Exists("CBAVRSLb")
Exists("CBAVRSLc")
Exists("CBAVRSLd")
Exists("CBAVRSLe")
Exists("CBAVRSLf")
Exists("CBAVRSLg")
Exists("m05pcspy")
THEN
RESPONSE #100
ActionOverride(Player1,DisplayString(Myself,338339))
ActionOverride(LastTrigger,EscapeAreaDestroy(90))
Continue()
END
in AR1000.
It runs constantly, even though AFAIK I killed everyone involved in the villager revolt.
Set the variable in it to 5, and the problem goes away.
What the hell?
If I'm not mistaken, I detect the hand of Mr Ceeb Ison in all of this. Presumably that EscapeAreaDestroy is supposed to be acting on leftover Angry Villagers rather than you though.
However, I notice that is from your stutter detecting script version that you said doesn't suffer from the bug anyway rather than the one you're using in game that does suffer from the bug. Would you please stop using that, and let us see the actual one in your actual game that is causing the problem.
Edit: So when it causes you to destroy yourself for casting a spell, it is because it has decided that the character that just cast a spell is now the LastTrigger. I don't know enough about triggers, and specifically, how the LastTrigger is decided, to be able to debug this properly. The Spellcast references take place after this part of the script anyway, so I'm not sure how they're interacting.
I had made a mistake in copying the bcs files before, when I said it goes away with the stutter test. It does not. What I had done was copy the decompiled bcses, not the compiled ones, so I was wrong to make that assertion.
When using the stutter tested properly compiled BCSes, this section is constantly running. When I set the variable to 5, this section stops running.
While the section is running, spellcasting makes you run away. When the section stops running, the effect goes away.
So I'm fairly sure it's case closed on what section is causing the effect.
Now why it's being confused in this way, I don't know.
I tried killing everyone I could find in AR1000, but apparently, whoever survived the massacre still exists, because the IF clause is being fulfilled.
#18
Posted 01 December 2009 - 12:49 PM
I assume the SpellCast portions of the script are after the ActionOverride(LastTrigger,EscapeAreaDestroy(90)) portion in your script. It is in mine at any rate, but for all I know LastTrigger is preserved between iterations.
I've just looked through all the scripts and dialgoues, and I don't see anything that sets CbAngryVillagersRevolt to anything beyond 4, so that does seem to be it's end state. I think all we need is to insert a line somewhere that sets it to 5 when the quest is all done and dusted, and the NPCs cleaned up.
I'm not even sure why that chunk in the area code is needed anyway, as all the listed NPCs (apart from m05pcspy, and he has his own cleanup code) have this in their creature scripts anyway:
[codebox]IF
Global("CbAngryVillagersRevolt","GLOBAL",4)
THEN
RESPONSE #100
EscapeArea()
END[/codebox]
So *I think* you could just remove that entire chunk of added area code with no ill effects. I wonder if it is left over from a time before it was added to the creatures override scripts.
Not quite sure what m05pcspy is all about anyway. He seems to be all about removing all the items you'd normally steal from Drizzt, but he's not Malchor Harpell. No name, and completely invisible. Expects to die in AR2800. He doesn't even seem to be from Check the Bodies, so I'm not sure how he's gotten himself injected into the same bits of script.
Edited by Arkenor, 01 December 2009 - 01:41 PM.
Ark's Ark Whois
Meddling in the affairs of modders. Modding in the affairs of genie.
#19
Posted 01 December 2009 - 01:48 PM
Well yes... I'm not sure the intention of this script, but the problem is it doesn't set the variable it's checking to something else, so it will loop indefinitely. So it should do something like:I think all we need is to insert a line somewhere that sets it to 5 when the quest is all done and dusted, and the NPCs cleaned up.
Continue() is evil too, unless it's absolutely necessary (it usually isn't). In this case, it probably causes the entire script to loop rather than just the block and preceding portions. And it probably needs a check to make sure it doesn't fire for an NPC if the variable is 4 and none of those creatures exists.IF
Global("CbAngryVillagersRevolt","GLOBAL",4)
OR(17)
Exists("CBAVRCWa")
Exists("CBAVRCWb")
Exists("CBAVRCWc")
Exists("CBAVRVLa")
Exists("CBAVRVLb")
Exists("CBAVRVLc")
Exists("CBAVRVLd")
Exists("CBAVRVLe")
Exists("CBAVRVLf")
Exists("CBAVRSLa")
Exists("CBAVRSLb")
Exists("CBAVRSLc")
Exists("CBAVRSLd")
Exists("CBAVRSLe")
Exists("CBAVRSLf")
Exists("CBAVRSLg")
Exists("m05pcspy")
THEN
RESPONSE #100
SetGlobal("CbAngryVillagersRevolt","GLOBAL",5)
ActionOverride(Player1,DisplayString(Myself,338339))
ActionOverride(LastTrigger,EscapeAreaDestroy(90))Continue()
END
What is this from, Check the Bodies or something?
Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle
#20
Posted 01 December 2009 - 01:50 PM
Given that the creatures have cleanup in their own scripts though, might just be tidier to remove the entire chunk from ar1000.bcs
Edited by Arkenor, 01 December 2009 - 02:33 PM.
Ark's Ark Whois
Meddling in the affairs of modders. Modding in the affairs of genie.