|
@@ -3892,6 +3892,11 @@ static int skill_timerskill(int tid, unsigned int tick, int id, intptr_t data)
|
|
map_foreachinarea(skill_frostjoke_scream,skl->map,skl->x-range,skl->y-range,
|
|
map_foreachinarea(skill_frostjoke_scream,skl->map,skl->x-range,skl->y-range,
|
|
skl->x+range,skl->y+range,BL_CHAR,src,skl->skill_id,skl->skill_lv,tick);
|
|
skl->x+range,skl->y+range,BL_CHAR,src,skl->skill_id,skl->skill_lv,tick);
|
|
break;
|
|
break;
|
|
|
|
+ case PR_LEXDIVINA:
|
|
|
|
+ case PR_STRECOVERY:
|
|
|
|
+ case BS_HAMMERFALL:
|
|
|
|
+ sc_start(src, target, status_skill2sc(skl->skill_id), skl->type, skl->skill_lv, skill_get_time2(skl->skill_id, skl->skill_lv));
|
|
|
|
+ break;
|
|
case NPC_EARTHQUAKE:
|
|
case NPC_EARTHQUAKE:
|
|
if( skl->type > 1 )
|
|
if( skl->type > 1 )
|
|
skill_addtimerskill(src,tick+250,src->id,0,0,skl->skill_id,skl->skill_lv,skl->type-1,skl->flag);
|
|
skill_addtimerskill(src,tick+250,src->id,0,0,skl->skill_id,skl->skill_lv,skl->type-1,skl->flag);
|
|
@@ -5998,10 +6003,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|
|
|
|
|
case PR_LEXDIVINA:
|
|
case PR_LEXDIVINA:
|
|
case MER_LEXDIVINA:
|
|
case MER_LEXDIVINA:
|
|
- if( tsce )
|
|
|
|
- status_change_end(bl,type, INVALID_TIMER);
|
|
|
|
|
|
+ if (tsce)
|
|
|
|
+ status_change_end(bl, type, INVALID_TIMER);
|
|
else
|
|
else
|
|
- sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv));
|
|
|
|
|
|
+ skill_addtimerskill(src, tick+1000, bl->id, 0, 0, skill_id, skill_lv, 100, flag);
|
|
clif_skill_nodamage (src, bl, skill_id, skill_lv, 1);
|
|
clif_skill_nodamage (src, bl, skill_id, skill_lv, 1);
|
|
break;
|
|
break;
|
|
|
|
|
|
@@ -6699,9 +6704,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|
break;
|
|
break;
|
|
|
|
|
|
case BS_HAMMERFALL:
|
|
case BS_HAMMERFALL:
|
|
- clif_skill_nodamage(src,bl,skill_id,skill_lv,
|
|
|
|
- sc_start(src,bl,SC_STUN,(20 + 10 * skill_lv),skill_lv,skill_get_time2(skill_id,skill_lv)));
|
|
|
|
|
|
+ skill_addtimerskill(src, tick+1000, bl->id, 0, 0, skill_id, skill_lv, (20 + 10 * skill_lv), flag);
|
|
break;
|
|
break;
|
|
|
|
+
|
|
case RG_RAID:
|
|
case RG_RAID:
|
|
skill_area_temp[1] = 0;
|
|
skill_area_temp[1] = 0;
|
|
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
|
|
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
|
|
@@ -6971,7 +6976,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|
case BA_FROSTJOKER:
|
|
case BA_FROSTJOKER:
|
|
case DC_SCREAM:
|
|
case DC_SCREAM:
|
|
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
|
|
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
|
|
- skill_addtimerskill(src,tick+2000,bl->id,src->x,src->y,skill_id,skill_lv,0,flag);
|
|
|
|
|
|
+ skill_addtimerskill(src,tick+3000,bl->id,src->x,src->y,skill_id,skill_lv,0,flag);
|
|
|
|
|
|
if (md) {
|
|
if (md) {
|
|
// custom hack to make the mob display the skill, because these skills don't show the skill use text themselves
|
|
// custom hack to make the mob display the skill, because these skills don't show the skill use text themselves
|
|
@@ -7098,14 +7103,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|
status_change_end(bl, SC_WHITEIMPRISON, INVALID_TIMER);
|
|
status_change_end(bl, SC_WHITEIMPRISON, INVALID_TIMER);
|
|
}
|
|
}
|
|
status_change_end(bl, SC_STASIS, INVALID_TIMER);
|
|
status_change_end(bl, SC_STASIS, INVALID_TIMER);
|
|
- //Is this equation really right? It looks so... special.
|
|
|
|
if(battle_check_undead(tstatus->race,tstatus->def_ele))
|
|
if(battle_check_undead(tstatus->race,tstatus->def_ele))
|
|
- {
|
|
|
|
- status_change_start(src,bl, SC_BLIND,
|
|
|
|
- 100*(100-(tstatus->int_/2+tstatus->vit/3+tstatus->luk/10)),
|
|
|
|
- 1,0,0,0,
|
|
|
|
- skill_get_time2(skill_id, skill_lv) * (100-(tstatus->int_+tstatus->vit)/2)/100,SCSTART_NONE);
|
|
|
|
- }
|
|
|
|
|
|
+ skill_addtimerskill(src, tick+1000, bl->id, 0, 0, skill_id, skill_lv, 100, flag);
|
|
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
|
|
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
|
|
if(dstmd)
|
|
if(dstmd)
|
|
mob_unlocktarget(dstmd,tick);
|
|
mob_unlocktarget(dstmd,tick);
|