summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorshennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec>2011-12-09 04:11:30 +0000
committershennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec>2011-12-09 04:11:30 +0000
commitb53b29469f5c27f3715f7f31f61e33a387de7663 (patch)
treeddad25bf34a0df958fb2d78028606527d18823d1 /src/map
parentd0f11e8df04bd9f791e93e616ca816c79c8158ba (diff)
downloadhercules-b53b29469f5c27f3715f7f31f61e33a387de7663.tar.gz
hercules-b53b29469f5c27f3715f7f31f61e33a387de7663.tar.bz2
hercules-b53b29469f5c27f3715f7f31f61e33a387de7663.tar.xz
hercules-b53b29469f5c27f3715f7f31f61e33a387de7663.zip
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
Diffstat (limited to 'src/map')
-rw-r--r--src/map/atcommand.c25
-rw-r--r--src/map/battle.c3
-rw-r--r--src/map/battle.h3
3 files changed, 18 insertions, 13 deletions
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);