Converted ZC_USE_SKILL to struct (#8599)

Co-authored-by: Atemo <Atemo@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
This commit is contained in:
AoShinHo 2024-09-14 20:42:12 -03:00 committed by GitHub
parent d382b3f55a
commit 61b3f4a34d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 470 additions and 482 deletions

View File

@ -1286,7 +1286,7 @@ ACMD_FUNC(alive)
clif_displaymessage(fd, msg_txt(sd,667)); // You're not dead. clif_displaymessage(fd, msg_txt(sd,667)); // You're not dead.
return -1; return -1;
} }
clif_skill_nodamage(&sd->bl,&sd->bl,ALL_RESURRECTION,4,1); clif_skill_nodamage(&sd->bl,sd->bl,ALL_RESURRECTION,4);
clif_displaymessage(fd, msg_txt(sd,16)); // You've been revived! It's a miracle! clif_displaymessage(fd, msg_txt(sd,16)); // You've been revived! It's a miracle!
return 0; return 0;
} }
@ -3592,7 +3592,7 @@ static void atcommand_raise_sub(map_session_data* sd) {
status_revive(&sd->bl, 100, 100); status_revive(&sd->bl, 100, 100);
clif_skill_nodamage(&sd->bl,&sd->bl,ALL_RESURRECTION,4,1); clif_skill_nodamage(&sd->bl,sd->bl,ALL_RESURRECTION,4);
clif_displaymessage(sd->fd, msg_txt(sd,63)); // Mercy has been shown. clif_displaymessage(sd->fd, msg_txt(sd,63)); // Mercy has been shown.
} }
@ -6317,7 +6317,7 @@ ACMD_FUNC(displayskill)
if (type == 0 || type == 2) if (type == 0 || type == 2)
clif_skill_damage(&sd->bl, &sd->bl, tick, status->amotion, status->dmotion, 1, 1, skill_id, skill_lv, DMG_SPLASH); clif_skill_damage(&sd->bl, &sd->bl, tick, status->amotion, status->dmotion, 1, 1, skill_id, skill_lv, DMG_SPLASH);
if (type == 0 || type == 3) if (type == 0 || type == 3)
clif_skill_nodamage(&sd->bl, &sd->bl, skill_id, skill_lv, 1); clif_skill_nodamage(&sd->bl, sd->bl, skill_id, skill_lv);
if (type == 0 || type == 4) if (type == 0 || type == 4)
clif_skill_poseffect(&sd->bl, skill_id, skill_lv, sd->bl.x, sd->bl.y, tick); clif_skill_poseffect(&sd->bl, skill_id, skill_lv, sd->bl.x, sd->bl.y, tick);
return 0; return 0;

View File

