Jump to content

[BGT/NPC project] Dialogue loop


Guest La Marmotte

Recommended Posts

It might also be pulling the old Beta3 out of the install and replacing it with the new internal, but using the old savegame...

 

I have began the game with beta 4. I have installed all the mods I use before begin to play. I have change somes elements recently, but after having this bug (and I have save a copy of the WeiDU of my previous installation).

 

 

La Marmotte: I notice that your BGT installation includes Unfinished Business for BG1. Please check this link.

 

The UB I have installed is BG1 Unfinished Business v4 beta 3.1 for BGT: http://forums.spellholdstudios.net/index.p...mp;showfile=297

I haven't installed componants which may be in conflict with BG Tweaks (something about Angelo and Shar-teel for exemple). But I have installed the 'minor dialogue restorations' element, and uninstalled it when I have hear that it can cause problems. Can it have corrupt my dialog.tlk file ?

 

I can may try to installed BGT without UB in another computer, but I don't know how to start the dialogue with Minsc. It can depend of a lot of thing (areas, time, NPC...).

Link to comment

Auton que je sais, c'est notre modification que commence le problem du Minsc. Ce ne pas votre fait - c'est BG1 NPC. C'est un variable ne ferme pas, avec notre BGMINSC.bcs, et peut etre il y'a un "fix" - vous s'en tenir a moi pour faire de son meix vous ete au courant!

 

And sorry for the decrepit French. Jay Suizze un Tow-Rist Amarycayne.

 

I have not found the variable yet, but I will - this could be a problem with UB that we have not encountered yet, but my bet is that somewhere there is a typo.

Link to comment

Aw heck. I bet a glass of scotch berelinde is right.

 

REPLACE_STATE_TRIGGER MINSCJ 243 ~False()~ 244

 

if we can figure out what specific lines 243 and 244 are; the timer is not disabled on either Tutu or BGT. But the dialogues are, I think by this...

 

 

I thought this worked because the script called these from P file and all these J file things were moot. I bet they are active in BGT.

 

On the Tutu side, this is fixable by setting a global manually

REPLACE_STATE_TRIGGER ~_MINSCJ~ 2 ~Global("X#JCleanMinsc","GLOBAL",1)~ 3 4 5 6 7

 

but Pro5's good work figured BGT installs only needed 243 and 244. I will try to go look and see what those states are (but berelinde may have to check this, or someone, because I do not currently have a BGT install). If 243 and 244 are the problem, then the fix currently is going to be manually editing in a dialogue variable and setting it.

 

(I never understand why we test and test on good installs with top notch people, and still run into these things. )

 

In Tutu's MINSCJ

BEGIN ~_MINSCJ~

IF ~GlobalTimerExpired("Minsc","GLOBAL")
Global("HelpMinsc","GLOBAL",0)
~ THEN BEGIN 0 // from:
 SAY #74183 /* ~We take too long!  My charge is in desperate peril!  If we do not go now you are a coward!~ */
 IF ~~ THEN DO ~SetGlobalTimer("Minsc","GLOBAL",SIX_DAYS)
SetGlobal("HelpMinsc","GLOBAL",1)
~ UNSOLVED_JOURNAL #74184 /* ~Rescuing Dynaheir

Minsc is getting impatient, I must go to rescue his friend soon.  He previously said that she was being held at a gnoll encampment to the west of Nashkel.~ */ EXIT
END

IF ~GlobalTimerExpired("Minsc","GLOBAL")
Global("HelpMinsc","GLOBAL",1)
~ THEN BEGIN 1 // from:
 SAY #74185 /* ~You agreed to help in my cause, yet now you break your word by your inaction!  I'll have none of it!  Feel the wrath of Minsc and Boo!~ */
 IF ~~ THEN DO ~SetGlobal("HelpMinsc","GLOBAL",2)
LeaveParty()
ChangeAIScript("_TASIGHT",CLASS)
Enemy()
~ EXIT
END

 

called by the standard unmodded script

IF
 GlobalTimerExpired("Minsc","GLOBAL")
 Global("HelpMinsc","GLOBAL",0)
 InParty(Myself)
THEN
 RESPONSE #100
Dialog([PC])
END

IF
 GlobalTimerExpired("Minsc","GLOBAL")
 Global("HelpMinsc","GLOBAL",1)
 InParty(Myself)
THEN
 RESPONSE #100
Dialog([PC])
END

 

So we need to add a global to the conversation and advance it. What might be happening now is that Minsc's timer has expired, and he wants to say "Let's Go Resuce My Witch!", but since we falsed out (removed) the non-conditional dialogue (literally on BGT, instead of using a condition like on Tutu), you get the PID over and over again.

 

Coming up with a solution, right after I look something up...

Link to comment

I've got BGT and the latest beta on my machine. I'll verify when I get home from work.

 

The reason we didn't find it is that you can never find every blasted thing. Maybe nobody took more than 2 days to go get Dy. I know I never do.

Link to comment
I've got BGT and the latest beta on my machine. I'll verify when I get home from work.

 

The reason we didn't find it is that you can never find every blasted thing. Maybe nobody took more than 2 days to go get Dy. I know I never do.

 

I had to explore Nachkel's mine before, because Jaheira was impatient, so I think that Minsc is in my group for more than 2 days. Oh, and he have been dead for some hours, I don't know if it can have consequences for dialogue.

Link to comment

