diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index a40191fb01..e4559c39a8 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,9 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2006/07/04 + * Added battle config setting emergency_recall, specifies behaviour of that + skill (skill.conf): 0 - Disabled. 1 - can't be used in nowarpto maps. 2 - + Can be used everywhere. [Skotlex] * Removed the NPC/Dance/Song inf2 check of AbraCadabra. whether a skill can come out or not is entirely decided by the abra db file now. [Skotlex] * Added structure s_addeffect to handle status change additions. Cleaned up diff --git a/conf-tmpl/battle/skill.conf b/conf-tmpl/battle/skill.conf index 35314a99d3..16548fd240 100644 --- a/conf-tmpl/battle/skill.conf +++ b/conf-tmpl/battle/skill.conf @@ -223,6 +223,13 @@ berserk_cancels_buffs: no max_heal: 9999 max_heal_lv: 11 +// Emergency Recall Guild Skill setting. +// 0: Skill is disabled, can't be used anywhere. +// 1: Skill fails when used on "nowarpto" maps +// (note that by default all GVG maps are nowarpto) +// 2: Skill is usable everywhere. +emergency_call: 2 + // Max Possible Level of Monster skills // Note: If your MVPs are too tough, reduce it to 10. mob_max_skilllvl: 100 diff --git a/src/map/battle.c b/src/map/battle.c index be22f4bc70..191608a3af 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -3321,6 +3321,7 @@ static const struct battle_data_short { { "pvp_exp", &battle_config.pvp_exp }, { "gtb_sc_immunity", &battle_config.gtb_sc_immunity}, { "guild_max_castles", &battle_config.guild_max_castles }, + { "emergency_call", &battle_config.emergency_call }, { "death_penalty_type", &battle_config.death_penalty_type }, { "death_penalty_base", &battle_config.death_penalty_base }, { "death_penalty_job", &battle_config.death_penalty_job }, @@ -3738,6 +3739,7 @@ void battle_set_defaults() { battle_config.gm_join_chat=0; battle_config.gm_kick_chat=0; battle_config.guild_max_castles=0; + battle_config.emergency_call=2; battle_config.skillfree = 0; battle_config.skillup_limit = 0; battle_config.wp_rate=100; diff --git a/src/map/battle.h b/src/map/battle.h index a2a9a29439..57d574917a 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -167,6 +167,7 @@ extern struct Battle_Config { unsigned short guild_emperium_check; unsigned short guild_exp_limit; unsigned short guild_max_castles; + unsigned short emergency_call; unsigned short pc_invincible_time; unsigned short pet_catch_rate; unsigned short pet_rename; diff --git a/src/map/skill.c b/src/map/skill.c index dacb57a75c..d9f6fbc623 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -906,6 +906,14 @@ int skillnotok (int skillid, struct map_session_data *sd) clif_skill_fail(sd,skillid,0,0); return 1; } + case GD_EMERGENCYCALL: + if (!battle_config.emergency_call || + (map[sd->bl.m].flag.nowarpto && battle_config.emergency_call&1)) + { + clif_skill_fail(sd,skillid,0,0); + return 1; + } + break; } return (map[sd->bl.m].flag.noskill); }