Guest LaRock Posted March 19, 2008 Share Posted March 19, 2008 What does IsValidForPartyDialogue("someone") replace? If I put it as a banter condition (beside the one that will ensure that the banter doesn't repeat), is that enough, or do I still have to use See() and other conditions? Link to comment
berelinde Posted March 19, 2008 Share Posted March 19, 2008 It's supposed to mean what it says, that the creature running the script is available for party dialogue, i.e. not dead, stunned, silenced, petrified, etc., but it's faulty. It's better to use !StateCheck(DV,CD_STATE_NOTVALID) and then put the following in the tp2 /* STATE.IDS patching - borrowed from CamDawg */ /* adds custom IsValidForPartyDialogue state */ APPEND ~STATE.IDS~ ~0x80101FEF CD_STATE_NOTVALID~ UNLESS ~CD_STATE_NOTVALID~ Link to comment
Guest LaRock Posted March 19, 2008 Share Posted March 19, 2008 Thank you, that really works Link to comment
jastey Posted March 20, 2008 Share Posted March 20, 2008 I would recommend adding "InMyArea()" to these checks for inner party banters, as two NPCs trying to communicate while in different areas might brake the game. InParty("npc") is also very helpful for joinable NPCs. For Interjections, I use the triple ~InMyArea("npc") InParty("npc") !StateCheck("npc",CD_STATE_NOTVALID)~ with "npc" being the death variable of the NPC that should start talking. Link to comment
Kulyok Posted March 20, 2008 Share Posted March 20, 2008 I'm SO pining for InMyArea() for IWD... Link to comment
WizWom Posted March 21, 2008 Share Posted March 21, 2008 See("target") makes more sense than InMyArea("target") - it avoids the whole "conversation from across the map" trouble. Link to comment
jastey Posted March 21, 2008 Share Posted March 21, 2008 That's right, but "See("target")" fails if the NPC in question wears something that makes him invisible, or if he is hidden behind a wall (e.g. at a doorway), which doesn't mean he could not participate in a conversation. Link to comment
Kulyok Posted March 21, 2008 Share Posted March 21, 2008 See() and Detect() are just way too narrow. If only there was a similar command, but, say, with Range(90)... (Range() doesn't work with these numbers currently)... // dreams Link to comment
Bardess Posted March 21, 2008 Share Posted March 21, 2008 I'd rather choose See(), as it's how the OC solves it (if I'm not mistaken). It doesn't seem like the best time for a talk when one of the guys supposed to participate is trying to hide. Link to comment
jastey Posted March 21, 2008 Share Posted March 21, 2008 It doesn't seem like the best time for a talk when one of the guys supposed to participate is trying to hide. Yes, berelinde stated that recently and I agree fully (actually, I never thought of it before). I had more the "Kelsey and Imoen don't have any love talks in my ToB" bug reports with Imoen wearing the cloak of invisibility (or a similar item) in my mind. Link to comment
Bardess Posted March 23, 2008 Share Posted March 23, 2008 Aww. Then should we warn players against this, or make banters work from across the map? Link to comment
berelinde Posted March 23, 2008 Share Posted March 23, 2008 I tend to use See() for banters, because I don't want my guys chatting up invisible characters, and InMyArea() for interjections. I don't care if the NPC is on the other side of the map for an interjection, because often, the quests depend on the interjections firing. But yeah, if Imoen's wearing an invisibility cloak, Gavin should leave her the hells alone. There's nothing he can have to say to her that can't wait until she takes it off. Link to comment
jastey Posted March 23, 2008 Share Posted March 23, 2008 Aww. Then should we warn players against this, or make banters work from across the map? It depends on what you have in mind. I think berelinde's approach is a good one, and a hint in the readme doesn't hurt, either.Up to now, I always used the "InMyArea()", also for dialogues, but I am thinking to change my mind, because of what berelinde said. (That's what you get from always playing a fighter who romances a paladin / a cleric. Who cares about hiding in shadows anyway ) Link to comment
Bardess Posted March 23, 2008 Share Posted March 23, 2008 I better use InMyArea() for interjections, too, lest I bet a half of them won't trigger. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.