diff options
-rw-r--r-- | db/re/level_penalty.txt | 2 | ||||
-rw-r--r-- | src/map/skill.c | 25 |
2 files changed, 16 insertions, 11 deletions
diff --git a/db/re/level_penalty.txt b/db/re/level_penalty.txt index 405a2cf51..81b33c141 100644 --- a/db/re/level_penalty.txt +++ b/db/re/level_penalty.txt @@ -28,7 +28,7 @@ 1,11,4,110 1,11,3,105 1,11,0,100 -1,11,11,100 +1,11,-1,100 1,11,-6,95 1,11,-11,90 1,11,-16,85 diff --git a/src/map/skill.c b/src/map/skill.c index ae168a1a2..ef1089f26 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -2375,12 +2375,6 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds case WL_CHAINLIGHTNING_ATK: dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,1,WL_CHAINLIGHTNING,-2,6); break; - case WL_TETRAVORTEX_FIRE: - case WL_TETRAVORTEX_WATER: - case WL_TETRAVORTEX_WIND: - case WL_TETRAVORTEX_GROUND: - dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,1,WL_TETRAVORTEX_FIRE,-2,type); - break; case LG_OVERBRAND_BRANDISH: case LG_OVERBRAND_PLUSATK: case EL_FIRE_BOMB: @@ -3153,7 +3147,7 @@ static int skill_timerskill(int tid, unsigned int tick, int id, intptr_t data) case WL_TETRAVORTEX_WATER: case WL_TETRAVORTEX_WIND: case WL_TETRAVORTEX_GROUND: - skill_attack(BF_MAGIC,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag); + skill_attack(BF_MAGIC,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag|SD_ANIMATION); skill_toggle_magicpower(src, skl->skill_id); // only the first hit will be amplify if( skl->type >= 3 ) { // Final Hit @@ -4180,8 +4174,8 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int case WLS_WATER: subskill = WL_TETRAVORTEX_WATER; k |= 2; break; case WLS_STONE: subskill = WL_TETRAVORTEX_GROUND; k |= 8; break; } - - skill_addtimerskill(src,tick+status_get_adelay(src)*i,bl->id,k,0,subskill,skilllv,i,flag); + skill_addtimerskill(src, tick + i * 200, bl->id, k, 0, subskill, skilllv, i, flag); + clif_skill_nodamage(src, bl, subskill, skilllv, 1); status_change_end(src, spheres[i], INVALID_TIMER); } } @@ -6302,6 +6296,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case SC_FIGHTINGSPIRIT: case SC_ABUNDANCE: case SC__SHADOWFORM: case SC_LEADERSHIP: case SC_GLORYWOUNDS: case SC_SOULCOLD: case SC_HAWKEYES: case SC_GUILDAURA: case SC_PUSH_CART: +#ifdef RENEWAL + case SC_EXTREMITYFIST2: +#endif continue; /** * bugreport:4888 these songs may only be dispelled if you're not in their song area anymore @@ -6857,6 +6854,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in #ifdef RENEWAL sp1 = sp1 / 2; sp2 = sp2 / 2; + if( tsc && tsc->data[SC_EXTREMITYFIST2] ) + sp1 = tstatus->sp; #endif status_set_sp(src, sp2, 3); status_set_sp(bl, sp1, 3); @@ -7669,7 +7668,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case SC_STEALTHFIELD_MASTER: case SC_STEALTHFIELD: case SC_LEADERSHIP: case SC_GLORYWOUNDS: case SC_SOULCOLD: case SC_HAWKEYES: case SC_GUILDAURA: case SC_PUSH_CART: - case SC_PARTYFLEE: + case SC_PARTYFLEE: +#ifdef RENEWAL + case SC_EXTREMITYFIST2: +#endif continue; case SC_ASSUMPTIO: if( bl->type == BL_MOB ) @@ -9142,6 +9144,9 @@ int skill_castend_id(int tid, unsigned int tick, int id, intptr_t data) { //End states status_change_end(src, SC_EXPLOSIONSPIRITS, INVALID_TIMER); status_change_end(src, SC_BLADESTOP, INVALID_TIMER); +#ifdef RENEWAL + sc_start(src, SC_EXTREMITYFIST2, 100, ud->skilllv, skill_get_time(ud->skillid, ud->skilllv)); +#endif } if (target && target->m == src->m) { //Move character to target anyway. |