Jump to content

weird bug with NPCs


Guest Cippalippa78

Recommended Posts

Guest Cippalippa78
Posted

Playing EET

I have this weird bug whereby the NPCs (Corwin, Jaheira and Viconia) are never resting when standing in place. They are always in "ready to fight"/"talking" state. This wouldn't be too much of an issue but the problem is that when I tell them to go anywhere they will go a couple of steps and then stop.

I have looked at the Effects tab but there is nothing in there that causes this.

I have to move charname out oof view to see if it was an attempted dialogue but they still do this.

Posted

That's definitely a variation of a stutter bug. Their script is trying to tell them to do something - probably talk to you - but they can't so the command just interrupts. Assuming that it's a talk command, it's failing because they don't have anything to say. Or maybe they can do the thing but it's not very visible, and the conditions aren't set right so it keeps repeating.

No matter what the details are, it's going to involve scripts. Either those characters' scripts, or some more universal script sending them commands.

Guest Cippalippa78
Posted

I only know it is not their AI script

Guest Cippalippa78
Posted
13 minutes ago, subtledoctor said:

If it’s happening to everyone I would guess it’s something in Baldur.bcs…

no just viconia jaheira and corwin.

The two custom npcs are moving normally

Posted
10 hours ago, Guest Cippalippa78 said:

no just viconia jaheira and corwin.

The two custom npcs are moving normally

So it's not baldur.bcs. Might be bdbaldur.bcs, though. (Because you're in SoD, and that's the global script for the campaign)

Guest Cippalippa78
Posted

The script problems are the following in VICONIA.BCS

IF
    InParty(Myself)
    GlobalLT("LoveTalk","LOCALS",50)
    !Global("ViconiaRomanceActive","GLOBAL",1)
THEN
    RESPONSE #100
        DisplayStringHead(Myself,473843)  // Running block 63 of VICONIA.BCS
        SetGlobal("ViconiaRomanceActive","GLOBAL",1)
        Continue()
END

the following in JAHEIRA.BCS

IF
    InParty(Myself)
    GlobalLT("LoveTalk","LOCALS",58)
    !Global("JaheiraRomanceActive","GLOBAL",1)
THEN
    RESPONSE #100
        DisplayStringHead(Myself,432629)  // Running block 106 of JAHEIRA.BCS
        SetGlobal("JaheiraRomanceActive","GLOBAL",1)
        Continue()
END

and the following ones in XACORSCR.BCS from LCA

 

IF
    ActionListEmpty()
    InParty(Myself)
    Global("XA_CorwinRomanceActive","GLOBAL",2)
    GlobalLT("ViconiaRomanceActive","GLOBAL",2)
THEN
    RESPONSE #100
        DisplayStringHead(Myself,476630)  // Running block 201 of XACORSCR.BCS
        SetGlobal("ViconiaRomanceActive","GLOBAL",3)
        Continue()
END
IF
    ActionListEmpty()
    InParty(Myself)
    Global("XA_CorwinRomanceActive","GLOBAL",2)
    GlobalLT("JaheiraRomanceActive","GLOBAL",2)
THEN
    RESPONSE #100
        DisplayStringHead(Myself,476634)  // Running block 205 of XACORSCR.BCS
        SetGlobal("JaheiraRomanceActive","GLOBAL",3)
        Continue()
END

 

Posted

Oh, so you're not in SoD. My mistake.

Those first two blocks are definitely suspicious. In fact, here's the only instance of ~SetGlobal("JaheiraRomanceActive"~ in vanilla JAHEIRA.BCS:

IF
	Global("LoveTalk","LOCALS",0)
	AreaCheck("AR0400")  // Slums
	Global("JaheiraMatch","GLOBAL",1)
	Global("ShadowWork","GLOBAL",1)
THEN
	RESPONSE #100
		SetGlobal("LoveTalk","LOCALS",1)
		SetGlobal("JaheiraRomanceActive","GLOBAL",1)
		RealSetGlobalTimer("JaheiraRomance","GLOBAL",TWO_MINUTES)
END

If LoveTalk is zero, you're in the right area, and you're registered as a valid match, set the conditions for the first talk.

Somehow, you've got a block that says to reset JaheiraRomanceActive to 1 no matter what the state of the romance is or even whether your character is a valid romance match with her, as long as LoveTalk isn't extremely high. And the same for Viconia. Which breaks things when you get to the conflict protocols. In this case, you reach the commitment point with Corwin, and that kills the romance with Jaheira and Viconia. Then their scripts fire again and say "nuh-uh, the romance is back on". And repeat...

Those blocks in Jaheira and Viconia's scripts definitely shouldn't be there. And I wouldn't be surprised if you have more stuff like that in other romanceable companion scripts.

Posted

None of the four script blocks should loop, though? They all have a trigger variable that gets changed so the blocks would not trigger again.

My first guess would the Corwin Romance mod (LOve Concurs All?), because of the prefixed CorwinRomanceActive.

Posted

Ah, but it's not a one-step loop. It's a pair of two-step loops. Corwin's script kills Jaheira's romance based on standard conflict protocols, then Jaheira's script revives the romance for no good reason. Repeat. And the same for Viconia.

Guest Cippalippa78
Posted

seems to be something with LCA

for whatever reason, suddenly I got a talk with Corwin asking me to choose between her and Jaheira. I chose jaheira thinking it wouldn't change anything since I have the unkillable romanced tweak. But the corwin romance got killed while the one with jaheira and viconia are still active.

Immediately after jaheira and viconia are now at rest and the script is not triggering but corwin instead is.

 

Posted
1 hour ago, Guest Cippalippa78 said:

I chose jaheira thinking it wouldn't change anything since I have the unkillable romanced tweak. But the corwin romance got killed while the one with jaheira and viconia are still active.

The tweak does not affect mod NPCs. On the contrary, it can lead to loops like the one you noticed, actually.

Posted

If that's what the "unkillable romanced tweak" looks like, I would absolutely recommend against it in all circumstances. It doesn't just restore the romances no matter what, it also removes any match conditions. And the ability to say no. Then there's the game-breaking stutter loops...

When I did my evil run with Dorn as the protagonist, I had him simultaneously romance Anomen and Viconia. Which works without any need for script changes because their match conditions don't overlap and there aren't any conflict protocols. All it took was a Patsy to fool the match conditions; she started the game and locked in Anomen's match eligibility, then Dorn kicked her out and killed her once he joined the party. But I still turned down the self-love option. No means no. Even a blackguard can understand that.

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...