diff options
author | Haru <haru@dotalux.com> | 2019-04-07 19:39:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-07 19:39:57 +0200 |
commit | 4c7057a31717f223637d671096a5b065befc0e4c (patch) | |
tree | 9081fe065493187c30cf03e36eb1c19e26ca22b9 | |
parent | e1e951c805916853e55ff5b9ce0531e0cf483ebf (diff) | |
parent | cd32aea9bdd0addf1dbd96cf1cdeb3c798d93e34 (diff) | |
download | hercules-4c7057a31717f223637d671096a5b065befc0e4c.tar.gz hercules-4c7057a31717f223637d671096a5b065befc0e4c.tar.bz2 hercules-4c7057a31717f223637d671096a5b065befc0e4c.tar.xz hercules-4c7057a31717f223637d671096a5b065befc0e4c.zip |
Merge pull request #2170 from dastgirp/feature/achievement-config
Added configuration to enable/disable achievement system
-rw-r--r-- | conf/map/battle/feature.conf | 5 | ||||
-rw-r--r-- | src/map/achievement.c | 6 | ||||
-rw-r--r-- | src/map/battle.c | 1 | ||||
-rw-r--r-- | src/map/battle.h | 2 |
4 files changed, 14 insertions, 0 deletions
diff --git a/conf/map/battle/feature.conf b/conf/map/battle/feature.conf index 1ed94b2a4..c306dd97b 100644 --- a/conf/map/battle/feature.conf +++ b/conf/map/battle/feature.conf @@ -83,4 +83,9 @@ features: { // Attendance End time in the format YearMonthDay feature_attendance_endtime: 20180331 + + // Enable Achievement System + // true: enable (Default) + // false: disable + enable_achievement_system: true } diff --git a/src/map/achievement.c b/src/map/achievement.c index 057ea29c3..7ab80e183 100644 --- a/src/map/achievement.c +++ b/src/map/achievement.c @@ -301,6 +301,9 @@ static int achievement_validate_type(struct map_session_data *sd, enum achieveme Assert_ret(criteria->goal != 0); + if (battle_config.feature_enable_achievement == 0) + return 0; + if (type == ACH_QUEST) { ShowError("achievement_validate_type: ACH_QUEST is not handled by this function. (use achievement_validate())\n"); return 0; @@ -358,6 +361,9 @@ static bool achievement_validate(struct map_session_data *sd, int aid, unsigned Assert_retr(false, progress > 0); Assert_retr(false, obj_idx < MAX_ACHIEVEMENT_OBJECTIVES); + if (battle_config.feature_enable_achievement == 0) + return false; + if ((ad = achievement->get(aid)) == NULL) { ShowError("achievement_validate: Invalid Achievement %d provided.", aid); return false; diff --git a/src/map/battle.c b/src/map/battle.c index 1b7bf909e..798f50b13 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -7414,6 +7414,7 @@ static const struct battle_data { { "min_item_sell_price", &battle_config.min_item_sell_price, 0, 0, INT_MAX, }, { "display_fake_hp_when_dead", &battle_config.display_fake_hp_when_dead, 1, 0, 1, }, { "magicrod_type", &battle_config.magicrod_type, 0, 0, 1, }, + { "features/enable_achievement_system", &battle_config.feature_enable_achievement, 1, 0, 1, }, }; static bool battle_set_value_sub(int index, int value) diff --git a/src/map/battle.h b/src/map/battle.h index c797e665a..7e03f0a8e 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -578,6 +578,8 @@ struct Battle_Config { int display_fake_hp_when_dead; int magicrod_type; + + int feature_enable_achievement; }; /* criteria for battle_config.idletime_critera */ |