SphereServer BugTracker - SphereServer
View Issue Details
0002151SphereServerexecutable - windows buildpublic26-03-13 02:0027-03-13 02:56
EXTREME 
Ben 
normalminoralways
closedno change required 
WindowsSeven 64
20-09-2009, 0.56b Prerelease 
 
Not Available
New_Triggers, Item_Strict_Comparison, NewPositionChecks, Script_Profiler, DamageTools
Command_Sysmsgs, FileCommands, NoHouseMuteSpeech, NoPrefix
0002151: ON=@TIMER Problem
I have tested a long time ago that the on=@timer is firing every second, so its was giving problems with common things.

I recorded 2 videos that shows whats happening...
The first one:
- using function teste1 made by me, that creates an item and your char will equip it. when equipped, will broadcast 'TESTING' and give timer = 5 to item, and when on=@timer is fired, broadcasts 'TESTED', then the item is removed.
with a script running in Injection, I'm measuring the real timer that sphere is using to do the '5 seconds' timer.

you can see everything here:
https://dl.dropbox.com/u/51370445/Untitled%202.avi [^]

the second one:
- using the same function (teste2 on bottom) but using timerf instead creating the item and setting timer = 5... it works FINE
you can see it here:
https://dl.dropbox.com/u/51370445/Untitled%204.avi [^]

So, what I think is: something is broke or the on=@timer being fired only every second is very sucks.

If you need more informations, just tell me.

Thanks!
[ITEMDEF I_MEMORY_OI]
ID I_MEMORY
TYPE T_EQ_SCRIPT

ON=@EQUIP
SERV.B TESTING
TIMER 5
ON=@TIMER
SERV.B TESTED
REMOVE

[FUNCTION TESTE1]
SERV.NEWITEM I_MEMORY_OI
SRC.EQUIP <NEW>
RETURN 1

[FUNCTION TESTE2]
SYSMESSAGE TESTING
TIMERF 5,SYSMESSAGE TESTED
RETURN 1

Injection code:
sub teste1()
var d
while not uo.dead()
 while not uo.injournal('TESTING')
  wait(1)
 wend
 d = 0
 repeat
  wait(1)
  d = d + 1
 until uo.injournal('TESTED')
 uo.print(str(d))
 uo.deletejournal()
wend
endsub
No tags attached.
Issue History
26-03-13 02:00EXTREMENew Issue
26-03-13 21:10xwerswoodxNote Added: 0001529
27-03-13 00:38EXTREMENote Added: 0001530
27-03-13 02:56BenNote Added: 0001531
27-03-13 02:56BenStatusnew => closed
27-03-13 02:56BenAssigned To => Ben
27-03-13 02:56BenResolutionopen => no change required

Notes
(0001529)
xwerswoodx   
26-03-13 21:10   
did you try?
CONT.SYSMESSAGE TESTING
(0001530)
EXTREME   
27-03-13 00:38   
Nothing will change because the problem is when the trigger is fired... :/
(0001531)
Ben   
27-03-13 02:56   
Timers are affected by server process time... there is nothing that can be done for this.
Timerf are parsed early in the cycle where as an item timer is process later causing more inconsistencies in the precision.