From f33806e6fd7e6e7f41cb87a47b6c4727636394d2 Mon Sep 17 00:00:00 2001 From: skotlex Date: Tue, 7 Feb 2006 02:52:55 +0000 Subject: - Fixed startnpctimer starting multiple timers if the npc timer was already started. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5208 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 2 ++ src/map/npc.c | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index f6dceae4e..8f8041da4 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -5,6 +5,8 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EV GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS 2006/02/06 + * Fixed startnpctimer starting multiple timers instead of failing when the + npc timer is already running. [Skotlex] * Venom Splasher update: [Skotlex] - always hits (but splash damage targets can still avoid it) - Being hit does not cancels it, diff --git a/src/map/npc.c b/src/map/npc.c index e02b31741..9d6d25cbb 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -640,6 +640,13 @@ int npc_timerevent_start(struct npc_data *nd, int rid) return 1; } } + //Check if timer is already started. + if (sd) { + if (sd->npc_timer_id != -1) + return 0; + } else if (nd->u.scr.timerid != -1) + return 0; + ted = ers_alloc(timer_event_ers, struct timer_event_data); ted->next = j; nd->u.scr.timertick=ted->otick=gettick(); -- cgit v1.2.3-70-g09d2