summaryrefslogtreecommitdiff
path: root/src/map/status.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/status.c')
-rw-r--r--src/map/status.c10
1 files changed, 6 insertions, 4 deletions
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;