diff options
-rw-r--r-- | Changelog-Trunk.txt | 2 | ||||
-rw-r--r-- | src/map/status.c | 10 |
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; |