Browse Source

Bleeding doesn't kill non-player characters.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14241 54d463be-8e91-2dee-dedb-b68131a5f0ec
Inkfish 15 years ago
parent
commit
be4fc45134
2 changed files with 8 additions and 4 deletions
  1. 2 0
      Changelog-Trunk.txt
  2. 6 4
      src/map/status.c

+ 2 - 0
Changelog-Trunk.txt

@@ -3,6 +3,8 @@ Date	Added
 AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
+2010/02/07
+	* Bleeding doesn't kill non-player characters. [Inkfish]
 2010/02/06
 	* Added official packet to display received expirience. [Inkfish]
 2010/01/30

+ 6 - 4
src/map/status.c

@@ -6990,13 +6990,15 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr data)
 
 	case SC_BLEEDING:
 		if (--(sce->val4) >= 0) {
-			int flag;
+			int flag, hp =  rand()%600 + 200;
 			map_freeblock_lock();
-			status_fix_damage(NULL, bl, rand()%600 + 200, 0);
+			status_fix_damage(NULL, bl, sd||hp<status->hp?hp:status->hp-1, 0);
 			flag = !sc->data[type];
 			map_freeblock_unlock();
-			if (flag) return 0; //SC already ended.
-			sc_timer_next(10000 + tick, status_change_timer, bl->id, data); 
+			if( !flag ) {
+				if( status->hp == 1 ) break;
+				sc_timer_next(10000 + tick, status_change_timer, bl->id, data);
+			}
 			return 0;
 		}
 		break;