viewing paste Unknown #5716 | Diff

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
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?*/
+}
+)
Viewed 374 times, submitted by lighta.