Fixes Bowling Bash behavior (#5598)
* Fixes #5489. * Removes the gutterline feature from Bowling Bash in renewal mode. * Skill will now behave as a normal 5x5 AoE. * Fixes knockback getting removed during battle calculation. Thanks to @humanwizzard and @Daegaladh!
This commit is contained in:
parent
f57b037b83
commit
0ea169086e
@ -303,7 +303,7 @@ dancing_weaponswitch_fix: yes
|
|||||||
// 3: 1+2
|
// 3: 1+2
|
||||||
skill_trap_type: 0
|
skill_trap_type: 0
|
||||||
|
|
||||||
// Area of Bowling Bash chain reaction
|
// Area of Bowling Bash chain reaction (pre-renewal only)
|
||||||
// 0: Use official gutter line system
|
// 0: Use official gutter line system
|
||||||
// 1: Gutter line system without demi gutter bug
|
// 1: Gutter line system without demi gutter bug
|
||||||
// 2-20: Area around caster (2 = 5x5, 3 = 7x7, 4 = 9x9, ..., 20 = 41x41)
|
// 2-20: Area around caster (2 = 5x5, 3 = 7x7, 4 = 9x9, ..., 20 = 41x41)
|
||||||
|
@ -2279,8 +2279,6 @@ Body:
|
|||||||
MaxLevel: 10
|
MaxLevel: 10
|
||||||
Type: Weapon
|
Type: Weapon
|
||||||
TargetType: Attack
|
TargetType: Attack
|
||||||
DamageFlags:
|
|
||||||
Splash: true
|
|
||||||
Flags:
|
Flags:
|
||||||
TargetTrap: true
|
TargetTrap: true
|
||||||
Range: -2
|
Range: -2
|
||||||
@ -2288,7 +2286,27 @@ Body:
|
|||||||
HitCount: 2
|
HitCount: 2
|
||||||
Element: Weapon
|
Element: Weapon
|
||||||
SplashArea: 2
|
SplashArea: 2
|
||||||
Knockback: 1
|
Knockback:
|
||||||
|
- Level: 1
|
||||||
|
Amount: 1
|
||||||
|
- Level: 2
|
||||||
|
Amount: 1
|
||||||
|
- Level: 3
|
||||||
|
Amount: 2
|
||||||
|
- Level: 4
|
||||||
|
Amount: 2
|
||||||
|
- Level: 5
|
||||||
|
Amount: 3
|
||||||
|
- Level: 6
|
||||||
|
Amount: 3
|
||||||
|
- Level: 7
|
||||||
|
Amount: 4
|
||||||
|
- Level: 8
|
||||||
|
Amount: 4
|
||||||
|
- Level: 9
|
||||||
|
Amount: 5
|
||||||
|
- Level: 10
|
||||||
|
Amount: 5
|
||||||
CopyFlags:
|
CopyFlags:
|
||||||
Skill:
|
Skill:
|
||||||
Plagiarism: true
|
Plagiarism: true
|
||||||
|
@ -5668,17 +5668,24 @@ static struct Damage initialize_weapon_data(struct block_list *src, struct block
|
|||||||
wd.amotion = sstatus->amotion;
|
wd.amotion = sstatus->amotion;
|
||||||
//Fall through
|
//Fall through
|
||||||
case KN_SPEARSTAB:
|
case KN_SPEARSTAB:
|
||||||
|
#ifndef RENEWAL
|
||||||
case KN_BOWLINGBASH:
|
case KN_BOWLINGBASH:
|
||||||
#ifdef RENEWAL
|
|
||||||
if (skill_id == KN_BOWLINGBASH && sd && sd->status.weapon == W_2HSWORD)
|
|
||||||
wd.div_ = cap_value(wd.miscflag, 2, 4);
|
|
||||||
#endif
|
#endif
|
||||||
case MS_BOWLINGBASH:
|
case MS_BOWLINGBASH:
|
||||||
case MO_BALKYOUNG:
|
case MO_BALKYOUNG:
|
||||||
case TK_TURNKICK:
|
case TK_TURNKICK:
|
||||||
wd.blewcount = 0;
|
wd.blewcount = 0;
|
||||||
break;
|
break;
|
||||||
|
#ifdef RENEWAL
|
||||||
|
case KN_BOWLINGBASH:
|
||||||
|
if (sd && sd->status.weapon == W_2HSWORD) {
|
||||||
|
if (wd.miscflag >= 2 && wd.miscflag <= 3)
|
||||||
|
wd.div_ = 3;
|
||||||
|
else if (wd.miscflag >= 4)
|
||||||
|
wd.div_ = 4;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
case KN_AUTOCOUNTER:
|
case KN_AUTOCOUNTER:
|
||||||
wd.flag = (wd.flag&~BF_SKILLMASK)|BF_NORMAL;
|
wd.flag = (wd.flag&~BF_SKILLMASK)|BF_NORMAL;
|
||||||
break;
|
break;
|
||||||
|
@ -5278,7 +5278,19 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
|||||||
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;
|
||||||
|
|
||||||
|
#ifdef RENEWAL
|
||||||
case KN_BOWLINGBASH:
|
case KN_BOWLINGBASH:
|
||||||
|
if (flag & 1) {
|
||||||
|
skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, (skill_area_temp[0]) > 0 ? SD_ANIMATION | skill_area_temp[0] : skill_area_temp[0]);
|
||||||
|
skill_blown(src, bl, skill_get_blewcount(skill_id, skill_lv), -1, BLOWN_NONE);
|
||||||
|
} else {
|
||||||
|
skill_area_temp[0] = map_foreachinallrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR, src, skill_id, skill_lv, tick, BCT_ENEMY, skill_area_sub_count);
|
||||||
|
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;
|
||||||
|
#else
|
||||||
|
case KN_BOWLINGBASH:
|
||||||
|
#endif
|
||||||
case MS_BOWLINGBASH:
|
case MS_BOWLINGBASH:
|
||||||
{
|
{
|
||||||
int min_x,max_x,min_y,max_y,i,c,dir,tx,ty;
|
int min_x,max_x,min_y,max_y,i,c,dir,tx,ty;
|
||||||
@ -5350,10 +5362,8 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifndef RENEWAL
|
|
||||||
// Original hit or chain hit depending on flag
|
// 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);
|
skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,(flag&0xFFF)>0?SD_ANIMATION:0);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user