diff options
author | Jesusaves <cpntb1@ymail.com> | 2022-11-07 00:25:17 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2022-11-07 00:25:17 -0300 |
commit | 1ce45e518bec34cbefe1efa56b776a08ba4e68be (patch) | |
tree | cc8c080c7c9bada782d0ff6531cdc684e0549d00 /npc/functions/timer.txt | |
parent | 5c65874cc82bc7e33b86cad89619470bb40073be (diff) | |
download | serverdata-1ce45e518bec34cbefe1efa56b776a08ba4e68be.tar.gz serverdata-1ce45e518bec34cbefe1efa56b776a08ba4e68be.tar.bz2 serverdata-1ce45e518bec34cbefe1efa56b776a08ba4e68be.tar.xz serverdata-1ce45e518bec34cbefe1efa56b776a08ba4e68be.zip |
Some minor changes to make sure dead people will run only the correct timers
Diffstat (limited to 'npc/functions/timer.txt')
-rw-r--r-- | npc/functions/timer.txt | 40 |
1 files changed, 34 insertions, 6 deletions
diff --git a/npc/functions/timer.txt b/npc/functions/timer.txt index ee96b2191..79a33a851 100644 --- a/npc/functions/timer.txt +++ b/npc/functions/timer.txt @@ -1,10 +1,15 @@ // Evol Script // Authors: Gumi, Jesusalva -// areatimer("<map>", <x1>, <y1>, <x2>, <y2>, <tick>, "<npc>::<event>") +// areatimer("<map>", <x1>, <y1>, <x2>, <y2>, <tick>, "<npc>::<event>", dead=False) function script areatimer { .@c = getunits(BL_PC, .@players, false, getarg(0), getarg(1), getarg(2), getarg(3), getarg(4)); for (.@i = 0; .@i < .@c; .@i++) { + if (!getarg(7, false)) { + if (ispcdead(strcharinfo(0, "", .@players[.@i]))) { + continue; + } + } addtimer(getarg(5), getarg(6), .@players[.@i]); } return .@i; @@ -19,39 +24,57 @@ function script areadeltimer { return .@i; } -// areatimer2("<map>", <x1>, <y1>, <x2>, <y2>, <tick>, "<npc>::<event>") +// areatimer2("<map>", <x1>, <y1>, <x2>, <y2>, <tick>, "<npc>::<event>", dead=False) function script areatimer2 { .@c = getunits(BL_PC, .@players, false, getarg(0), getarg(1), getarg(2), getarg(3), getarg(4)); for (.@i = 0; .@i < .@c; .@i++) { deltimer(getarg(6), .@players[.@i]); + if (!getarg(7, false)) { + if (ispcdead(strcharinfo(0, "", .@players[.@i]))) { + continue; + } + } addtimer(getarg(5), getarg(6), .@players[.@i]); } return .@i; } -// addtimer2(<tick>, "<npc>::<event>") +// addtimer2(<tick>, "<npc>::<event>", dead=False) function script addtimer2 { deltimer(getarg(1)); + if (!getarg(2, false)) { + if (ispcdead()) return; + } addtimer(getarg(0), getarg(1)); return; } -// maptimer("<map>", <tick>, "<npc>::<event>") +// maptimer("<map>", <tick>, "<npc>::<event>", dead=False) function script maptimer { .@c = getunits(BL_PC, .@players, false, getarg(0)); for (.@i = 0; .@i < .@c; .@i++) { + if (!getarg(3, false)) { + if (ispcdead(strcharinfo(0, "", .@players[.@i]))) { + continue; + } + } addtimer(getarg(1), getarg(2), .@players[.@i]); } return .@i; } // Same as maptimer() but deletes any previously running timer -// maptimer2("<map>", <tick>, "<npc>::<event>") +// maptimer2("<map>", <tick>, "<npc>::<event>", dead=False) function script maptimer2 { .@c = getunits(BL_PC, .@players, false, getarg(0)); for (.@i = 0; .@i < .@c; .@i++) { deltimer(getarg(2), .@players[.@i]); + if (!getarg(3, false)) { + if (ispcdead(strcharinfo(0, "", .@players[.@i]))) { + continue; + } + } addtimer(getarg(1), getarg(2), .@players[.@i]); } return .@i; @@ -66,10 +89,15 @@ function script mapdeltimer { return .@i; } -// partytimer("<map>", <tick>, "<npc>::<event>", partyid) +// partytimer("<map>", <tick>, "<npc>::<event>", partyid, dead=False) function script partytimer { .@c = getunits(BL_PC, .@players, false, getarg(0)); for (.@i = 0; .@i < .@c; .@i++) { + if (!getarg(4, false)) { + if (ispcdead(strcharinfo(0, "", .@players[.@i]))) { + continue; + } + } if (getcharid(1, strcharinfo(0,"",.@players[.@i]) ) == getarg(3)) addtimer(getarg(1), getarg(2), .@players[.@i]); } |