src\map\skill.c
case KN_BOWLINGBASH:
case MS_BOWLINGBASH:
if(flag&1){
if(bl->id==skill_area_temp[1])
break;
//two hits for 500%
skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,SD_ANIMATION);
skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,SD_ANIMATION);
} else {
//Weirdo dual-hit property, two attacks for 500%
skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,0);
skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,0);
}
break;
and for charge attack
case KN_CHARGEATK:
{
bool path = path_search_long(NULL, src->m, src->x, src->y, bl->x, bl->y,CELL_CHKWALL);
unsigned int dist = distance_bl(src, bl);
unsigned int dir = map_calc_dir(bl, src->x, src->y);
// teleport to target (if not on WoE grounds)
if( !map_flag_gvg(src->m) && !map[src->m].flag.battleground && unit_movepos(src, bl->x, bl->y, 0, 1) )
clif_slide(src, bl->x, bl->y);
// cause damage and knockback if the path to target was a straight one
if( path )
{
skill_attack(BF_WEAPON, src, src, bl, skillid, skilllv, tick, dist);
//skill_blown(src, bl, dist, dir, 0);
//HACK: since knockback officially defaults to the left, the client also turns to the left... therefore,
// make the caster look in the direction of the target
unit_setdir(src, (dir+4)%8);
}
Not sure if it Works.