Pārlūkot izejas kodu

- Fixed startnpctimer starting multiple timers if the npc timer was already started.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5208 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 19 gadi atpakaļ
vecāks
revīzija
1e07d35220
2 mainītis faili ar 9 papildinājumiem un 0 dzēšanām
  1. 2 0
      Changelog-Trunk.txt
  2. 7 0
      src/map/npc.c

+ 2 - 0
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,

+ 7 - 0
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();