diff options
Diffstat (limited to 'src/map/status.c')
-rw-r--r-- | src/map/status.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/map/status.c b/src/map/status.c index 88e13fedf..a407f86f8 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -2114,6 +2114,8 @@ int status_calc_batk(struct block_list *bl, int batk) batk -= batk * 25/100;
if(sc_data[SC_CURSE].timer!=-1)
batk -= batk * 25/100;
+ if(sc_data[SC_BLEEDING].timer != -1)
+ batk -= batk * 25/100;
}
return batk;
@@ -2475,6 +2477,8 @@ int status_calc_aspd_rate(struct block_list *bl, int aspd_rate) aspd_rate += 25;
if(sc_data[SC_GRAVITATION].timer!=-1)
aspd_rate += sc_data[SC_GRAVITATION].val2;
+ if(sc_data[SC_BLEEDING].timer != -1)
+ aspd_rate += 25;
if(sc_data[SC_JOINTBEAT].timer!=-1) {
if (sc_data[SC_JOINTBEAT].val2 == 1)
aspd_rate += 25;
@@ -4258,6 +4262,10 @@ int status_change_start(struct block_list *bl,int type,int val1,int val2,int val }
break;
case SC_CONFUSION:
+ if(!(flag&2)) {
+ int sc_def = 100 - status_get_vit(bl);
+ tick = tick * sc_def / 100;
+ }
clif_emotion(bl,1);
break;
case SC_BLIND: /* ˆÃ? */
|