summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt2
-rw-r--r--src/map/status.c10
2 files changed, 8 insertions, 4 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index bee9eefda..bfa0f7a33 100644
--- a/Changelog-Trunk.txt
+++ b/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
diff --git a/src/map/status.c b/src/map/status.c
index 2017a12fc..16eec43c1 100644
--- a/src/map/status.c
+++ b/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;