@ -1290,7 +1290,7 @@ bool battle_status_block_damage(struct block_list *src, struct block_list *targe
// Weapon Blocking can be triggered while the above statuses are active. // Weapon Blocking can be triggered while the above statuses are active.
if ((sce = sc->getSCE(SC_WEAPONBLOCKING)) && flag & (BF_SHORT | BF_WEAPON) && rnd() % 100 < sce->val2) { if ((sce = sc->getSCE(SC_WEAPONBLOCKING)) && flag & (BF_SHORT | BF_WEAPON) && rnd() % 100 < sce->val2) {
clif_skill_nodamage(target, src, GC_WEAPONBLOCKING, sce->val1, 1); clif_skill_nodamage(target, *src, GC_WEAPONBLOCKING, sce->val1);
sc_start(src, target, SC_WEAPONBLOCK_ON, 100, src->id, skill_get_time2(GC_WEAPONBLOCKING, sce->val1)); sc_start(src, target, SC_WEAPONBLOCK_ON, 100, src->id, skill_get_time2(GC_WEAPONBLOCKING, sce->val1));
d->dmg_lv = ATK_BLOCK; d->dmg_lv = ATK_BLOCK;
return false; return false;
@ -1407,12 +1407,12 @@ bool battle_status_block_damage(struct block_list *src, struct block_list *targe
(d_bl->type == BL_PC && ((TBL_PC*)d_bl)->devotion[sce_d->val2] == target->id)) && (d_bl->type == BL_PC && ((TBL_PC*)d_bl)->devotion[sce_d->val2] == target->id)) &&
check_distance_bl(target, d_bl, sce_d->val3)) check_distance_bl(target, d_bl, sce_d->val3))
{ //If player is target of devotion, show guard effect on the devotion caster rather than the target { //If player is target of devotion, show guard effect on the devotion caster rather than the target
clif_skill_nodamage(d_bl, d_bl, CR_AUTOGUARD, sce->val1, 1); clif_skill_nodamage(d_bl, *d_bl, CR_AUTOGUARD, sce->val1);
unit_set_walkdelay(d_bl, gettick(), delay, 1); unit_set_walkdelay(d_bl, gettick(), delay, 1);
d->dmg_lv = ATK_MISS; d->dmg_lv = ATK_MISS;
return false; return false;
} else { } else {
clif_skill_nodamage(target, target, CR_AUTOGUARD, sce->val1, 1); clif_skill_nodamage(target, *target, CR_AUTOGUARD, sce->val1);
unit_set_walkdelay(target, gettick(), delay, 1); unit_set_walkdelay(target, gettick(), delay, 1);
#ifdef RENEWAL #ifdef RENEWAL
if (sc->getSCE(SC_SHRINK)) if (sc->getSCE(SC_SHRINK))
@ -1455,7 +1455,7 @@ bool battle_status_block_damage(struct block_list *src, struct block_list *targe
return false; return false;
if ((sce = sc->getSCE(SC_PARRYING)) && flag&BF_WEAPON && skill_id != WS_CARTTERMINATION && rnd() % 100 < sce->val2) { if ((sce = sc->getSCE(SC_PARRYING)) && flag&BF_WEAPON && skill_id != WS_CARTTERMINATION && rnd() % 100 < sce->val2) {
clif_skill_nodamage(target, target, LK_PARRYING, sce->val1, 1); clif_skill_nodamage(target, *target, LK_PARRYING, sce->val1);
if (skill_id == LK_PARRYING) { if (skill_id == LK_PARRYING) {
unit_data *ud = unit_bl2ud(target); unit_data *ud = unit_bl2ud(target);
@ -1471,7 +1471,7 @@ bool battle_status_block_damage(struct block_list *src, struct block_list *targe
if (sd && pc_issit(sd)) if (sd && pc_issit(sd))
pc_setstand(sd, true); //Stand it to dodge. pc_setstand(sd, true); //Stand it to dodge.
clif_skill_nodamage(target, target, TK_DODGE, 1, 1); clif_skill_nodamage(target, *target, TK_DODGE, 1);
sc_start4(src, target, SC_COMBO, 100, TK_JUMPKICK, src->id, 1, 0, 2000); sc_start4(src, target, SC_COMBO, 100, TK_JUMPKICK, src->id, 1, 0, 2000);
return false; return false;
} }
@ -6990,7 +6990,7 @@ static void battle_calc_weapon_final_atk_modifiers(struct Damage* wd, struct blo
) )
{ {
ATK_RATER(wd->damage, 50) ATK_RATER(wd->damage, 50)
clif_skill_nodamage(target,target,ST_REJECTSWORD, tsc->getSCE(SC_REJECTSWORD)->val1,1); clif_skill_nodamage(target, *target,ST_REJECTSWORD, tsc->getSCE(SC_REJECTSWORD)->val1);
battle_fix_damage(target,src,wd->damage,clif_damage(*target,*src,gettick(),0,0,wd->damage,0,DMG_NORMAL,0,false),ST_REJECTSWORD); battle_fix_damage(target,src,wd->damage,clif_damage(*target,*src,gettick(),0,0,wd->damage,0,DMG_NORMAL,0,false),ST_REJECTSWORD);
if (status_isdead(*target)) if (status_isdead(*target))
return; return;
@ -9434,7 +9434,7 @@ struct Damage battle_calc_attack(int attack_type,struct block_list *bl,struct bl
status_change_entry *tsce = tsc->getSCE(SC_WEAPONBLOCKING); status_change_entry *tsce = tsc->getSCE(SC_WEAPONBLOCKING);
if (attack_type == BF_WEAPON && rnd() % 100 < tsce->val2) { if (attack_type == BF_WEAPON && rnd() % 100 < tsce->val2) {
clif_skill_nodamage(target, bl, GC_WEAPONBLOCKING, tsce->val1, 1); clif_skill_nodamage(target, *bl, GC_WEAPONBLOCKING, tsce->val1);
sc_start(bl, target, SC_WEAPONBLOCK_ON, 100, bl->id, skill_get_time2(GC_WEAPONBLOCKING, tsce->val1)); sc_start(bl, target, SC_WEAPONBLOCK_ON, 100, bl->id, skill_get_time2(GC_WEAPONBLOCKING, tsce->val1));
} }
} }
@ -9973,7 +9973,7 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t
} }
if (tsc && tsc->getSCE(SC_MTF_MLEATKED) && rnd()%100 < tsc->getSCE(SC_MTF_MLEATKED)->val2) if (tsc && tsc->getSCE(SC_MTF_MLEATKED) && rnd()%100 < tsc->getSCE(SC_MTF_MLEATKED)->val2)
clif_skill_nodamage(target, target, SM_ENDURE, tsc->getSCE(SC_MTF_MLEATKED)->val1, sc_start(src, target, SC_ENDURE, 100, tsc->getSCE(SC_MTF_MLEATKED)->val1, skill_get_time(SM_ENDURE, tsc->getSCE(SC_MTF_MLEATKED)->val1))); clif_skill_nodamage(target, *target, SM_ENDURE, tsc->getSCE(SC_MTF_MLEATKED)->val1, sc_start(src, target, SC_ENDURE, 100, tsc->getSCE(SC_MTF_MLEATKED)->val1, skill_get_time(SM_ENDURE, tsc->getSCE(SC_MTF_MLEATKED)->val1)));
if(tsc && tsc->getSCE(SC_KAAHI) && tstatus->hp < tstatus->max_hp && status_charge(target, 0, tsc->getSCE(SC_KAAHI)->val3)) { if(tsc && tsc->getSCE(SC_KAAHI) && tstatus->hp < tstatus->max_hp && status_charge(target, 0, tsc->getSCE(SC_KAAHI)->val3)) {
int hp_heal = tstatus->max_hp - tstatus->hp; int hp_heal = tstatus->max_hp - tstatus->hp;

View File

@ -6076,45 +6076,35 @@ int clif_skill_damage2(struct block_list *src,struct block_list *dst,t_tick tick
/// Non-damaging skill effect /// Non-damaging skill effect
/// 011a <skill id>.W <heal>.W <dst id>.L <src id>.L <result>.B (ZC_USE_SKILL). /// 011a <skill id>.W <heal>.W <dst id>.L <src id>.L <result>.B (ZC_USE_SKILL)
/// 09cb <skill id>.W <heal>.L <dst id>.L <src id>.L <result>.B (ZC_USE_SKILL2). /// 09cb <skill id>.W <heal>.L <dst id>.L <src id>.L <result>.B (ZC_USE_SKILL2)
bool clif_skill_nodamage(struct block_list *src,struct block_list *dst, uint16 skill_id, int heal, t_tick tick) bool clif_skill_nodamage( block_list* src, block_list& dst, uint16 skill_id, int32 heal, bool success ){
{ PACKET_ZC_USE_SKILL p{};
unsigned char buf[17];
#if PACKETVER < 20130731
const int cmd = 0x11a;
#else
const int cmd = 0x9cb;
#endif
int offset = 0;
bool success = ( tick != 0 );
nullpo_ret(dst); p.PacketType = HEADER_ZC_USE_SKILL;
p.SKID = skill_id;
WBUFW(buf,0) = cmd; p.level = std::min( static_cast<decltype(p.level)>( heal ), std::numeric_limits<decltype(p.level)>::max() );
WBUFW(buf,2) = skill_id; p.targetAID = dst.id;
#if PACKETVER < 20130731 p.result = success;
WBUFW(buf,4) = min(heal, INT16_MAX); if(src != nullptr){
#else p.srcAID = src->id;
WBUFL(buf,4) = min(heal, INT32_MAX); }else{
offset += 2; p.srcAID = 0;
#endif }
WBUFL(buf,6+offset) = dst->id; if (disguised(&dst)) {
WBUFL(buf,10+offset) = src ? src->id : 0; clif_send(&p, sizeof(p), &dst, AREA_WOS);
WBUFB(buf,14+offset) = success; p.targetAID = disguised_bl_id(dst.id);
clif_send(&p, sizeof(p), &dst, SELF);
if (disguised(dst)) {
clif_send(buf, packet_len(cmd), dst, AREA_WOS);
WBUFL(buf,6+offset) = disguised_bl_id(dst->id);
clif_send(buf, packet_len(cmd), dst, SELF);
} else } else
clif_send(buf, packet_len(cmd), dst, AREA); clif_send(&p, sizeof(p), &dst, AREA);
if(src && disguised(src)) { if(src != nullptr && disguised(src)) {
WBUFL(buf,10+offset) = disguised_bl_id(src->id); p.srcAID = disguised_bl_id(src->id);
if (disguised(dst)) if (disguised(&dst)){
WBUFL(buf,6+offset) = dst->id; // It is necessary to revert the changes done above for the disguised target
clif_send(buf, packet_len(cmd), src, SELF); p.targetAID = dst.id;
}
clif_send(&p, sizeof(p), src, SELF);
} }
return success; return success;
@ -15063,7 +15053,7 @@ void clif_parse_NoviceExplosionSpirits(int fd, map_session_data *sd)
if( percent && ( percent%100 ) == 0 ) {// 10.0%, 20.0%, ..., 90.0% if( percent && ( percent%100 ) == 0 ) {// 10.0%, 20.0%, ..., 90.0%
sc_start(&sd->bl,&sd->bl, SC_EXPLOSIONSPIRITS, 100, 17, skill_get_time(MO_EXPLOSIONSPIRITS, 5)); //Lv17-> +50 critical (noted by Poki) [Skotlex] sc_start(&sd->bl,&sd->bl, SC_EXPLOSIONSPIRITS, 100, 17, skill_get_time(MO_EXPLOSIONSPIRITS, 5)); //Lv17-> +50 critical (noted by Poki) [Skotlex]
clif_skill_nodamage(&sd->bl, &sd->bl, MO_EXPLOSIONSPIRITS, 5, 1); // prayer always shows successful Lv5 cast and disregards noskill restrictions clif_skill_nodamage(&sd->bl, sd->bl, MO_EXPLOSIONSPIRITS, 5); // prayer always shows successful Lv5 cast and disregards noskill restrictions
} }
} }
} }

View File

@ -941,7 +941,7 @@ void clif_skill_fail( map_session_data& sd, uint16 skill_id, enum useskill_fail_
void clif_skill_cooldown( map_session_data &sd, uint16 skill_id, t_tick tick ); void clif_skill_cooldown( map_session_data &sd, uint16 skill_id, t_tick tick );
int clif_skill_damage(struct block_list *src,struct block_list *dst,t_tick tick,int sdelay,int ddelay,int64 sdamage,int div,uint16 skill_id,uint16 skill_lv,enum e_damage_type type); int clif_skill_damage(struct block_list *src,struct block_list *dst,t_tick tick,int sdelay,int ddelay,int64 sdamage,int div,uint16 skill_id,uint16 skill_lv,enum e_damage_type type);
//int clif_skill_damage2(struct block_list *src,struct block_list *dst,t_tick tick,int sdelay,int ddelay,int damage,int div,uint16 skill_id,uint16 skill_lv,enum e_damage_type type); //int clif_skill_damage2(struct block_list *src,struct block_list *dst,t_tick tick,int sdelay,int ddelay,int damage,int div,uint16 skill_id,uint16 skill_lv,enum e_damage_type type);
bool clif_skill_nodamage(struct block_list *src,struct block_list *dst,uint16 skill_id,int heal,t_tick tick); bool clif_skill_nodamage( block_list* src, block_list& dst, uint16 skill_id, int32 heal, bool success = true );
void clif_skill_poseffect(struct block_list *src,uint16 skill_id,int val,int x,int y,t_tick tick); void clif_skill_poseffect(struct block_list *src,uint16 skill_id,int val,int x,int y,t_tick tick);
void clif_skill_estimation(map_session_data *sd,struct block_list *dst); void clif_skill_estimation(map_session_data *sd,struct block_list *dst);
void clif_skill_warppoint( map_session_data& sd, uint16 skill_id, uint16 skill_lv, std::vector<std::string>& maps ); void clif_skill_warppoint( map_session_data& sd, uint16 skill_id, uint16 skill_lv, std::vector<std::string>& maps );

View File

@ -133,7 +133,6 @@
packet(0x0117,18); packet(0x0117,18);
parseable_packet(0x0118,2,clif_parse_StopAttack,0); parseable_packet(0x0118,2,clif_parse_StopAttack,0);
packet(0x0119,13); packet(0x0119,13);
packet(0x011a,15);
parseable_packet(0x011b,20,clif_parse_UseSkillMap,2,4); parseable_packet(0x011b,20,clif_parse_UseSkillMap,2,4);
parseable_packet(0x011d,2,clif_parse_RequestMemo,0); parseable_packet(0x011d,2,clif_parse_RequestMemo,0);
packet(0x011f,16); packet(0x011f,16);
@ -1746,7 +1745,6 @@
// 2013-07-31cRagexe // 2013-07-31cRagexe
#if PACKETVER >= 20130731 #if PACKETVER >= 20130731
packet(0x09ca,23); // ZC_SKILL_ENTRY5 packet(0x09ca,23); // ZC_SKILL_ENTRY5
packet(0x09cb,17); // ZC_USE_SKILL2
#endif #endif
// 2013-08-07Ragexe // 2013-08-07Ragexe

View File

@ -3682,7 +3682,7 @@ int mob_summonslave(struct mob_data *md2,int *value,int amount,uint16 skill_id)
if (md2->state.copy_master_mode) if (md2->state.copy_master_mode)
md->status.mode = md2->status.mode; md->status.mode = md2->status.mode;
clif_skill_nodamage(&md->bl,&md->bl,skill_id,amount,1); clif_skill_nodamage(&md->bl,md->bl,skill_id,amount);
} }
return 0; return 0;

View File

@ -10053,7 +10053,7 @@ bool pc_revive_item(map_session_data *sd) {
else else
pc_delitem(sd, item_position, 1, 0, 1, LOG_TYPE_CONSUME); pc_delitem(sd, item_position, 1, 0, 1, LOG_TYPE_CONSUME);
clif_skill_nodamage(&sd->bl, &sd->bl, ALL_RESURRECTION, 4, 1); clif_skill_nodamage(&sd->bl, sd->bl, ALL_RESURRECTION, 4);
return true; return true;
} }

View File

@ -2073,7 +2073,7 @@ TIMER_FUNC(pet_recovery_timer){
if(sd->sc.getSCE(pd->recovery->type)) { if(sd->sc.getSCE(pd->recovery->type)) {
//Display a heal animation? //Display a heal animation?
//Detoxify is chosen for now. //Detoxify is chosen for now.
clif_skill_nodamage(&pd->bl,&sd->bl,TF_DETOXIFY,1,1); clif_skill_nodamage(&pd->bl,sd->bl,TF_DETOXIFY,1);
status_change_end(&sd->bl, pd->recovery->type); status_change_end(&sd->bl, pd->recovery->type);
clif_emotion(&pd->bl, ET_OK); clif_emotion(&pd->bl, ET_OK);
} }
@ -2116,7 +2116,7 @@ TIMER_FUNC(pet_heal_timer){
pet_stop_attack(pd); pet_stop_attack(pd);
pet_stop_walking(pd,1); pet_stop_walking(pd,1);
clif_skill_nodamage(&pd->bl,&sd->bl,AL_HEAL,pd->s_skill->lv,1); clif_skill_nodamage(&pd->bl,sd->bl,AL_HEAL,pd->s_skill->lv);
status_heal(&sd->bl, pd->s_skill->lv,0, 0); status_heal(&sd->bl, pd->s_skill->lv,0, 0);
pd->s_skill->timer = add_timer(tick+pd->s_skill->delay*1000,pet_heal_timer,sd->bl.id,0); pd->s_skill->timer = add_timer(tick+pd->s_skill->delay*1000,pet_heal_timer,sd->bl.id,0);
return 0; return 0;

View File

@ -15343,7 +15343,7 @@ static inline void script_skill_effect( block_list& bl, uint16 skill_id, uint16
clif_skill_poseffect(&bl, skill_id, skill_lv, x, y, gettick()); clif_skill_poseffect(&bl, skill_id, skill_lv, x, y, gettick());
break; break;
case CAST_NODAMAGE: case CAST_NODAMAGE:
clif_skill_nodamage(&bl, &bl, skill_id, skill_lv, 1); clif_skill_nodamage(&bl, bl, skill_id, skill_lv);
break; break;
case CAST_DAMAGE: case CAST_DAMAGE:
clif_skill_damage(&bl, &bl, gettick(), status_get_amotion(&bl), status_get_dmotion(&bl), 0, 1, skill_id, skill_lv, skill_get_hit(skill_id)); clif_skill_damage(&bl, &bl, gettick(), status_get_amotion(&bl), status_get_dmotion(&bl), 0, 1, skill_id, skill_lv, skill_get_hit(skill_id));

File diff suppressed because it is too large Load Diff

View File

@ -1647,7 +1647,7 @@ int status_damage(struct block_list *src,struct block_list *target,int64 dhp, in
else else
status_revive(target, sc->getSCE(SC_KAIZEL)->val2, 0); status_revive(target, sc->getSCE(SC_KAIZEL)->val2, 0);
status_change_clear(target,0); status_change_clear(target,0);
clif_skill_nodamage(target,target,ALL_RESURRECTION,1,1); clif_skill_nodamage(target,*target,ALL_RESURRECTION,1);
sc_start(src,target,SC_KYRIE,100,10,time); sc_start(src,target,SC_KYRIE,100,10,time);
if( target->type == BL_MOB ) if( target->type == BL_MOB )
@ -1660,7 +1660,7 @@ int status_damage(struct block_list *src,struct block_list *target,int64 dhp, in
if (sc && sc->getSCE(SC_ULTIMATE_S) && !map_flag_gvg2(target->m)) { if (sc && sc->getSCE(SC_ULTIMATE_S) && !map_flag_gvg2(target->m)) {
status_revive(target, 100, 100); status_revive(target, 100, 100);
status_change_clear(target, 0); status_change_clear(target, 0);
clif_skill_nodamage(target, target, ALL_RESURRECTION, 1, 1); clif_skill_nodamage(target, *target, ALL_RESURRECTION, 1);
if (target->type == BL_MOB) if (target->type == BL_MOB)
((TBL_MOB*)target)->state.rebirth = 1; ((TBL_MOB*)target)->state.rebirth = 1;
@ -13137,19 +13137,19 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
switch(sce->val1) { switch(sce->val1) {
case TK_STORMKICK: case TK_STORMKICK:
skill_combo_toggle_inf(bl, TK_JUMPKICK, 0); skill_combo_toggle_inf(bl, TK_JUMPKICK, 0);
clif_skill_nodamage(bl,bl,TK_READYSTORM,1,1); clif_skill_nodamage(bl,*bl,TK_READYSTORM,1);
break; break;
case TK_DOWNKICK: case TK_DOWNKICK:
skill_combo_toggle_inf(bl, TK_JUMPKICK, 0); skill_combo_toggle_inf(bl, TK_JUMPKICK, 0);
clif_skill_nodamage(bl,bl,TK_READYDOWN,1,1); clif_skill_nodamage(bl,*bl,TK_READYDOWN,1);
break; break;
case TK_TURNKICK: case TK_TURNKICK:
skill_combo_toggle_inf(bl, TK_JUMPKICK, 0); skill_combo_toggle_inf(bl, TK_JUMPKICK, 0);
clif_skill_nodamage(bl,bl,TK_READYTURN,1,1); clif_skill_nodamage(bl,*bl,TK_READYTURN,1);
break; break;
case TK_COUNTER: case TK_COUNTER:
skill_combo_toggle_inf(bl, TK_JUMPKICK, 0); skill_combo_toggle_inf(bl, TK_JUMPKICK, 0);
clif_skill_nodamage(bl,bl,TK_READYCOUNTER,1,1); clif_skill_nodamage(bl,*bl,TK_READYCOUNTER,1);
break; break;
default: // Rest just toggle inf to enable autotarget default: // Rest just toggle inf to enable autotarget
skill_combo_toggle_inf(bl,sce->val1,INF_SELF_SKILL); skill_combo_toggle_inf(bl,sce->val1,INF_SELF_SKILL);

View File

@ -1639,9 +1639,9 @@ TIMER_FUNC(unit_resume_running){
TBL_PC *sd = map_id2sd(id); TBL_PC *sd = map_id2sd(id);
if (sd && pc_isridingwug(sd)) if (sd && pc_isridingwug(sd))
clif_skill_nodamage(ud->bl,ud->bl,RA_WUGDASH,ud->skill_lv,sc_start4(ud->bl,ud->bl,SC_WUGDASH,100,ud->skill_lv,unit_getdir(ud->bl),0,0,0)); clif_skill_nodamage(ud->bl,*ud->bl,RA_WUGDASH,ud->skill_lv,sc_start4(ud->bl,ud->bl,SC_WUGDASH,100,ud->skill_lv,unit_getdir(ud->bl),0,0,0));
else else
clif_skill_nodamage(ud->bl,ud->bl,TK_RUN,ud->skill_lv,sc_start4(ud->bl,ud->bl,SC_RUN,100,ud->skill_lv,unit_getdir(ud->bl),0,0,0)); clif_skill_nodamage(ud->bl,*ud->bl,TK_RUN,ud->skill_lv,sc_start4(ud->bl,ud->bl,SC_RUN,100,ud->skill_lv,unit_getdir(ud->bl),0,0,0));
if (sd) if (sd)
clif_walkok(*sd); clif_walkok(*sd);