Hmmm. OK, need suggestions. The fix might be simple for La Marmotte; she can open up the BCS "BGMINSC" in Near Infinity, find those two blocks, and delete them (after all, who wants to ditch Minsc over a timing issue? The poor dude has enough troubles). That should stop the problem.

 

But from a bigger standpoint, do we need to find and delete these blocks removing the warning and the party leaving dialogue, or do we try to patch them so they are not no-condition entries?

 

Somehow, I thought GlobalTimerExpired returns true only if the timer has been set before. In which case, this was never a "no condition" dialogue that triggered on JFile stuff, and does not need to be patched at all. We take away our false, and when the timer fires, it fires. Unless Author Intent was "Minsc Doesn't Leave", in which case we need to disable the timer blocks completely by

 

	/* removing Minsc's timer to leave party */
COPY_EXISTING ~%MINSC_BCS%.bcs~ ~override~
  DECOMPILE_BCS_TO_BAF
	REPLACE_TEXTUALLY ~GlobalTimerExpired("Minsc","GLOBAL")~ ~False()~
  COMPILE_BAF_TO_BCS
BUT_ONLY_IF_IT_CHANGES

 

Or I could be mistaken on GlobalTimerExpired. Does this return true if the timer has never existed?

Link to comment
The reason we didn't find it is that you can never find every blasted thing. Maybe nobody took more than 2 days to go get Dy. I know I never do.

 

Yes.

 

Yes, you do take more than 2 days to go get Dy, or yes, you do get her before the 2 days expire?

 

But you're doing that on a Tutu install. BGT is a little different.

Link to comment

Yes, meaning that I never do, either. ??? It's a rare thing, probably - either we'd be flooded by Coran-Kivan-Minsc's triggers failing.

 

Or I could be mistaken on GlobalTimerExpired. Does this return true if the timer has never existed?

 

I believe you are correct. If the timer never existed, GlobalTimerExpired never should return true.

Link to comment

There's a way to check that, La Marmotte, if you are still there.

 

If you can use the CLUA console, would you open it and type in the following, and report back about whether it gives you a number or that the timer does not exist?

 

CLUAConsole:GetGlobal("Minsc","GLOBAL")

Link to comment

From the IESDP:

 

0x4040 GlobalTimerExpired(S:Name*,S:Area*)

Returns true only if the timer with the name specified and of the type in the 2nd parameter has run and expired.

 

0x4041 GlobalTimerNotExpired(S:Name*,S:Area*)

Returns true only if the timer with the name specified and of the type in the 2nd parameter is still running. Note that if we use !GlobalTimerNotExpired(S:Name*,S:Area*) this will return true if the timer has never been set OR if it has already expired- very useful...most useful of all the GlobalTimer triggers ??? .

 

So a "no condition" block would have to be !GlobalTimerNotExpired(S:Name*,S:Area*) ....

and if we want the behavior then we simply remove the patching we installed and let the timer go. (And have someone test on BGT to make sure it really, really doesn't interfere with PIDs - IESDP says it doesn't, so we don't need to worry - the script already uses Kulyok's dialogue advanced variable method, going from HelpMinsc=0>1 on the first dialogue, and not needing closing as the second dialogue has minsc leaving FOREVAR. )

Link to comment
There's a way to check that, La Marmotte, if you are still there.

 

If you can use the CLUA console, would you open it and type in the following, and report back about whether it gives you a number or that the timer does not exist?

 

CLUAConsole:GetGlobal("Minsc","GLOBAL")

 

It's done ! ???

It give me this :

 

CLUAConsole:GetGlobal("Minsc","GLOBAL")

Global: MINSC GLOBAL set to 1916879

 

 

Hmmm. OK, need suggestions. The fix might be simple for La Marmotte; she can open up the BCS "BGMINSC" in Near Infinity, find those two blocks, and delete them (after all, who wants to ditch Minsc over a timing issue? The poor dude has enough troubles). That should stop the problem.

 

Do you think I can delete these fles without corrupt my saves ?

Link to comment

If you're getting a number for that value, I'm guessing that somehow we aren't fixing that timer on a BGT install. I will look into it now.

 

cmorgan will have to answer the question about your saves, I'm afraid.

Link to comment

I am just not sure. I think that if you open up the file BGMINSC.bcs in NearInfinity, delete those two blocks, press "compile" so your work is saved to the override, and start up the game...

 

everything will work.

 

If not, then the .bcs is stored in the savegame, and you would need to open up the savegame and edit the script that way. That is something I have never actually done before.

 

Let me see if I can go try.

 

p.s. that means Kulyok, Jastey, Domi, berelinde, and I need to come to a decision about author intent and leaving "forevar" on Coran and Minsc, the only two we have that have these timered problems. I already fixed Eldoth with the move, and Kivan Domi said was not supposed to leave so we disabled his timer completely on both platforms.

Link to comment

*sigh* I hate questions like this.

 

The reason I hate questions like this is that the timers were put in place when there wasn't so much to do between point A and point B. Now we've gone and added a bunch of stuff, and the timers are still there.

 

Domi is fortunately still around to answer questions about Coran, but we're on our own with Minsc.

 

People aren't downloading and playing the BG1 NPC Project because they want their NPCs to book FOREVAR.

 

Unless Domi has objections, and she's the one to say that, I say ditch the timers.

Link to comment

Archived

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

×
×
  • Create New...