diff options
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index b1b0ed2fb..433c03a93 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -8224,7 +8224,7 @@ int skill_status_change_timer(int tid, unsigned int tick, int id, int data) else sc_data[type].timer=add_timer(1000+tick,skill_status_change_timer, bl->id, data ); break; - case SC_TENSIONRELAX: /* テンションリラックス */ + case SC_TENSIONRELAX: /* テンションリラックス */ if(sd){ /* SPがあって、HPが?タンでなければ?? */ if( sd->status.sp > 12 && sd->status.max_hp > sd->status.hp ){ /* if(sc_data[type].val2 % (sc_data[type].val1+3) ==0 ){ @@ -8240,6 +8240,25 @@ int skill_status_change_timer(int tid, unsigned int tick, int id, int data) skill_status_change_end(&sd->bl,SC_TENSIONRELAX,-1); } break; + case SC_HEADCRUSH: // temporary damage [celest] +// case SC_BLEEDING: + case SC_POISON2: + if((--sc_data[type].val3) > 0) { + int hp = battle_get_max_hp(bl); + if(bl->type == BL_PC) { + hp = 3 + hp*3/200; + pc_heal((struct map_session_data *)bl,-hp,0); + } + else if(bl->type == BL_MOB) { + struct mob_data *md; + if((md=((struct mob_data *)bl)) == NULL) + break; + hp = 3 + hp/200; + md->hp -= hp; + } + sc_data[type].timer=add_timer(1000+tick,skill_status_change_timer, bl->id, data ); + } + break; /* 時間切れ無し?? */ case SC_AETERNA: |