Jump to content

Imoen bug


MatthewH86

Recommended Posts

Posted

Depending on the version you are using, this probably means you have a very, very low reputation; what version and what mods, please?

Posted

If her rep is that low, she should offer to leave the party on her own, not just if PID is selected. Is there a script block setting a variable but not starting a dialogue?

Posted

You probably have Virtue installed. It is not functional for TUTU/BGT in BG1. Uninstallng it should fix the problem.

Posted

Hello everyone. New to the forum and this great mod.

 

I'm having the exact same problem as Matthew.

 

When I talk to Imoen she tells me that I've changed a lot since Candlekeep etc.. Then she approaches me and tells me the same thing again. Then leaves.

 

My party members is Mundath (Lawful Evil Monk), Kaigan, Shar-Teel, Viconia, Edwin and Imoen. Party reputation is 7, is this really to low?

 

I don't have the Virtue mod.

 

Thanks in advance,

 

Bockhorn

Posted

Welcome to G3 and BG1 NPC forum!

 

I am not sure - I do not have the version at hand, but it might be that your reputation is low, yes. (Though 7 is not so low indeed - it might be a bug on our end).

 

We'll look into it. Meanwhile, in your current game(so you don't have to uninstall anything), I'd install BG2Tweaks: "NPCs complain about the reputation, but never leave" component - I think it might fix the problem. Or you could indeed either raise your reputation or replace Imoen with Safana(she has some amazing dialogues, and she might well fit into your evil party, too).

Posted

I donated some money to the temple and with the better reputation (11) the problem seems to be solved. I just have to remember to don't talk to her when I have a low reputation shouldn't be that hard.

Posted

I don't see anything in the mod(Imoen's scripts and dialogues) indicating that Imoen should leave if her rep drops too low.

 

It might be the original game, of course. Maybe somebody else will know more. You do have TUTU installed, right? That is, some mods like Imoen Romance or the like cannot interfere?

Posted

We actually don't modify the BreakingPoint() or morale value (default NPC) of Imoen; you might want to check Bioware, PocketPlaneGroup, and SpellholdStudios for back posts about this kind of difficulty.

 

But, just in case, let's take a look, in case a modder out there can spot something we have missed - never hurts to be too careful!

 

We do modify the "talking about reputation" thing, where the characters make unprompted audio coments (no dialogue box). This has no effect at all on dialogue: the "neutral NPCs talk nice if you are at middle reputation" is CamDawg's and Domi's (and one other modder, I thought Louis, I believe, who suggested this idea by editing his/her table manually - I need to go find that post!)

  /* Cam's 2DA Neutral/Happy interjection restoration */
 COPY_EXISTING ~happy.2da~ ~override~
FOR (row = 8; row < 14; row = row + 1) BEGIN
  SET_2DA_ENTRY "%row%" 2 4 ~80~
END
 BUT_ONLY_IF_IT_CHANGES

It operates by changing the value used to trigger the midrange talks.

 

The only default messing with the scripting of leaving and joining (and only on Tutu ) is due to roll back this next version, unless we can confirm it really does what we intended (so far in testing, I have not been able to find a difference between patched and unpatched code, so I suspect we have a cosmetic effect here but no real effect) We do not modify BreakingPoint(); we split the actions of the script between .BCS and .DLG to supposedly decrease the likeleyhood of something hanging.

 

The original problem was that an NPC would want to leave the party, but the trigger would hang up somehow. Then when one of our quests fired, instead of a response to a quest, the NPC would pull on the BreakingPoint() dialogue, and then the player would report a "bug" (from their point of view, it was an interruption of the quest, not the NPC finally doing what they were supposed to do two game-time hours ago).

 

This is the triggering condition, on DPLAYER2.BCS, EasyTutu

IF
BreakingPoint()
THEN
RESPONSE #100
	SetGlobal("IHATEYOUALL","LOCALS",1)
	SetLeavePartyDialogFile()
	Wait(1)
	StartDialogueNoSet(Player1)
END

