Smoketest Posted October 2, 2006 Share Posted October 2, 2006 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
Smoketest Posted October 4, 2006 Author Share Posted October 4, 2006 On a related note, if Jaheira is invisible when we meet Galvary at the Harper's Hold, he will become stuck in a permanent loop of trying, but failing, to initiate dialog with her, thanks to using See() instead of Detect(). Link to comment
cmorgan Posted October 4, 2006 Share Posted October 4, 2006 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
CamDawg Posted October 4, 2006 Share Posted October 4, 2006 Thanks Smoketest, will fix. Hey, if we want party members to talk to eachother even when invisible, we probably should be changing the scripts Yeah, but invisible intra-party banter is fairly silly. Leave 'em as See(). Link to comment
Smoketest Posted October 4, 2006 Author Share Posted October 4, 2006 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. Link to comment
CamDawg Posted October 11, 2006 Share Posted October 11, 2006 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
Smoketest Posted October 11, 2006 Author Share Posted October 11, 2006 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
CamDawg Posted October 11, 2006 Share Posted October 11, 2006 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
Smoketest Posted October 11, 2006 Author Share Posted October 11, 2006 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
CamDawg Posted October 13, 2006 Share Posted October 13, 2006 Perhaps Detect() by itself isn't all that sensible, but I feel the existing dialog is lacking and should be enhanced. Fair enough, but both solutions you mention are beyond the scope of the Fixpack. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.