Main character walks 2 steps then turns around, keeps repeating (BUG)
Albatr055
Member Posts: 28
Does anyone know how to solve this bug?
0
Comments
How does one fix the bug? Well, to start with, finding out what script is at fault and why the action can't just be completed is a big help. To which end you have provided absolutely no information.
I think we can safely say that it's not the script at fault here; as it contains no commands whatsoever, it's not telling your character to do anything.
The information that would help in this situation involves the context - where you were and what else was going on when this happened. And that's where I bow out, as I don't have SoD myself.
There's a common variant of stutter bugs based on dialogue - a character has something to say, only they say the wrong thing which doesn't close out the condition that set it up. For example, here's one I just ran into in the main BGEE campaign (2.6, no relevant mods):
Setup: Sneak up behind Mulahey and backstab him, dealing over half his hit points in one blow. Result: Mulahey talks, giving his initial lines. I bluff him. And then he repeats that line about Tazok being unfair over and over... The dialogue in that chunk of the combat log takes place over a round. Maybe less.
How did I get out of this one? My character hid again so he couldn't initiate dialogue, and stabbed him for the rest of his life total. If he's dead, he can't say anything.
The exact details here (not for everybody; script minutia):
Mulahey then talks to a PC again when his health drops below half; a nonzero value for the "TalkedToMulahey" variable shuts this one off.
Then, if CDMulahey is 1 or 4 and he's attacked, he initiates dialogue and increments CDMulahey. If CDMulahey is 2 or 5, he just initiates dialogue.
We also have to look at the dialogue and other scripts in the area to see how these variables work. Here's the dialogue:
- His initial conversation (highest priority other than charmed dialogue, CDMulahey = 0) sets CDMulahey to 1 if you bluff him or 3 if you don't. In the latter case, he goes hostile and calls minions.
- If CDMulahey is 1, he says that "Tazok is unfair" line and goes neutral.
- If CDMulahey is 2, he calls for minions and goes hostile. CDMulahey becomes 3.
- If CDMulahey is 4, he thanks you for your mercy and goes neutral.
- If CDMulahey is 5, he goes hostile again and calls for more minions. CDMulahey becomes 6.
- If none of the above apply and he's below half health (lowest priority dialogue), he offers surrender. This sets the TalkedToMulahey variable to 1. If you accept the surrender, CDMulahey becomes 4 and he goes neutral. If you don't, CDMulahey becomes 6.
Next, scripts. There's only one other script that matters for Mulahey's behavior, and that's the script on the chest. If CDMulahey is 1 or 4, add 1 to it. Which makes him talk to you if he's still alive, forcing the chest closed.
So, what happened here? I knocked Mulahey down to below half health and became visible, causing him to have two reasons to talk. That's fine; he talks. And the highest priority dialogue that applies is his opener. I bluff him, and CDMulahey becomes 1.
But now, we're in a state that wasn't planned for; CDMulahey is 1, a "not hostile" value. And he's below half health, so he wants to initiate dialogue. He does ... and the dialogue that comes out is "Tazok is unfair". Which doesn't set "TalkedToMulahey", so he still wants to talk. The script repeats.
Normally, the "Tazok is unfair" line should only come up if you initiate conversation with him..
Having looked into this one, I can see how to fix it. The command that makes him talk to you when under half health should also set CDMulahey to 3, instead of assuming that it's there already. No more repeats that way.