Fixed bonus crit_atk_rate not being applied - Fixes bugreport:7846
Weapon Perfection now modifies size damage - Fixes bugreport:7813 Water Ball now checks for obstacles - Fixes bugreport:7426 Re-added the somehow lost Banishing Point hit rate fix
This commit is contained in:
parent
3beb7833f9
commit
8ebb789db6
@ -1523,10 +1523,9 @@ int battle_addmastery(struct map_session_data *sd,struct block_list *target,int
|
||||
#ifdef RENEWAL
|
||||
static int battle_calc_sizefix(int damage, struct map_session_data *sd, unsigned char t_size, unsigned char weapon_type, short flag)
|
||||
{
|
||||
if (sd)
|
||||
{
|
||||
if (sd) {
|
||||
//SizeFix only for players
|
||||
if (!(sd->special_state.no_sizefix) || flag)
|
||||
if (!(sd->special_state.no_sizefix) && !flag)
|
||||
DAMAGE_RATE(weapon_type==EQI_HAND_L?
|
||||
sd->left_weapon.atkmods[t_size]:
|
||||
sd->right_weapon.atkmods[t_size])
|
||||
@ -2064,6 +2063,9 @@ static bool is_attack_hitting(struct Damage wd, struct block_list *src, struct b
|
||||
if( sd && pc_checkskill(sd, GN_REMODELING_CART) )
|
||||
hitrate += pc_checkskill(sd, GN_REMODELING_CART) * 4;
|
||||
break;
|
||||
case LG_BANISHINGPOINT:
|
||||
hitrate += 3 * skill_lv;
|
||||
break;
|
||||
case GC_VENOMPRESSURE:
|
||||
hitrate += 10 + 4 * skill_lv;
|
||||
break;
|
||||
@ -4365,9 +4367,9 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src, struct bl
|
||||
#ifdef RENEWAL
|
||||
if(is_attack_critical(wd, src, target, skill_id, skill_lv, false)) {
|
||||
if(sd) // check for player so we don't crash out, monsters don't have bonus crit rates [helvetica]
|
||||
wd.damage = (int32)floor((double)wd.damage * 1.4 * ((100 + sd->bonus.crit_atk_rate) / 100));
|
||||
wd.damage = (int)floor((double)(wd.damage * 1.4 * (100 + sd->bonus.crit_atk_rate)) / 100);
|
||||
else
|
||||
wd.damage = (int32)floor((double)wd.damage * 1.4);
|
||||
wd.damage = (int)floor((double)wd.damage * 1.4);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -3283,9 +3283,11 @@ static int skill_timerskill(int tid, unsigned int tick, int id, intptr_t data)
|
||||
break;
|
||||
case WZ_WATERBALL:
|
||||
skill_toggle_magicpower(src, skl->skill_id); // only the first hit will be amplify
|
||||
if (!status_isdead(target))
|
||||
// Official behaviour is to hit as long as there is a line of sight, regardless of distance
|
||||
range = path_search_long(NULL,src->m,src->x,src->y,target->x,target->y,CELL_CHKNOREACH);
|
||||
if (!status_isdead(target) && range)
|
||||
skill_attack(BF_MAGIC,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag);
|
||||
if (skl->type>1 && !status_isdead(target) && !status_isdead(src)) {
|
||||
if (skl->type>1 && !status_isdead(target) && !status_isdead(src) && range) {
|
||||
skill_addtimerskill(src,tick+125,target->id,0,0,skl->skill_id,skl->skill_lv,skl->type-1,skl->flag);
|
||||
} else {
|
||||
struct status_change *sc = status_get_sc(src);
|
||||
|
Loading…
x
Reference in New Issue
Block a user