Fixed Bug.
- Snap dodge bug (bugreport:3510)(Hercules 76662cc)
This commit is contained in:
parent
4f09d08226
commit
d62d89d59c
@ -1,4 +1,4 @@
|
|||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
// rAthena Battle Configuration File
|
// rAthena Battle Configuration File
|
||||||
// Originally Translated by Peter Kieser <pfak@telus.net>
|
// Originally Translated by Peter Kieser <pfak@telus.net>
|
||||||
// Made in to plainer English by Ancyker
|
// Made in to plainer English by Ancyker
|
||||||
@ -149,3 +149,7 @@ knockback_left: yes
|
|||||||
// Can players use Falcons and Wargs at the same time? (Note 1)
|
// Can players use Falcons and Wargs at the same time? (Note 1)
|
||||||
// This is not allowed on official servers.
|
// This is not allowed on official servers.
|
||||||
warg_can_falcon: no
|
warg_can_falcon: no
|
||||||
|
|
||||||
|
// Should the target be able of dodging damage by snapping away to the edge of the screen?
|
||||||
|
// Official behavior is "no"
|
||||||
|
snap_dodge: no
|
||||||
|
@ -320,12 +320,16 @@ int battle_delay_damage(unsigned int tick, int amotion, struct block_list *src,
|
|||||||
{
|
{
|
||||||
struct delay_damage *dat;
|
struct delay_damage *dat;
|
||||||
struct status_change *sc;
|
struct status_change *sc;
|
||||||
|
struct block_list *d_tbl = NULL;
|
||||||
nullpo_ret(src);
|
nullpo_ret(src);
|
||||||
nullpo_ret(target);
|
nullpo_ret(target);
|
||||||
|
|
||||||
sc = status_get_sc(target);
|
sc = status_get_sc(target);
|
||||||
|
|
||||||
if( sc && sc->data[SC_DEVOTION] && damage > 0 && skill_id != PA_PRESSURE && skill_id != CR_REFLECTSHIELD )
|
if (sc && sc->data[SC_DEVOTION] && sc->data[SC_DEVOTION]->val1)
|
||||||
|
d_tbl = map_id2bl(sc->data[SC_DEVOTION]->val1);
|
||||||
|
|
||||||
|
if( d_tbl && sc && sc->data[SC_DEVOTION] && damage > 0 && skill_id != PA_PRESSURE && skill_id != CR_REFLECTSHIELD )
|
||||||
damage = 0;
|
damage = 0;
|
||||||
|
|
||||||
if ( !battle_config.delay_battle_damage || amotion <= 1 ) {
|
if ( !battle_config.delay_battle_damage || amotion <= 1 ) {
|
||||||
@ -347,7 +351,7 @@ int battle_delay_damage(unsigned int tick, int amotion, struct block_list *src,
|
|||||||
dat->damage = damage;
|
dat->damage = damage;
|
||||||
dat->dmg_lv = dmg_lv;
|
dat->dmg_lv = dmg_lv;
|
||||||
dat->delay = ddelay;
|
dat->delay = ddelay;
|
||||||
dat->distance = distance_bl(src, target)+10; //Attack should connect regardless unless you teleported.
|
dat->distance = distance_bl(src, target) + (battle_config.snap_dodge ? 10 : battle_config.area_size);
|
||||||
dat->additional_effects = additional_effects;
|
dat->additional_effects = additional_effects;
|
||||||
dat->src_type = src->type;
|
dat->src_type = src->type;
|
||||||
if (src->type != BL_PC && amotion > 1000)
|
if (src->type != BL_PC && amotion > 1000)
|
||||||
@ -7922,6 +7926,7 @@ static const struct _battle_data {
|
|||||||
{ "monster_chase_refresh", &battle_config.mob_chase_refresh, 1, 0, 30, },
|
{ "monster_chase_refresh", &battle_config.mob_chase_refresh, 1, 0, 30, },
|
||||||
{ "mob_icewall_walk_block", &battle_config.mob_icewall_walk_block, 75, 0, 255, },
|
{ "mob_icewall_walk_block", &battle_config.mob_icewall_walk_block, 75, 0, 255, },
|
||||||
{ "boss_icewall_walk_block", &battle_config.boss_icewall_walk_block, 0, 0, 255, },
|
{ "boss_icewall_walk_block", &battle_config.boss_icewall_walk_block, 0, 0, 255, },
|
||||||
|
{ "snap_dodge", &battle_config.snap_dodge, 0, 0, 1, },
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef STATS_OPT_OUT
|
#ifndef STATS_OPT_OUT
|
||||||
|
@ -576,6 +576,7 @@ extern struct Battle_Config
|
|||||||
int mob_chase_refresh; //How often a monster should refresh its chase [Playtester]
|
int mob_chase_refresh; //How often a monster should refresh its chase [Playtester]
|
||||||
int mob_icewall_walk_block; //How a normal monster should be trapped in icewall [Playtester]
|
int mob_icewall_walk_block; //How a normal monster should be trapped in icewall [Playtester]
|
||||||
int boss_icewall_walk_block; //How a boss monster should be trapped in icewall [Playtester]
|
int boss_icewall_walk_block; //How a boss monster should be trapped in icewall [Playtester]
|
||||||
|
int snap_dodge; // Enable or disable dodging damage snapping away [csnv]
|
||||||
} battle_config;
|
} battle_config;
|
||||||
|
|
||||||
void do_init_battle(void);
|
void do_init_battle(void);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user