Jump to content

amber-coffeeCat

Members
  • Posts

    9
  • Joined

  • Last visited

Posts posted by amber-coffeeCat

  1. @Gwaihir, actually the little tweak in the code that I demonstrated in the last post repaired all problems, at least for me. The only thing different now is that I need to start dialog with Fade, she doesn't to that herself for some reason. So I chat her up from time to time to see if the friend talk will fire. Here's how I ultimately fixed that:

    IF
        InParty(Myself)
        See(Player1)
        !StateCheck(Myself,CD_STATE_NOTVALID)
        !StateCheck(Player1,CD_STATE_NOTVALID)
        Global("E3FADEFRIENDSHIP","GLOBAL",1)
        GlobalLT("E3FRIENDTALK","GLOBAL",9)
        RealGlobalTimerExpired("E3FADEFRIEND","GLOBAL")
    THEN
        RESPONSE #100
            RealSetGlobalTimer("E3FADEFRIEND","GLOBAL",2600)
            StartDialogNoSet(Player1)
    END

     

    The bolded parts are what I changed. You probably won't use it now, since you asked two weeks ago... but maybe someone in the future will 🙂

  2. You don't, I was thinking the same, except I didn't notice that the timer was only set once. Actually, wouldn't setting it again just after the E3FRIENDTALK increment in this block fix the issue?

    Or rather, placing it in the next block's response, before starting the dialogue.

    Spoiler

    IF
        InParty(Myself)
        See(Player1)
        !StateCheck(Myself,CD_STATE_NOTVALID)
        !StateCheck(Player1,CD_STATE_NOTVALID)
        Global("E3FADEFRIENDSHIP","GLOBAL",1)
        GlobalLT("E3FRIENDTALK","GLOBAL",9)
        RealGlobalTimerExpired("E3FADEFRIEND","GLOBAL")
    THEN
        RESPONSE #100
            RealSetGlobalTimer("E3FADEFRIEND","GLOBAL",2600)
            StartDialogNoSet(Player1)
    END

     

  3. That's actually what I was thinking as well. Beside the obvious error in the second block (should be GlobalLTE3FRIENDTALK","GLOBAL",10), I think), I don't get why the game constantly thinks that the timer is expired. Oh well.

    I put those blocks into comment brackets and I just increase the variables manually wherever I'm at an inn to experience the friendship track. Inconvenient, but it's something. Thanks for the help nonetheless.

  4. IF
        InParty(Myself)
        See(Player1)
        !StateCheck(Myself,CD_STATE_NOTVALID)
        !StateCheck(Player1,CD_STATE_NOTVALID)
        Global("E3FADEFRIENDSHIP","GLOBAL",1)
        GlobalLT("E3FRIENDTALK","GLOBAL",10)
        RealGlobalTimerExpired("E3FADEFRIEND","GLOBAL")
    THEN
        RESPONSE #100
            ActionOverride(Player1,DisplayString(Myself,735034))  // Running block 107 of E3FADE.BCS
            ActionOverride(Player1,DisplayStringHead(Myself,735034))  // Running block 107 of E3FADE.BCS
            StartDialogueNoSet(Player1)
    END

     

    It's this one.

  5. Okay, so I experimented a little. Turns out the problem for me occurs when I try to PID Fade shortly after getting her (she talked to me only once at this point, right after getting out from the Thieves Guild). After I PID her, she's stuck in a initiating dialogue loop. I checked the variables for her and I noticed, that:

    1) before I PID her, the E3EFRIENDTALK variable shows "1"

    2) after the dialogue loop starts (I managed to auto-save moving between areas, yay), the E3EFRIENDTALK variable shows "9" for some reason

    @jastey, based on this, are you able to propose a solution? I know how to edit code in NI 🙂

    UPDATE: I manually changed the value to "2", which triggered her friendship talk. I progressed a bit, but now it seems that each time she wants to say something to me, the variable changes itself to "9" and she is stuck in the loop again.

    UPDATE 2: Found the issue. Timer's broken somewhat, at least in my installation. The E3FADEFRIEND timer, I mean: for me, it constantly shows "22076599". Then the script treat it as expired and increment the E3FRIENDTALK up to "9", and since expired timer also controls Fade starting the dialogue, she keeps trying to talk. I tried to manually set the timer to lower values, but it seems that the script counts it as expired no matter what.

×
×
  • Create New...