plainab Posted March 2, 2008 Share Posted March 2, 2008 I recently (2-3 days ago) downloaded and installed Gavin for Easytutu non-totsc. Anywho things are going great between Sasha and Gavin with the exception that on occasion he likes to stop what he's doing (no matter where or what's going on) and flirt/chat with the pc. Now Sasha is a pretty forgiving girl (totally unlike me that would be the girl part), but she just doesn't think that being surrounded by hobgoblins is a good place for Gavin to want to touch her face. Sure the game pauses while they talk, but it's the principle of the thing.... That said, is there anyway that some combat checks could be put in place so that the various talks don't fire in the middle of pitched battle? but perhaps after it is done when all the other checks are true.... Link to comment
berelinde Posted March 2, 2008 Share Posted March 2, 2008 Yeah, I'd call that bad timing! I use both CombatCounter(0) and !See([ENEMY]) in the script for all the flirts (just rechecked the script), so he shouldn't flirt if the party is engaged in melee, but there are limitations to those checks. See() has a range limit, which is actually less than the fog of war, so if enemies are outside that limit, then the check won't work. Sorry about that, but there really isn't a check I can use that would work better. !InMyArea([ENEMY]) might work, but then he wouldn't flirt at all until all spawn points were cleared, which is usually about three seconds before the party moves on to the next area. So, you might get the odd "combat flirt," but it shouldn't happen regularly. Some of the BioWare banters and lovetalks don't have those checks at all. When I was playing BG2, and when the party was just engaging in melee, I used to joke "Hey, look, Anomen! Vampires! Time for a lovetalk." The funniest was when I got the "These pathetic skirmishes of ours aren't worth the time I spend cleaning my weapons after the battle" banter while we were getting our butts kicked trying to rescue Amber. Everybody in the party, except Anomen, of course, was down to about 1/3 of their max hp. I was like "If you're bored, I could use some help over here!" Link to comment
Ankhesenpaaten Posted March 2, 2008 Share Posted March 2, 2008 Ha! I recall reading a post somewhere where some guy wound up with Aerie delivering her baby in a dragon's lair. I'd sure say THAT was bad timing! But I know I've gotten my fair share of flirts and LT's in some weird places. Link to comment
jastey Posted March 3, 2008 Share Posted March 3, 2008 Ha! I recall reading a post somewhere where some guy wound up with Aerie delivering her baby in a dragon's lair.But that has to happen when it has to happen.. Actually well thought from the BioWare group. But if all those enemy checks don't prevent flirts from firing I don't know what a modder can do. Link to comment
Kulyok Posted March 3, 2008 Share Posted March 3, 2008 From my experience, CombatCounter() and See() or Detect() should work like a clock. And judging by the fact it's the first report in the whole year Gavin's been active, they fail very and very rarely. I think. Link to comment
berelinde Posted March 3, 2008 Share Posted March 3, 2008 They fail all the time, actually, during ranged combat and when enemies go invisible whether because of a spell, an innate ability, stealth, or potion use. If the enemies are out of visual range, which in a dungeon is 30', despite what the fog of war shows, or if they're invisible (and the NPC has no way to detect invisible creatures), or if the NPC is blinded (mephits, anyone?), the checks will fail. Many players are used to it, though, or we'd probably all see it reported more often. It's a limitation of the game engine, though, and there really isn't much we can do about it besides use those CombatCounter() and !See()/!Detect() checks to make it as infrequent as possible. It's still useful for players to report it when it does happen, though, because it's an opportunity for the modder to go back and make sure all the checks are in place. Link to comment
Kulyok Posted March 3, 2008 Share Posted March 3, 2008 They fail all the time, actually, during ranged combat and when enemies go invisible whether because of a spell, an innate ability, stealth, or potion use. If the enemies are out of visual range, which in a dungeon is 30', despite what the fog of war shows, or if they're invisible (and the NPC has no way to detect invisible creatures), or if the NPC is blinded (mephits, anyone?), the checks will fail. That's why Detect() is King. It accounts for all these situations. Link to comment
berelinde Posted March 3, 2008 Share Posted March 3, 2008 Does !Detect() catch invisible/out of range creatures, even if the NPC is blinded? Neat trick. This is what the IESDP has to say about it: 0x4074 Detect(O:Object*) Returns true if the the specified object is detected by the active CRE in any way (hearing or sight) . I guess as long as the creature was making noise. Link to comment
cmorgan Posted March 3, 2008 Share Posted March 3, 2008 Do we think we need a mass replace of See() and !See() with Detect() and !Detect(), for BG1NPC? (and other stuff) There are few banters which actually requite the See() condition, and most of those are better served by InMy Area. But if Detect() is a looser restriction, it would allow more content to be available for the player. ActuallyInCombat() seems to fail if CombatCounter(0) fails, but that one is better left for expert advice by devSin, igi, Avenger, Nythrun, et al... Link to comment
berelinde Posted March 3, 2008 Share Posted March 3, 2008 See() and !See() are going to catch it 99% of the time. Don't forget that a mass replace of *anything* is bound to be disastrous. Also, I don't know how folks feel about having a companion start chatting away when the listener is supposed to be hidden, but I think it's really jarring. Here's Liiya, the superthief, hidden in shadows and starting to approach the doorway, when suddenly, Coran chimes in with a flirt. I'd clobber him on the ear. Using a See(Player1) check prevents that. Link to comment
Kulyok Posted March 4, 2008 Share Posted March 4, 2008 I think this is the point where I remind you about Mass Variable Replace and Branwen romance being inactive for nearly half a year now as a result(well, "inactive" part, not "half a year part"). Yes, you can tell I'm unhappy about that. Link to comment
aVENGER_(RR) Posted March 4, 2008 Share Posted March 4, 2008 Does !Detect() catch invisible/out of range creatures, even if the NPC is blinded? Actually, Detect() doesn't work if the PC is blinded. It also respects line of sight blockers such as walls and doors. Link to comment
cmorgan Posted March 4, 2008 Share Posted March 4, 2008 Thanks, aVENGER_(RR)! It sounds like the only "win" for using Detect() vs See() is for the possibility of invisible .cres not contributing. And InMyArea() works for that as a better "universal" call anyways. For Gavin, it sounds like your best bet is to simply leave the code as is. For BG1NPC it sounds like standardization efforts in-project with InMyArea() handle things as is, albeit not to some folk's tastes. On any joint work we do, berelinde, we need to remember to agree up front (I think more in terms of "allow the interjection to play under any possible ok circumstances", especially with people who use Thief Scripts which keep them hiding for 99% of the game...) but it sounds like Detect() might be something for us to play around with - as my standardization is InParty() InMyArea() !SC(x,CD_S_NV) countered OR(3) !InParty() !InMyArea() SC(x,CD_S_NV) and it sounds like yours is InParty() See() !SC(x,CD_S_NV) countered OR(3) !InParty() !See() SC(x,CD_S_NV) with an enemy check for CombatCounter(0) !See([ENEMY]) which we might move to !ActuallyInCombat() // might be ToB only CombatCounter(0) !Detect([ENEMY]) Link to comment
berelinde Posted March 4, 2008 Share Posted March 4, 2008 Interjections already use InMyArea(), not See(), for both Gavin and BG1 NPC, so nothing more to do there. The question isn't about interjections, it's about banters, lovetalks, etc. For joint projects, let's take it offline and talk about it when BG1 NPC is done. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.