How can I do to make Bowling Bash stun the target with a chance, when being knocked back against a wall?
case KN_BOWLINGBASH:case MS_BOWLINGBASH:{int min_x,max_x,min_y,max_y,i,c,dir,tx,ty;// Chain effect and check range gets reduction by recursive depth, as this can reach 0, we don't use blowcount
c =(skill_lv-(flag&0xFFF)+1)/2;// Determine the Bowling Bash area depending on configurationif(battle_config.bowling_bash_area ==0){// Gutter line system
min_x =((src->x)-c)-((src->x)-c)%40;if(min_x <0) min_x =0;
max_x = min_x +39;
min_y =((src->y)-c)-((src->y)-c)%40;if(min_y <0) min_y =0;
max_y = min_y +39;}elseif(battle_config.bowling_bash_area ==1){// Gutter line system without demi gutter bug
min_x = src->x -(src->x)%40;
max_x = min_x +39;
min_y = src->y -(src->y)%40;
max_y = min_y +39;}else{// Area around caster
min_x = src->x - battle_config.bowling_bash_area;
max_x = src->x + battle_config.bowling_bash_area;
min_y = src->y - battle_config.bowling_bash_area;
max_y = src->y + battle_config.bowling_bash_area;}// Initialization, break checks, directionif((flag&0xFFF)>0){// Ignore monsters outside areaif(bl->x < min_x || bl->x > max_x || bl->y < min_y || bl->y > max_y)break;// Ignore monsters already in listif(idb_exists(bowling_db, bl->id))break;// Random direction
dir = rnd()%8;}else{// Create an empty list of already hit targets
db_clear(bowling_db);// Direction is walkpath
dir =(unit_getdir(src)+4)%8;}// Add current target to the list of already hit targets
idb_put(bowling_db, bl->id, bl);// Keep moving target in direction square by square
tx = bl->x;
ty = bl->y;for(i=0;i<c;i++){// Target coordinates (get changed even if knockback fails)
tx -= dirx[dir];
ty -= diry[dir];// If target cell is a wall then breakif(map_getcell(bl->m,tx,ty,CELL_CHKWALL))break;
skill_blown(src,bl,1,dir,BLOWN_NONE);int count;// Splash around target cell, but only cells inside area; we first have to check the area is not negativeif((max(min_x,tx-1)<= min(max_x,tx+1))&&(max(min_y,ty-1)<= min(max_y,ty+1))&&(count = map_foreachinallarea(skill_area_sub, bl->m, max(min_x,tx-1), max(min_y,ty-1), min(max_x,tx+1), min(max_y,ty+1), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY, skill_area_sub_count))){// Recursive call
map_foreachinallarea(skill_area_sub, bl->m, max(min_x,tx-1), max(min_y,ty-1), min(max_x,tx+1), min(max_y,ty+1), splash_target(src), src, skill_id, skill_lv, tick,(flag|BCT_ENEMY)+1, skill_castend_damage_id);// Self-collisionif(bl->x >= min_x && bl->x <= max_x && bl->y >= min_y && bl->y <= max_y)
skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,(flag&0xFFF)>0?SD_ANIMATION|count:count);break;}}#ifndef RENEWAL
// Original hit or chain hit depending on flag
skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,(flag&0xFFF)>0?SD_ANIMATION:0);#endif}break;
Question
Vyserion
Hello guys!
How can I do to make Bowling Bash stun the target with a chance, when being knocked back against a wall?
Link to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.