From b53b29469f5c27f3715f7f31f61e33a387de7663 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Fri, 9 Dec 2011 04:11:30 +0000 Subject: New Battle Config: gm.conf/atcommand_max_stat_bypass for bugreport:3301 -- Allows you to choose whether your gms can bypass your server's max stat limit or not. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15046 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/atcommand.c | 25 ++++++++++++++----------- src/map/battle.c | 3 ++- src/map/battle.h | 3 ++- 3 files changed, 18 insertions(+), 13 deletions(-) (limited to 'src/map') diff --git a/src/map/atcommand.c b/src/map/atcommand.c index c0a834593..e0fb1c309 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -3065,7 +3065,7 @@ ACMD_FUNC(zeny) *------------------------------------------*/ ACMD_FUNC(param) { - int i, value = 0, new_value; + int i, value = 0, new_value, max; const char* param[] = { "str", "agi", "vit", "int", "dex", "luk" }; short* status[6]; //we don't use direct initialization because it isn't part of the c standard. @@ -3094,16 +3094,16 @@ ACMD_FUNC(param) status[4] = &sd->status.dex; status[5] = &sd->status.luk; - if(value < 0 && *status[i] <= -value) - { - new_value = 1; - } - else if(SHRT_MAX - *status[i] < value) - { - new_value = SHRT_MAX; - } + if( battle_config.atcommand_max_stat_bypass ) + max = SHRT_MAX; else - { + max = pc_maxparameter(sd); + + if(value < 0 && *status[i] <= -value) { + new_value = 1; + } else if(max - *status[i] < value) { + new_value = max; + } else { new_value = *status[i] + value; } @@ -3145,7 +3145,10 @@ ACMD_FUNC(stat_all) value = pc_maxparameter(sd); max = pc_maxparameter(sd); } else { - max = SHRT_MAX; + if( battle_config.atcommand_max_stat_bypass ) + max = SHRT_MAX; + else + max = pc_maxparameter(sd); } count = 0; diff --git a/src/map/battle.c b/src/map/battle.c index 10105ba94..e12caaef8 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -4580,9 +4580,10 @@ static const struct _battle_data { { "bg_misc_attack_damage_rate", &battle_config.bg_misc_damage_rate, 60, 0, INT_MAX, }, { "bg_flee_penalty", &battle_config.bg_flee_penalty, 20, 0, INT_MAX, }, /** - * RR-Specific + * rAthena **/ { "max_third_parameter", &battle_config.max_third_parameter, 20, 0, INT_MAX, }, + { "atcommand_max_stat_bypass", &battle_config.atcommand_max_stat_bypass, 0, 0, 100, }, }; diff --git a/src/map/battle.h b/src/map/battle.h index a64c81041..41ff70850 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -497,8 +497,9 @@ extern struct Battle_Config int bg_magic_damage_rate; int bg_misc_damage_rate; int bg_flee_penalty; - //[RR] + // rAthena int max_third_parameter; + int atcommand_max_stat_bypass; } battle_config; void do_init_battle(void); -- cgit v1.2.3-60-g2f50