Jump to content

Scripting Bugs


Guest morpheus562

Recommended Posts

Guest morpheus562

Please feel free to put any scripting issues in here. I'm happy to look into any that people feel need to be addressed. @CamDawg please feel free to delete if you prefer a separate thread for each on.

Link to comment
Guest morpheus562

Ursa the Cavebear - It always irked me the Xvarts in the Xvart Village referred to Ursa as their "Protector", but the first thing Ursa does is attack them. I recommend that Ursa, when spawned, attacks the party instead of the Xvarts (s)he is supposed to be protecting.

Link to comment
1 hour ago, morpheus562 said:

Ursa the Cavebear - It always irked me the Xvarts in the Xvart Village referred to Ursa as their "Protector", but the first thing Ursa does is attack them. I recommend that Ursa, when spawned, attacks the party instead of the Xvarts (s)he is supposed to be protecting.

That's a difficult one. Is it a bug, was the developper intent that Ursa would really protect the Xvarts? One could argue that. But Ursa the Protector turning against the Xvarts is like... like... a "legacy fun fact". I think changing that and calling it a fix would stirr riots.

Link to comment

I can't recall ever seeing this happen.  Guess I slaughter everything in sight too quickly for it to matter...  After killing every monster, bandit, thug, and animal on the Sword Coast, I began to wonder who the real monster is...

Link to comment
6 hours ago, morpheus562 said:

Forgive me for quite literally poking the bear on this one.

hehe

 

5 hours ago, Sam. said:

After killing every monster, bandit, thug, and animal on the Sword Coast, I began to wonder who the real monster is...

Father would be proud!

Link to comment

Well, how about an actual bug: how to get Mulahey stuttering.

The way to trigger it is very simple: deal more than half his health (24-45) in damage before he gets a chance to speak to you. A sufficiently strong backstab can do this pretty reliably. Then bluff him with the "Tazok is ... is most displeased with you" line. He will then talk to you repeatedly without going hostile. Attacking him won't interrupt this; only opening the chest or killing him ends it.

The logic involved is mostly in MULAHEY.BCS and MULAHE.DLG. Mulahey speaks to you under four conditions, in order of priority:

"CDMulahey" (local to the area) is 0.

His HP are under half and "TalkedToMulahey" (global) is 0.

He's attacked while neutral and "CDMulahey" is 1 or 4. This one also increments "CDMulahey" by 1.

He's neutral, and either he's attacked or "CDMulahey" is 2 or 5.

Then there's his dialogue. He has seven starting points, in order of priority:

Charmed: "I am your humble servant..." No variables changed.

"CDMulahey" is 0: "Tazok must have dispatched you...". You can respond by bluffing him, or by starting a fight. The former sets "CDMulahey" to 1 and turns him neutral, while the latter sets it to 3, turns him hostile, and summons minions.

"CDMulahey" is 2: "Fools, you'll never have the chance to take anything! ..." Sets "CDMulahey" to 3, turns him hostile, and summons minions.

"CDMulahey" is 5: "I'll have your skulls for coming here! ..." Sets "CDMulahey" to 6, turns him hostile, and summons minions.

"CDMulahey" is 1: "Tazok is unfair. ..." Sets "CDMulahey" to 1 and turns him neutral.

"CDMulahey" is 4: "I thank thee for thy mercy! ..." Sets "CDMulahey" to 4 and turns him neutral.

His HP are under half: "I yield, I yield to thee! ..." You can respond by accepting or refusing his surrender. The former sets "CDMulahey" to 4 and turns him neutral, the latter sets "CDMulahey" to 6 and turns him hostile. Either way, it sets "TalkedToMulahey" to 1.

The last bit of the logic is in the chest script. If anyone opens it and "CDMulahey" is 1 or 4, the variable increments by 1.

So, what's going on with this stutter? If you knock him down under half health immediately, he follows up with his starting lines. Then after that, if you bluff him, CDMulahey is 1 and he's under half HP - which is a state the script never planned for. The latter condition forces him to talk to you, but the former means that he gives his "Tazok is unfair" line instead of "I yield". So he talks, no variables update, and he talks again repeatedly. Attacking him further at this point won't change that the half-health dialogue condition is the highest priority.

Actually, now that I look at it again, you should be able to bring him down to below half health with a second hit after the initial bluff.

I think the cleanest fix is to add a condition to the half-health dialogue so he only forces it if "CDMulahey" is 3. It's still a little weird; if you drop him to half-health before the first phase of the fight properly begins, he'll start that fight and then immediately surrender. But you don't get the stutter or the completely free win.

Link to comment

The default scripts do not take Invisibility into account. At least for thief the script should be:

- If visible, attack normally,

- If invisible, do not attack

The default script in Icewind Dale works properly ('iwdpregen' I believe). I suggest modifying the default BG scripts so that characters do not attack while invisible (or Turning Undead). Or at least include the default script from Icewind Dale with this fixpack

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...