Jump to content

More Eldoth strangeness


Raven_Song

Recommended Posts

Hello again.

 

Eldoth is behaving rather strangely in the Cloak Wood.

 

When my PC attempted a player initated dialogue Eldoth started talking about rescuing Skie immediately.

 

If I agreed he led the party into the middle of whatever area I was in (it happened in both the map where you find Faldorn and the one where the man wants his brother recusing from the spiders) and then nothing.

 

If I sid no he left in a huff. (I wanted Faldorn so I wasn't overly upset)

 

Still he seems to be confusing the Cloak Wood with baldur's Gate so something is up, any suggestions?

 

Thanks. :)

 

(Oh I'd moved him at the beginning of the game).

Link to comment

I'm going to have a look at Eldoth's BCS. I suspect he's got a script block that kicks in if the party takes too long to "rescue" Skie, and that timer wasn't disabled when he was moved.

 

Anywho, I'll take a look and get back to you.

Link to comment

Think I might have found the problem. This is the first block in his J file. PID accesses this file, and looks for the first block where the conditions return true. The actual PID themselves are at the very end of the J file, and need to be. That's why you can clear the cue of stalled talks by initiating PID.

 

But that isn't what we're talking about here.

 

This talk has conditions, so it can be used as PID. It's the first item in the J file, so it's going to be seen first. The conditions will always return true as long as Eldoth's "mission to rescue Skie" hasn't started yet, so PID is going to give you this dialogue.

 

Unfortunately, this dialogue eventually leads to a cutscene where he moves to a certain point. There's no area check for it, though, so it's going to happen anywhere.

 

If this block has to have conditions, can one of them be an area check so Eldoth doesn't wander off or leave prematurely?

 

IF WEIGHT #12 /* Triggers after states #: 6 7 10 16 24 26 27 59 66 67 69 71 even though they appear after this state */
~Global("EldothMove","GLOBAL",0)
InParty("eldoth")
~ THEN BEGIN 0 // from:
 SAY #86987 /* ~Do you remember our agreement?  You had agreed to help me kidnap Skie from the estate of Entar Silvershield.  Well, I think this is the perfect opportunity.  I could take us to the estate right now.~ */
 IF ~~ THEN REPLY #20287 /* ~Not now.~ */ DO ~SetGlobal("EldothMove","GLOBAL",1)
SetGlobalTimer("RescueSkie","GLOBAL",ONE_DAY)
~ GOTO 1
 IF ~~ THEN REPLY #86988 /* ~Sure, lead the way.~ */ DO ~SetGlobal("EldothMove","GLOBAL",1)
SetGlobalTimer("RescueSkie","GLOBAL",ONE_DAY)
~ GOTO 2
END

Link to comment

Can you check for

http://forums.gibberlings3.net/index.php?s...ost&p=65640 ?

 

Perhaps I missed it on a rebuild from backup (in which case I am going to scream, as the only way to confirm that I have gotten everything in is to do several weeks of file comparisons...)

 

I have the file in place, and it looks coded correctly. Let me check the tp2...

COMPILE ~BG1NPC/Phase3/MOVELOC/DLG/X#ELDOTHN.D~

 

Let me decompile the dlgs...

Link to comment

Not sure if this was what you wanted, but this was from MOVLOC/DLG Eldoth's file.

 

REPLACE_STATE_TRIGGER _ELDOTJ 0 ~Global("EldothMove","GLOBAL",0) InParty("eldoth") AreaCheck("FW0100")~

 

REPLACE_STATE_TRIGGER _ELDOTH 8 ~Global("EldothMove","GLOBAL",0) InParty("eldoth") AreaCheck("FW0100")~

 

I wonder why the state trigger wasn't replaced.

 

As you can see from my decompiled _eldotj, the state trigger is simply the global, no area check.

Link to comment

In my decompiled _ELDOTH.D,

IF WEIGHT #8 /* Triggers after states #: 20 22 23 24 25 even though they appear after this state */
~Global("EldothMove","GLOBAL",0)
InParty("eldoth")
AreaCheck("FW0100")
~ THEN BEGIN 8 // from:
 SAY #86987 /* ~Do you remember our agreement?  You had agreed to help me kidnap Skie from the estate of Entar Silvershield.  Well, I think this is the perfect opportunity.  I could take us to the estate right now.~ */
 IF ~~ THEN REPLY #20287 /* ~Not now.~ */ GOTO 9
 IF ~~ THEN REPLY #86988 /* ~Sure, lead the way.~ */ GOTO 10
END

 

in _ELDOTJ

IF WEIGHT #12 /* Triggers after states #: 6 7 10 16 24 26 27 59 66 67 69 71 even though they appear after this state */
~Global("EldothMove","GLOBAL",0)
InParty("eldoth")
AreaCheck("FW0100")
~ THEN BEGIN 0 // from:
 SAY #86987 /* ~Do you remember our agreement?  You had agreed to help me kidnap Skie from the estate of Entar Silvershield.  Well, I think this is the perfect opportunity.  I could take us to the estate right now.~ */
 IF ~~ THEN REPLY #20287 /* ~Not now.~ */ DO ~SetGlobal("EldothMove","GLOBAL",1)
SetGlobalTimer("RescueSkie","GLOBAL",ONE_DAY)
~ GOTO 1
 IF ~~ THEN REPLY #86988 /* ~Sure, lead the way.~ */ DO ~SetGlobal("EldothMove","GLOBAL",1)
SetGlobalTimer("RescueSkie","GLOBAL",ONE_DAY)
~ GOTO 2
END

 

hmmm... this is weird. Unless...

 

Raven_Song, just to make sure I am not going crazy, are you talking about Tutu v4 or EasyTutu?

 

berelinde, I just don't know what to say on our installs being different, as we both use EasyTutu_ToB. I wonder what would cause this to fail?

 

(berelinde, I am taking the tilde suggestion to heart and checking code again).

Link to comment

Archived

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

×
×
  • Create New...