IF
Global("IHATEYOUALL","LOCALS",1)
InParty(Myself)
THEN
RESPONSE #100
	SetLeavePartyDialogFile()
	Wait(1)
	StartDialogueNoSet(Player1)
	LeaveParty()
END

to

 

It is supposed to happen immediately on BreakingPoint(), which in turn is triggered by (as far as we can tell) just like happiness... reputation *change*. It isn't evaluated until you add or subtract from reputation, at which point it crosschecks the 2da(?? someone probably can explain this better??) and is supposed to have the NPC actually leave the party.

 

When they leave the party, they trigger thier Post Dialogue file:

// creator  : DLTCEP_enhanced_WeiDU (version 199)
// argument : _IMOENP.DLG
// game	 : .
// source   : ./override/_IMOENP.DLG
// dialog   : ./DIALOG.TLK
// dialogF  : (none)

BEGIN ~_IMOENP~

IF ~Global("KickedOut","LOCALS",1)
~ THEN BEGIN 0 // from:
 SAY #87117 /* ~You old rumjake fool!  I knew you'd be back!  Let's get back to traveling the good road, eh?~ */
 IF ~~ THEN REPLY #87118 /* ~Sorry kiddo, but I don't need your company just yet.~ */ GOTO 1
 IF ~~ THEN REPLY #87119 /* ~Sorry to have kept you waiting.  Lets get going.~ */ GOTO 2
END

IF ~~ THEN BEGIN 1 // from: 0.0
 SAY #87120 /* ~Oh fine!  I'll just pester about around here until you realize you can't live without little Imoen.  You know you will.~ */
 IF ~~ THEN EXIT
END

IF ~~ THEN BEGIN 2 // from: 0.1
 SAY #87121 /* ~You bet!  We'll nick ourselves a whole purse o' fun before the night is through!~ */
 IF ~~ THEN DO ~JoinParty()
SetGlobal("KickedOut","LOCALS",0)
~ EXIT
END

IF ~HappinessLT(Myself,0)
~ THEN BEGIN 3 // from:
 SAY #87122 /* ~Well good!  You've changed since we were friends anyway.  Not nearly as much fun now.  Should have stayed in Candlekeep, instead of wasting time with you gully pennies.~ */
 IF ~~ THEN DO ~SetGlobal("IHATEYOUALL","LOCALS",0)
ChangeAIScript("",DEFAULT)
LeaveParty()
EscapeArea()
~ EXIT
END

IF ~Global("KickedOut","LOCALS",0)
~ THEN BEGIN 4 // from:
 SAY #87123 /* ~Just... just like that?  But we are friends and everything!  Been friends for years!  I guess... I guess I'll just wait 'till you need me again, because you will!  Just wait and see!~ */
 IF ~~ THEN DO ~SetGlobal("KickedOut","LOCALS",1)
~ EXIT
END

 

HappinessLT(Myself,0) is what is triggering Imoen taking off...

 

If you add in the "NPCs can Wait at an Inn", you get more options on what can happen, but we use

 

ADD_TRANS_TRIGGER _IMOENP 4 ~False()~

 

and then add a set of versions that will be evaluated only if Global("KickedOut","LOCALS",0) is true. So it won't stop her leaving in a huff, if her happiness is less than 0.

 

I will go back through the research, but this is my understanding at this point!

Posted
HappinessLT(Myself,0) is what is triggering Imoen taking off...

 

But that's really high, isn't it? I mean, normally it's HappinessLT(Myself,-295) or -299, or some such for most NPCs. As far as I remember, 0 means immediate annoyance(8- for Imoen and other good characters). Shouldn't it be fixed? Or is Imoen this disloyal and shallow?

Posted

I do have Tutu and a lot of modifications. Probably one of them who is the bad guy. I'll post the mods I'm using just in case it might be of some help.

 

// Log of Currently Installed WeiDU Mods

// The top of the file is the 'oldest' mod

// ~TP2_File~ #language_number #component_number // [subcomponent Name -> ] Component Name

