Have someone encountered a problem that a timer is set but not running during the game?
Timer is set but not running
#1
Posted 11 October 2015 - 09:10 AM
#2
Posted 11 October 2015 - 09:51 AM
Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit).
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.
#3
Posted 11 October 2015 - 01:13 PM
Another flying bug in IE.
BGT with Baldurdash and Keldorn's Romance, nothing else. New timers are set but not running.
[EDIT] Surprise: I found that this problem was known to Bioware. In addition to GlobalTimerExpired or !GlobalTimerNotExpired in some scripts they insert a very long Wait like Wait (40) as a backup. Now it turns to be that the timer set in these scripts doesn't run at all.
Edited by Vlad, 11 October 2015 - 01:31 PM.
#5
Posted 12 October 2015 - 09:51 AM
Yes, it's the same problem. You can make several saves in some intervals of time and see in NI that the timer is not running. Another check would be to put the timer as !Expired in the script, and you'll see that this behaviour changes. I'm now switching to using Wait(120) (or longer) in such situations when I need to spawn creatures after some time and with some conditions. Look in AMNTRP0x scripts.
I'll give an example:
IF Delay(10) Range([PC],20) !AreaCheck("AR0400") !AreaCheck("AR0900") !AreaCheck("AR0020") !StateCheck([PC],STATE_INVISIBLE) !StateCheck([PC],STATE_IMPROVEDINVISIBILITY) Global("VP_Guild_Attacked","GLOBAL",1) Global("VP_Summon_Thieves","GLOBAL",0) !GlobalTimerNotExpired("VP_Aran_VengeanceT","GLOBAL") THEN RESPONSE #100 SetGlobal("VP_Summon_Thieves","GLOBAL",1) SetGlobalTimer("VP_Aran_VengeanceT","GLOBAL",3600) Wait(3) DisplayString(Myself,61774) // Prepare to be eviscerated, fool. CreateCreatureObject("STHIEF1",Myself,0,0,0) // Thief CreateCreatureObject("STHIEF2",Myself,0,0,0) // Thief Wait(120) END IF Delay(10) Range([PC],20) !AreaCheck("AR0400") !AreaCheck("AR0900") !AreaCheck("AR0020") !StateCheck([PC],STATE_INVISIBLE) !StateCheck([PC],STATE_IMPROVEDINVISIBILITY) !GlobalTimerNotExpired("VP_Aran_VengeanceT","GLOBAL") Global("VP_Guild_Attacked","GLOBAL",1) THEN RESPONSE #100 SetGlobalTimer("VP_Aran_VengeanceT","GLOBAL",3600) Wait(3) DisplayString(Myself,61774) // Prepare to be eviscerated, fool. CreateCreatureObject("STHIEF1",Myself,0,0,0) // Thief CreateCreatureObject("STHIEF2",Myself,0,0,0) // Thief DisplayString(Myself,61778) // You will suffer... oh, yes. CreateCreatureObject("STHIEF2",Myself,0,0,0) // Thief Wait(120) END IF Delay(10) Range([PC],20) !AreaCheck("AR0400") !AreaCheck("AR0900") !AreaCheck("AR0020") !StateCheck([PC],STATE_INVISIBLE) !StateCheck([PC],STATE_IMPROVEDINVISIBILITY) !GlobalTimerNotExpired("VP_Aran_VengeanceT","GLOBAL") Global("VP_Summon_Thieves","GLOBAL",0) Global("VP_Guild_Attacked","GLOBAL",1) THEN RESPONSE #100 SetGlobal("VP_Summon_Thieves","GLOBAL",1) SetGlobalTimer("VP_Aran_VengeanceT","GLOBAL",3600) Wait(3) DisplayString(Myself,61774) // Prepare to be eviscerated, fool. CreateCreatureObject("STHIEF1",Myself,0,0,0) // Thief CreateCreatureObject("STHIEF2",Myself,0,0,0) // Thief Wait(120) END
If I remove Wait(120), the thieves are not summoned any more. I've checked the timer, and it's not running at all.
[EDIT] Changing the number for ONE_DAY or other similar variable doesn't help either.
Edited by Vlad, 12 October 2015 - 10:07 AM.
#6
Posted 12 November 2015 - 11:52 AM
Well, finally, I can conclude that no timers should be launched through area scripts. Timers set in area scripts never run. Full stop.
#7
Posted 12 November 2015 - 12:19 PM
Well, finally, I can conclude that no timers should be launched through area scripts. Timers set in area scripts never run. Full stop.
I cannot confirm that.
I have just checked once again all the timers in this version of ar6600,bcs - they all work.
AR6600.BAF 23.33K 396 downloads
#8
Posted 12 November 2015 - 03:26 PM
Well, then you have probably a different version of exe.
#9
Posted 12 November 2015 - 11:54 PM
[EDIT] Surprise: I found that this problem was known to Bioware. In addition to GlobalTimerExpired or !GlobalTimerNotExpired in some scripts they insert a very long Wait like Wait (40) as a backup. Now it turns to be that the timer set in these scripts doesn't run at all.Source?
Edited by Fiann of the Silver Hand, 12 November 2015 - 11:56 PM.
#10
Posted 13 November 2015 - 12:49 AM
I'm not going to prove anything here. I've reported my own observations for those who encounter the similar problem. If you don't encounter this problem, then this topic is unrelated to you.
#11
Posted 13 November 2015 - 01:07 AM
Hello I posted a problem in the following thread
http://www.shsforums...em/#entry582243
It seems to be related to this one as a timer is set but seems not to run. When looking through my saves with NI the local timer IS set on the creature but the !GlobalTimerNotExpired seems to return True anyway...
#12
Posted 13 November 2015 - 01:11 AM
@Fiann: I think Vlad deduced it from looking at in-game scripts
@Vlad: Since this seems to be engine related and because theres no WeiDU.log for reference - are you using any engine tweaks? ToBEx? Taimon's hacks? The NoCD patch? InfinityAnimations? 1PP?
"I am the smiley addict, yellow and round, this is my grin when I'm usually around .
When there's trouble brewing, see me post, cuz it's usually a wall o' yellow and your eyes are toast!!!"
BWP GUIDE - BWP FIXES - impFAQ - NPC LIST - KIT LIST - AREA LIST
GitHub Links : BWP Fixpack | Lolfixer | BWP Trimpack | RezMod
#13
Posted 13 November 2015 - 01:18 AM
I can add that in the following config the scripts Is working as expected
Weidu.log for BG stratagems install
In this one it is not working
Weidu.log for IWD in BG2 install
I know that the IWD in BG2 install hacks the .exe perhaps that cause the bug
But in my BGT install it works fine really disturbing
Edit: IWD in BG2 was not installed from a clean install of BG2 but from a clean install of BGT (without stratagems installed) but it does not seems to cause any bug for playing the game
Edited by Krevett, 13 November 2015 - 01:20 AM.
#14
Posted 13 November 2015 - 01:23 AM
@Fiann: I think Vlad deduced it from looking at in-game scripts
@Vlad: Since this seems to be engine related and because theres no WeiDU.log for reference - are you using any engine tweaks? ToBEx? Taimon's hacks? The NoCD patch? InfinityAnimations? 1PP?
The exe seems the source why it works for some but not for others. From the list above I have all but Taimon's hacks, also I do not have IWD in BG2.
All my timers work, area script or otherwise. So at least some candidates can be eliminated from the list of possible sources.
#15
Posted 13 November 2015 - 10:02 AM
I've checked on GOG installation + BDash-WeiDU 1.7 + Keldorn Romance 1.0b. Neither BDash, nor KR touch the exe. I've tried to run timers in major Athkatla areas and in custom areas of KR. Like Krevett said, the same issue. Maybe GOG?
Edited by Vlad, 13 November 2015 - 10:05 AM.
#16
Posted 13 November 2015 - 09:05 PM
I'm not going to prove anything here. I've reported my own observations for those who encounter the similar problem. If you don't encounter this problem, then this topic is unrelated to you.I'm not asking you to prove anything, but the source probably includes similar discussion to avoid redundancy here.
[edit] Tested with GOG + ToBExv26. Timers worked in different AREs. Curiously, the action of the timer I tested with would still execute one more time after leaving the scripted ARE.
Edited by Fiann of the Silver Hand, 13 November 2015 - 09:38 PM.
#17
Posted 14 November 2015 - 06:12 AM
I have no idea what's ToBEx and what it does to EXE.
#18
Posted 14 November 2015 - 09:06 AM
I have no idea what's ToBEx and what it does to EXE.
It's Throne of Bhaal Extender, made by Ascension64's, in short:
TobEx (Throne of Bhaal Extender) is a dynamic link library (DLL) written in C++ that fixes game engine bugs and extends the game engine by modifying the virtual image of the Throne of Bhaal BGMain.exe in memory.
It's also used by multiple mods, for it's multiple features that can be enabled and disabled easily.
Unlike the Taimon's hacks, it does it virtually, which means that all the other BGMain.exe edits are retained, as there's no need to overwrite files, or any as much destructive acts.
There's no mention of, nor any thing that would hint it to modify the behavior of timers, that I can find.
Edited by The Imp, 14 November 2015 - 09:07 AM.
Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit).
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.
#19
Posted 14 November 2015 - 04:17 PM
I understand what extras do, but I don't understand what the core part of ToBEx is doing to the game. My game runs very fast. I can easily switch between the full-screen game and other windows (other programs) just by clicking Windows button and I don't think modifying a virtual image would make it work better.
#20
Posted 14 November 2015 - 04:54 PM
Well, partly the archaic copyright the game is under is that you shouldn't mess with the bgmain.exe, this goes completely around that.
The core part is just the not in tests(as in, ~130 approved enhancements) portions of the code, things like allowing to get more debug info, more than 10 kits to be in one class selection screen, having more than 24 spells cast-able from a single spell level etc(the user interface is also enhanced to allow their viewing), enabling more opcodes and that sort of things. Nearly all the descriptions can be read from here, their usage can individually be enabled or disabled in the control (TobExCore).ini file, just like the additional optional components, but those are controlled by the other .ini file.
Those are the things I know off... there's others, that I have no clue.
Edited by The Imp, 14 November 2015 - 05:53 PM.
Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit).
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.