Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Neverwinter Nights: Enhanced Edition has been released! Visit nwn.beamdog.com to make an order. NWN:EE FAQ is available.
Soundtracks for BG:EE, SoD, BG2:EE, IWD:EE, PST:EE are now available in the Beamdog store.
Attention, new and old users! Please read the new rules of conduct for the forums, and we hope you enjoy your stay!

Troubleshooting: Spike Trap in bd7230 (spoilers)

In the old Temple of Bhaal, there are three crusaders trapped in cages. A lever on the left can be clicked to kill them by spike traps, which the game considers to be evil (paladins and rangers fall).

If I click the lever with my full party selected, the following happens: the whole group walks towards the lever shoving each other out of the way to get to the marked spot in front of it, the first floating text about what the lever will do appears (~This switch seems tied to the spike trap beneath the cage. Flipping the switch would kill anyone in the cage.~)
Then, after a short timer, the screen shakes a little, the spikes come out, the crusaders die, and the text says: ~You flip the switch and spikes shoot up from the floor.~

Problem: I did not click on the lever again. I clicked it once.

I think this is because the script uses "WalkedToTrigger([ANYONE])" instead of "Clicked([ANYONE])". Since I usually move and interact with my full party selected, I think the script counts this as "six clicks in a row", at least that's the only explanation I have for this behavior.

If I click once with only one party member selected, this does not happen. Two or three might not suffice. But sometimes, three are enough, depending on where they were and from which side they walk to the lever. Using the whole party triggers the spikes every time after one single click.

Interacting with the surrounding while the whole group is selected is normal and totally common in BG(II), be it for talking to people, opening a chest, or picking something from the floor - the one first in line performs the action. It never was counted as "all try to perfom the action one after the other".
I think this needs to be changed.

Redmine?

JuliusBorisov

Comments

  • Humanoid_TaifunHumanoid_Taifun Member Posts: 963
    How the hell is killing them even evil, if the only alternative is having them join back up with the enemy?

  • jasteyjastey Member Posts: 1,027
    Killing them with the spike trap while they are inprisoned is what is punished, not killing them per se.

  • RaduzielRaduziel Member Posts: 4,280
    @jastey Do you know the variable (and its valuable) that gets set when you use the trap to kill them?

    Thanks!

  • jasteyjastey Member Posts: 1,027
    There is no variable in the game, you need to patch the script to set a custom one. I already included it into the 3rd Tutorial locally. ;)

    Raduziel
  • Humanoid_TaifunHumanoid_Taifun Member Posts: 963
    @jastey That does not actually explain anything. It is instant death.

  • jasteyjastey Member Posts: 1,027
    @Humanoid_Taifun It is quite perfidious though, as they are unarmed and imprisoned and see you walking to that lever... What I do agree upon is that silently letting a paladin or ranger fall after doing it plus no NPC reacting to it, while slowly stabbing them to death with a dagger doesn't have any consequences seems a bit unbalanced in terms of game recognision. I do know enough about the game's (engine's) restrictions to know that a consistent feedback of PC's (players') deeds is impossible, though. (Still, I'd expect the "PC fell" thing to lead to a broader variety of reactions, but that's another thing.)

    My original question still stands. Do we all agree that this behavior of spikes being activated after the first click is a bug?...

  • JuliusBorisovJuliusBorisov Member, Administrator, Moderator, Developer Posts: 17,720
  • RaduzielRaduziel Member Posts: 4,280
    edited April 29
    jastey wrote: »
    There is no variable in the game, you need to patch the script to set a custom one. I already included it into the 3rd Tutorial locally. ;)

    I think I was able to do a proper reaction for this situation without the use of a variable in the switch using the Override file and just checking for Dead("DwarfPrisonerDV") and a local variable to avoid an infinite looping.

    Didn't test yet, though.

    Oh, and I agree with you that the current behavior is, if not a bug, a suboptimal approach.

  • jasteyjastey Member Posts: 1,027
    There is still the chance that it's a glitch on my computer, though. I have a savegame if anyone is interested.

    @Raduziel Only checking for the prisoner dead doesn't necessarily mean the PC used the spike trap to kill him, though. Checking for the trap sprung (there is a variable) also doesn't mean that it was activated to kill the prisoners.

  • RaduzielRaduziel Member Posts: 4,280
    @jastey I know, but to me it doesn't matter if the dwarf was killed by slow stabs or the spike trap.

    Actually, I need to add a check in case the player decides to attack the prisoner or my NPC will remain idle until he is killed and just then react - what makes no sense at all.

  • Humanoid_TaifunHumanoid_Taifun Member Posts: 963
    "Perfidious" is not the term I would use for an openly hostile act.

    Yes, they are unarmed and imprisoned, but real warfare is about attacking the enemy where they are weak and vulnerable, and avoiding them where they are strong. I can understand that paladins should not be dishonorable, but Stalker is a ranger kit and can do backstabs. Do you consider stalkers to be self-contradictory?

    I will say that I felt really bad about killing them. What I really wanted to do was to either send them back to our own camp or else have them promise to not rejoin the crusade (even if they were lying). There was no such option. And so I activated the trap because it was the fastest way of ending their suffering.

  • ArdanisArdanis Member, Developer Posts: 1,451
    jastey wrote: »
    I think this is because the script uses "WalkedToTrigger([ANYONE])" instead of "Clicked([ANYONE])". Since I usually move and interact with my full party selected, I think the script counts this as "six clicks in a row", at least that's the only explanation I have for this behavior.
    I think you think correctly... A bug.

    Seems like WalkedToTrigger() persists until it is checked, which I can't say surprises me too much. I'm less certain if nothing was changed in characters bumping each other, though.

Sign In or Register to comment.