~EASYTUTUDEGREENIFIER.TP2~ #0 #0 // EasyTutu Degreenifier

~SETUP-TUTUFIX.TP2~ #0 #2 // Restored BG1 Loadscreens

~SETUP-TUTUFIX.TP2~ #0 #5 // BG1 Summoning Spells

~SETUP-TUTUFIX.TP2~ #0 #8 // Hooded unarmoured avatars and hooded bards

~SETUP-EASYTUTUHOTFIXES.TP2~ #0 #0 // EasyTutu Hotfixes: 05 February 2007 Release

~SETUP-SCS.TP2~ #0 #7 // Allow player to choose NPC proficiencies and skills

~SETUP-SCS.TP2~ #0 #8 // Allow NPC pairs to separate

~SETUP-SCS.TP2~ #0 #9 // NPCs go to inns

~SETUP-SCS.TP2~ #0 #12 // Move NPCs to more convenient locations

~SETUP-SCS.TP2~ #0 #21 // Smarter general AI

~SETUP-SCS.TP2~ #0 #22 // Better calls for help

~SETUP-SCS.TP2~ #0 #24 // Improved deployment for parties of assassins

~SETUP-SCS.TP2~ #0 #28 // Smarter mages

~SETUP-SCS.TP2~ #0 #32 // Smarter priests

~SETUP-SCS.TP2~ #0 #34 // Smarter deployment

~SETUP-SCS.TP2~ #0 #35 // Harder giant and phase spiders

~SETUP-SCS.TP2~ #0 #36 // Dark Side-based kobold upgrade

~SETUP-SCS.TP2~ #0 #37 // Smarter sirines and dryads

~SETUP-SCS.TP2~ #0 #38 // Slightly harder carrion crawlers

~SETUP-SCS.TP2~ #0 #39 // Smarter basilisks

~SETUP-SCS.TP2~ #0 #40 // Improved doppelgangers

~SETUP-SCS.TP2~ #0 #41 // Tougher Black Talons and Iron Throne guards

~SETUP-SCS.TP2~ #0 #42 // Relocated bounty hunters

~SETUP-SCS.TP2~ #0 #43 // Improved Ulcaster

~SETUP-SCS.TP2~ #0 #44 // Improved Balduran's Isle

~SETUP-SCS.TP2~ #0 #45 // Improved Durlag's Tower

~SETUP-SCS.TP2~ #0 #46 // Improved Demon Cultists

~SETUP-SCS.TP2~ #0 #47 // Improved miscellaneous encounters

~SETUP-SCS.TP2~ #0 #48 // Tougher chapter-two end battle

~SETUP-SCS.TP2~ #0 #49 // Tougher chapter-three end battle

~SETUP-SCS.TP2~ #0 #50 // Tougher chapter-four end battle

~SETUP-SCS.TP2~ #0 #51 // Tougher chapter-five end battle

~SETUP-SCS.TP2~ #0 #52 // Tougher chapter-six end battle

~SETUP-SCS.TP2~ #0 #53 // Improved final battle

~SETUP-SCS.TP2~ #0 #56 // Remove blur effect from displacer cloak

~SETUP-SCS.TP2~ #0 #59 // Ease-of-use player AI

~SETUP-SCS.TP2~ #0 #60 // Ensure Shar-Teel doesn't die in the original challenge

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #40 // Change Viconia's Skin Color to Dark Blue

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #130 // Force All Dialogue to Pause Game

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #1010 // More Interjections

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #1100 // Reveal City Maps When Entering Area

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #1110 // Add Map Notes

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #2170 // Cast Spells from Scrolls (and Other Items) at Character Level

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #3000 // Higher HP on Level Up -> Maximum

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #3012 // Maximum HP for NPCs (the bigg) -> For Party-Joinable NPCs Only

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #3060 // Remove "You Must Gather Your Party..." Sound (Weimer)

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #3125 // Neutral Characters Make Happy Comments at Mid-Range Reputation

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #4000 // Adjust Evil joinable NPC reaction rolls

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #4031 // Consistent Stats: Edwin -> Use BG2 Values

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #4041 // Consistent Stats: Jaheira -> Use BG2 Values

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #4061 // Consistent Stats: Minsc -> Use BG2 Values

