Jump to content

Timers


Recommended Posts

Okay. Next question. (Again I wanna thank everyone for being so helpful. You guys are great. :D)

 

So here's my problem. I'm determined to play a do-everything-in-one-runthrough game. It's harder than it sounds, mostly cause I have a bunch of NPC mods added. I want to do every quest and encounter possible and I'm willing to lie cheat and steal to do it. Nevertheless, I do feel somewhat constrained by the RPer in me. I mean... when I do the planar sphere, I want to have Valygar with me. And when I do the Temple Ruins, I want to have Mazzy along. When I go off and do the Paladin Quest, I want to have a paladin in the group, and when I do the priest quests, I want to have a priest. See what I mean? Most of the time that's pretty easy. There is stuff that makes it really hard though.

 

Here's where I am right now. I wanted to do the Minsc Takes a New Witch thing, so I needed Aerie and Minsc in the party, and like Minsc was with Dynaheir, I didn't feel like he'd take kindly to them getting separated. And I've got Jaheira (for the PC romance). That leaves one slot for other NPCs. The next thing I want to do is go pick up Haer'Dalis for the romance with Aerie and that will leave me with no spots for possibly a long time. But even if I had an extra spot, a bunch of these quests and encounters require two. Like, right now Minsc is talking my ear off about poor Delon, but I don't want to go to Umar Hills yet because I can't go get both Mazzy and Sarah (and both of them seem like they should have a piece of the Shade Lord). And I can't go get Viconia and Keldorn (which I want so I can see them fight). And I can't pick up Nalia and Auren (mmmmm... lesbians...). Etc.. Every time I try to plan my next move, I end up banging my head against the screen and sobbing because they won't let us have seven people in the party.

 

What I really want is to get rid of Edwin, but as I understand it, his Nether Scroll quest takes forever and I don't want Minsc to kill him before it's done. I think there's a way to cheat that one with the console, and I'm willing to try it, but also I don't know what sort of timer the Minsc vs. Edwin battle is on. Does anybody know the answer to that? Is it a real time timer? Is it a game time timer? Is it just random? What variable (if any) controls when Minsc will go berserker on Edwin?

 

:D

Link to comment
What variable (if any) controls when Minsc will go berserker on Edwin?
I think it's "EdwinMinscFight" - there may be others tho. As long as you can keep that at zero they should be ok. I don't know how exactly it gets augmented - you'd probably have to pore through a few different scripts to figure that out (edvsmin, edwin, minsc, minvsed, maybe more).
Link to comment

I appreciate the advice, but the problem is you've sorta told me the opposite of what I was looking for. While I don't want Edwin to get bumped off before he finishes his quest, I'm not too worried about that because I think I can speed up the nether scroll thing if I need to. What I'm more worried about is having to keep him around for ages after that's over.

 

Maybe this is a lot more complicated than I expected, but nobody knows how to accelerate a disagreement between party members? :D

Link to comment
Maybe this is a lot more complicated than I expected, but nobody knows how to accelerate a disagreement between party members? :D
Oh, well if you want to accelerate it, set the variable to 1, maybe even 2 (though I think 2 kicks in after one has killed the other). I thought you said you wanted to keep both around though...
I didn't feel like he'd take kindly to them getting separated.
If this is the only real issue, you can send Minsc (or whomever you want to drop, temporarily or permanently) off into an abandoned house, cave, whatever, then reform your party so he's not in it and no one can complain about it. Best party management trick in the book :D.
Link to comment

Okay... I think I'm finally starting to understand how these things work. Correct me if I'm wrong.

 

When a timer variable gets set, it is set in seconds. A real time timer sets the variable equal to some number of seconds of real gameplay time elapsed since the start of the game. The thing that's being timed fires when you hit that number of seconds. Is that right?

 

So if I have a timer that's supposed to say turn my skin color green and it gets set the second I take my first step out into Candlekeep, and the value is set at 3600, my skin will turn green after an hour of game play. Right?

 

That's why setting a timer value to 1, or 0 or whatever makes it happen right now?

 

Does that also mean that if I want to delay something, all I have to do is add time to it? Like, if it's set at say 18000000, I can put it off for an hour by using CLUAConsole:SetGlobal("WhateverVariable","GLOBAL",18003600)?

 

Am I understanding this correctly?

Link to comment
Does that also mean that if I want to delay something, all I have to do is add time to it? Like, if it's set at say 18000000, I can put it off for an hour by using CLUAConsole:SetGlobal("WhateverVariable","GLOBAL",18003600)?

 

Am I understanding this correctly?

You're approaching understanding, but you're not quite there yet.

 

To set a timer, you would use SetGlobalTimer() for game time or RealSetGlobalTimer() for real time. Don't worry about the player's local game time. The engine deals with that.

 

If you wanted an NPC to start talking to the PC an hour real time after an event took place, you'd use this

 

IF

Global("Variable","GLOBAL",0)

THEN

RESPONSE #100

RealSetGlobalTimer("Timer","GLOBAL",3600)

SetGlobal("Variable","GLOBAL",1)

END

 

IF

RealGlobalTimerExpired("Timer","GLOBAL")

Global("Variable","GLOBAL",1)

!StateCheck(Player1,CD_STATE_NOTVALID)

THEN

RESPONSE #100

SetGlobal("Variable","GLOBAL",2)

END

 

IF

Global("Variable","GLOBAL",2)

!StateCheck(Player1,CD_STATE_NOTVALID)

THEN

RESPONSE #100

StartDialogueNoSet(Player1)

END

 

If you wanted to use the game timer, you would use SetGlobalTimer() and GlobalTimerExpired() instead, but do check the IESDP for the numbers to use for game time. An hour game time is something like five minutes real time.

Link to comment

Also, you might be getting confused between variables and timers. What I mentioned was just a variable, not a timer (though it might get augmented by a timer - didn't really look into it). So by default, it's zero; once it gets to 1, Minsc and Edwin fight and after one kills the other, it's 2 (I'm guessing). You can set this with the CLUAConsole, but I'm not sure if you can change a timer with the console (though you can AdvanceRealTime with it).

Link to comment

Archived

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

×
×
  • Create New...