Jump to content

Drow Duelmaster & Invisible Party Member Error


Recommended Posts

I just encountered this in my trip through Ust Natha.

 

The Drow (dialog file UDDROW16.DLG) responsible for duels between Laosenar, a cleric, and duels between magi, uses See() instead of Detect() in several party-selective transition triggers, so if any of the party is invisible but otherwise meets the criteria, the player won't see them in the response list. This is in the player's response triggers, not the drow's state triggers, so it doesn't make any sense.

 

The only mage in my party is Aerie, and because she was invisible when I talked to the drow about a mage battle, my only response option was "I have nobody at this time." or words to that effect.

 

Something to consider for your next fixpack update.

Link to comment

Hey, if we want party members to talk to eachother even when invisible, we probably should be changing the scripts

 

in myNPC.BCS

IF
InParty(Myself)
CombatCounter(0)
See(Player1)
InParty("minsc")
!StateCheck("minsc",CD_STATE_NOTVALID)
THEN RESPONSE #100
blah blah blah

 

to use Detect("minsc") ?

 

I say this because I just spent the summer rebuilding the triggers for BG1 NPC to strip out unnessesary entries in BCS, but also added the See() and CC(0) to many BCS and DLG entries to combat the problem of dialogues triggering while the party was mid-battle...

Link to comment

You're welcome, Cam.

 

I don't mind using Detect to make up for a character not being able to dispel invisibility at will. If it blocks banter and interjections, it should probably use a Detect rather than a See. Even if everyone in the party is invisible, they can still talk to each other. Go watch the Invisible Man (either version) to see that in action. :mad:

Link to comment

After thinking this over, I'm not sure I like the duelmaster change--Bioware was pretty consistent in using See() triggers, and if it's not causing other issues (i.e. Galvarey) then it really should be left alone.

 

I hate stuff like Galvarey as I'm forced to pick a least-worst solution. His dialogue only makes sense if he can see Jaheira, but if we make that a requirement then a party with an invisible Jaheira can sneak around the joint, cast buffs, lay traps, and other silliness.

 

Two changes here. The only dialogue trigger that can cause the stutter is the See("Jaheira") one; she has to be alive and in the party for the door to be open, and she can't be asleep or she couldn't have entered the area. Galvarey's script is also an issue--if the PC enters invisible, the See(Player1) is false and he won't try to initiate dialogue, letting the party run around instead of being confronted. Galvarey is given the much easier-to-trip initin15.bcs, which will cause him to initiate dialogue if any PC is detected within 15 feet of him, not just Player1:

 

// assign galvarey a script that won't cause him to stutter (see soa-dlg.d for dialogue trigger change)
COPY_EXISTING ~jagalvar.cre~ ~override~
 WRITE_ASCII 0x250 ~initin15~ // class script
 BUT_ONLY_IF_IT_CHANGES

 

Galvarey's dialogue trigger is altered to match this, ending any possibility of a stutter. soa-dlg.d:

// end Galvarey's stuttering if Jaheira is invisible (see jagalvar.cre)
REPLACE_STATE_TRIGGER JAGALVAR 0
~Detect([PC])
Range(LastSeenBy(Myself),15)
NumTimesTalkedTo(0)
Allegiance(Myself,NEUTRAL)~

 

For all intents and purposes this will behave exactly as it did before, with two exceptions: invisible Jaheira will no longer cause Galvarey to stutter and an invisible PC will no longer cause Galvarey to stand there forever like a big dope.

Link to comment

That makes sense for Galvarey. I was going for the quick fix just to get the game working and didn't give much thought to the circumstances. The drow on the other hand is going to keep the Detects I gave him because they are detections done by the player (indirectly by means of response triggers), not the drow, and the player ought to know at all times whether he has a mage in his party.

 

Sure, Bioware consistently used See(), even when Detect is sometimes better. They also consistently misspelled GLOBAL and consistently took shortcuts with the AD&D rules, and so on. I disagree with them on many things and freely modify their games to the extent I'm able, just to minimize the amount of sighing and head-shaking I have to do while playing. Thankfully NWN2 is almost out, so hopefully I'll be able to move on and relegate the finite Infinity Engine to history. (I'll probably end up having to make bugfixes for NWN2 as well, but at least it's a more capable engine.)

Link to comment

My concern here is that it makes the dialogue less than sensible. The PC knows who is in the party, sure, but if the duelmaster can not see whomever the PC is offering for the challenge I doubt he would agree to the duel--since we're not about to insert a lot 'but (s)he's really here' lines to the dialogue I think it makes more sense as it is.

Link to comment

If you want to be realistic about it (ignoring all the NPCs who unrealistically initiate dialog even though they can't see the party), you could have whoever Charname points out dispel any invisibility they may be under so as to present themselves. It'd be an alternative to having the mage talk to the drow to dispel the invisibility.

 

Perhaps Detect() by itself isn't all that sensible, but I feel the existing dialog is lacking and should be enhanced.

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...