· 7 years ago · Nov 04, 2018, 08:48 PM
1#ifndef __INC_METIN2_COMMON_DEFINES_H__
2#define __INC_METIN2_COMMON_DEFINES_H__
3
4enum eCommonDefines {
5 EVENT_MOB_RATE_LIMIT = 1000, // 1000 default
6 MAP_ALLOW_LIMIT = 32, // 32 default
7 PRIV_EMPIRE_RATE_LIMIT = 200, // 200 default
8 PRIV_EMPIRE_TIME_LIMIT = 60*60*24*7, // 1 week default
9 PRIV_GUILD_RATE_LIMIT = 50, // 50 default
10 PRIV_GUILD_TIME_LIMIT = 60*60*24*7, // 1 week default
11 PRIV_PLAYER_RATE_LIMIT = 100, // 100 default
12};
13
14enum eCommonSettings {
15 COMBO_HACK_ALLOWABLE_MS = 100, //
16 PICKUP_TIME = 300, // Pickup delay [Anti-Cheat]
17 LAST_ATTACK_TIME = 1500, //
18 LAST_SKILL_TIME = 1500, //
19 COMB_MAX_NUM = 10, // Book - Combination-> Anzahl der Bücher
20};
21
22// #define ENABLE_GROUP_DAMAGE_WEAPON // not implemented - Project by JeeX
23
24//------SECURITY------>
25#define ENABLE_GCC6_UPDATE // gcc42 -> gcc6
26#define ENABLE_PORT_SECURITY // Blockiert db_port, p2p_port und remote adminpage exploits
27
28
29#define ENABLE_LANGUAGE_SYSTEM // Enable MultiLanguage System
30#define LANGUAGE_MAX_NUM 11
31
32
33//------CHARACTERS------>
34#define ENABLE_PLAYER_PER_ACCOUNT5 // Erlaubt 5 Character
35
36#define ENABLE_WOLFMAN_CHARACTER // enable wolfman character and the relative new features
37 #ifdef ENABLE_WOLFMAN_CHARACTER
38 #define USE_MOB_BLEEDING_AS_POISON // Bluten wird deaktiviert und ist wie Gift
39 #define USE_MOB_CLAW_AS_DAGGER // Krallen wird deaktiviert und ist wie Dolche
40 // #define USE_ITEM_BLEEDING_AS_POISON // Giftbonus kann bluten deffen (bluten wird deaktiviert)
41 // #define USE_ITEM_CLAW_AS_DAGGER // Wiederstand gegen Dolche bonus kann Krallen deffen (Krallen wird deaktiviert)
42 #define USE_WOLFMAN_STONES // Wolfmenschsteine können bei Metins gedroppt werden
43 #define USE_WOLFMAN_BOOKS // Wolfmensch Skillbücher können gedropt werden
44 // #define USE_LYCAN_CREATE_POSITION // if enabled, the lycan will be warped to his own village at character creation
45 #endif
46
47
48
49
50
51//--------SYSTEMS------->
52#define WJ_SHOW_STROKE_INFO // Anzahl der Schläge auf den Mob
53#define WJ_ENABLE_TRADABLE_ICON // Nichthandelbare Items anzeigen
54#define WJ_ENABLE_PICKUP_ITEM_EFFECT // Inventory Highlight System
55#define ENABLE_ADMIN_BAN_MANAGER // BAN-System
56#define __ITEM_SHINING__ // Shining-System
57
58/*---Main Systems*///--->
59#define CHANGE_SKILL_COLOR // Skill Color
60#define ENABLE_PET_SYSTEM // Pet Slot System [Extra-Slot für Pets]
61#define ENABLE_GROWTH_PET_SYSTEM // Pet-System
62 #ifdef ENABLE_GROWTH_PET_SYSTEM
63 #define PET_INCUBATRICE_COST 100000 // Kosten für Ausbrüten
64 // #define DISABLE_TRADE_UNSUMMON // this disable the unsummon of pet when a excange/trade/shop/myshop/safebox windows is open,
65 // MAKE SURE to have set the items with vnum 55401/55402/55403/55404 with antiflag ANTI_SAFEBOX | ANTI_PKDROP | ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_STACK | ANTI_MYSHOP
66 #endif
67#define ENABLE_ACCE_COSTUME_SYSTEM // enable acce costume slot
68 #ifdef ENABLE_ACCE_COSTUME_SYSTEM
69 #define ENABLE_ACCE_COSTUME_SYSTEM_BONUS // Accedrainrate Bonus
70 #endif
71#define ENABLE_MOUNT_COSTUME_SYSTEM // enable mount costume slot
72 #ifdef ENABLE_MOUNT_COSTUME_SYSTEM
73 #define ENABLE_MOUNT_AS_HORSE // Mount Like a Horse
74 #define ENABLE_MOUNT_AS_HORSE_BONUS // Bonus für Mounts
75 #endif
76#define ENABLE_WEAPON_COSTUME_SYSTEM // enable weapon costume slot
77 #ifdef ENABLE_WEAPON_COSTUME_SYSTEM
78 // #define ENABLE_ITEM_ATTR_COSTUME // enable costume_hair, costume_body, costume_weapon item_attr/_rare parts
79 #endif
80#define ENABLE_USE_COSTUME_ATTR // enables body costume bonus switcher
81#define ENABLE_MAGIC_REDUCTION_SYSTEM // enable resist magic reduction bonus
82 #ifdef ENABLE_MAGIC_REDUCTION_SYSTEM
83 #define USE_MAGIC_REDUCTION_STONES // enable resist magic reduction stone drops from metins
84 #endif
85#define ENABLE_678TH_SKILL // Passiv Skills (SKILL_ADD_HP / SKILL_RESIST_PENETRATE)
86#define ENABLE_ITEM_SWAP_SYSTEM // Swapsystem
87 #ifdef ENABLE_ITEM_SWAP_SYSTEM
88 #define ENABLE_SWAPCELL
89 #endif
90#define ENABLE_GACHA_SYSTEM // Gacha-System
91#define ENABLE_CHEQUE_SYSTEM // Won
92 #ifdef ENABLE_CHEQUE_SYSTEM
93 #define ENABLE_CHEQUE_SYSTEM_TYPE // New Item Type [Won]
94 #endif
95#define ENABLE_GEM_SYSTEM // Gaya
96#define ENABLE_SOULBIND_SYSTEM // Seelenbindung
97#define ENABLE_CHANGE_LOOK_ITEM_SYSTEM // Transmutation/Projektions-System
98#define ENABLE_78TH_SKILL // 7&8 Passive Skills
99#define ENABLE_VIP_SYSTEM // VIP System
100#define ENABLE_MONSTERCARD_SYSTEM
101#define ENABLE_DEVELOPER // Zusätzlicher Rang Developer [higher than IMPLEMENTOR]
102#define ENABLE_OFFLINESHOP_SYSTEM // Great-Offlineshop
103 #ifdef ENABLE_OFFLINESHOP_SYSTEM
104 #define OFFLINE_SHOP // Offline shops system
105 #define GIFT_SYSTEM // gift system enable
106 #define SHOP_TIME_REFRESH 1*60 // time for cycle checking older shops
107 #define SHOP_BLOCK_GAME99 // Blocking create shops on channel 99
108// #define SHOP_DISTANCE // Show shops in pos distance like WoM2
109 #define SHOP_AUTO_CLOSE // Enable auto closing shop after sell last item
110 // #define SHOP_ONLY_ALLOWED_INDEX // Enable limiting for other map index which is not defined in player.shop_limit
111 // #define SHOP_HIDE_NAME // Enable hidding shop npc names like "Player's shop"
112 #define SHOP_MAX_COUNT 2 // Anzahl der Max. zulässigen Shops
113 #define ACCE_FIX_BY_JEEX // Acce-Window-Fix @ OS
114 #define SHOP_GM_PRIVILEGES GM_IMPLEMENTOR // Minimum GM privileges to using Shop GM Panel
115 #define ENABLE_SHOP_DECO_SYSTEM // Shop Decoration [30000-30007]
116 // #define ENABLE_CHEQUE_SYSTEM_OS
117 #endif
118
119/*Secundary Systems*///->
120#define ENABLE_CHEST_INFORMATION_SYSTEM // Truheninformation
121#define ENABLE_REFINE_ABILITY_SKILL // Schmiedeskill
122#define ENABLE_ANNOUNCEMENT_REFINE_SUCCES // Chat: Upperfolg
123 #ifdef ENABLE_ANNOUNCEMENT_REFINE_SUCCES
124 #define ENABLE_ANNOUNCEMENT_REFINE_SUCCES_MIN_LEVEL 9 // Ab welcher + Refine es angezeigt wird
125 #define ENABLE_ITEM_LEVEL_LIMIT 64 // Item-Levellimit => Bis zu welchem Level es nicht angezeigt wird
126 #endif
127//ENABLE_ANNOUNCEMENT_LEVELUP ?
128#define ENABLE_QUIVER_SYSTEM // Pfeilköcher
129#define ENABLE_MINIGAME_RUMI // Card System
130#define ENABLE_AGGROMOB_SAFEZONE_SKIP // xP3NG3Rx - Aggro Mob skips Safezone
131#define ENABLE_BOOK_COMBINATION // Bücherkombinieren
132#define ENABLE_SPECIAL_STORAGE // Extra-Lager
133 #ifdef ENABLE_SPECIAL_STORAGE
134 #define ENABLE_EXTEND_SPECIAL_STORAGE_SYSTEM // enable 4 storagepages
135 #define ALLOW_STORAGE_IN_DIFFERENT_WINDOWS // active: disables specialitemlock in other windows (Specialstorage -> Inventory etc.)
136
137 #define ENABLE_UPGRADE_INVENTORY // Uppitems
138 #define ENABLE_BOOK_INVENTORY // Skillbooks
139 #define ENABLE_STONE_INVENTORY // Stones
140 #define ENABLE_CHEST_INVENTORY // Chests
141 #define ENABLE_IMPROVING_INVENTORY // Improving-Items
142 #define ENABLE_BLEND_POTION_INVENTORY // Blend-Potions
143 #endif
144// Book-Combination
145
146
147
148
149
150/*-----Dungeons*///----->
151#define ENABLE_TEMPLE_OF_OCHAO // x
152 #ifdef ENABLE_TEMPLE_OF_OCHAO
153 #define HEALING_SKILL_VNUM 265
154 #endif
155#define __DUNGEON_FOR_GUILD__ // x
156 #ifdef __DUNGEON_FOR_GUILD__
157 #define __MELEY_LAIR_DUNGEON__
158 #ifdef __MELEY_LAIR_DUNGEON__
159 #define __DESTROY_INFINITE_STATUES_GM__
160 #define __LASER_EFFECT_ON_75HP__
161 #define __LASER_EFFECT_ON_50HP__
162 #endif
163 #endif
164#define WJ_COMBAT_ZONE // Enable the combat zone
165 #ifdef WJ_COMBAT_ZONE
166 // #define COMBAT_ZONE_SET_SKILL_PERFECT // Set perfect skills <disable - enable>;
167 #define COMBAT_ZONE_SHOW_EFFECT_POTION // When you use potion battle will show a effect image <disable - enable>;
168 #define COMBAT_ZONE_SHOW_SERVER_TIME_ZONE_ON_CHAT // Show the local timezone on freebsd server, that is good for people can know what hour it is on server, because maybe they are other country and didn't have same time.
169 #define WJ_COMBAT_ZONE_HIDE_INFO_USER // Disable if you want for people can see names of players, align, level in map, target, minimap name etc.
170 #endif
171#define ENABLE_DUNGEON_RANKING // Dungeon Ranking
172 #ifdef ENABLE_DUNGEON_RANKING
173 #define ENABLE_SKIPIA_DUNGEON_RANK // Grotte [2493 = Beran-Setaou]
174 #define ENABLE_DEVILTOWER_RANK // Dämonenturm [1093 = Sensenmann]
175 #define ENABLE_CATACOMB_RANK // Devilscatacomb [2598 = Azrael]
176 #define ENABLE_SKIPIA_02_RANK // Grotte 2 [1192 = Große Eishexe]
177 #define ENABLE_SPIDERDUNGEON03_RANK // Spinnendungeon 3 [2092 = Spinnenbaroness]
178 #endif
179
180
181
182
183
184//--------OPTIONS------->
185#define ENABLE_EXTEND_INVEN_SYSTEM // enable 4 inventory pages
186#define ENABLE_INVENTORY_EXPANSION // Inventory 3-4 Page Lock
187
188/*---Main Options*///--->
189#define ENABLE_GIVE_BASIC_ITEM_SOURCE // Startset + Autogiven
190#define ENABLE_DICE_SYSTEM // enable dice system: if the mob is king or boss and you're in party, the dropped item is randomly rolled
191#define ENABLE_PARTY_EXP_DISTRIBUTION_EQUAL // Gleichmäßige Gruppenverteilung
192#define ENABLE_SPECIAL_EXP_BONUS_ON_SEVERAL_MAPS // Exp an Map angepasst
193#define ENABLE_SPECIAL_GOLD_BONUS_ON_SEVERAL_MAPS // Gold an Map angepasst
194#define ENABLE_SHOW_GUILD_LEADER // Leader, CoLeader Anzeige
195#define ENABLE_GUILD_GRADE_WAR_PERMIT // Rechte für Gildengriff Access
196#define ENABLE_SEND_TARGET_INFO // Mob-Drop Info @ Monsterleiste
197#define ENABLE_RITUAL_STONE
198 #ifdef ENABLE_SEND_TARGET_INFO
199 #define ENABLE_COMMON_DROP_INFO // Lädt common_drop_item.txt (not recommand)
200 #endif
201#define ENABLE_DESTROY_SYSTEM // Drop Items Zerstören System
202#define ENABLE_TITLE_SYSTEM // Vegas Titelsystem
203// Channel Switcher
204#define ENABLE_VIEW_CHAT_PM // View Private-Message on Chat
205#define ENABLE_MONARCH_AFFECT // Monarch KING Zeichen
206#define ENABLE_EXTENDED_ITEMNAME_ON_GROUND // FB's & Verwandl. haben einen Namen als Drop
207#define ENABLE_CUSTOM_BONIS // Div. neue Bonis
208 #ifdef ENABLE_CUSTOM_BONIS
209 #define ENABLE_BONUS_RESIST_HUMAN // Widerstand gegen Halbmenschen
210 #define ENABLE_ELEMENT_ADD // Desert, Insect, Enchants
211 #define ENABLE_ATTBONUS_STONE // Stark gegen Metinsteine
212 #define ENABLE_PENDANT // Bruch von X-verteidigung
213 #define ENABLE_MAP_ATT_BONUS // Mapbezogene Bonis
214 #endif
215#define ENABLE_SHAM_ASSA_ATT_BONUS // Shamis & Ninjas +% im PvE
216 #ifdef ENABLE_SHAM_ASSA_ATT_BONUS
217 #define SHAM_ASSA_ATT_BONUS 15 // +%-Wert für den PvE Boost
218 #endif
219// #define ENABLE_KK_ATT_BONUS_AGAINST_NH // PvP-System [KK machen nur gegen NH mehr schaden]
220 #ifdef ENABLE_KK_ATT_BONUS_AGAINST_NH
221 #define KK_ATT_BONUS_AGAINST_NH 10 // +%-Wert für den PvP Boost
222 #endif
223#define ENABLE_12ZI_SYSTEM // Pendant-Item-Slot
224 #ifdef ENABLE_12ZI_SYSTEM
225 #define ENABLE_ELEMENT_TARGET // Element-Target-System
226 #define ENABLE_ELEMENT_TARGET_ON_PC // Getragene Ringe bei Spieler -> Target-Element
227 #endif
228
229/*Secundary Options*///->
230#define ENABLE_ITEM_NAME_MAX_LEN // Namenerweiterung 40; Original: 24
231#define ENABLE_SHOP_EX // Erweiterter Shop
232#define ENABLE_REMOVE_SKILLS_IFPOLYMORPHED // Buffs removed wenn Polymorph()
233#define ENABLE_USE_SKILLS_WITHOUT_SWORD_FIX // Aura/Vzk ohne Waffe -> debuff
234#define ENABLE_ANTI_EXP_RING // Anti-Exp-Ring madebyBizeps
235#define ENABLE_YANG_BOMB // Automatisch Yang-Bomben aufheben
236#define _isBLOCK_Change_Add_Attribute_and_Socket_Put_ // Risan Jungheld Fix
237#define ENABLE_INVENTORY_SORT // Inventar Sortier Button
238#define ENABLE_EXTEND_ITEM_AWARD
239#define ENABLE_HORSE_APPEARANCE // Horseskin via Database
240#define ENABLE_CANT_CREATE_SHOPS_IN_OTHER_EMPIRE // Shops können nicht im fremden Reich geöffnet werden
241#define ENABLE_REMOVE_ONLY_ONE_STONE // gestackte Steine jweils -1
242#define ENABLE_WEAPON_KILL_EFFECT // Raritätspunkte Effekt System @Weapons
243// #define ENABLE_COLORED_GUILD_RANKS // Guildranks are colored
244//#define ENABLE_POTIONS_LEVELUP // Pots Loot bei Lvl-Up
245#define ENABLE_SET_STATES // Status Verteilen mit Eingabe
246 #ifdef ENABLE_SET_STATES
247 #define ENABLE_SET_STATES_PRIVILEGES GM_PLAYER // Privileges: GM_PLAYER, GM_LOW_WIZARD
248 #endif
249#define ENABLE_AUTOMATIC_NOTICES // Automatisierte Nachrichten
250 #ifdef ENABLE_AUTOMATIC_NOTICES
251 #define ENABLE_AUTO_EVENTS // x
252 #define ENABLE_AUTO_NOTICE // x
253 #endif
254
255#define ENABLE_BLOCKING_GM_FUNCTIONS // Deaktiviert GM Funktionen
256 #ifdef ENABLE_BLOCKING_GM_FUNCTIONS
257 #define GM_BLOCK_BUFF_SKILL // GM's können keine Spieler buffen [GameMaster -> Player]
258 #define GM_BLOCK_PARTY_INVITE // GM's & Spieler können keine Gruppe gegenseitig öffnen [GameMaster -> Player || Player -> GameMaster [all]]
259 #define GM_BLOCK_SHOP_CREATION // GM's können keinen Shop erstellen [GameMaster]
260 #define GM_BLOCK_ITEM_DROP // GM's können keine Items droppen [GameMaster]
261 #define GM_BLOCK_PUSH_BACK // GM's Full Inventory PushBack Fix [NOT IMPLEMENTED] [all] -> Ändern in only GM fix <-
262 #define GM_BLOCK_EXCHANGE // GM's & Spieler können gegenseitig Items handeln [GameMaster -> Player || Player -> GameMaster]
263 #define GM_BLOCK_GUILD_INVITE // GM's & Spieler können sich nicht gegenseitig in eine Gilde einladen [GameMaster -> Player || Player -> GameMaster]
264 #define GM_BLOCK_FRIEND_LIST // GM's können keine Spieler in die Freundesliste hinzufügen [GameMaster -> Player || Player -> GameMaster [all]]
265 #define GM_BLOCK_BUY_PRIVATE_SHOP // GM's können keine Items von Privaten Shops kaufen [GameMaster -> [Player]Shops]
266 #define GM_BLOCK_SAFEBOX // GM's können das Lager nicht benutzen [GameMaster]
267 #define GM_BLOCK_POLYMORPHED_ATTACK // GM's können keinen anderen Spieler in Verwandlung angreifen [GameMaster -> Player || Player -> GameMaster [all]]
268 #endif
269
270
271
272
273
274/*<-----DB----->*/
275#define ENABLE_DEFAULT_PRIV // [ClientManager.cpp] enable default priv loading from common.priv_settings
276#define ENABLE_ITEMAWARD_REFRESH // [ClientManager.cpp] enable a select query every 5 seconds into player.item_award
277#define ENABLE_PROTO_FROM_DB // [ClientManager.h] read protos from db if "PROTO_FROM_DB = 1" is specified inside conf.txt
278 // mirror protos to db if "MIRROR2DB = 1" is specified inside conf.txt
279#define ENABLE_AUTODETECT_VNUMRANGE // [ClientManagerBoot.cpp] if protos are loaded from db, it will automatically detect the vnum range for ds items
280
281
282/*<-----GAME----->*/
283#define NEW_ICEDAMAGE_SYSTEM // [char.h] add new system for nemere dungeon and so on
284#define ENABLE_ANTI_CMD_FLOOD // [char.h] limit player's command execution to 10 commands per second, otherwise it'll be disconnected!
285#define ENABLE_OPEN_SHOP_WITH_ARMOR // [char.h] if enabled, people can open a personal shop with the armor equipped
286
287#define ENABLE_GOHOME_IF_MAP_NOT_ALLOWED // [char.cpp] you'll go back to your village if you're not allowed to go in that map
288#define ENABLE_GM_FLAG_IF_TEST_SERVER // [char.cpp] show the gm flag if it's on test server mode
289#define ENABLE_GM_FLAG_FOR_LOW_WIZARD // [char.cpp] GM Zeichen auch als Low-Wizard
290// #define ENABLE_SHOWNPCLEVEL // [char.cpp] show Lv %d level even for NPCs (not applicable on mob/stone/warp)
291
292#define ENABLE_NEWEXP_CALCULATION // [char_battle.cpp] recalculate exp rate so you won't get random negative exp/marriage points
293#define ENABLE_EFFECT_PENETRATE // [char_battle.cpp] enable penetrate effect when performing a penetration
294// #define ENABLE_FIREWORK_STUN // [char_item.cpp] enable stun affect when using firework items
295#define ENABLE_ADDSTONE_FAILURE // [char_item.cpp] enable add stone failure
296#define ENABLE_EFFECT_EXTRAPOT // [char_item.cpp] enable extrapot effects when using green/purple potions
297#define ENABLE_BOOKS_STACKFIX // [char_item.cpp] enable stackable books instead of remove all the pile
298
299// #define ENABLE_IMMUNE_PERC // [char_resist.cpp] enable 90% of success instead of 100% regarding immunes (antistun/slow/fall)
300#define ENABLE_FORCE2MASTERSKILL // [char_skill.cpp] skill always pass to m1 when b17 instead of b(number(17-20))
301// #define ENABLE_MOUNTSKILL_CHECK // [char_skill.cpp] check whether horse mount vnum should be checked when skilling
302// #define ENABLE_NULLIFYAFFECT_LIMIT // [char_skill.cpp] sura skill 66 won't nullify players with level < or > of yours by 9
303// #define ENABLE_MASTER_SKILLBOOK_NO_STEPS // [char_skill.cpp] if enabled, you will only need a book to increase a master skill, and not as many as the level-20
304
305#define ENABLE_CMD_PLAYER // [config.cpp] enable PLAYER grade inside CMD
306#define ENABLE_EXPTABLE_FROMDB // [config.cpp] read the exp table from the db
307#define ENABLE_AUTODETECT_INTERNAL_IP // [config.cpp] autodetect internal ip if the public one is missing
308// #define ENABLE_GENERAL_CMD // [config.cpp] if enabled, it reads a general CMD from "locale/%s/conf/GENERAL_CMD", "locale/%s/conf/GENERAL_CMD_CHANNEL_%d", and/or "locale/%s/conf/GENERAL_CMD_CHANNEL_%d_HOSTNAME_%s"
309// #define ENABLE_GENERAL_CONFIG // [config.cpp] if enabled, it reads a general CONFIG from "locale/%s/conf/GENERAL_CONFIG", "locale/%s/conf/GENERAL_CONFIG_CHANNEL_%d", and/or "locale/%s/conf/GENERAL_CONFIG_CHANNEL_%d_HOSTNAME_%s"
310 // in the GENERAL_CONFIG, all the options are valid except: HOSTNAME, CHANNEL, PLAYER_SQL, COMMON_SQL, LOG_SQL, PORT, P2P_PORT, MAP_ALLOW, AUTH_SERVER, TEEN_ADDR, TEEN_PORT
311
312// #define ENABLE_BLOCK_CMD_SHORTCUT // [cmd.cpp] if enabled, people won't be able to shorten commands
313// #define ENABLE_STATPLUS_NOLIMIT // [cmd_gm.cpp] disable only 90 points for con+/int+/str+/dex+ commands
314#define ENABLE_SET_STATE_WITH_TARGET // [cmd_gm.cpp] enable set_state target as 3rd arg
315#define ENABLE_CMD_IPURGE_EX // [cmd_gm.cpp] /ipurge 2nd arg can remove items from a specific window (inv/equip/ds/belt/all)
316
317// #define ENABLE_SPAMDB_REFRESH // [db.cpp] enable a select query every 10 minutes into common.spam_db
318#define ENABLE_FISHINGROD_RENEWAL // [fishing.cpp] if the upgrading of the fishing rod will fail, it won't turn back of 1 grade, but just lose 10% mastering points.
319#define ENABLE_NEWGUILDMAKE // [guild.h] enable pc.make_guild0 and disable CInputMain::AnswerMakeGuild
320#define ENABLE_INFINITE_HORSE_HEALTH_STAMINA // [horse_rider.h] the horse won’t lose health nor stamina
321
322// #define ENABLE_ACCOUNT_W_SPECIALCHARS // [input_auth.cpp] enable special characters in account names (account.account.login)
323#define ENABLE_GOHOME_IF_MAP_NOT_EXIST // [input_db.cpp] you'll go back to your village if the map doesn't exist
324#define ENABLE_CHAT_COLOR_SYSTEM // [input_main.cpp] enable chat colors based on IsGm or GetEmpire (+colored empire name)
325#define ENABLE_CHAT_FLAGS // [input_main.cpp] global chat with flags
326#define ENABLE_CHAT_SPAMLIMIT // [input_main.cpp] limit chat spam to 4 messages for 5 seconds, if you spam it for 10 times, you'll be disconnected!
327#define ENABLE_WHISPER_CHAT_SPAMLIMIT // [input_main.cpp] limit whisper chat to 10 messages per 5 seconds, otherwise you'll be disconnected!
328#define ENABLE_CHAT_LOGGING // [input_main.cpp] enable chat logging (which saves all the gm chats)
329#define ENABLE_CHECK_GHOSTMODE // [input_main.cpp] enable check that blocks the movements if the character is dead
330#define ENABLE_IMMUNE_FIX // [item.cpp] fix immune bug where you need to equip shield at last (or refresh compute e.g. un/riding horse)
331#define ENABLE_BELT_INVENTORY_EX // [item_manager.cpp] x
332
333// #define ENABLE_LIMIT_TIME // [limit_time.h]
334#define ENABLE_PICKAXE_RENEWAL // [mining.cpp] if the upgrading of the pickaxe will fail, it won't turn back of 1 grade, but just lose 10% mastering points
335
336#define ENABLE_QUEST_DIE_EVENT // [quest.h] add quest event "die"
337#define ENABLE_TRANSLATE_LUA // [questlua.cpp] enable translate.lua loading
338// #define ENABLE_LOCALECHECK_CHANGENAME // [questlua_pc.cpp] enable check that unable change name on Europe Locales
339// #define ENABLE_PC_OPENSHOP // [questlua_pc.cpp] enable pc.open_shop0(idshop) but buy/sell not work yet
340#define D_JOIN_AS_JUMP_PARTY // [questlua_dungeon.cpp] x
341#define ENABLE_QUESTLIB_EXTRA_LUA // [questlua.cpp] x
342#define ENABLE_PARTYKILL // [questmanager.cpp] re-enable PartyKill
343
344// #define ENABLE_SHOP_BLACKLIST // [shop.cpp] enable ignore 70024 (Blessing Marble) and 70035 (Magic Copper Ore)
345#define ENABLE_NEW_RETARDED_GF_START_POSITION // [start_position.cpp] New Gameforge Startposition
346
347#define ENABLE_D_NJGUILD // [general] enable d.new_jump_all_guild+cpp relative functions (untested)
348//#define ENABLE_QUEST_CATEGORY // [general] enable quest category+new packet types (unimplemented)
349#define ENABLE_FULL_NOTICE // [general] enable new big notice features
350#define ENABLE_NEWSTUFF // [general] enable new stuff (new lua funcs, new CONFIG options, ecc)
351#define ENABLE_CMD_WARP_IN_DUNGEON // [general] /warp <player> will warp successfully even if the player is inside a dungeon (be sure a .quest login event won't still warp you out)
352
353/*
354@#GENERAL MACROS
355#define __OBSOLETE__ //useless and pointless code removed
356#define __UNIMPLEMENTED__ //drafts of new things to be implemented
357*/
358#endif
359
360/*
361#@general
362@warme001: be aware about PLAYER_MAX_LEVEL_CONST (common/length.h) and gPlayerMaxLevel (game/config.h)
363@warme002: be aware about ITEM_MAX_COUNT (common/item_length.h) and g_bItemCountLimit (game/config.h)
364@warme003: do_click_safebox can be used by PLAYER in every map!
365@warme004: `when vnum.kill begin` and `when kill begin` are both triggered
366@warme005: different locale stuff
367@warme006: not implemented stuff from another locale
368@warme007: on db/src/ClientManager.cpp; commented locale set from common.locale due to its uselessness and bugginess (./close && ./start)
369 it processes a NULL mysql connection (dat ymir threading) if there was a bit of overload before starting the process up again
370@warme008: on char_item.cpp; now 27996 (poison bottle) can inflict poison
371@warme009: on char_resist.cpp; if bleeding is used as poison, the bleeding enchantment is poison enchantment/50 (so mobs can bleed players)
372@warme010: on char_state.cpp; test_server is used as "BOOL g_test_server"
373@warme011: on dungeon.cpp; you should never use d.join instead of d.new_jump_party since it causes random crashes due to a wrong implementation of the party hash check
374@warme012: trivial errors are now considered as simple logs
375@warme013: unneccessary errors are now simply commented
376
377
378#@common
379@fixme301: on tables.h; TPlayerTable hp/mp from short to int (hp/mp >32767 should be fixed)
380
381#@db/src
382@fixme201: on ProtoReader.cpp; changed 'SAMLL' into 'SMALL'
383@fixme202: on ClientManagerGuild.cpp; fixed the guild remove member time issue if the player was offline
384 (withdraw_time -> new_withdraw_time)
385@fixme203: on ClientManagerPlayer.cpp; dandling pointer for "command"
386@fixme204: on Cache.cpp; myshop_pricelist primary key duplication error if there are many items of the same vnum in the personal shop
387
388#@game/src
389@fixme101: on log.cpp; fixed '%s' for invalid_server_log
390@fixme102: on cmd_general.cpp; inside ACMD(do_war) fixed the unsigned bug
391@fixme103: on config, input_login, input_main.cpp; fixed clientcheckversion (version > date) to (version != date) and delay from 10 to 0
392@fixme104: on char.cpp, questlua_pc.cpp; fixed get status point after lv90 changing 90 with gPlayerMaxLevel
393@fixme105: on cmd.cpp; disabled every korean command
394@fixme106: on input_main.cpp; if a full-speeded player is on a mount (es. lion), he'll be brought back due to the distance range
395@fixme107: on char_battle.cpp; if character (player|mob) has negative hp on dead, sura&co will absorb hp/mp losing 'em themselves
396@fixme108: on char.cpp; if you change a mount but the previous is not 0, all the entities (npcs&co) in the player client
397 (not others) are vanished until another refresh (not exists mounts still bug you after second mount call)
398@fixme109: on questmanager.cpp; if you kill a player (war m), `when kill begin` will be triggered twice
399@fixme110: on char_affect.cpp; if you attack when semi-transparent (revived or ninja skill or white flag) you'll still be transparent
400@fixme111: on test.cpp; ConvertAttribute2 has x and y inverted (before y->x after x->y)
401@fixme112: on char_item.cpp; you can change bonuses in equipped items too (until re-login)
402 bonus values will not be refreshed by ChangePoint and unequipping it will remove back only the new bonuses set on
403 e.g. you had a 2500hp bonus shoes, you changed it to 50mp when equipped and you'll unequipped
404 what will it happen? instead of remove 2500hp, you won't receive 50mp and you also lose 50mp when unequipped
405@fixme113: on char_item.cpp; same thing of #112
406 you can remove stones from equipped items w/o losing bonuses
407 e.g. have an item with antiwar+4 equipped:
408 1) remove all the stones
409 2) unequip it
410 3) re-add stone
411 4) re-equip it
412 5) repeat it thrice
413 result? an item with no stones but you'll have 75% of antiwar
414@fixme114: on char_item.cpp; gathering of #111, #112 and few others.
415@fixme115: on char_item.cpp; you can retrieve all the item on the ground if you're in a party and the owner is not in yours.
416@fixme116: on char_skill.cpp; normal horse mount skills cannot inflict damage
417@fixme117: on char_item.cpp; you can't swap equipment from inventory if full, and also prevent unmotivated belt swap if its inventory is not empty
418@fixme118: on char.cpp; when ComputePoints is called:
419 you'll gain as many hp/mp as many you have in your equipment bonuses
420 affect hp/mp will be lost when login or updating
421@fixme119: on input_main.cpp; you can put items from safebox/mall to belt inventory w/o checking the type (items with size>1 are not placeable anyway)
422@fixme120: on input_login.cpp; few packet IDs not checked
423@fixme121: on char_item.cpp; the refine scroll item value 1 from the magic stone was generating useless syserrs
424@fixme122: on arena.cpp; few other potions were not checked on arena map
425@fixme123: on char_item.cpp; USE_CHANGE_ATTRIBUTE2 (24) sub type check bug (the condition could never be true)
426@fixme124: on char_item.cpp; no check on 6-7 add/change items about costume stuff
427@fixme125: on char.cpp; dungeon regen pointing to a dangling pointer (not required -> removed)
428@fixme126: on marriage.cpp; fix lovepoints overflow
429@fixme127: on cube.cpp; /cube r_info exploit fix; it can cause a crash due to an unchecked cube npc masters vnums
430 1) you open the Baek-Go cube's console
431 2) click on an npc/kill a mob without close the cube console
432 3) digit /cube r_info 4) crash core
433@fixme128: on char.cpp; mining hack fix; you can mine a vein anywhere in the map because there's no check on the character
434 which means, you can stay at 0x0y and mining a vein in 666x999y and get the stuff beside him or in the pc's inventory
435@fixme129: on PetSystem.cpp; the azrael pets (53005->34004 normal/53006->34009 gold) don't give the buff if not in dungeon at summon up and remove them anyway when unsummoned
436@fixme130: on messenger_manager.cpp; and cmd_general.cpp if you do /messenger_auth n XXX, the player with the name XXX will receive a "refused friend invite" print from you
437 which means, if you flood this packet, the "victim" will be disconnected or at maximum could get lag
438@fixme131: on char.cpp; fix annoying sync packets sendable even on unfightable pc/npc entities
439 e.g. wallhack against players' shops inside the village's squares (where the NOPK attr is set) to move them out and kill them
440@fixme132: on shop.cpp; if two people buy the same item at the same time from a pc's shop, the slower one will receive a wrong return packet (crash client)
441@fixme133: on input_main.cpp; banword check and hyper text feature were processing the final chat string instead of the raw one
442@fixme134: on questlua_pc.cpp; the pc.mount_bonus was addable even if the mount wasn't spawn (only /unmount pc.unmount can remove it)
443@fixme135: on char.cpp; if the Sync is made before a move packet and the sectree differs of few x/y coordinates, the sectree will be changed without update (crash character) (troublesome -> removed)
444@fixme136: on char.cpp; there are no checks about the zero division exception: e.g. if you set a mob's max hp to 0 in the mob proto, you'll get random crashes.
445@fixme137: on char_battle.cpp; when a player dies, the HP could have a negative value. Now it's 0 like the official.
446@fixme138: on db.cpp, input_auth.cpp; the account's password was shown in the mysql history queries as clear text at every login attempt (mysql full granted user required -> now hashed)
447@fixme139: on shop.h; CShop class destructor wasn't virtual. If a derived class like CShopEx was deleted, a memory leak would have been generated.
448@fixme140: on input_main.cpp; the belt could be put into the safebox even though the belt inventory isn't empty.
449@fixme141: on char_item.cpp; the items in the belt inventory could be used even if their slot were not available
450@fixme142: on messenger_manager.cpp; sql injection fix about net.SendMessengerRemovePacket
451@fixme143: on guild_manager.cpp; sql injection fix about net.SendAnswerMakeGuildPacket
452@fixme144: on sectree_manager.cpp; if map/index doesn't end with a newline, the game will crash
453@fixme145: on input_main.cpp; guild_add_member can add any vid as guild's member even if it's a mob or an npc
454@fixme147: on char_item.cpp; ramadan candy item can be used even if the relative affect is still up
455@fixme148: on item_manager_read_tables.cpp; type quest, special, attr not handled in ConvSpecialDropItemFile
456@fixme149: on char.cpp; refine material skip exploit if items are swapped
457@fixme150: on exchange.cpp; char_item.cpp; prevent item module swapping if the quest is suspended
458@fixme152: on questlua_pc.cpp; pc.get_special_ride_vnum was checking socket2 instead of socket0
459@fixme153: on threeway_war.cpp; kills made of people over lvl99 weren't counted
460@fixme154: on cmd_gm.cpp; the /all_skill_master command will now set the right amount of points to the sub skills
461@fixme156: on char_affect.cpp; prevent doubling the affect values before they are loaded (such as pc.mount_bonus at login; because the quest is loaded before the quests)
462@fixme157: on OxEvent.cpp; the attender list wasn't cleared after stopping the ox event
463@fixme158: on input_main.cpp; the deviltower refiner won't set the flag to 0 anymore if you have no money, and it will decrease it by 1 for allowing multiple refine attempts
464@fixme159: on exchange.cpp; when exchanging, a wrong check in the ds items was not allowing the exchange due to "not enough space in ds inventory" if the first sub ds inventory slot was not empty
465@fixme160: on DragonSoul.cpp; when removing a ds stone, if the destination slot wasn't empty, the ds item in there would have been replaced and lost
466
467@fixme200: on item_manager.cpp; Bonus on Rings visable
468@fixme201: on char_item.cpp; 2 rings with same vnum -> fixxed
469@fixme202: on cmd_gm.cpp; Berechnung der Rangpunkte angepasst (ch -> tch)
470@fixme203: on input_main.cpp; EXP-Verteilungeinstellung nur fur den Gruppenleader
471@fixme204: on char_item.cpp; Pots können nicht mehrfach verwendet werden
472@fixme205; on char.cpp; 50% nach Max-Level noch an EXP sammeln möglich
473@fixme206; on char_affect.cpp; Ignore lower buffs
474@fixme207; on char.cpp; SHOP bundle never let this get into the shop
475@fixme208; on cmd_general.cpp; GM_IMPLEMENTOR können sofort town/hier-neustarten
476@fixme209; on char_item.cpp; make sure, you can't pickup even you're dead
477@fixme210; on char.cpp, questlua_pc.cpp; addet new "dwLastPlay/get_last_play"
478@fixme211; on char.cpp; Shop open with Mount bugfix
479@fixme212; on cube.cpp; Boni bleiben erhalten beim upgraden eines Gegenstandes
480@fixme213; on shopEx.cpp; config addet - Marty missing
481@fixme214; on char_item.cpp; stack potts directly in belt inventory
482@fixme215; on guild.cpp; Compare last pulse with current pulse and notify the player
483@fixme216; on input_main.cpp; equiped items -> Safebox blocked
484@fixme217; on main.cpp, ClientManager.cpp; main.cpp -> core receives a P2P packet, it doesn't check, if the sender is another core.
485 ClientManager.cpp -> When DB port is Publicly available, user, which knows the account id, can simply use it.
486@fixme218; on char.cpp; Stack items you drop for Other guys in your party
487@fixme219; on input_db.cpp; Player -> CheckItemUseLevel -> push_back(item)
488@fixme220; on config.cpp; disabled interpreter_set_privilege [load CMD privileges]
489@fixme221; on input_login.cpp; GM & invisible, let's set observer!
490@fixme222; on char_item.cpp; missing MonkeyDungeon
491@fixme223; on char_battle.cpp; Buffs without weapon disabled [VZK, AURA]
492@fixme224; on char_item.cpp; Cant change Attributes on equipped items
493@fixme225; on char.cpp; Dungeon Corecrash
494@fixme226; on service.h; Disabled SEQUENCE_SYSTEM
495@fixme227; on belt_inventory_helper.h; allows blend on belt inventory
496@fixme228; on questlua_pc.cpp; Remove Affect when change Skillgroup
497@fixme229; on input_main.cpp; Nullvalue -> Fixxing Kick on Comboattackhack
498@fixme230; on char_item.cpp; Pickup Speed Limit
499@fixme231; on char.cpp; Ghostwalker Fix
500@fixme232; on char.cpp; Mining Bot Fix
501@fixme233; on char_affect.cpp; Weaponry Sura's Dispel & Healing Power Shamans Heal Lag-Bug
502@fixme234; on char_dragonsoul.cpp; AddAffect -> Dragonsoul Active Effect
503@fixme235; on char_item.cpp; Double Affect Bugfix
504@fixme236; on char_item.cpp; Glückstasche missing -> addet new protos
505@fixme237; on char_item.cpp; Expand Stone Range - Missing: Lykaner, Magiebruch
506@fixme238; on char_item.cpp; Prevents the switching from Pet items while a pet is summoned BUGFIX (No longer needed Quest-Side)
507@fixme239; on char_change_empire.cpp; EmpireChange Fix with Guild in other Empire (UpdatePacket)
508@fixme240; on questlua_pc.cpp; VIP-System -> GameMaster can't be VIP's
509@fixme241; on book_combination.cpp; Safebox muss geschlossen sein um zu combinieren
510@fixme242; on questlua_pc.cpp; Autodisconnect after Change Empire
511@fixme243; on char_battle.cpp; Shop Block @ Attack
512@fixme244; on char_item.cpp; Missing IsExchanging
513@fixme245; on char_item.cpp; Cant use Change Attr on OldHairs
514@fixme247; on char_horse.cpp; IsRiding @ StartRiding => cant start, while sill riding
515@fixme248; on dungeon.cpp; Fix Dungeon count monsters (function was keeping also NPC, it could make ugly problems)
516@fixme249; on dungeon.cpp; Fix Dungeon using more memory than right, with notice on all entities (notice was be triggered for every char entity)
517@fixme250; on char_item.cpp; Block marriage items while riding
518@fixme251; on questlua_global.cpp; Small prevents
519@fixme252; on battle.cpp; Fix: Issue on War! -> addet: IsObserverMode
520@fixme255; on char_battle.cpp; Moblock/bravery cape hack
521
522
523#@/Server (general)
524@fixme401: fixed the guild disband time issue
525 on db/src/ClientManagerGuild.cpp; (withdraw_time -> new_disband_time)
526 on game/src/guild.cpp; (new_withdraw_time -> new_disband_time)
527@fixme402: fixed the usage of the affect system before its loading
528 on game/src/char_item.cpp; added an IsAffectLoaded check when using an item
529@fixme403: fixed player.myshop_pricelist corrupted data
530 on db/src/ClientManager.cpp; db/src/ClientManager.h; game/src/char.cpp; TPacketMyshopPricelistHeader to TItemPriceListTable
531
532
533#@informations
534@infome001; on char_item.cpp; reduce the free upgrades left (if it is a valid free upgrade)
535@infome002; on char_item.cpp; refine_event for raising refine chances
536@infome003; on char.cpp, shop.cpp, char_item.cpp, input_main.cpp; disallow shops on certain maps
537@infome004; on length.h; extended SHOP_TAB_COUNT_MAX 3 -> 5
538@infome005; on char_item.cpp; Armor-Pendant -> BonusSwitchFix
539@infome006; on length.h; extended
540@infome007; on char_skill.cpp; Fix: Secondary skill levelup with skill group 0
541@infome008; on input_login.cpp; Invisible @ Login (5sek)
542@infome009; on char.cpp; Horse_status_bonus
543@infome010; on char.cpp; Horse extend
544@infome011; on cmd_general.cpp; extra-horse-function
545@infome012; on shop_manager.cpp; Taxe disabled - changed: 3 -> 0 [3 Original => Display ingame]
546@infome013; on x.cpp; Acce-Important Changes
547@infome014; on char_item.cpp, fishing.h; New Pearls addet to SHELLFISH <-
548@infome015; on char_item.cpp; not existing vnum
549*/