|
@@ -3346,7 +3346,7 @@ void skill_combo(struct block_list* src,struct block_list *dsrc, struct block_li
|
|
if(sd && duration==1) duration = DIFF_TICK(sd->ud.canact_tick, tick); //Auto calc duration
|
|
if(sd && duration==1) duration = DIFF_TICK(sd->ud.canact_tick, tick); //Auto calc duration
|
|
duration = i64max(status_get_amotion(src),duration); //Never less than aMotion
|
|
duration = i64max(status_get_amotion(src),duration); //Never less than aMotion
|
|
sc_start4(src,src,SC_COMBO,100,skill_id,target_id,nodelay,0,duration);
|
|
sc_start4(src,src,SC_COMBO,100,skill_id,target_id,nodelay,0,duration);
|
|
- clif_combo_delay(src, duration);
|
|
|
|
|
|
+ clif_combo_delay( *src, duration );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -3721,7 +3721,7 @@ int64 skill_attack (int32 attack_type, struct block_list* src, struct block_list
|
|
nbl = battle_getenemyarea(bl,bl->x,bl->y,2,BL_CHAR,bl->id);
|
|
nbl = battle_getenemyarea(bl,bl->x,bl->y,2,BL_CHAR,bl->id);
|
|
if( nbl ){ // Only one target is chosen.
|
|
if( nbl ){ // Only one target is chosen.
|
|
damage = damage / 2; // Deflect half of the damage to a target nearby
|
|
damage = damage / 2; // Deflect half of the damage to a target nearby
|
|
- clif_skill_damage(bl, nbl, tick, status_get_amotion(src), 0, battle_fix_damage(bl,nbl,damage,0,0), dmg.div_, OB_OBOROGENSOU_TRANSITION_ATK, -1, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *bl, *nbl, tick, status_get_amotion(src), 0, battle_fix_damage(bl,nbl,damage,0,0), dmg.div_, OB_OBOROGENSOU_TRANSITION_ATK, -1, DMG_SINGLE );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -3794,7 +3794,7 @@ int64 skill_attack (int32 attack_type, struct block_list* src, struct block_list
|
|
//Display damage.
|
|
//Display damage.
|
|
switch( skill_id ) {
|
|
switch( skill_id ) {
|
|
case PA_GOSPEL: //Should look like Holy Cross [Skotlex]
|
|
case PA_GOSPEL: //Should look like Holy Cross [Skotlex]
|
|
- dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion, damage, dmg.div_, CR_HOLYCROSS, -1, DMG_SPLASH);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, CR_HOLYCROSS, -1, DMG_SPLASH );
|
|
break;
|
|
break;
|
|
//Skills that need be passed as a normal attack for the client to display correctly.
|
|
//Skills that need be passed as a normal attack for the client to display correctly.
|
|
case NPC_SELFDESTRUCTION:
|
|
case NPC_SELFDESTRUCTION:
|
|
@@ -3812,12 +3812,12 @@ int64 skill_attack (int32 attack_type, struct block_list* src, struct block_list
|
|
|
|
|
|
case AS_SPLASHER:
|
|
case AS_SPLASHER:
|
|
if( flag&SD_ANIMATION ) // the surrounding targets
|
|
if( flag&SD_ANIMATION ) // the surrounding targets
|
|
- dmg.dmotion = clif_skill_damage(dsrc,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SPLASH); // needs -1 as skill level
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SPLASH ); // needs -1 as skill level
|
|
else // the central target doesn't display an animation
|
|
else // the central target doesn't display an animation
|
|
- dmg.dmotion = clif_skill_damage(dsrc,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -2, DMG_SPLASH); // needs -2(!) as skill level
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -2, DMG_SPLASH ); // needs -2(!) as skill level
|
|
break;
|
|
break;
|
|
case SR_EARTHSHAKER:
|
|
case SR_EARTHSHAKER:
|
|
- dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,1,skill_id,-2,DMG_SINGLE);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, 1, skill_id, -2, DMG_SINGLE );
|
|
break;
|
|
break;
|
|
case WL_SOULEXPANSION:
|
|
case WL_SOULEXPANSION:
|
|
case WL_COMET:
|
|
case WL_COMET:
|
|
@@ -3826,19 +3826,19 @@ int64 skill_attack (int32 attack_type, struct block_list* src, struct block_list
|
|
#ifndef RENEWAL
|
|
#ifndef RENEWAL
|
|
case NJ_HUUMA:
|
|
case NJ_HUUMA:
|
|
#endif
|
|
#endif
|
|
- dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,skill_id,skill_lv,DMG_MULTI_HIT);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, skill_lv, DMG_MULTI_HIT );
|
|
break;
|
|
break;
|
|
case WL_CHAINLIGHTNING_ATK:
|
|
case WL_CHAINLIGHTNING_ATK:
|
|
- dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,1,WL_CHAINLIGHTNING_ATK,-2,DMG_SINGLE);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, 1, WL_CHAINLIGHTNING_ATK, -2, DMG_SINGLE );
|
|
break;
|
|
break;
|
|
case WL_TETRAVORTEX_FIRE:
|
|
case WL_TETRAVORTEX_FIRE:
|
|
- dmg.dmotion = clif_skill_damage(dsrc, bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, WL_TETRAVORTEX_WIND, -1, DMG_SPLASH);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, WL_TETRAVORTEX_WIND, -1, DMG_SPLASH );
|
|
break;
|
|
break;
|
|
case LG_SHIELDPRESS:
|
|
case LG_SHIELDPRESS:
|
|
- dmg.dmotion = clif_skill_damage(dsrc, bl, tick, status_get_amotion(src), dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SINGLE);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, status_get_amotion(src), dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SINGLE );
|
|
break;
|
|
break;
|
|
case NPC_EARTHQUAKE:
|
|
case NPC_EARTHQUAKE:
|
|
- dmg.dmotion = clif_skill_damage(src, bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_ENDURE);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_ENDURE );
|
|
break;
|
|
break;
|
|
case NPC_DARKPIERCING:
|
|
case NPC_DARKPIERCING:
|
|
case EL_FIRE_BOMB:
|
|
case EL_FIRE_BOMB:
|
|
@@ -3860,19 +3860,19 @@ int64 skill_attack (int32 attack_type, struct block_list* src, struct block_list
|
|
case KO_BAKURETSU:
|
|
case KO_BAKURETSU:
|
|
case GN_HELLS_PLANT_ATK:
|
|
case GN_HELLS_PLANT_ATK:
|
|
case SU_SV_ROOTTWIST_ATK:
|
|
case SU_SV_ROOTTWIST_ATK:
|
|
- dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,skill_id,-1,DMG_SPLASH);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SPLASH );
|
|
break;
|
|
break;
|
|
case GN_FIRE_EXPANSION_ACID:
|
|
case GN_FIRE_EXPANSION_ACID:
|
|
- dmg.dmotion = clif_skill_damage(dsrc, bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, CR_ACIDDEMONSTRATION, skill_lv, DMG_MULTI_HIT);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, CR_ACIDDEMONSTRATION, skill_lv, DMG_MULTI_HIT );
|
|
break;
|
|
break;
|
|
case GN_SLINGITEM_RANGEMELEEATK:
|
|
case GN_SLINGITEM_RANGEMELEEATK:
|
|
- dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,GN_SLINGITEM,-2,DMG_SINGLE);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, GN_SLINGITEM, -2, DMG_SINGLE );
|
|
break;
|
|
break;
|
|
case EL_STONE_RAIN:
|
|
case EL_STONE_RAIN:
|
|
- dmg.dmotion = clif_skill_damage(dsrc,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,skill_id,-1,(flag&1)?DMG_MULTI_HIT:DMG_SPLASH);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, (flag&1) ? DMG_MULTI_HIT : DMG_SPLASH );
|
|
break;
|
|
break;
|
|
case WM_SEVERE_RAINSTORM_MELEE:
|
|
case WM_SEVERE_RAINSTORM_MELEE:
|
|
- dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,WM_SEVERE_RAINSTORM,-2,DMG_SPLASH);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, WM_SEVERE_RAINSTORM, -2, DMG_SPLASH );
|
|
break;
|
|
break;
|
|
case HT_CLAYMORETRAP:
|
|
case HT_CLAYMORETRAP:
|
|
case HT_BLASTMINE:
|
|
case HT_BLASTMINE:
|
|
@@ -3881,20 +3881,20 @@ int64 skill_attack (int32 attack_type, struct block_list* src, struct block_list
|
|
case RA_CLUSTERBOMB:
|
|
case RA_CLUSTERBOMB:
|
|
case RA_FIRINGTRAP:
|
|
case RA_FIRINGTRAP:
|
|
case RA_ICEBOUNDTRAP:
|
|
case RA_ICEBOUNDTRAP:
|
|
- dmg.dmotion = clif_skill_damage(src, bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, (flag&SD_LEVEL) ? -1 : skill_lv, DMG_SPLASH);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, (flag&SD_LEVEL) ? -1 : skill_lv, DMG_SPLASH );
|
|
if( dsrc != src ) // avoid damage display redundancy
|
|
if( dsrc != src ) // avoid damage display redundancy
|
|
break;
|
|
break;
|
|
[[fallthrough]];
|
|
[[fallthrough]];
|
|
case HT_LANDMINE:
|
|
case HT_LANDMINE:
|
|
- dmg.dmotion = clif_skill_damage(dsrc,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, dmg_type);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, dmg_type );
|
|
break;
|
|
break;
|
|
case WZ_SIGHTBLASTER:
|
|
case WZ_SIGHTBLASTER:
|
|
//Sightblaster should never call clif_skill_damage twice
|
|
//Sightblaster should never call clif_skill_damage twice
|
|
- dmg.dmotion = clif_skill_damage(src, bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, (flag&SD_LEVEL) ? -1 : skill_lv, DMG_SPLASH);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, (flag&SD_LEVEL) ? -1 : skill_lv, DMG_SPLASH );
|
|
break;
|
|
break;
|
|
case RL_R_TRIP_PLUSATK:
|
|
case RL_R_TRIP_PLUSATK:
|
|
case RL_S_STORM:
|
|
case RL_S_STORM:
|
|
- dmg.dmotion = clif_skill_damage(dsrc,bl,tick,status_get_amotion(src),dmg.dmotion,damage,dmg.div_,skill_id,-1,DMG_SPLASH);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, status_get_amotion(src), dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SPLASH );
|
|
break;
|
|
break;
|
|
case SU_LUNATICCARROTBEAT:
|
|
case SU_LUNATICCARROTBEAT:
|
|
case SU_LUNATICCARROTBEAT2:
|
|
case SU_LUNATICCARROTBEAT2:
|
|
@@ -3907,31 +3907,31 @@ int64 skill_attack (int32 attack_type, struct block_list* src, struct block_list
|
|
clif_skill_nodamage(dsrc, *bl, skill_id, skill_lv);
|
|
clif_skill_nodamage(dsrc, *bl, skill_id, skill_lv);
|
|
[[fallthrough]];
|
|
[[fallthrough]];
|
|
case WM_REVERBERATION:
|
|
case WM_REVERBERATION:
|
|
- dmg.dmotion = clif_skill_damage(dsrc, bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -2, dmg_type);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -2, dmg_type );
|
|
break;
|
|
break;
|
|
case SJ_FALLINGSTAR_ATK:
|
|
case SJ_FALLINGSTAR_ATK:
|
|
case SJ_FALLINGSTAR_ATK2:
|
|
case SJ_FALLINGSTAR_ATK2:
|
|
- dmg.dmotion = clif_skill_damage(src,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -2, DMG_MULTI_HIT);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *src, *bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -2, DMG_MULTI_HIT );
|
|
break;
|
|
break;
|
|
case SJ_NOVAEXPLOSING:
|
|
case SJ_NOVAEXPLOSING:
|
|
- dmg.dmotion = clif_skill_damage(dsrc,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -2, DMG_SINGLE);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -2, DMG_SINGLE );
|
|
break;
|
|
break;
|
|
case DK_HACKANDSLASHER_ATK:
|
|
case DK_HACKANDSLASHER_ATK:
|
|
- dmg.dmotion = clif_skill_damage(dsrc, bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, dmg_type);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, dmg_type );
|
|
break;
|
|
break;
|
|
case AG_STORM_CANNON:
|
|
case AG_STORM_CANNON:
|
|
case AG_CRIMSON_ARROW:
|
|
case AG_CRIMSON_ARROW:
|
|
- dmg.dmotion = clif_skill_damage(dsrc, bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, skill_lv, DMG_SPLASH);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, skill_lv, DMG_SPLASH );
|
|
break;
|
|
break;
|
|
case TR_ROSEBLOSSOM_ATK:
|
|
case TR_ROSEBLOSSOM_ATK:
|
|
case ABC_FROM_THE_ABYSS_ATK:
|
|
case ABC_FROM_THE_ABYSS_ATK:
|
|
- dmg.dmotion = clif_skill_damage(dsrc, bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SPLASH);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SPLASH );
|
|
break;
|
|
break;
|
|
case TR_SOUNDBLEND:
|
|
case TR_SOUNDBLEND:
|
|
if (flag&SD_ANIMATION)// For some reason the caster reacts on the splash flag. Best reduce amotion to minimize it for now. [Rytech]
|
|
if (flag&SD_ANIMATION)// For some reason the caster reacts on the splash flag. Best reduce amotion to minimize it for now. [Rytech]
|
|
- dmg.dmotion = clif_skill_damage(dsrc, bl, tick, 10, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SPLASH);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, 10, dmg.dmotion, damage, dmg.div_, skill_id, -1, DMG_SPLASH );
|
|
else
|
|
else
|
|
- dmg.dmotion = clif_skill_damage(dsrc, bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, skill_lv, dmg_type);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, skill_lv, dmg_type );
|
|
break;
|
|
break;
|
|
case AB_DUPLELIGHT_MELEE:
|
|
case AB_DUPLELIGHT_MELEE:
|
|
case AB_DUPLELIGHT_MAGIC:
|
|
case AB_DUPLELIGHT_MAGIC:
|
|
@@ -3943,11 +3943,11 @@ int64 skill_attack (int32 attack_type, struct block_list* src, struct block_list
|
|
if (src->type == BL_SKILL) {
|
|
if (src->type == BL_SKILL) {
|
|
TBL_SKILL *su = (TBL_SKILL*)src;
|
|
TBL_SKILL *su = (TBL_SKILL*)src;
|
|
if (su->group && skill_get_inf2(su->group->skill_id, INF2_ISTRAP)) { // show damage on trap targets
|
|
if (su->group && skill_get_inf2(su->group->skill_id, INF2_ISTRAP)) { // show damage on trap targets
|
|
- clif_skill_damage(src, bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, flag&SD_LEVEL ? -1 : skill_lv, DMG_SPLASH);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, flag&SD_LEVEL ? -1 : skill_lv, DMG_SPLASH );
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- dmg.dmotion = clif_skill_damage(dsrc,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, flag&SD_LEVEL?-1:skill_lv, dmg_type);
|
|
|
|
|
|
+ dmg.dmotion = clif_skill_damage( *dsrc, *bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, (flag&SD_LEVEL) ? -1 : skill_lv, dmg_type );
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -4061,10 +4061,10 @@ int64 skill_attack (int32 attack_type, struct block_list* src, struct block_list
|
|
|
|
|
|
if (e_bl) {
|
|
if (e_bl) {
|
|
if (!rmdamage) {
|
|
if (!rmdamage) {
|
|
- clif_skill_damage(e_bl, e_bl, gettick(), 0, 0, damage, dmg.div_, skill_id, -1, skill_get_hit(skill_id));
|
|
|
|
|
|
+ clif_skill_damage( *e_bl, *e_bl, gettick(), 0, 0, damage, dmg.div_, skill_id, -1, skill_get_hit(skill_id) );
|
|
battle_fix_damage(src, e_bl, damage, 0, 0);
|
|
battle_fix_damage(src, e_bl, damage, 0, 0);
|
|
} else {
|
|
} else {
|
|
- clif_skill_damage(bl, bl, gettick(), 0, 0, damage, dmg.div_, skill_id, -1, skill_get_hit(skill_id));
|
|
|
|
|
|
+ clif_skill_damage( *bl, *bl, gettick(), 0, 0, damage, dmg.div_, skill_id, -1, skill_get_hit(skill_id) );
|
|
battle_fix_damage(bl, bl, damage, 0, 0);
|
|
battle_fix_damage(bl, bl, damage, 0, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -4170,7 +4170,7 @@ int32 skill_area_sub(struct block_list *bl, va_list ap)
|
|
if(battle_check_target(src,bl,flag) > 0) {
|
|
if(battle_check_target(src,bl,flag) > 0) {
|
|
// several splash skills need this initial dummy packet to display correctly
|
|
// several splash skills need this initial dummy packet to display correctly
|
|
if (flag&SD_PREAMBLE && skill_area_temp[2] == 0)
|
|
if (flag&SD_PREAMBLE && skill_area_temp[2] == 0)
|
|
- clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
|
|
|
|
if (flag&(SD_SPLASH|SD_PREAMBLE))
|
|
if (flag&(SD_SPLASH|SD_PREAMBLE))
|
|
skill_area_temp[2]++;
|
|
skill_area_temp[2]++;
|
|
@@ -4529,7 +4529,7 @@ static TIMER_FUNC(skill_timerskill){
|
|
|
|
|
|
if (skl->skill_id == SR_SKYNETBLOW) {
|
|
if (skl->skill_id == SR_SKYNETBLOW) {
|
|
skill_area_temp[1] = 0;
|
|
skill_area_temp[1] = 0;
|
|
- clif_skill_damage(src,src,tick,status_get_amotion(src),0,-30000,1,skl->skill_id,skl->skill_lv,DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *src, tick, status_get_amotion(src), 0, -30000, 1, skl->skill_id, skl->skill_lv, DMG_SINGLE );
|
|
map_foreachinallrange(skill_area_sub,src,skill_get_splash(skl->skill_id,skl->skill_lv),BL_CHAR|BL_SKILL,src,
|
|
map_foreachinallrange(skill_area_sub,src,skill_get_splash(skl->skill_id,skl->skill_lv),BL_CHAR|BL_SKILL,src,
|
|
skl->skill_id,skl->skill_lv,tick,skl->flag|BCT_ENEMY|SD_SPLASH|1,skill_castend_damage_id);
|
|
skl->skill_id,skl->skill_lv,tick,skl->flag|BCT_ENEMY|SD_SPLASH|1,skill_castend_damage_id);
|
|
break;
|
|
break;
|
|
@@ -4798,7 +4798,7 @@ static TIMER_FUNC(skill_timerskill){
|
|
|
|
|
|
int32 splash = skill_get_splash(skl->skill_id, skl->skill_lv);
|
|
int32 splash = skill_get_splash(skl->skill_id, skl->skill_lv);
|
|
|
|
|
|
- clif_skill_poseffect(src, skl->skill_id, skl->skill_lv, tmpx, tmpy, tick);
|
|
|
|
|
|
+ clif_skill_poseffect( *src, skl->skill_id, skl->skill_lv, tmpx, tmpy, tick );
|
|
map_foreachinarea(skill_area_sub, src->m, tmpx - splash, tmpy - splash, tmpx + splash, tmpy + splash, BL_CHAR, src, skl->skill_id, skl->skill_lv, tick, skl->flag | BCT_ENEMY | SD_SPLASH | SKILL_ALTDMG_FLAG | 1, skill_castend_damage_id);
|
|
map_foreachinarea(skill_area_sub, src->m, tmpx - splash, tmpy - splash, tmpx + splash, tmpy + splash, BL_CHAR, src, skl->skill_id, skl->skill_lv, tick, skl->flag | BCT_ENEMY | SD_SPLASH | SKILL_ALTDMG_FLAG | 1, skill_castend_damage_id);
|
|
skill_unitsetting(src, skl->skill_id, skl->skill_lv, tmpx, tmpy, skill_get_unit_interval(skl->skill_id));
|
|
skill_unitsetting(src, skl->skill_id, skl->skill_lv, tmpx, tmpy, skill_get_unit_interval(skl->skill_id));
|
|
}
|
|
}
|
|
@@ -5143,7 +5143,7 @@ int32 skill_castend_damage_id (struct block_list* src, struct block_list *bl, ui
|
|
sc_type sct = skill_get_sc(skill_id);
|
|
sc_type sct = skill_get_sc(skill_id);
|
|
if(sct != SC_NONE)
|
|
if(sct != SC_NONE)
|
|
status_change_end(bl, sct);
|
|
status_change_end(bl, sct);
|
|
- clif_skill_damage(src, bl, tick, status_get_amotion(src), status_get_dmotion(bl), 0, 1, skill_id, skill_lv, skill_get_hit(skill_id));
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl, tick, status_get_amotion(src), status_get_dmotion(bl), 0, 1, skill_id, skill_lv, skill_get_hit(skill_id));
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -5853,7 +5853,7 @@ int32 skill_castend_damage_id (struct block_list* src, struct block_list *bl, ui
|
|
#endif
|
|
#endif
|
|
case LG_MOONSLASHER:
|
|
case LG_MOONSLASHER:
|
|
case MH_XENO_SLASHER:
|
|
case MH_XENO_SLASHER:
|
|
- clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
break;
|
|
break;
|
|
case NPC_REVERBERATION_ATK:
|
|
case NPC_REVERBERATION_ATK:
|
|
case NC_ARMSCANNON:
|
|
case NC_ARMSCANNON:
|
|
@@ -6831,7 +6831,7 @@ int32 skill_castend_damage_id (struct block_list* src, struct block_list *bl, ui
|
|
status_change_end(bl, SC__SHADOWFORM);
|
|
status_change_end(bl, SC__SHADOWFORM);
|
|
sc_start(src,bl, SC_INFRAREDSCAN, 10000, skill_lv, skill_get_time(skill_id, skill_lv));
|
|
sc_start(src,bl, SC_INFRAREDSCAN, 10000, skill_lv, skill_get_time(skill_id, skill_lv));
|
|
} else {
|
|
} else {
|
|
- clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
map_foreachinallrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
|
|
map_foreachinallrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
@@ -6840,7 +6840,7 @@ int32 skill_castend_damage_id (struct block_list* src, struct block_list *bl, ui
|
|
skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
|
|
skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
|
|
else {
|
|
else {
|
|
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_damage_id);
|
|
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_damage_id);
|
|
- clif_skill_damage(src,src,tick,status_get_amotion(src),0,-30000,1,skill_id,skill_lv,DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
|
|
@@ -6855,7 +6855,7 @@ int32 skill_castend_damage_id (struct block_list* src, struct block_list *bl, ui
|
|
skill_area_temp[5] = y;
|
|
skill_area_temp[5] = y;
|
|
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_damage_id);
|
|
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_damage_id);
|
|
skill_addtimerskill(src,tick + 800,src->id,x,y,skill_id,skill_lv,0,flag); // To teleport Self
|
|
skill_addtimerskill(src,tick + 800,src->id,x,y,skill_id,skill_lv,0,flag); // To teleport Self
|
|
- clif_skill_damage(src,src,tick,status_get_amotion(src),0,-30000,1,skill_id,skill_lv,DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
|
|
@@ -6905,7 +6905,7 @@ int32 skill_castend_damage_id (struct block_list* src, struct block_list *bl, ui
|
|
status_change_end(bl, SC__SHADOWFORM);
|
|
status_change_end(bl, SC__SHADOWFORM);
|
|
} else {
|
|
} else {
|
|
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
|
|
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
|
|
- clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
|
|
@@ -6971,7 +6971,7 @@ int32 skill_castend_damage_id (struct block_list* src, struct block_list *bl, ui
|
|
else {
|
|
else {
|
|
int32 i = skill_get_splash(skill_id,skill_lv);
|
|
int32 i = skill_get_splash(skill_id,skill_lv);
|
|
clif_skill_nodamage(src,*battle_get_master(src),skill_id,skill_lv);
|
|
clif_skill_nodamage(src,*battle_get_master(src),skill_id,skill_lv);
|
|
- clif_skill_damage(src, bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
if( rnd()%100 < 30 )
|
|
if( rnd()%100 < 30 )
|
|
map_foreachinrange(skill_area_sub,bl,i,BL_CHAR,src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id);
|
|
map_foreachinrange(skill_area_sub,bl,i,BL_CHAR,src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id);
|
|
else
|
|
else
|
|
@@ -6981,7 +6981,7 @@ int32 skill_castend_damage_id (struct block_list* src, struct block_list *bl, ui
|
|
|
|
|
|
case EL_ROCK_CRUSHER:
|
|
case EL_ROCK_CRUSHER:
|
|
clif_skill_nodamage(src,*battle_get_master(src),skill_id,skill_lv);
|
|
clif_skill_nodamage(src,*battle_get_master(src),skill_id,skill_lv);
|
|
- clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
if( rnd()%100 < 50 )
|
|
if( rnd()%100 < 50 )
|
|
skill_attack(BF_MAGIC,src,src,bl,skill_id,skill_lv,tick,flag);
|
|
skill_attack(BF_MAGIC,src,src,bl,skill_id,skill_lv,tick,flag);
|
|
else
|
|
else
|
|
@@ -6994,7 +6994,7 @@ int32 skill_castend_damage_id (struct block_list* src, struct block_list *bl, ui
|
|
else {
|
|
else {
|
|
int32 i = skill_get_splash(skill_id,skill_lv);
|
|
int32 i = skill_get_splash(skill_id,skill_lv);
|
|
clif_skill_nodamage(src,*battle_get_master(src),skill_id,skill_lv);
|
|
clif_skill_nodamage(src,*battle_get_master(src),skill_id,skill_lv);
|
|
- clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
if( rnd()%100 < 30 )
|
|
if( rnd()%100 < 30 )
|
|
map_foreachinrange(skill_area_sub,bl,i,BL_CHAR,src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id);
|
|
map_foreachinrange(skill_area_sub,bl,i,BL_CHAR,src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id);
|
|
else
|
|
else
|
|
@@ -7007,7 +7007,7 @@ int32 skill_castend_damage_id (struct block_list* src, struct block_list *bl, ui
|
|
case EL_WIND_SLASH:
|
|
case EL_WIND_SLASH:
|
|
case EL_STONE_HAMMER:
|
|
case EL_STONE_HAMMER:
|
|
clif_skill_nodamage(src,*battle_get_master(src),skill_id,skill_lv);
|
|
clif_skill_nodamage(src,*battle_get_master(src),skill_id,skill_lv);
|
|
- clif_skill_damage(src, bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
skill_attack(skill_get_type(skill_id),src,src,bl,skill_id,skill_lv,tick,flag);
|
|
skill_attack(skill_get_type(skill_id),src,src,bl,skill_id,skill_lv,tick,flag);
|
|
break;
|
|
break;
|
|
|
|
|
|
@@ -7018,7 +7018,7 @@ int32 skill_castend_damage_id (struct block_list* src, struct block_list *bl, ui
|
|
sc_type type = SC_TIDAL_WEAPON_OPTION, type2 = SC_TIDAL_WEAPON;
|
|
sc_type type = SC_TIDAL_WEAPON_OPTION, type2 = SC_TIDAL_WEAPON;
|
|
|
|
|
|
clif_skill_nodamage(src,*battle_get_master(src),skill_id,skill_lv);
|
|
clif_skill_nodamage(src,*battle_get_master(src),skill_id,skill_lv);
|
|
- clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
if( (tsc_ele && tsc_ele->getSCE(type2)) || (tsc && tsc->getSCE(type)) ) {
|
|
if( (tsc_ele && tsc_ele->getSCE(type2)) || (tsc && tsc->getSCE(type)) ) {
|
|
status_change_end(battle_get_master(src),type);
|
|
status_change_end(battle_get_master(src),type);
|
|
status_change_end(src,type2);
|
|
status_change_end(src,type2);
|
|
@@ -7070,7 +7070,7 @@ int32 skill_castend_damage_id (struct block_list* src, struct block_list *bl, ui
|
|
type = SC_TINDER_BREAKER2;
|
|
type = SC_TINDER_BREAKER2;
|
|
if( unit_movepos(src, bl->x, bl->y, 1, 1) ){
|
|
if( unit_movepos(src, bl->x, bl->y, 1, 1) ){
|
|
clif_blown(src);
|
|
clif_blown(src);
|
|
- clif_skill_poseffect(src,skill_id,skill_lv,bl->x,bl->y,tick);
|
|
|
|
|
|
+ clif_skill_poseffect( *src, skill_id, skill_lv, bl->x, bl->y, tick );
|
|
}
|
|
}
|
|
}else if( skill_id == MH_CBC ){
|
|
}else if( skill_id == MH_CBC ){
|
|
type = SC_CBC;
|
|
type = SC_CBC;
|
|
@@ -7130,7 +7130,7 @@ int32 skill_castend_damage_id (struct block_list* src, struct block_list *bl, ui
|
|
}
|
|
}
|
|
|
|
|
|
if (skill_id == RL_HAMMER_OF_GOD)
|
|
if (skill_id == RL_HAMMER_OF_GOD)
|
|
- clif_skill_poseffect(src, skill_id, 1, bl->x, bl->y, gettick());
|
|
|
|
|
|
+ clif_skill_poseffect( *src, skill_id, 1, bl->x, bl->y, gettick() );
|
|
else
|
|
else
|
|
clif_skill_nodamage(src, *bl, skill_id, skill_lv);
|
|
clif_skill_nodamage(src, *bl, skill_id, skill_lv);
|
|
|
|
|
|
@@ -7303,9 +7303,9 @@ int32 skill_castend_damage_id (struct block_list* src, struct block_list *bl, ui
|
|
|
|
|
|
default:
|
|
default:
|
|
ShowWarning("skill_castend_damage_id: Unknown skill used:%d\n",skill_id);
|
|
ShowWarning("skill_castend_damage_id: Unknown skill used:%d\n",skill_id);
|
|
- clif_skill_damage(src, bl, tick, status_get_amotion(src), tstatus->dmotion,
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl, tick, status_get_amotion(src), tstatus->dmotion,
|
|
0, abs(skill_get_num(skill_id, skill_lv)),
|
|
0, abs(skill_get_num(skill_id, skill_lv)),
|
|
- skill_id, skill_lv, skill_get_hit(skill_id));
|
|
|
|
|
|
+ skill_id, skill_lv, skill_get_hit(skill_id) );
|
|
map_freeblock_unlock();
|
|
map_freeblock_unlock();
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
@@ -7965,7 +7965,7 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
}
|
|
}
|
|
|
|
|
|
clif_skill_nodamage(src, *bl, skill_id, skill_lv);
|
|
clif_skill_nodamage(src, *bl, skill_id, skill_lv);
|
|
- clif_skill_damage(src, bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
clif_blown(bl);
|
|
clif_blown(bl);
|
|
|
|
|
|
// If caster is not a boss, switch coordinates with the target
|
|
// If caster is not a boss, switch coordinates with the target
|
|
@@ -8197,7 +8197,7 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
case NPC_ALL_STAT_DOWN:
|
|
case NPC_ALL_STAT_DOWN:
|
|
status_change_start(src, bl, type, 10000, skill_lv, 0, 0, 0, skill_get_time(skill_id, skill_lv), SCSTART_NOAVOID|SCSTART_NOTICKDEF|SCSTART_NORATEDEF);
|
|
status_change_start(src, bl, type, 10000, skill_lv, 0, 0, 0, skill_get_time(skill_id, skill_lv), SCSTART_NOAVOID|SCSTART_NOTICKDEF|SCSTART_NORATEDEF);
|
|
clif_skill_nodamage(src, *bl, skill_id, skill_lv);
|
|
clif_skill_nodamage(src, *bl, skill_id, skill_lv);
|
|
- clif_skill_damage(src, bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
break;
|
|
break;
|
|
|
|
|
|
// EDP also give +25% WATK poison pseudo element to user.
|
|
// EDP also give +25% WATK poison pseudo element to user.
|
|
@@ -8857,7 +8857,7 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
i = map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), starget,
|
|
i = map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), starget,
|
|
src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
|
|
src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
|
|
if( !i && ( skill_id == RK_WINDCUTTER || skill_id == NC_AXETORNADO || skill_id == LG_CANNONSPEAR || skill_id == SR_SKYNETBLOW || skill_id == KO_HAPPOKUNAI ) )
|
|
if( !i && ( skill_id == RK_WINDCUTTER || skill_id == NC_AXETORNADO || skill_id == LG_CANNONSPEAR || skill_id == SR_SKYNETBLOW || skill_id == KO_HAPPOKUNAI ) )
|
|
- clif_skill_damage(src,src,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
|
|
@@ -8941,7 +8941,7 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
#if PACKETVER >= 20180207
|
|
#if PACKETVER >= 20180207
|
|
clif_skill_nodamage(src,*bl,skill_id,skill_lv);
|
|
clif_skill_nodamage(src,*bl,skill_id,skill_lv);
|
|
#else
|
|
#else
|
|
- clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
#endif
|
|
#endif
|
|
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
|
|
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
|
|
break;
|
|
break;
|
|
@@ -9468,10 +9468,11 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
- clif_skill_nodamage(src, *bl, skill_id, skill_lv);
|
|
|
|
- clif_skill_estimation(sd, bl);
|
|
|
|
|
|
+ if (dstmd != nullptr)
|
|
|
|
+ clif_skill_estimation( *sd, *dstmd );
|
|
if( skill_id == MER_ESTIMATION )
|
|
if( skill_id == MER_ESTIMATION )
|
|
sd = nullptr;
|
|
sd = nullptr;
|
|
|
|
+ clif_skill_nodamage(src, *bl, skill_id, skill_lv);
|
|
break;
|
|
break;
|
|
|
|
|
|
case BS_REPAIRWEAPON:
|
|
case BS_REPAIRWEAPON:
|
|
@@ -11106,7 +11107,7 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
case LG_EARTHDRIVE: {
|
|
case LG_EARTHDRIVE: {
|
|
int32 dummy = 1;
|
|
int32 dummy = 1;
|
|
|
|
|
|
- clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
i = skill_get_splash(skill_id,skill_lv);
|
|
i = skill_get_splash(skill_id,skill_lv);
|
|
map_foreachinallarea(skill_cell_overlap, src->m, src->x-i, src->y-i, src->x+i, src->y+i, BL_SKILL, LG_EARTHDRIVE, &dummy, src);
|
|
map_foreachinallarea(skill_cell_overlap, src->m, src->x-i, src->y-i, src->x+i, src->y+i, BL_SKILL, LG_EARTHDRIVE, &dummy, src);
|
|
map_foreachinrange(skill_area_sub, bl,i,BL_CHAR,src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id);
|
|
map_foreachinrange(skill_area_sub, bl,i,BL_CHAR,src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id);
|
|
@@ -11220,7 +11221,7 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
break;
|
|
break;
|
|
|
|
|
|
case GC_PHANTOMMENACE:
|
|
case GC_PHANTOMMENACE:
|
|
- clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
clif_skill_nodamage(src,*bl,skill_id,skill_lv);
|
|
clif_skill_nodamage(src,*bl,skill_id,skill_lv);
|
|
map_foreachinrange(skill_area_sub,src,skill_get_splash(skill_id,skill_lv),BL_CHAR,
|
|
map_foreachinrange(skill_area_sub,src,skill_get_splash(skill_id,skill_lv),BL_CHAR,
|
|
src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id);
|
|
src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id);
|
|
@@ -11562,7 +11563,7 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
break;
|
|
break;
|
|
|
|
|
|
case RA_FEARBREEZE:
|
|
case RA_FEARBREEZE:
|
|
- clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
clif_skill_nodamage(src, *bl, skill_id, skill_lv, sc_start(src,bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv)));
|
|
clif_skill_nodamage(src, *bl, skill_id, skill_lv, sc_start(src,bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv)));
|
|
break;
|
|
break;
|
|
|
|
|
|
@@ -11603,7 +11604,7 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
|
|
|
|
case RA_SENSITIVEKEEN:
|
|
case RA_SENSITIVEKEEN:
|
|
clif_skill_nodamage(src,*bl,skill_id,skill_lv);
|
|
clif_skill_nodamage(src,*bl,skill_id,skill_lv);
|
|
- clif_skill_damage(src,src,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
map_foreachinrange(skill_area_sub,src,skill_get_splash(skill_id,skill_lv),BL_CHAR|BL_SKILL,src,skill_id,skill_lv,tick,flag|BCT_ENEMY,skill_castend_damage_id);
|
|
map_foreachinrange(skill_area_sub,src,skill_get_splash(skill_id,skill_lv),BL_CHAR|BL_SKILL,src,skill_id,skill_lv,tick,flag|BCT_ENEMY,skill_castend_damage_id);
|
|
break;
|
|
break;
|
|
|
|
|
|
@@ -11645,7 +11646,7 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
break;
|
|
break;
|
|
|
|
|
|
case NC_ANALYZE:
|
|
case NC_ANALYZE:
|
|
- clif_skill_damage(src, bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
sc_start(src,bl,type, 30 + 12 * skill_lv,skill_lv,skill_get_time(skill_id,skill_lv));
|
|
sc_start(src,bl,type, 30 + 12 * skill_lv,skill_lv,skill_get_time(skill_id,skill_lv));
|
|
break;
|
|
break;
|
|
|
|
|
|
@@ -11656,7 +11657,7 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
if (map_flag_vs(src->m)) // Doesn't affect the caster in non-PVP maps [exneval]
|
|
if (map_flag_vs(src->m)) // Doesn't affect the caster in non-PVP maps [exneval]
|
|
sc_start2(src, bl, type, 100, skill_lv, src->id, skill_get_time(skill_id, skill_lv));
|
|
sc_start2(src, bl, type, 100, skill_lv, src->id, skill_get_time(skill_id, skill_lv));
|
|
map_foreachinallrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag | BCT_ENEMY | SD_SPLASH | 1, skill_castend_nodamage_id);
|
|
map_foreachinallrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag | BCT_ENEMY | SD_SPLASH | 1, skill_castend_nodamage_id);
|
|
- clif_skill_damage(src, bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
|
|
@@ -11776,7 +11777,7 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
break;
|
|
break;
|
|
|
|
|
|
case LG_TRAMPLE:
|
|
case LG_TRAMPLE:
|
|
- clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
if (rnd()%100 < (25 + 25 * skill_lv))
|
|
if (rnd()%100 < (25 + 25 * skill_lv))
|
|
map_foreachinallrange(skill_destroy_trap,bl,skill_get_splash(skill_id,skill_lv),BL_SKILL,tick);
|
|
map_foreachinallrange(skill_destroy_trap,bl,skill_get_splash(skill_id,skill_lv),BL_SKILL,tick);
|
|
status_change_end(bl, SC_SV_ROOTTWIST);
|
|
status_change_end(bl, SC_SV_ROOTTWIST);
|
|
@@ -11807,13 +11808,13 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
if( sc_start2(src,bl, type, 100, skill_lv, src->id, skill_get_time(skill_id, skill_lv))) {
|
|
if( sc_start2(src,bl, type, 100, skill_lv, src->id, skill_get_time(skill_id, skill_lv))) {
|
|
if( bl->type == BL_MOB )
|
|
if( bl->type == BL_MOB )
|
|
mob_unlocktarget((TBL_MOB*)bl,gettick());
|
|
mob_unlocktarget((TBL_MOB*)bl,gettick());
|
|
- clif_bladestop(src, bl->id, 1);
|
|
|
|
|
|
+ clif_bladestop( *src, bl->id, true );
|
|
map_freeblock_unlock();
|
|
map_freeblock_unlock();
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
int32 count = 0;
|
|
int32 count = 0;
|
|
- clif_skill_damage(src, bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
count = map_forcountinrange(skill_area_sub, src, skill_get_splash(skill_id,skill_lv), (sd)?sd->spiritball_old:15, // Assume 15 spiritballs in non-charactors
|
|
count = map_forcountinrange(skill_area_sub, src, skill_get_splash(skill_id,skill_lv), (sd)?sd->spiritball_old:15, // Assume 15 spiritballs in non-charactors
|
|
BL_CHAR, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id);
|
|
BL_CHAR, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id);
|
|
if( sd ) pc_delspiritball(sd, count, 0);
|
|
if( sd ) pc_delspiritball(sd, count, 0);
|
|
@@ -11829,13 +11830,13 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
if( sc_start2(src,bl, type, 50, skill_lv, src->id, skill_get_time(skill_id, skill_lv))) {
|
|
if( sc_start2(src,bl, type, 50, skill_lv, src->id, skill_get_time(skill_id, skill_lv))) {
|
|
if( bl->type == BL_MOB )
|
|
if( bl->type == BL_MOB )
|
|
mob_unlocktarget((TBL_MOB*)bl,gettick());
|
|
mob_unlocktarget((TBL_MOB*)bl,gettick());
|
|
- clif_bladestop(src, bl->id, 1);
|
|
|
|
|
|
+ clif_bladestop( *src, bl->id, true );
|
|
map_freeblock_unlock();
|
|
map_freeblock_unlock();
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
int32 count = 0;
|
|
int32 count = 0;
|
|
- clif_skill_damage(src, bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
count = map_forcountinrange(skill_area_sub, src, skill_get_splash(skill_id,skill_lv), (sd)?sd->spiritball_old:15, // Assume 15 spiritballs in non-charactors
|
|
count = map_forcountinrange(skill_area_sub, src, skill_get_splash(skill_id,skill_lv), (sd)?sd->spiritball_old:15, // Assume 15 spiritballs in non-charactors
|
|
BL_CHAR, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id);
|
|
BL_CHAR, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id);
|
|
if( sd ) pc_delspiritball(sd, count, 0);
|
|
if( sd ) pc_delspiritball(sd, count, 0);
|
|
@@ -11871,7 +11872,7 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
status_percent_heal(src, 0, i);
|
|
status_percent_heal(src, 0, i);
|
|
clif_skill_nodamage(src, *bl, skill_id, skill_lv, i != 0);
|
|
clif_skill_nodamage(src, *bl, skill_id, skill_lv, i != 0);
|
|
} else {
|
|
} else {
|
|
- clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
map_foreachinallrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|BCT_SELF|SD_SPLASH|1, skill_castend_nodamage_id);
|
|
map_foreachinallrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|BCT_SELF|SD_SPLASH|1, skill_castend_nodamage_id);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
@@ -12169,7 +12170,7 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
status_change_end(bl, SC_DECREASEAGI);
|
|
status_change_end(bl, SC_DECREASEAGI);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- clif_skill_damage(src, bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, 1, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, 1, DMG_SINGLE );
|
|
clif_skill_nodamage(src,*bl,skill_id,skill_lv);
|
|
clif_skill_nodamage(src,*bl,skill_id,skill_lv);
|
|
break;
|
|
break;
|
|
|
|
|
|
@@ -12429,7 +12430,7 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
} else {
|
|
} else {
|
|
clif_skill_nodamage(src,*src,skill_id,skill_lv);
|
|
clif_skill_nodamage(src,*src,skill_id,skill_lv);
|
|
if (!(skill_id >= EM_EL_FLAMETECHNIC && skill_id <= EM_EL_DEADLY_POISON))
|
|
if (!(skill_id >= EM_EL_FLAMETECHNIC && skill_id <= EM_EL_DEADLY_POISON))
|
|
- clif_skill_damage(src, ( skill_id == EL_GUST || skill_id == EL_BLAST || skill_id == EL_WILD_STORM )?src:bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, ( skill_id == EL_GUST || skill_id == EL_BLAST || skill_id == EL_WILD_STORM ) ? *src : *bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
if( skill_id == EL_WIND_STEP ) // There aren't teleport, just push the master away.
|
|
if( skill_id == EL_WIND_STEP ) // There aren't teleport, just push the master away.
|
|
skill_blown(src,bl,(rnd()%skill_get_blewcount(skill_id,skill_lv))+1,rnd()%8,BLOWN_NONE);
|
|
skill_blown(src,bl,(rnd()%skill_get_blewcount(skill_id,skill_lv))+1,rnd()%8,BLOWN_NONE);
|
|
sc_start(src,src,type2,100,skill_lv,skill_get_time(skill_id,skill_lv));
|
|
sc_start(src,src,type2,100,skill_lv,skill_get_time(skill_id,skill_lv));
|
|
@@ -12442,7 +12443,7 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
case EL_WATER_BARRIER:
|
|
case EL_WATER_BARRIER:
|
|
case EL_ZEPHYR:
|
|
case EL_ZEPHYR:
|
|
case EL_POWER_OF_GAIA:
|
|
case EL_POWER_OF_GAIA:
|
|
- clif_skill_damage(src, bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
skill_unitsetting(src,skill_id,skill_lv,bl->x,bl->y,0);
|
|
skill_unitsetting(src,skill_id,skill_lv,bl->x,bl->y,0);
|
|
break;
|
|
break;
|
|
case EL_WATER_SCREEN: {
|
|
case EL_WATER_SCREEN: {
|
|
@@ -12457,7 +12458,7 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
status_change_end(src,type2);
|
|
status_change_end(src,type2);
|
|
} else {
|
|
} else {
|
|
// This not heals at the end.
|
|
// This not heals at the end.
|
|
- clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
sc_start(src,src,type2,100,skill_lv,skill_get_time(skill_id,skill_lv));
|
|
sc_start(src,src,type2,100,skill_lv,skill_get_time(skill_id,skill_lv));
|
|
sc_start(src,bl,type,100,src->id,skill_get_time(skill_id,skill_lv));
|
|
sc_start(src,bl,type,100,src->id,skill_get_time(skill_id,skill_lv));
|
|
}
|
|
}
|
|
@@ -12562,7 +12563,7 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
|
|
|
|
clif_skill_nodamage(src,*bl,skill_id,skill_lv,
|
|
clif_skill_nodamage(src,*bl,skill_id,skill_lv,
|
|
sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)));
|
|
sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)));
|
|
- clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
break;
|
|
break;
|
|
case KG_KAGEHUMI:
|
|
case KG_KAGEHUMI:
|
|
if( flag&1 ){
|
|
if( flag&1 ){
|
|
@@ -12582,7 +12583,7 @@ int32 skill_castend_nodamage_id (struct block_list *src, struct block_list *bl,
|
|
}
|
|
}
|
|
}else{
|
|
}else{
|
|
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id);
|
|
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR|BL_SKILL, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id);
|
|
- clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
clif_skill_nodamage(src, *bl, skill_id, skill_lv);
|
|
clif_skill_nodamage(src, *bl, skill_id, skill_lv);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
@@ -14010,7 +14011,7 @@ TIMER_FUNC(skill_castend_id){
|
|
clif_blown(src);
|
|
clif_blown(src);
|
|
clif_spiritball(src);
|
|
clif_spiritball(src);
|
|
}
|
|
}
|
|
- clif_skill_damage(src,target,tick,sd->battle_status.amotion,0,0,1,ud->skill_id,ud->skill_lv,DMG_SPLASH);
|
|
|
|
|
|
+ clif_skill_damage( *src, *target, tick, sd->battle_status.amotion, 0, 0, 1, ud->skill_id, ud->skill_lv, DMG_SPLASH );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -14232,7 +14233,7 @@ int32 skill_castend_pos2(struct block_list* src, int32 x, int32 y, uint16 skill_
|
|
if(skill_get_inf(skill_id)&INF_SELF_SKILL)
|
|
if(skill_get_inf(skill_id)&INF_SELF_SKILL)
|
|
clif_skill_nodamage(src,*src,skill_id,skill_lv);
|
|
clif_skill_nodamage(src,*src,skill_id,skill_lv);
|
|
else
|
|
else
|
|
- clif_skill_poseffect(src,skill_id,skill_lv,x,y,tick);
|
|
|
|
|
|
+ clif_skill_poseffect( *src, skill_id, skill_lv, x, y, tick );
|
|
}
|
|
}
|
|
|
|
|
|
switch(skill_id)
|
|
switch(skill_id)
|
|
@@ -14454,14 +14455,14 @@ int32 skill_castend_pos2(struct block_list* src, int32 x, int32 y, uint16 skill_
|
|
case NPC_CANE_OF_EVIL_EYE:
|
|
case NPC_CANE_OF_EVIL_EYE:
|
|
flag|=1;
|
|
flag|=1;
|
|
if(skill_unitsetting(src,skill_id,skill_lv,x,y,0))
|
|
if(skill_unitsetting(src,skill_id,skill_lv,x,y,0))
|
|
- clif_skill_poseffect(src,skill_id,skill_lv,x,y,tick);
|
|
|
|
|
|
+ clif_skill_poseffect( *src, skill_id, skill_lv, x, y, tick );
|
|
break;
|
|
break;
|
|
case RG_GRAFFITI: /* Graffiti [Valaris] */
|
|
case RG_GRAFFITI: /* Graffiti [Valaris] */
|
|
skill_unitsetting(src,skill_id,skill_lv,x,y,0);
|
|
skill_unitsetting(src,skill_id,skill_lv,x,y,0);
|
|
flag|=1;
|
|
flag|=1;
|
|
break;
|
|
break;
|
|
case NPC_EARTHQUAKE:
|
|
case NPC_EARTHQUAKE:
|
|
- clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
skill_unitsetting(src, skill_id, skill_lv, x, y, 0);
|
|
skill_unitsetting(src, skill_id, skill_lv, x, y, 0);
|
|
break;
|
|
break;
|
|
#ifndef RENEWAL
|
|
#ifndef RENEWAL
|
|
@@ -14565,7 +14566,7 @@ int32 skill_castend_pos2(struct block_list* src, int32 x, int32 y, uint16 skill_
|
|
#if PACKETVER >= 20111005
|
|
#if PACKETVER >= 20111005
|
|
clif_snap(src, src->x, src->y);
|
|
clif_snap(src, src->x, src->y);
|
|
#else
|
|
#else
|
|
- clif_skill_poseffect(src,skill_id,skill_lv,src->x,src->y,tick);
|
|
|
|
|
|
+ clif_skill_poseffect( *src, skill_id, skill_lv, src->x, src->y, tick );
|
|
#endif
|
|
#endif
|
|
if (sd)
|
|
if (sd)
|
|
skill_blockpc_start (*sd, MO_EXTREMITYFIST, 2000);
|
|
skill_blockpc_start (*sd, MO_EXTREMITYFIST, 2000);
|
|
@@ -14665,7 +14666,7 @@ int32 skill_castend_pos2(struct block_list* src, int32 x, int32 y, uint16 skill_
|
|
case HW_GANBANTEIN:
|
|
case HW_GANBANTEIN:
|
|
if (rnd()%100 < 80) {
|
|
if (rnd()%100 < 80) {
|
|
int32 dummy = 1;
|
|
int32 dummy = 1;
|
|
- clif_skill_poseffect(src,skill_id,skill_lv,x,y,tick);
|
|
|
|
|
|
+ clif_skill_poseffect( *src, skill_id, skill_lv, x, y, tick );
|
|
i = skill_get_splash(skill_id, skill_lv);
|
|
i = skill_get_splash(skill_id, skill_lv);
|
|
map_foreachinallarea(skill_cell_overlap, src->m, x-i, y-i, x+i, y+i, BL_SKILL, HW_GANBANTEIN, &dummy, src);
|
|
map_foreachinallarea(skill_cell_overlap, src->m, x-i, y-i, x+i, y+i, BL_SKILL, HW_GANBANTEIN, &dummy, src);
|
|
} else {
|
|
} else {
|
|
@@ -14690,7 +14691,7 @@ int32 skill_castend_pos2(struct block_list* src, int32 x, int32 y, uint16 skill_
|
|
clif_skill_fail( *sd, skill_id );
|
|
clif_skill_fail( *sd, skill_id );
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
- clif_skill_poseffect(src,skill_id,skill_lv,x,y,tick);
|
|
|
|
|
|
+ clif_skill_poseffect( *src, skill_id, skill_lv, x, y, tick );
|
|
if (rnd()%100 < 50) {
|
|
if (rnd()%100 < 50) {
|
|
clif_skill_fail( *sd, skill_id );
|
|
clif_skill_fail( *sd, skill_id );
|
|
} else {
|
|
} else {
|
|
@@ -14752,7 +14753,7 @@ int32 skill_castend_pos2(struct block_list* src, int32 x, int32 y, uint16 skill_
|
|
if (sce)
|
|
if (sce)
|
|
status_change_end(src, type); //Was under someone else's Gospel. [Skotlex]
|
|
status_change_end(src, type); //Was under someone else's Gospel. [Skotlex]
|
|
sc_start4(src,src,type,100,skill_lv,0,sg->group_id,BCT_SELF,skill_get_time(skill_id,skill_lv));
|
|
sc_start4(src,src,type,100,skill_lv,0,sg->group_id,BCT_SELF,skill_get_time(skill_id,skill_lv));
|
|
- clif_skill_poseffect(src, skill_id, skill_lv, 0, 0, tick); // PA_GOSPEL music packet
|
|
|
|
|
|
+ clif_skill_poseffect( *src, skill_id, skill_lv, 0, 0, tick ); // PA_GOSPEL music packet
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case NJ_TATAMIGAESHI:
|
|
case NJ_TATAMIGAESHI:
|
|
@@ -14800,7 +14801,7 @@ int32 skill_castend_pos2(struct block_list* src, int32 x, int32 y, uint16 skill_
|
|
clif_skill_fail( *sd, skill_id, USESKILL_FAIL_GC_POISONINGWEAPON );
|
|
clif_skill_fail( *sd, skill_id, USESKILL_FAIL_GC_POISONINGWEAPON );
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
- clif_skill_damage(src,src,tick,status_get_amotion(src),0,-30000,1,skill_id,skill_lv,DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
skill_unitsetting(src, skill_id, skill_lv, x, y, flag);
|
|
skill_unitsetting(src, skill_id, skill_lv, x, y, flag);
|
|
break;
|
|
break;
|
|
|
|
|
|
@@ -14832,7 +14833,7 @@ int32 skill_castend_pos2(struct block_list* src, int32 x, int32 y, uint16 skill_
|
|
case RA_DETONATOR:
|
|
case RA_DETONATOR:
|
|
i = skill_get_splash(skill_id, skill_lv);
|
|
i = skill_get_splash(skill_id, skill_lv);
|
|
map_foreachinallarea(skill_detonator, src->m, x-i, y-i, x+i, y+i, BL_SKILL, src);
|
|
map_foreachinallarea(skill_detonator, src->m, x-i, y-i, x+i, y+i, BL_SKILL, src);
|
|
- clif_skill_damage(src, src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
|
|
|
|
|
|
+ clif_skill_damage( *src, *src, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE );
|
|
break;
|
|
break;
|
|
|
|
|
|
case NC_NEUTRALBARRIER:
|
|
case NC_NEUTRALBARRIER:
|
|
@@ -17275,9 +17276,9 @@ int32 skill_unit_onplace_timer(struct skill_unit *unit, struct block_list *bl, t
|
|
break;
|
|
break;
|
|
|
|
|
|
case UNT_FIRE_RAIN:
|
|
case UNT_FIRE_RAIN:
|
|
- clif_skill_damage(ss,bl,tick,status_get_amotion(ss),0,
|
|
|
|
|
|
+ clif_skill_damage( *ss, *bl, tick, status_get_amotion(ss), 0,
|
|
skill_attack(skill_get_type(sg->skill_id),ss,&unit->bl,bl,sg->skill_id,sg->skill_lv,tick,SD_ANIMATION|SD_SPLASH),
|
|
skill_attack(skill_get_type(sg->skill_id),ss,&unit->bl,bl,sg->skill_id,sg->skill_lv,tick,SD_ANIMATION|SD_SPLASH),
|
|
- 1,sg->skill_id,sg->skill_lv,DMG_SINGLE);
|
|
|
|
|
|
+ 1, sg->skill_id, sg->skill_lv, DMG_SINGLE );
|
|
break;
|
|
break;
|
|
|
|
|
|
case UNT_MAGMA_ERUPTION:
|
|
case UNT_MAGMA_ERUPTION:
|
|
@@ -21115,7 +21116,7 @@ static int32 skill_trap_splash(struct block_list *bl, va_list ap)
|
|
if (status_change_start(ss, bl, SC_ELECTRICSHOCKER, 10000, sg->skill_lv, sg->group_id, 0, 0, skill_get_time2(sg->skill_id, sg->skill_lv), SCSTART_NORATEDEF)) {
|
|
if (status_change_start(ss, bl, SC_ELECTRICSHOCKER, 10000, sg->skill_lv, sg->group_id, 0, 0, skill_get_time2(sg->skill_id, sg->skill_lv), SCSTART_NORATEDEF)) {
|
|
map_moveblock(bl, unit->bl.x, unit->bl.y, tick);
|
|
map_moveblock(bl, unit->bl.x, unit->bl.y, tick);
|
|
clif_fixpos( *bl );
|
|
clif_fixpos( *bl );
|
|
- clif_skill_damage(src, bl, tick, 0, 0, -30000, 1, sg->skill_id, sg->skill_lv, DMG_SPLASH);
|
|
|
|
|
|
+ clif_skill_damage( *src, *bl, tick, 0, 0, -30000, 1, sg->skill_id, sg->skill_lv, DMG_SPLASH );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
@@ -22138,9 +22139,9 @@ static int32 skill_unit_timer_sub(DBKey key, DBData *data, va_list ap)
|
|
|
|
|
|
if (src != nullptr) {
|
|
if (src != nullptr) {
|
|
if (group->skill_id == AG_VIOLENT_QUAKE_ATK || group->skill_id == AG_ALL_BLOOM_ATK || group->skill_id == AG_ALL_BLOOM_ATK2)
|
|
if (group->skill_id == AG_VIOLENT_QUAKE_ATK || group->skill_id == AG_ALL_BLOOM_ATK || group->skill_id == AG_ALL_BLOOM_ATK2)
|
|
- clif_skill_poseffect(src, group->skill_id, -1, bl->x, bl->y, tick); // Don't yell a blank skill name.
|
|
|
|
|
|
+ clif_skill_poseffect( *src, group->skill_id, -1, bl->x, bl->y, tick ); // Don't yell a blank skill name.
|
|
else
|
|
else
|
|
- clif_skill_poseffect(src, group->skill_id, group->skill_lv, bl->x, bl->y, tick);
|
|
|
|
|
|
+ clif_skill_poseffect( *src, group->skill_id, group->skill_lv, bl->x, bl->y, tick );
|
|
group->val2 = 1;
|
|
group->val2 = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|