summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-31 14:46:56 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-31 14:46:56 +0000
commit9709434856f4e5ff3bf803d01c0bcf7a4811cc2d (patch)
treec8d549e905f42ae48146045f5e3f92378d10b880 /src/map
parente25963f4562516f4b4aada3983af567f81555165 (diff)
downloadhercules-9709434856f4e5ff3bf803d01c0bcf7a4811cc2d.tar.gz
hercules-9709434856f4e5ff3bf803d01c0bcf7a4811cc2d.tar.bz2
hercules-9709434856f4e5ff3bf803d01c0bcf7a4811cc2d.tar.xz
hercules-9709434856f4e5ff3bf803d01c0bcf7a4811cc2d.zip
- Added setting attack_walk_delay which specifies whether a character should (or not) be able to move inmediately after starting a normal attack (battle.conf). Defaults to 0 since that's what Aegis uses.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8561 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r--src/map/battle.c45
-rw-r--r--src/map/battle.h1
-rw-r--r--src/map/unit.c4
3 files changed, 11 insertions, 39 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index a39a006c1..fdac13afc 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -3698,6 +3698,7 @@ static const struct battle_data_short {
{ "min_skill_delay_limit", &battle_config.min_skill_delay_limit}, // [celest]
{ "default_skill_delay", &battle_config.default_skill_delay}, // [Skotlex]
{ "no_skill_delay", &battle_config.no_skill_delay}, // [Skotlex]
+ { "attack_walk_delay", &battle_config.attack_walk_delay }, // [Skotlex]
{ "require_glory_guild", &battle_config.require_glory_guild}, // [celest]
{ "idle_no_share", &battle_config.idle_no_share}, // [celest], for a feature by [MouseJstr]
{ "party_even_share_bonus", &battle_config.party_even_share_bonus},
@@ -4129,6 +4130,7 @@ void battle_set_defaults() {
battle_config.min_skill_delay_limit = 100;
battle_config.default_skill_delay = 300; //Default skill delay according to official servers.
battle_config.no_skill_delay = BL_MOB;
+ battle_config.attack_walk_delay = 0;
battle_config.require_glory_guild = 0;
battle_config.idle_no_share = 0;
battle_config.party_even_share_bonus = 0;
@@ -4318,54 +4320,21 @@ void battle_validate_conf() {
if (battle_config.night_duration != 0 && battle_config.night_duration < 60000) // added by [Yor]
battle_config.night_duration = 60000;
-/* if (battle_config.ban_spoof_namer < 0) // added by [Yor]
- battle_config.ban_spoof_namer = 0;
- else*/ if (battle_config.ban_spoof_namer > 32767)
- battle_config.ban_spoof_namer = 32767;
-
-/* if (battle_config.hack_info_GM_level < 0) // added by [Yor]
- battle_config.hack_info_GM_level = 0;
- else*/ if (battle_config.hack_info_GM_level > 100)
+ if (battle_config.ban_spoof_namer > SHRT_MAX)
+ battle_config.ban_spoof_namer = SHRT_MAX;
+
+ if (battle_config.hack_info_GM_level > 100)
battle_config.hack_info_GM_level = 100;
-/* if (battle_config.any_warp_GM_min_level < 0) // added by [Yor]
- battle_config.any_warp_GM_min_level = 0;
- else*/ if (battle_config.any_warp_GM_min_level > 100)
+ if (battle_config.any_warp_GM_min_level > 100)
battle_config.any_warp_GM_min_level = 100;
-/* //This is a hassle to keep updated each time there's a new limit to packet_ver_flag.... [Skotlex]
- // at least 1 client must be accepted
- if ((battle_config.packet_ver_flag & 255) == 0) // added by [Yor]
- battle_config.packet_ver_flag = 255; // accept all clients
-*/
-/* Deprecated by dynamix's new night system (using SI_NIGHT)
- if (battle_config.night_darkness_level <= 0)
- battle_config.night_darkness_level = 9;
- else if (battle_config.night_darkness_level > 10) // Celest
- battle_config.night_darkness_level = 10;
-*/
-/* if (battle_config.motd_type < 0)
- battle_config.motd_type = 0;
- else if (battle_config.motd_type > 1)
- battle_config.motd_type = 1;
-*/
-// if (battle_config.finding_ore_rate < 0)
-// battle_config.finding_ore_rate = 0;
-
if (battle_config.vending_max_value > MAX_ZENY || battle_config.vending_max_value==0)
battle_config.vending_max_value = MAX_ZENY;
if (battle_config.min_skill_delay_limit < 10)
battle_config.min_skill_delay_limit = 10; // minimum delay of 10ms
- //Spawn delays [Skotlex]
-/* if (battle_config.mob_spawn_delay < 0)
- battle_config.mob_spawn_delay = 0;
- if (battle_config.boss_spawn_delay < 0)
- battle_config.boss_spawn_delay = 0;
- if (battle_config.plant_spawn_delay < 0)
- battle_config.plant_spawn_delay = 0;
-*/
if (battle_config.no_spawn_on_player > 100)
battle_config.no_spawn_on_player = 100;
if (battle_config.mob_remove_delay < 15000) //Min 15 sec
diff --git a/src/map/battle.h b/src/map/battle.h
index fdac323c5..f4cdbd58d 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -364,6 +364,7 @@ extern struct Battle_Config {
unsigned short min_skill_delay_limit;
unsigned short default_skill_delay;
unsigned short no_skill_delay;
+ unsigned short attack_walk_delay;
unsigned short require_glory_guild;
unsigned short idle_no_share;
unsigned short party_update_interval;
diff --git a/src/map/unit.c b/src/map/unit.c
index 6881d487d..b81e5f066 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -1315,7 +1315,9 @@ static int unit_attack_timer_sub(struct block_list* src, int tid, unsigned int t
ud->attackabletime = tick + sstatus->adelay;
// You can't move if you can't attack neither.
- unit_set_walkdelay(src, tick, sstatus->amotion, 1);
+ if (battle_config.attack_walk_delay)
+ unit_set_walkdelay(src, tick,
+ sstatus->amotion/battle_config.attack_walk_delay, 1);
}
if(ud->state.attack_continue)