SphereCommunity
TIMERF? - Printable Version

+- SphereCommunity (https://forum.spherecommunity.net)
+-- Forum: Sphere 0.56d (/Forum-Sphere-0-56d)
+--- Forum: Script Help (/Forum-Script-Help)
+--- Thread: TIMERF? (/Thread-TIMERF)



TIMERF? - Llirik - 05-18-2016 11:51 AM

How can I use the functions:

ISTIMERF.function
&
TIMERF STOP, function

?

I set 1 timerf on char, but this functions isn't work, but TIMERF CLEAR work well! Maybe because i'm set 1 timerf on char? And i'm need sets many anothers TIMERF functions? Thanks!


RE: TIMERF? - Llirik - 05-18-2016 02:04 PM

ISTIMERF.<my_func>
TIMERF STOP, <my_func>
?

I'm use the Sphere 0.56b or 0.56b don't work?


RE: TIMERF? - Coruja - 05-18-2016 02:17 PM

Code:
[FUNTION SayLOL]
SAY lol

TIMERF 5,SayLOL <- run the function SayLOL on the char/item after 5 seconds
ISTIMERF.SayLOL <- check if there's any SayLOL timerf running on this char/item
TIMERF STOP,SayLOL <- stop only SayLOL timerf running on this char/item
TIMERF CLEAR <- stop all timerf running on this char/item


RE: TIMERF? - Llirik - 05-18-2016 02:22 PM

[FUNCTION legend_jail]
targetf f_legend_jail

[FUNCTION f_legend_jail]
if !<argo.isplayer>
src.sysmessage Isn't player!
return 1
endif
if <argo.account.jail> // ISTIMERF.f_legend_jail_timer?
src.sysmessage [jailed]
else
argo.events +e_legendjail
argo.jail
argo.tag0.bail=1
argo.tag0.bailcost=100000
argo.tag0.jailtime=120 // 24 hours
argo.timerf 1, f_legend_jail_timer
endif

[FUNCTION f_legend_jail_timer]
if (<tag0.jailtime> <= 0)
dialogclose d_pay_bail
events -e_legendjail
kills=0
forgive
go Britain
tag0.bail=0
tag0.bailcost=0
update
return 1 // TIMERF STOP,f_legend_jail_timer?
endif
if <isonline>
tag0.jailtime -= 1
endif

serv.log <eval <tag0.jailtime>> TEST

timerf 1, f_legend_jail_timer


[FUNCTION legend_forgive]
targetf f_legend_forgive

[FUNCTION f_legend_forgive]
argo.tag0.jailtime=0



[EVENTS e_legendjail]
ON=@ClientToolTip
LOCAL.JHOURS=<eval (<i.tag0.jailtime>/3600)>
LOCAL.JMINS=<eval ((<i.tag0.jailtime>/60)-(<LOCAL.JHOURS>*60))>
LOCAL.JSECS=<eval (((<i.tag0.jailtime>-(<LOCAL.JHOURS>*3600))-(<LOCAL.JMINS>*60))>
SRC.ADDCLILOC 1042971,[Jailed; <eval <LOCAL.JHOURS>>:<eval <LOCAL.JMINS>>:<eval <LOCAL.JSECS>> remaining]




[ITEMDEF i_bail_stone]
ID=i_grave_stone
NAME=bail stone
TYPE=t_normal

ON=@CREATE
COLOR=0455

ON=@DCLICK
IF (<SRC.TAG0.BAIL>==1)
SDIALOG d_pay_bail
ENDIF
RETURN 1

[DIALOG d_pay_bail]
0,0
noclose
resizepic 0 0 2620 230 100
dtext 15 5 50 Штраф: <EVAL <SRC.TAG0.BAILCOST>>
dtext 15 25 480 Хотите ли вы платить его?
dtext 140 60 480 Да
dtext 60 60 480 Нет
button 25 60 4005 4006 1 0 0
button 100 60 4005 4006 1 0 1

[DIALOG d_pay_bail BUTTON]
ON=0
RETURN 1

ON=1
if !<SRC.TAG0.BAIL>
src.sysmessage @025,,1 Не читери!
return 1
endif
IF (<SRC.GOLD> >= <EVAL <SRC.TAG0.BAILCOST>>)
SRC.GOLD -= <EVAL <SRC.TAG0.BAILCOST>>
SRC.UPDATE
src.tag0.jailtime=0
ELSE
src.sysmessage @025,,1 Вам не хватает золота!
ENDIF

This right?

I'm use return 1 for break timerf!

timerf STOP,f_legend_jail_timer

07:33:ERROR:(jail.scp,30)Undefined symbol 'STOP'


RE: TIMERF? - pointhz - 05-19-2016 05:50 AM

You probably don't have a sphere version with those functions's update.

You may as well want to store the timer into a memory item and not attach it to a tag.


RE: TIMERF? - Llirik - 05-19-2016 02:54 PM

Thank you! May I break function with return 1 well?


RE: TIMERF? - pointhz - 05-20-2016 05:07 AM

Ye you may, since the return 1 is inside the function you want to break.