~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #4071 // Consistent Stats: Viconia -> Use BG2 Values

~SETUP-TUTUGUI.TP2~ #0 #0 // Baldurs Gate I GUI for Tutu

~SETUP-EASYTUTUSPAWNRANDOMIZER.TP2~ #0 #0 // EasyTutu Spawn Randomizer -> Base Spawn Chance: 30%

~SETUP-EASYTUTUSPAWNRANDOMIZER.TP2~ #0 #8 // Respawn Interval Selection -> Respawn Interval: 1 game day (default)

~SETUP-SCS.TP2~ #0 #0 // Correct various errors on race, class etc

~SETUP-TGC1E.TP2~ #0 #0 // The Grey Clan Episode One: In Candlelight, BG1TUTU edition v1.10 -> Normal edition

~SETUP-SIRINESCALL.TP2~ #0 #0 // The Lure of the Sirine's Call

~BG1NPC.TP2~ #0 #0 // The BG1 NPC Project: Required Modifications for v12

~BG1NPC.TP2~ #0 #1 // The BG1 NPC Project: Banters, Quests, and Interjections

~BG1NPC.TP2~ #0 #7 // The BG1 NPC Project: Add Non-Joinable NPC portraits to quests and dialogues

~BG1NPC.TP2~ #0 #8 // The BG1 NPC Project: Coran's Romance Core (adult content)

~BG1NPC.TP2~ #0 #9 // The BG1 NPC Project: Dynaheir's Romance Core (teen content)

~BG1NPC.TP2~ #0 #10 // The BG1 NPC Project: Shar-Teel Relationship Core (adult content)

~BG1NPC.TP2~ #0 #11 // The BG1 NPC Project: Branwen's Romance Core (teen content)

~BG1NPC.TP2~ #0 #12 // The BG1 NPC Project: Xan's Romance Core (teen content)

~BG1NPC.TP2~ #0 #13 // The BG1 NPC Project: Ajantis Romance Core (teen content)

~BG1NPC.TP2~ #0 #15 // Romance Timers -> Coran's Romance Speed (standard: 1 hour)

~BG1NPC.TP2~ #0 #20 // Romance Timers -> Dynaheir's Romance Speed (standard: 1 hour)

~BG1NPC.TP2~ #0 #25 // Romance Timers -> Xan's Romance Speed (standard: 1 hour)

~BG1NPC.TP2~ #0 #30 // Romance Timers -> Shar-Teel's Relationship Speed (standard: 1 hour)

~BG1NPC.TP2~ #0 #35 // Romance Timers -> Branwen's Romance Speed (standard: 1 hour)

~BG1NPC.TP2~ #0 #40 // Romance Timers -> Ajantis' Romance Speed (standard: 1 hour)

~BG1NPC.TP2~ #0 #54 // Jason Compton's Accelerated Banter Script.

~BG1NPC.TP2~ #0 #200 // The BG1 NPC Project: Player-Initiated Dialogues

// Recently Uninstalled: ~BG2_TWEAKS/SETUP-BG2_TWEAKS.TP2~ #0 #3121 // Happy Patch (Party NPCs do not fight or complain about reputation) -> NPCs can be angry about reputation but never leave (Salk)

Posted

I am not sure -- this is what I have for vanilla EasyTutu - I know Ascension64 and Macready and I were all researching the same stuff at the same time, as both BGT players and Tutu players were asking similar questions on all fronts. I will take a look this weekend - Kulyok, if you have the time, you could check the workroom, because I tried to collect that kind of cross-forum info in there last summer. My understanding that the Happiness numbers that are much lower were part of the "NPCs Don't Leave" patch.

 

We don't change them, regardless... we should check, though, for macready and Ascension64 (and for Miloch and plainab, since they are doing the whole BG1 Fixpack thing).

