Index: src/common/core.c
===================================================================
--- src/common/core.c (revision 17291)
+++ src/common/core.c (working copy)
@@ -5,6 +5,8 @@
#include "showmsg.h"
#include "malloc.h"
#include "core.h"
+#include "conf.h"
+#include "utils.h"
#ifndef MINICORE
#include "db.h"
#include "socket.h"
@@ -41,6 +43,7 @@
char *SERVER_NAME = NULL;
char SERVER_TYPE = ATHENA_SERVER_NONE;
+
#ifndef MINICORE // minimalist Core
// Added by Gabuzomeu
//
@@ -295,6 +298,7 @@
/*======================================
* CORE : MAINROUTINE
*--------------------------------------*/
+void inter_conf_read(void);
int main (int argc, char **argv)
{
{// initialize program arguments
@@ -355,5 +359,50 @@
malloc_final();
+ inter_conf_read();
+
return 0;
}
+
+void inter_conf_read(void){
+ config_t inter_conf;
+ config_setting_t *sys = NULL;
+ const char *config_filename = "conf/inter_battle.conf";
+
+ if (conf_read_file(&inter_conf, config_filename))
+ return;
+
+ sys = config_lookup(&inter_conf, "vip_sys");
+ if (sys != NULL) { //reading vip_sys part
+ config_setting_t *settings = config_setting_get_elem(sys, 0);
+ unsigned int enable =0; //:1
+ unsigned int group =0;
+ unsigned int magic_stone=0; //:1
+ unsigned int storage_increase=0;
+ unsigned int char_increase=0;
+ unsigned int exp_increase=0;
+ unsigned int exp_penalty=0;
+ unsigned int bm_increase=0;
+ unsigned int drop_increase=0;
+
+ config_setting_lookup_bool(settings, "enable", &enable);
+ Inter_Config.vip_sys.enable = enable;
+
+ if(enable){ //speedup
+ config_setting_lookup_int(settings, "group", &group);
+ config_setting_lookup_int(settings, "storage_increase", &storage_increase);
+ config_setting_lookup_int(settings, "char_increase", &char_increase);
+ config_setting_lookup_int(settings, "exp_increase", &exp_increase);
+ config_setting_lookup_int(settings, "exp_penalty", &exp_penalty);
+ config_setting_lookup_int(settings, "bm_increase", &bm_increase);
+ config_setting_lookup_int(settings, "drop_increase", &drop_increase);
+ config_setting_lookup_bool(settings, "magic_stone", &magic_stone);
+ }
+
+ Inter_Config.vip_sys.group = cap_value(storage_increase,0,99);
+ Inter_Config.vip_sys.storage_increase = cap_value(storage_increase,0,MAX_STORAGE);
+ Inter_Config.vip_sys.char_increase = cap_value(char_increase,0,MAX_CHARS);
+ Inter_Config.vip_sys.exp_increase = cap_value(exp_increase,0,INT_MAX);
+ Inter_Config.vip_sys.exp_penalty = cap_value(exp_penalty,0,INT_MAX);
+ Inter_Config.vip_sys.bm_increase = cap_value(bm_increase,0,INT_MAX);
+ Inter_Config.vip_sys.drop_increase = cap_value(drop_increase,0,INT_MAX);
+ Inter_Config.vip_sys.magic_stone = magic_stone;
+
+ }
+}
Index: src/common/core.h
===================================================================
--- src/common/core.h (revision 17291)
+++ src/common/core.h (working copy)
@@ -45,6 +45,20 @@
CORE_ST_LAST
};
+struct {
+ struct {
+ unsigned int enable :1;
+ unsigned int group;
+ unsigned int storage_increase;
+ unsigned int char_increase;
+ unsigned int exp_increase;
+ unsigned int exp_penalty;
+ unsigned int bm_increase;
+ unsigned int drop_increase;
+ unsigned int magic_stone :1;
+ } vip_sys;
+} Inter_Config;
+
/// Called when a terminate signal is received. (Ctrl+C pressed)
/// If NULL, runflag is set to CORE_ST_STOP instead.
extern void (*shutdown_callback)(void);
Index: conf/inter_battle.conf
===================================================================
--- conf/inter_battle.conf (revision 0)
+++ conf/inter_battle.conf (revision 0)
@@ -0,0 +1,15 @@
+/* Inter server system configuration file */
+
+vip_sys: ( /*vip system part*/
+{
+ enable: true /*Enable/Disable the VIP system.*/
+ group :1 /*Which group (ID) will be denoted as the VIP Group?*/
+ storage_increase: 300 /*Storage slot increase.*/
+ char_increase:6 /*Max character limit increase.*/
+ exp_increase:50 /*Base/Job EXP rate increase.*/
+ exp_penalty:200 /*Base/Job EXP rate death penalty.*/
+ bm_increase:2 /*Battle Manual EXP increase.*/
+ drop_increase:50 /*Item drop increase.*/
+ magic_stone :true /*Can the VIP Group ignore Magic Stone requirement for skills?*/
+}
+)