Posted

Bockhorn, the behavior is probably not one of those mods at all.. this is the basic game engine we are talking about :) . In vanilla unmodded EasyTutu, I have the HappinessLT(0) as the trigger. I will confirm tomorrow (I am almost out of time today) from a BG1 and a BGT install, but it looks like this is what is supposed to be there.

I am not sure now - i have different results from different sources. I need to reckeck...

 

(Actually, this is a great question for Salk...)

 

Quick confusion spell to throw on the table:

 

Unmodded BG2 Aerie's P:

Global("KickedOut","LOCALS",0)

HappinessLT(Myself,-290)

 

Unmodded Alora on BGT, no conditions for leaving. I don't know what happens when she hits BreakingPoint... would have to research.

 

Unmodded Ajantis on BGT, Global("IWasKickedOut","LOCALS",0)

GlobalLT("ENDOFBG1","GLOBAL",2)

HappinessLT(Myself,0)

 

Unmodded ImoenP on BGT (latest): False (removed from triggering, unless something is directly calling the state)

/* Well good! You've changed since we were friends anyway. Not nearly as much fun now. Should have stayed in Candlekeep, instead of wasting time with you gully pennies. */

 

Unmodded JaheiraP on BGT latest: Global("ENDOFBG1","GLOBAL",2)

Global("KickedOut","LOCALS",0)

HappinessLT(Myself,-290)

OR(2)

Global("JaheiraRomanceActive","GLOBAL",0)

Global("JaheiraRomanceActive","GLOBAL",3)

 

Unmodded Imoen and Ajantis in BG1, all pdialogues are False() - they must lead from a direct call;

 

so I am not sure if the value should be -290, 0, or different for each NPC.

 

 

New download, completely clean install, rechecking DPLAYER2.BCS -

UNMODDED LATEST CLEAN EASYTUTU:

IF
 !Inparty(Myself)
 Hpgt(Myself,0)
THEN
 RESPONSE #100
Setleavepartydialoguefile()
Dialog(Player1)
Changeaiscript("",DEFAULT)
END

IF
 Breakingpoint()
THEN
 RESPONSE #100
Setglobal("IHATEYOUALL","LOCALS",1)
Setleavepartydialoguefile()
Wait(1)
Startdialognoset(Player1)
Changeaiscript("",DEFAULT)
Setglobal("IHATEYOUALL","LOCALS",0)
END

IF
 Global("IHATEYOUALL","LOCALS",1)
 Inparty(Myself)
THEN
 RESPONSE #100
Setleavepartydialoguefile()
Wait(1)
Startdialognoset(Player1)
Changeaiscript("",DEFAULT)
Leaveparty()
Setglobal("IHATEYOUALL","LOCALS",0)
END

 

We, BG1NPC, modify this to split the actions from all one loop, to one that opens and then closes via dialogue;

Changeaiscript("",DEFAULT)

Setglobal("IHATEYOUALL","LOCALS",0)

are added to the dialogue triggered and removed from DPLAYER2.BCS (Tutu only). ( Plus the LeaveParty() )

 

Confirmed again, fresh install EasyTutu latest version, HappinessLT(Myself,0)

for Imoen, Ajantis.

Posted

NPCs should break when their happiness hits -300 (which varies by alignment and is coded in happy.2da). So HappinessLT(Myself,-299) or -290 since maybe it increments by 10 or something. Zero though is right out.

 

Vanilla BG1's dplayer2.bcs BTW does not include any of that "IHATEYOUALL" global setting - that's a BG2 thing. So since it seems to be hardcoded or handled via 2da or something else, I'm wondering why it needs to be handled via script or dialogue at all? As far as Tutu changing the BG1 scripts - well no, not really, it just uses BG2 resources, right?

 

Also according to the IESDP, the BreakingPoint() trigger in BG1 has to do solely with morale breaking, whereas for BG2 it relates to happiness (so it says anyway). These are two different things, no?

Archived

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

×
×
  • Create New...