diff options
Diffstat (limited to 'conf')
47 files changed, 6405 insertions, 0 deletions
diff --git a/conf/atcommand.conf b/conf/atcommand.conf new file mode 100644 index 000000000..78befea8b --- /dev/null +++ b/conf/atcommand.conf @@ -0,0 +1,72 @@ +/* Atcommands and charcommands configuration file */ + +/* The symbol that will be used to recognize commands. +You can set any one character except: + - control-characters (0x00-0x1f), + - '%' (party chat symbol) + - '$' (guild chat symbol) + - '/' (client commands symbol) +atcommand_symbol represents @commands used locally. +charcommand_symbol represents #commands used on other players. +*/ + +atcommand_symbol : "@" +charcommand_symbol: "$" + +/* Command aliases +You can define aliases for any command. Aliases work just like the original command. +Format is + <commandname>: ["<alias>", ...] +*/ + +aliases: { + mobinfo: ["monsterinfo", "mi"] + iteminfo: ["ii"] + time: ["date", "serverdate", "servertime"] + autotrade: ["at"] + help: ["h"] + jumpto: ["goto", "warpto"] + mount: ["mountpeco"] + who: ["whois"] + npctalk: ["npctalkc"] + gvgon: ["gpvpon"] + gvgoff: ["gpvpoff"] + jobchange: ["job"] + load: ["return"] + warp: ["rura", "mapmove"] + dye: ["ccolor"] + hairstyle: ["hstyle"] + haircolor: ["hcolor"] + monster: ["spawn"] + blvl: ["lvup", "blevel", "baselvl", "baselvup", "baselevel", "baselvlup"] + jlvl: ["jlevel", "joblvl", "joblvup", "joblevel", "joblvlup"] + glvl: ["glevel", "guildlvl", "guildlvup", "guildlevel", "guildlvlup"] + allskill: ["allskills", "skillall", "skillsall"] + allstats: ["allstat", "statall", "statsall"] + ban: ["banish"] + unban: ["unbanish"] + unjail: ["discharge"] + homlevel: ["hlvl", "hlevel", "homlvl", "homlvup"] + homevolution: ["homevolve"] + mutearea: ["stfu"] + monsterignore: ["battleignore"] + raise: ["revive"] + kill: ["die"] + guildstorage: ["gstorage"] + accinfo: ["accountinfo"] + itemreset: ["clearinventory"] + channel: ["main"] + autoloottype: ["aloottype"] +} + +/* List of commands that should not be logged at all */ +/* Add as many commands as you like */ +nolog: { + iteminfo: 1 + mobinfo: 1 +} + +/* Commands help file */ +help: { + @include "conf/map/help.txt" +} diff --git a/conf/battlegrounds.conf b/conf/battlegrounds.conf new file mode 100644 index 000000000..2b4184e11 --- /dev/null +++ b/conf/battlegrounds.conf @@ -0,0 +1,124 @@ +//==================================================== +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//= +//= http://herc.ws/board/ +//==================================================== +//= http://herc.ws/board/topic/928-memory-slasher-may-30-patch/ +//==================================================== +//= Fields (TODO/INCOMPLETE) +//= arenas: ({ +//= //- allowedTypes defines what kind of applications the arena will accept, setting is not case-sensitive and is ok with whitespaces +//= allowedTypes: "Solo | Party" //Arena Accepts solo and party-type joins +//= allowedTypes: "guild|party" //Arena Accepts solo and guild-type joins +//= allowedTypes: "All" //Arena Accepts solo, party and guild-type joins +//= //- fillAnnounce (optional arena param) +//= }) +battlegrounds: ( +{ + /* feature is not complete */ + feature_off: true + /* character variable for global bg delay */ + global_delay_var: "BG_Delay_Tick" + /* how many seconds to consider a player "afk" and kick him out? */ + maximum_afk_seconds: 30 + + /* one can add as many as he wishes */ + /* for custom ones, need to edit "lua files/entryqueue/entryqueuelist.lua" [Ind/Hercules] */ + arenas: ({ + name: "Tierra Gorge" //must match the name in client files + event: "Tierra_BG2::OnPlayerListReady" + allowedTypes: "All" /* Solo, Party and Guild */ + minLevel: 80 + maxLevel: 150 + reward: {/* amount of badges awarded on each case */ + win: 3 + loss: 1 + draw: 1 + } + minPlayers: 6 /* minimum amount of players to start */ + maxPlayers: 60 /* maximum amount of players */ + minTeamPlayers: 6 /* minimum amount of team members required for a team (party or guild) to join */ + delay_var: "Tierra_BG_Tick" /* char variable name that will store the delay for this match */ + maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */ + fillDuration: 20 /* time in seconds to wait for more applications when minimum has been reached */ + pGameDuration: 20 /* time to wait for players to confirm their attendence after queueing process has finished */ + },{ + name: "Flavius" //must match the name in client files + event: "start#bat_b01::OnPlayerListReady" + allowedTypes: "All" /* Solo, Party and Guild */ + minLevel: 80 + maxLevel: 150 + reward: {/* amount of badges awarded on each case */ + win: 9 + loss: 3 + draw: 3 + } + minPlayers: 2 /* minimum amount of players to start (DEBUG VALUE, CHANGE BACK) */ + maxPlayers: 60 /* maximum amount of players */ + minTeamPlayers: 6 /* minimum amount of team members required for a team (party or guild) to join */ + delay_var: "Flavius_BG_Tick" /* char variable name that will store the delay for this match */ + maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */ + fillDuration: 20 /* time in seconds to wait for more applications when minimum has been reached */ + pGameDuration: 20 /* time to wait for players to confirm their attendence after queueing process has finished */ + },{ + name: "KVM (Level 80 and up)" //must match the name in client files + event: "KvM03_BG::OnPlayerListReady" + allowedTypes: "All" /* Solo, Party and Guild */ + minLevel: 80 + maxLevel: 150 + reward: {/* amount of badges awarded on each case */ + win: 5 + loss: 1 + draw: 1 + } + minPlayers: 4 /* minimum amount of players to start */ + maxPlayers: 60 /* maximum amount of players */ + minTeamPlayers: 5 /* minimum amount of team members required for a team (party or guild) to join */ + delay_var: "KVM_BG_Tick" /* char variable name that will store the delay for this match */ + maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */ + fillDuration: 20 /* time in seconds to wait for more applications when minimum has been reached */ + pGameDuration: 20 /* time to wait for players to confirm their attendence after queueing process has finished */ + },{ + name: "KVM (Level 60~79)" //must match the name in client files + event: "KvM03_BG::OnPlayerListReady" + allowedTypes: "All" /* Solo, Party and Guild */ + minLevel: 60 + maxLevel: 79 + reward: {/* amount of badges awarded on each case */ + win: 2 + loss: 0 + draw: 1 + } + minPlayers: 4 /* minimum amount of players to start */ + maxPlayers: 60 /* maximum amount of players */ + minTeamPlayers: 5 /* minimum amount of team members required for a team (party or guild) to join */ + delay_var: "KVM_BG_Tick" /* char variable name that will store the delay for this match */ + maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */ + fillDuration: 20 /* time in seconds to wait for more applications when minimum has been reached */ + pGameDuration: 20 /* time to wait for players to confirm their attendence after queueing process has finished */ + },{ + name: "KVM (Level 59 and below)" //must match the name in client files + event: "KvM03_BG::OnPlayerListReady" + allowedTypes: "All" /* Solo, Party and Guild */ + minLevel: 1 + maxLevel: 59 + reward: {/* amount of badges awarded on each case */ + win: 1 + loss: 0 + draw: 0 + } + minPlayers: 4 /* minimum amount of players to start */ + maxPlayers: 60 /* maximum amount of players */ + minTeamPlayers: 5 /* minimum amount of team members required for a team (party or guild) to join */ + delay_var: "KVM_BG_Tick" /* char variable name that will store the delay for this match */ + maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */ + fillDuration: 20 /* time in seconds to wait for more applications when minimum has been reached */ + pGameDuration: 20 /* time to wait for players to confirm their attendence after queueing process has finished */ + } + ) +}) diff --git a/conf/channels.conf.base b/conf/channels.conf.base new file mode 100644 index 000000000..c7e372c14 --- /dev/null +++ b/conf/channels.conf.base @@ -0,0 +1,67 @@ +//==================================================== +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//= +//= http://herc.ws/board/ +//==================================================== +//================= More Information ================= +// http://herc.ws/board/topic/316-introducing-hercules-channel-system/ +//==================================================== +chsys: ( +{ + /* Default Channels (available on boot) */ + default_channels: { + /* channel_name : channel_messages_color */ + main: "Orange" /* Available as #main */ + support: "Blue" /* Available as #support */ + trade: "Red" /* Available as #trade */ + gm: "Red" + lang: "Green" + offtopic: "Cyan" /* Available as #offtopic */ + /* You may add as many channels as you like */ + } + /* Colors Available */ + colors: { + Default: "0xffffff" /* Custom channels use the first color listed unless a font is selected through @channel. */ + Red: "0xff0000" + Blue: "0x83cfe9" + Orange: "0xe57c00" + Cyan: "0x00b89d" + Yellow: "0xffff90" + Green: "0x28bf00" + Light_Green: "0x3dff98" + Normal: "0x00ff00" + /* As many colors as you like */ + } + /* Allow users to create their own (private) channels through @channels command? */ + /* (must also allow players to use @channels in groups.conf) */ + allow_user_channel_creation: true + + /* "map_local_channel" is a instanced channel unique to each map. */ + map_local_channel: true + map_local_channel_name: "map" /* Available as #map */ + map_local_channel_color: "Yellow" + map_local_channel_autojoin: true /* You can disable autojoin in specific maps through a mapflag or zone. */ + + /* "ally_channel" is a channel shared by all your guild allies */ + ally_channel_enabled: true + ally_channel_name: "ally" /* Available as #ally */ + ally_channel_color: "Green" + ally_channel_autojoin: true /* Will members autojoin to their respective #ally chats when they log-in? */ + + /* "irc_channel" is a special channel connected to a specific chat room in any irc network. */ + irc_channel_enabled: false + irc_channel_name: "irc" /* available as #irc */ + irc_channel_color: "Light_Green" + irc_channel_network: "irc.freenode.net:6667" /* network to connect to (:and port) */ + irc_channel_channel: "#evolonline" /* channel in the network above to join */ + irc_channel_nick: "testbot" /* nick the bot will use */ + irc_channel_nick_pw: "" /* password to this nick (if any) to identify to nick server on the irc network */ + irc_channel_use_ghost: false /* whether to send a GHOST command to the nick server (requires irc_channel_nick_pw to be defined) */ + irc_channel_autojoin: true +} +) diff --git a/conf/char/char-server.conf b/conf/char/char-server.conf new file mode 100644 index 000000000..db433244a --- /dev/null +++ b/conf/char/char-server.conf @@ -0,0 +1,225 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +//= Character Server configuration file. +//========================================================================= + +char_configuration: { + @include "conf/global/console.conf" + @include "conf/import/sql_connection.conf" + + // Server name, use alternative character such as ASCII 160 for spaces. + // NOTE: Do not use spaces or any of these characters which are not allowed in + // Windows filenames \/:*?"<>| + // ... or else guild emblems won't work client-side! + server_name: "Hercules" + + // Wisp name for server: used to send wisp from server to players (between 4 to 23 characters) + wisp_server_name: "Server" + + // Guild earned exp modifier. + // Adjusts taxed exp before adding it to the guild's exp. For example, + // if set to 200, the guild receives double the player's taxed exp. + guild_exp_rate: 100 + + // Information related to inter-server behavior + inter: { + // Server Communication username and password. + userid: "s1" + passwd: "p1" + + // Login Server IP + // The character server connects to the login server using this IP address. + // NOTE: This is useful when you are running behind a firewall or are on + // a machine with multiple interfaces. + //login_ip: "127.0.0.1" + + // The character server listens on the interface with this IP address. + // NOTE: This allows you to run multiple servers on multiple interfaces + // while using the same ports for each server. + //bind_ip: "127.0.0.1" + + // Character Server IP + // The IP address which clients will use to connect. + // Set this to what your server's public IP address is. + //char_ip: "127.0.0.1" + + @include "conf/import/ports.conf" + } + + // Connection permission + permission: { + // Enable or disable creation of new characters. + enable_char_creation: true + + // Display (New) in the server list. + display_new: false + + // Maximum users able to connect to the server. + // Set to 0 to disable users to log-in. (-1 means unlimited) + max_connect_user: -1 + + // Group ID that is allowed to bypass the server limit of users. + // Default: -1 = nobody (there are no groups with ID < 0) + // See: conf/groups.conf + gm_allow_group: -1 + + // Type of server. + // No functional side effects at the moment. + // Displayed next to the server name in the client. + // 0=normal, 1=maintenance, 2=over 18, 3=paying, 4=F2P + server_type: 0 + + // Minimum Group ID to join char server when it is on char_server_type 1 (maintenance) + maintenance_min_group_id: 99 + } + + // Player-related configuration + player: { + new: { + // Start point (Renewal) + start_point_re: { + map: "000-0" + x: 22 + y: 24 + } + + // Starting items for new characters + //{ + // id: Item id + // amount: Item amount + // loc: Item position, same as in item_db if you want the item to be equipped, otherwise 0 (optional) + // stackable: Is stackable? (not stackable item types: weapon, armor, egg, pet armor) + //}, + start_items: ( +// { +// id: 1201 // Knife +// amount: 1 +// loc: 2 +// stackable: false +// }, +// { +// id: 2301 // Cotton_Shirt +// amount: 1 +// loc: 16 +// stackable: false +// }, + ) + + // Starting zeny + zeny: 0 + } + + // Character name configuration + name: { + // Name used for unknown characters + unknown_char_name: "Unknown" + + // Allow or not identical name for characters but with a different case (upper/lower): + // example: Test-test-TEST-TesT; Value: 0 not allowed (default), 1 allowed + name_ignoring_case: false + + // Manage possible letters/symbol in the name of charater. Control character (0x00-0x1f) are never accepted. Possible values are: + // NOTE: Applies to character, party and guild names. + // 0: no restriction (default) + // 1: only letters/symbols in 'name_letters' option. + // 2: Letters/symbols in 'name_letters' option are forbidden. All others are possibles. + name_option: 1 + + // Set the letters/symbols that you want use with the 'char_name_option' option. + // Note: Don't add spaces unless you mean to add 'space' to the list. + name_letters: "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" + } + + deletion: { + // Restrict character deletion by BaseLevel + // 0: no restriction (players can delete characters of any level) + // -X: you can't delete chars with BaseLevel <= X + // Y: you can't delete chars with BaseLevel >= Y + // e.g. char_del_level: 80 (players can't delete characters with 80+ BaseLevel) + level: 0 + + // Amount of time in seconds by which the character deletion is delayed. + // Default: 86400 (24 hours) + // NOTE: Requires client 2010-08-03aragexeRE or newer. + delay: 86400 + + // Block deletion if character is inside a guild or a party? (BOOL) + // default: false official: true + // !!This check is imposed by Aegis to avoid dead entries in databases and _is_not_needed_ as we clear data properly!! + use_aegis_delete: false + } + + // Size for the fame-lists + fame: { + alchemist: 10 + blacksmith: 10 + taekwon: 10 + } + } + + database: { + // How often should server save all guild related information? (character save interval is defined on the map config) + // (in seconds) + autosave_time: 60 + + // What folder the DB files are in (abra_db.txt, etc.) + db_path: "db" + + // To log the character server? + log_char: true + } + + //================================================================== + // Pincode system + //================================================================== + pincode: { + // A window is opened before you can select your character and you will have to enter a pincode by using only your mouse + // NOTE: Requires client 2011-03-09aragexeRE or newer. + // 0: disabled + // 1: enabled + enabled: false + + // Request Pincode only on login or on everytime char select is accessed? + // 0: only on login (default) + // 1: everytime the char select window is accessed + request: 0 + + // How often does a user have to change his pincode? + // Default: 0 + // 0: never + // X: every X minutes + change_time: 0 + + // How often can a user enter the wrong password? + // Default: 3 + // Maximum allowed by clientside: 3 + max_tries: 3 + } + +} + +import: "conf/import/char-server.conf" diff --git a/conf/common/inter-server.conf b/conf/common/inter-server.conf new file mode 100644 index 000000000..6c701fbdc --- /dev/null +++ b/conf/common/inter-server.conf @@ -0,0 +1,125 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +//= Hercules Inter Server configuration file. +//========================================================================= +// Settings that are shared by more than one of the main servers +//========================================================================= + +inter_configuration: { + // Level range for sharing within a party + party_share_level: 15 // FIXME: Split RE and pre-RE + + // Log configuration + log: { + // Log Inter Connections, etc.? + log_inter: true + + // Inter Log Filename + inter_log_filename: "log/inter.log" + + // Log database SQL connection + @include "conf/import/sql_connection.conf" + } + + mysql_reconnect: { + // == MySQL Reconnect Settings + // =========================== + // - mysql_reconnect_type + // - 1: when mysql disconnects during runtime, the server tries to reconnect mysql_reconnect_count times and, + // -- if unsuccessful, the server is shut down + // - 2: when mysql disconnects during runtime it tries to reconnect indefinitely + type: 2 + + // - mysql_reconnect_count + // - number of reconnect attempts the server should do when the database disconnects during runtime + // - only used when mysql_reconnect_type is 1 + count: 1 + } + + // ALL MySQL Database Table names + // DO NOT CHANGE ANYTHING BEYOND THIS LINE UNLESS YOU KNOW YOUR DATABASE DAMN WELL + // this is meant for people who KNOW their stuff, and for some reason want to change their + // database layout. [CLOWNISIUS] + database_names: { + account_db: "login" + login_db: "loginlog" + ipban_table: "ipbanlist" + char_db: "char" + interlog_db: "interlog" + ragsrvinfo_db: "ragsrvinfo" + registry: { + acc_reg_num_db: "acc_reg_num_db" + acc_reg_str_db: "acc_reg_str_db" + char_reg_str_db: "char_reg_str_db" + char_reg_num_db: "char_reg_num_db" + + global_acc_reg_num_db: "global_acc_reg_num_db" + global_acc_reg_str_db: "global_acc_reg_str_db" + } + pc: { + hotkey_db: "hotkey" + scdata_db: "sc_data" + cart_db: "cart_inventory" + inventory_db: "inventory" + charlog_db: "charlog" + storage_db: "storage" + skill_db: "skill" + memo_db: "memo" + party_db: "party" + pet_db: "pet" + friend_db: "friends" + mail_db: "mail" + auction_db: "auction" + quest_db: "quest" + homunculus_db: "homunculus" + skill_homunculus_db: "skill_homunculus" + mercenary_db: "mercenary" + mercenary_owner_db: "mercenary_owner" + elemental_db: "elemental" + account_data_db: "account_data" + } + guild: { + main_db: "guild" + alliance_db: "guild_alliance" + castle_db: "guild_castle" + expulsion_db: "guild_expulsion" + member_db: "guild_member" + skill_db: "guild_skill" + position_db: "guild_position" + storage_db: "guild_storage" + } + mapreg_db: "mapreg" + autotrade_merchants_db: "autotrade_merchants" + autotrade_data_db: "autotrade_data" + npc_market_data_db: "npc_market_data" + } + + // Show warning in console if some string translation missing for selected language +} +warn_missing_translation: false + +import: "conf/import/inter-server.conf" diff --git a/conf/common/socket.conf b/conf/common/socket.conf new file mode 100644 index 000000000..0dd5386cb --- /dev/null +++ b/conf/common/socket.conf @@ -0,0 +1,106 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +//= Hercules Sockets configuration file +//========================================================================= + +socket_configuration: { + // How long can a socket stall before closing the connection (in seconds)? + stall_time: 60 + + // Display debug reports (When something goes wrong during the report, the report is saved.) + debug: false + + // Linux/Epoll: Maxmimum Events per cycle + // Default Value: + // (Maxmimum Supported Connections)/2 + // NOTE: this controls the maximum collected socket-events per-cycle (call to epoll_wait()) + // for example settings this to 32 will allow up to 32 events (incomming data/new connections + // per server-cycle. + // NOTE: Recommended Settings is at least half the maxmimum supported connections + // Settings this to a lower value, may cause lags/delays + // Depending on available CPU Time + // NOTE: This Setting is only available on Linux when build using EPoll as event dispatcher! + // + //epoll_maxevents: 1024 + + // Maximum allowed size for clients packets in bytes. + // Default Values: + // 24576 (Clients < 20131223) + // 65535 (Clients >= 20131223) + // NOTE: To reduce the size of reported packets, lower the values of defines, which + // have been customized, such as MAX_STORAGE, MAX_GUILD_STORAGE or MAX_CART. + // NOTE: Do not modify this setting, unless the client has been modified to support + // larger packets. The client will crash, when it receives larger packets. + //socket_max_client_packet: 65535 + + //----- IP Rules Settings ----- + ip_rules: { + // If IP's are checked when connecting. + // This also enables DDoS protection. + enable: true + + // Order of the checks + // deny,allow : Checks deny rules, then allow rules. Allows if no rules match. + // allow,deny : Checks allow rules, then deny rules. Allows if no rules match. + // mutual-failure : Allows only if an allow rule matches and no deny rules match. + // (default is deny,allow) + order: "deny,allow" + + // IP rules + // allow : Accepts connections from the ip range (even if flagged as DDoS) + // deny : Rejects connections from the ip range + // The rules are processed in order, the first matching rule of each list (allow and deny) is used + allow_list: ( + //"127.0.0.1", + //"192.168.0.0/16", + //"10.0.0.0/255.0.0.0", + //"all", + ) + deny_list: ( + //"127.0.0.1", + ) + } + + //---- DDoS Protection Settings ---- + // If ddos.count connection request are made within ddos.interval ms, it assumes it's a DDoS attack + ddos: { + // Consecutive attempts interval (msec) + // (default is 3000 msecs, 3 seconds) + interval: 3000 //ddos_interval + + // Consecutive attempts trigger + // (default is 5 attemps) + count: 5 //ddos_count + + // The time interval after which the threat of DDoS is assumed to be gone (ms) + // After this amount of time, the DDoS restrictions are lifted. + // (default is 600000ms, 10min) + autoreset: 600000 //ddos_autoreset + } +} + +import: "conf/import/socket.conf" diff --git a/conf/global/console.conf b/conf/global/console.conf new file mode 100644 index 000000000..f98c56dc9 --- /dev/null +++ b/conf/global/console.conf @@ -0,0 +1,67 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +//= Server Console configuration file. +//========================================================================= +// This file affects how ALL server consoles work, unless explictly defined +// so in the server configuration file (See doc/global_configuration.txt +// for more information). +//========================================================================= + +console: { + //Time-stamp format which will be printed before all messages. + //Can at most be 20 characters long. + //Common formats: + // %I:%M:%S %p (hour:minute:second 12 hour, AM/PM format) + // %H:%M:%S (hour:minute:second, 24 hour format) + // %d/%b/%Y (day/Month/year) + //For full format information, consult the strftime() manual. + //timestamp_format: "[%d/%b %H:%M]" + + //If redirected output contains escape sequences (color codes) + stdout_with_ansisequence: false + + //Makes server output more silent by omitting certain types of messages: + //1: Hide Information messages + //2: Hide Status messages + //4: Hide Notice Messages + //8: Hide Warning Messages + //16: Hide Error and SQL Error messages. + //32: Hide Debug Messages + //Example: "console_silent: 7" Hides information, status and notice messages (1+2+4) + console_silent: 0 + + // [CHAR] Display information on the console whenever characters/guilds/parties/pets are loaded/saved? + save_log: true + + // [MAP] Makes server log selected message types to a file in the /log/ folder + //1: Log Warning Messages + //2: Log Error and SQL Error messages. + //4: Log Debug Messages + //Example: "console_msg_log: 7" logs all 3 kinds + //Messages logged by this overrides console_silent setting + console_msg_log: 7 +} diff --git a/conf/grf-files.txt b/conf/grf-files.txt new file mode 100644 index 000000000..6af058575 --- /dev/null +++ b/conf/grf-files.txt @@ -0,0 +1,12 @@ +//----------------------------------------- +// GRF Files +// Add as many as needed. +//----------------------------------------- +//grf: C:\Program Files\Gravity\RO\rdata.grf +//grf: C:\Program Files\Gravity\RO\data.grf + +//----------------------------------------- +// Data Directory +// Use the base folder, not the data\ path. +//----------------------------------------- +//data_dir: C:\Program Files\Gravity\RO\ diff --git a/conf/groups.conf b/conf/groups.conf new file mode 100644 index 000000000..01e64dcbe --- /dev/null +++ b/conf/groups.conf @@ -0,0 +1,363 @@ +/* +Player groups configuration file +--------------------------------- + +This file defines "player groups" and their privileges. + +Each group has its id and name, lists of available commands and other +permissions, and a list of other groups it inherits from. + + +Group settings +-------------- +<id> +Unique group number. The only required field. + +<name> +Any string. If empty, defaults to "Group <id>". It is used in several @who +commands. + +<level> +Equivalent of GM level, which was used in revisions before r15572. You can +set it to any number, but usually it's between 0 (default) and 99. Members of +groups with lower level can not perform some actions/commands (like @kick) on +members of groups with higher level. It is what script command getgmlevel() +returns. Group level can also be used to override trade restrictions +(db/item_trade.txt). + +<commands> +A group of settings + <command name> : <bool> +or + <commandname> : [ <bool>, <bool> ] +First boolean value is for atcommand, second one for charcommand. If set to +true, group can use command. If only atcommand value is provided, false is +assumed for charcommand. If a command name is not included, false is assumed for +both atcommand and charcommand. +For a full list of available commands, see: doc/atcommands.txt. +Command names must not be aliases. + +<log_commands> +Boolean value. If true then all commands used by the group will be logged to +atcommandlog. If setting is omitted in a group definition, false is assumed. +Requires 'log_commands' to be enabled in 'conf/logs.conf'. + +<permissions> +A group of settings + <permission> : <bool> +If a permission is not included, false is assumed. +For a full list of available permissions, see: doc/permissions.txt + +<inherit> +A list of group names that given group will inherit commands and permissions +from. Group names are case-sensitive. + +Inheritance results +------------------- +Both multiple inheritance (Group 2 -> Group 1 and Group 3 -> Group 1) and +recursive inheritance (Group 3 -> Group 2 -> Group 1) are allowed. + +Inheritance rules should not create cycles (eg Group 1 inherits from Group 2, +and Group inherits from Group 1 at the same time). Configuration with cycles is +considered faulty and can't be processed fully by server. + +Command or permission is inherited ONLY if it's not already defined for the +group. +If group inherits from multiple groups, and the same command or permission is +defined for more than one of these groups, it's undefined which one will be +inherited. + +Syntax +------ +This config file uses libconfig syntax: +http://www.hyperrealm.com/libconfig/libconfig_manual.html#Configuration-Files +*/ + +groups: ( +{ + id: 0 /* group 0 is the default group for every new account */ + name: "Player" + level: 0 + inherit: ( /*empty list*/ ) + commands: { + duel: true + accept: true + reject: true + leave: true + whogm: true + email: true + } + permissions: { + /* without this basic permissions regular players could not + trade or party */ + can_trade: true + can_party: true + } +}, +{ + id: 1 + name: "Super Player" + inherit: ( "Player" ) /* can do everything Players can and more */ + level: 2 + commands: { + commands: true + charcommands: true + help: true + rates: true + uptime: true + showdelay: true + exp: true + mobinfo: true + iteminfo: true + whodrops: true + time: true + jailtime: true + hominfo: true + homstats: true + showexp: true + showzeny: true + whereis: true + refresh: true + noask: true + noks: true + autoloot: true + alootid: true + autoloottype: true + autotrade: true + request: true + go: true + breakguild: true + channel: true + } + permissions: { + show_client_version: true + } +}, +{ + id: 2 + name: "Support" + inherit: ( "Super Player" ) + level: 3 + commands: { + version: true + where: [true, true] + jumpto: true + who: true + who2: true + who3: true + whomap: true + whomap2: true + whomap3: true + users: true + mapinfo: true + gat: true + mobsearch: true + idsearch: true + showmobs: true + skillid: true + skilltree: true + monsterignore: true + } + log_commands: true + permissions: { + receive_requests: true + view_equipment: true + } +}, +{ + id: 3 + name: "Script Manager" + inherit: ( "Support" ) + level: 4 + commands: { + tonpc: true + hidenpc: true + shownpc: true + loadnpc: true + unloadnpc: true + npcmove: true + addwarp: true + save: true + } + log_commands: true + permissions: { + } +}, +{ + id: 4 + name: "Event Coordinator" + inherit: ( "Support" ) + level: 4 + commands: { + broadcast: true + localbroadcast: true + monster: true + monstersmall: true + monsterbig: true + killmonster2: true + cleanarea: true + cleanmap: true + item: [true, true] + item2: [true, true] + delitem: [true, true] + itembound: [true, true] + itembound2: [true, true] + produce: [true, true] + refine: [true, true] + zeny: [true, true] + disguise: [true, true] + undisguise: [true, true] + size: [true, true] + raise: true + raisemap: true + day: true + night: true + skillon: true + skilloff: true + pvpon: true + pvpoff: true + gvgon: true + gvgoff: true + allowks: true + refresh: [true, true] + refreshall: true + fakename: true + kill: true + nuke: [true, true] + doommap: true + heal: [true, true] + alive: [true, true] + sound: true + storage: true + clone: [true, true] + slaveclone: [true, true] + evilclone: [true, true] + repairall: [true, true] + storeall: true + itemreset: true + clearstorage: true + cleargstorage: true + jump: [true, true] + killer: true + killable: true + monsterignore: [true, true] + npctalk: true + mute: true + mutearea: true + unmute: true + speed: [true, true] + } + log_commands: true + permissions: { + } +}, +{ + id: 5 + name: "Developer" + inherit: ( "Support", "Script Manager" ) + level: 4 + commands: { + broadcast: true + localbroadcast: true + hide: true + follow: true + warp: true + jump: true + memo: true + load: true + recall: true + slide: [true, true] + sound: true + } + log_commands: true + permissions: { + } +}, +{ + id: 6 + name: "Patrol" + inherit: ( "Support" ) + level: 4 + commands: { + kick: true + jailfor: true + hide: true + follow: true + warp: true + jump: true + memo: true + load: true + recall: true + } + log_commands: true + permissions: { + who_display_aid: true + view_hpmeter: true + } +}, +{ + id: 7 + name: "Officer" + inherit: ( "Support", "Patrol" ) + level: 5 + commands: { + heal: [true, true] + alive: [true, true] + ban: true + block: true + jail: true + mute: true + unmute: true + storagelist: [true, true] + cartlist: [true, true] + itemlist: [true, true] + stats: [true, true] + } + log_commands: true + permissions: { + join_chat: true + kick_chat: true + hide_session: true + hack_info: true + send_gm: true + } +}, +{ + id: 8 + name: "Game Master" + inherit: ( "Event Coordinator", "Officer" ) + level: 6 + commands: { + fakename: true + recallall: true + raisemap: [true, true] + raise: [true, true] + dropall: true + } + log_commands: true + permissions: { + any_warp: true + } +}, +{ + id: 99 + name: "Administrator" + level: 99 + inherit: ( "Developer", "Game Master" ) + commands: { + /* not necessary due to all_commands: true */ + } + log_commands: true + permissions: { + can_trade_bound: false + can_party: true + all_skill: false + all_equipment: false + skill_unconditional: false + use_check: true + use_changemaptype: true + all_commands: true + hchsys_admin: true + } +} +) diff --git a/conf/import-tmpl/battle.conf b/conf/import-tmpl/battle.conf new file mode 100644 index 000000000..4080eed72 --- /dev/null +++ b/conf/import-tmpl/battle.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +//= Battle local configuration file. +//========================================================================= + +battle_configuration: { + // See conf/map/battle.conf for details +} diff --git a/conf/import-tmpl/char-server.conf b/conf/import-tmpl/char-server.conf new file mode 100644 index 000000000..6bfb308b5 --- /dev/null +++ b/conf/import-tmpl/char-server.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +//= Character Server local configuration file. +//========================================================================= + +char_configuration: { + // See conf/char/char-server.conf for details +} diff --git a/conf/import-tmpl/inter-server.conf b/conf/import-tmpl/inter-server.conf new file mode 100644 index 000000000..243dda4ea --- /dev/null +++ b/conf/import-tmpl/inter-server.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +//= Hercules Inter Server local configuration file. +//========================================================================= + +inter_configuration: { + // See conf/common/inter-server.conf +} diff --git a/conf/import-tmpl/login-server.conf b/conf/import-tmpl/login-server.conf new file mode 100644 index 000000000..feadef976 --- /dev/null +++ b/conf/import-tmpl/login-server.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +//= Login Server local configuration file. +//========================================================================= + +login_configuration: { + // See conf/login/login-server.conf for details +} diff --git a/conf/import-tmpl/logs.conf b/conf/import-tmpl/logs.conf new file mode 100644 index 000000000..99e666d96 --- /dev/null +++ b/conf/import-tmpl/logs.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +//= Hercules Log local configuration file. +//========================================================================= + +map_log: { + // See conf/map/logs.conf for details +} diff --git a/conf/import-tmpl/map-server.conf b/conf/import-tmpl/map-server.conf new file mode 100644 index 000000000..2c9b16531 --- /dev/null +++ b/conf/import-tmpl/map-server.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +//= Map Server local configuration file. +//========================================================================= + +map_configuration: { + // See conf/map/map-server.conf for details +} diff --git a/conf/import-tmpl/msg_conf.txt b/conf/import-tmpl/msg_conf.txt new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/conf/import-tmpl/msg_conf.txt diff --git a/conf/import-tmpl/script.conf b/conf/import-tmpl/script.conf new file mode 100644 index 000000000..b354b2bf6 --- /dev/null +++ b/conf/import-tmpl/script.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +//= Hercules Script local configuration file. +//========================================================================= + +script_configuration: { + // See conf/map/script.conf for details +} diff --git a/conf/import-tmpl/socket.conf b/conf/import-tmpl/socket.conf new file mode 100644 index 000000000..04d0a40c4 --- /dev/null +++ b/conf/import-tmpl/socket.conf @@ -0,0 +1,32 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +//= Hercules Sockets local configuration file +//========================================================================= + +socket_configuration: { + // See conf/common/socket.conf for details. +} diff --git a/conf/login/login-server.conf b/conf/login/login-server.conf new file mode 100644 index 000000000..ba490576d --- /dev/null +++ b/conf/login/login-server.conf @@ -0,0 +1,205 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +//= Login Server configuration file. +//========================================================================= + +login_configuration: { + // Login-server's console configuration + @include "conf/global/console.conf" + + inter: { + // The login server listens on the interface with this IP address. + // NOTE: This allows you to run multiple servers on multiple interfaces + // while using the same ports for each server. + //bind_ip: "127.0.0.1" + + // Interval (in minutes) to execute a DNS/IP update. Disabled by default. + // Enable it if your server uses a dynamic IP which changes with time. + //ip_sync_interval: 10 + + @include "conf/import/ports.conf" + } + + log: { + // To log the login server? + // NOTE: The login-sql server needs the login logs to enable dynamic pass failure bans. + log_login: true + + // Indicate how to display date in logs, to players, etc. + date_format: "%Y-%m-%d %H:%M:%S" + } + + // for packet version >= 20170726 + users_count: { + // if false, dont show any colored strings. + // if true, show special users count numbers for coloring char servers. + send_user_count_description: true + + // users counts for use different colors. + // below 'low' show green text + // below 'medium' show oragne text + // below 'high' show red text + // higher 'high' show purple text + low: 200 + medium: 500 + high: 1000 + } + + // Account engine configuration + account: { + // Can you use _M/_F to make new accounts on the server? + new_account: true + + //If new_account is enabled, minimum length to userid and passwords should be 4? + //Must be 'true' unless your client uses both 'Disable 4 LetterUserID/Password' Diffs + new_acc_length_limit: true + + // Account registration flood protection system + // allowed_regs is the number of registrations allowed in time_allowed (in seconds) + allowed_regs: 1 + time_allowed: 10 + + // Starting additional sec from now for the limited time at creation of account + // -1: new account are created with UNlimited time (default value) + // 0 or more: new accounts was created by addition of the value (in sec) to the actual time (to set first limited time) + start_limited_time: -1 + + // Store passwords as MD5 hashes instead of plaintext ? + // NOTE: Will not work with clients that use <passwordencrypt> + use_MD5_passwords: false + + // Account data engine storage configuration + @include "conf/import/sql_connection.conf" + + //================================================================== + // IP banning system + //================================================================== + ipban: { + enabled: true + + // Interval (in seconds) to clean up expired IP bans. 0 = disabled. default = 60. + // NOTE: Even if this is disabled, expired IP bans will be cleaned up on login server start/stop. + // Players will still be able to login if an ipban entry exists but the expiration time has already passed. + cleanup_interval: 60 + + // SQL connection settings + @include "conf/import/sql_connection.conf" + + // Dynamic password failure ipban system + dynamic_pass_failure: { + enabled: true + + // Interval in minutes between failed tries + // Only failed tries between this interval will be accounted when banning + ban_interval: 5 + + // How many failures before adding a temporary ban entry? + ban_limit: 7 + + // Duration of the ban in minutes + ban_duration: 5 + } + } // login_configuration.account.ipban + } // login_configuration.account + + permission: { + // Required account group id to connect to server. + // -1: disabled + // 0 or more: group id + group_id_to_connect: -1 + + // Minimum account group id required to connect to server. + // Will not function if group_id_to_connect config is enabled. + // -1: disabled + // 0 or more: group id + min_group_id_to_connect: -1 + + // Check The clientversion set in the clientinfo ? + check_client_version: false + + // What version we would allow to connect? (if check_client_version is enabled) + client_version_to_connect: 20 + + //================================================================== + // Client hash checking system + //================================================================== + // Note: see doc/md5_hashcheck.txt for more details. + hash: { + // Client MD5 hash check + // If turned on, the login server will check if the client's hash matches + // the value below, and will not connect tampered clients. + enabled: false + + // Client MD5 hashes + // The client with the specified hash can be used to log in by players with + // a group_id equal to or greater than the given value. + // If you specify 'disabled' as hash, players with a group_id greater than or + // equal to the given value will be able to log in regardless of hash (and even + // if their client does not send a hash at all.) + MD5_hashes: ( + //{ + // group_id: group id + // hash: client hash + //}, + //{ + // group_id: 0 + // hash: "113e195e6c051bb1cfb12a644bb084c5" + //}, + //{ + // group_id: 10 + // hash: "cb1ea78023d337c38e8ba5124e2338ae" + //}, + //{ + // group_id: 99 + // hash: "disabled" + //}, + ) + } // login_configuration.permission.hash + + DNS_blacklist: { + // DNS Blacklist Blocking + // If enabled, each incoming connection will be tested against the blacklists + // on the specified dnsbl_servers + enabled: false + + dnsbl_servers: ( + // Here are some free DNS Blacklist Services: http://en.wikipedia.org/wiki/Comparison_of_DNS_blacklists + "bl.blocklist.de", // IP-Addresses who attack other servers/honeypots over SSH, FTP, IMAP, etc. + //"ircbl.ahbl.org", // AHBL (open proxies, compromised machines, comment spammers) + //"safe.dnsbl.sorbs.net", // All zones in dnsbl.sorbs.net except "recent" and "escalations" + //"sbl-xbl.spamhaus.org", // Spamhaus blacklist (spammers, open proxies) + "socks.dnsbl.sorbs.net", // Open SOCKS proxy servers + //"tor.ahbl.org", // Current tor relay and exit nodes + ) + } // login_configuration.DNS_blacklist + } // login_configuration.permission + +} + +update_server: "http://download.evolonline.org/evol/" + +import: "conf/import/login-server.conf" diff --git a/conf/map/battle.conf b/conf/map/battle.conf new file mode 100644 index 000000000..927b82b0b --- /dev/null +++ b/conf/map/battle.conf @@ -0,0 +1,85 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +//= Battle Configuration File +//========================================================================= + +battle_configuration: { + // General battle-related settings. + @include "conf/map/battle/battle.conf" + + // Settings specific to the client. + @include "conf/map/battle/client.conf" + + // General drop-related configs. + @include "conf/map/battle/drops.conf" + + // Experience rates, exp penalties, stats and max level settings. + @include "conf/map/battle/exp.conf" + + // GM levels, atcommands and hack-related configs. + @include "conf/map/battle/gm.conf" + + // Guild and WoE settings + @include "conf/map/battle/guild.conf" + + // Battleground settings + @include "conf/map/battle/battleground.conf" + + // Item/card-specific and crafting related options. + @include "conf/map/battle/items.conf" + + // Mob related configuration + @include "conf/map/battle/monster.conf" + + // Party related configuration + @include "conf/map/battle/party.conf" + + // Pet related configuration + @include "conf/map/battle/pet.conf" + + // Homunc related configuration + @include "conf/map/battle/homunc.conf" + + // Player specific settings + @include "conf/map/battle/player.conf" + + // Skill related settings + @include "conf/map/battle/skill.conf" + + // Status change related settings + @include "conf/map/battle/status.conf" + + // Feature control (on/off) settings + @include "conf/map/battle/feature.conf" + + // Anything else that didn't fit anywhere else. + // Includes duel, day/night, mute/manner, log settings. + @include "conf/map/battle/misc.conf" +} + + // Your custom config goes here. +import: "conf/import/battle.conf" diff --git a/conf/map/battle/battle.conf b/conf/map/battle/battle.conf new file mode 100644 index 000000000..2e73a0aa8 --- /dev/null +++ b/conf/map/battle/battle.conf @@ -0,0 +1,180 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +// Battle (Battle) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// Who should have a baseatk value (makes str affect damage)? (Note 3) +enable_baseatk: 9 + +// Who can have perfect flee? (Note 3) +enable_perfect_flee: 1 + +// Who can have critical attacks? (Note 3) +// (Note that there are some skills that always do critical hit regardless of this) +enable_critical: 17 + +// Critical adjustment rate for non-players (Note 2) +mob_critical_rate: 100 +critical_rate: 100 + +// Should normal attacks give you a walk delay? (Note 3) +// If false, characters can move as soon as they start an attack (attack animation +// or walk animation may be omitted client-side, causing cropped attacks or +// monsters that teleport to you) +// Otherwise, the delay is equal to the 'attack animation' (amotion) +attack_walk_delay: 15 + +// Move-delay adjustment after being hit. (Note 2) +// The 'can't walk' delay after being hit is calculated as a percentage of the damage animation duration. +// NOTE: Only affects the normal delay from a single attack, not the delay added by the multihit_delay option below. +pc_damage_walk_delay_rate: 20 +damage_walk_delay_rate: 100 + +// Move-delay adjustment for multi-hitting attacks. +// When hit by a multi-hitting skill like Lord of Vermillion or Jupitel Thunder, characters will be +// unable to move for an additional "(number of hits -1) * multihit_delay" milliseconds. +// 80 is the setting that feels like Aegis (vs Sonic Blows) +// 230 is the setting that makes walkdelay last until the last hit (vs Jupitel thunder) +multihit_delay: 80 + +// Damaged delay rate for players (Note 2) +// (Setting to false/0 will be like always endure) +player_damage_delay_rate: 100 + +// Should race or element be used to consider someone undead? +// 0 = element undead +// 1 = race undead +// 2 = both (either one works) +undead_detect_type: 0 + +// Does HP recover if hit by an attribute that's same as your own? (Note 1) +// (Will not work in Renewal) +attribute_recover: false + +// What is the minimum and maximum hitrate of normal attacks? +min_hitrate: 5 +max_hitrate: 100 + +// Type of penalty that is applied to FLEE when more than agi_penalty_count monsters are targetting player +// 0 = no penalty is applied +// 1 = agi_penalty_num is reduced from FLEE as a % +// 2 = agi_penalty_num is reduced from FLEE as an exact amount +agi_penalty_type: 1 + +// When agi penalty is enabled, to whom it should apply to? (Note 3) +// By default, only players get the penalty. +agi_penalty_target: 1 + +// Amount of enemies required to be targetting player before FLEE begins to be penalized +agi_penalty_count: 3 + +// Amount of FLEE penalized per each attacking monster more than agi_penalty_count +agi_penalty_num: 10 + +// Type of penalty that is applied to both equipment and vit DEF when more than vit_penalty_count monsters are targetting player +// 0 = no penalty is applied +// 1 = vit_penalty_num is reduced from DEF as a % +// 2 = vit_penalty_num is reduced from DEF as an exact amount +vit_penalty_type: 1 + +// When vit penalty is enabled, to whom it should apply to? (Note 3) +// By default, only players get the penalty. +vit_penalty_target: 1 + +// Amount of enemies required to be targetting player before defense begins to be penalized +vit_penalty_count: 3 + +// Amount of VIT defense penalized per each attacking monster more than vit_penalty_count +vit_penalty_num: 5 + +// Use alternate method of DEF calculation for physical attacks. +// With 0, disabled (use normal def% reduction with further def2 reduction) +// At 1 or more defense is subtraction of (DEF* value). +// eg: 10 + 50 def becomes 0 + (10*type + 50) +weapon_defense_type: 0 + +// MDEF, same as above....(MDEF*value) +magic_defense_type: 0 + +// Change attacker's direction to face opponent on every attack? (Note 3) +// NOTE: On official servers knockback of some skills like Firewall is always based on the +// last direction walked. Even when attacking in a completely different direction, the +// knockback direction won't change, so e.g. if you walk north and then attack an enemy to +// the south you will still be knocked back to the south by Firewall. Immobile monsters +// will always be knocked back to the south as their default direction is north. +attack_direction_change: 0 + +// For those who is set, their innate attack element is "not elemental" +// (100% versus on all defense-elements) (Note 3) +// NOTE: This is the setting that makes it so non-players can hit for full +// damage against Ghost-type targets with normal attacks (eg: vs. Ghostring). +attack_attr_none: 14 + +// Rate at which equipment can break (base rate before it's modified by any skills) +// 1 = 0.01% chance. Default for official servers: 0 +equip_natural_break_rate: 0 + +// Overall rate of which your own equipment can break. (Note 2) +// This rate affects penalty breaking rate of skills such as power-thrust and your natural breaking rate +// (from equip_natural_break_rate). If a Sage's endow skill fails and this is above 0, the selected char's +// weapon will be broken. +equip_self_break_rate: 100 + +// Overall rate at which you can break target's equipment. (Note 2) +// This affects the behaviour of skills like acid terror and meltdown +equip_skill_break_rate: 100 + +// Do weapon attacks have a attack speed delay before actual damage is applied? (Note 1) +// NOTE: The official setting is true, even thought it degrades performance a bit. +delay_battle_damage: true + +// Are arrows/ammo consumed when used on a bow/gun? +// 0 = No +// 1 = Yes +// 2 = Yes even for skills that do not specify arrow consumption when said +// skill is weapon-based and used with ranged weapons (auto-guesses which +// skills should consume ammo when it's acquired via a card or plagiarize) +arrow_decrement: 1 + +// Should the item script bonus 'Autospell' check for range/obstacles before casting? +// Official behavior is false, setting this to true will make skills use their defined +// range. For example, Sonic Blow requires a 2 cell distance before autocasting is allowed. +// This setting also affects autospellwhenhit. +autospell_check_range: false + +// If both the attacker and the target are on the same tile, should the target be knocked back to the left? +// Official behavior is true, setting this to false will knock the target back behind the attacker. +knockback_left: true + +// Should the target be able of dodging damage by snapping away to the edge of the screen? +// Official behavior is false +snap_dodge: false diff --git a/conf/map/battle/battleground.conf b/conf/map/battle/battleground.conf new file mode 100644 index 000000000..629a664f7 --- /dev/null +++ b/conf/map/battle/battleground.conf @@ -0,0 +1,40 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +// Battle (Battlegrounds) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// Flee penalty on BG grounds. +// NOTE: It's %, not absolute, so 20 is -20% of your total flee +bg_flee_penalty: 20 + +// Interval before updating the bg-member map mini-dots (milliseconds) +bg_update_interval: 1000 diff --git a/conf/map/battle/client.conf b/conf/map/battle/client.conf new file mode 100644 index 000000000..e4a646f95 --- /dev/null +++ b/conf/map/battle/client.conf @@ -0,0 +1,174 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +// Battle (Client) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// Whether to enable the official packet obfuscation support (good vs WPE) +// 0: disabled +// 1: optional (not recommended) -- identifies whether it is required +// 2: enabled (recommended) +packet_obfuscation: 0 + +// Minimum delay between whisper/global/party/guild messages (in ms) +// Messages that break this threshold are silently omitted. +min_chat_delay: 0 + +// Valid range of dyes and styles on the client. +min_hair_style: 0 +max_hair_style: 29 +min_hair_color: 0 +max_hair_color: 20 +min_cloth_color: 0 +max_cloth_color: 4 +min_body_style: 0 +max_body_style: 4 + +// When set to true, the damage field in packets sent from woe maps will be set +// to -1, making it impossible for GMs, Bots and Hexed clients to know the +// actual damage caused by attacks. (Note 1) +hide_woe_damage: true + +// "hair style" number that identifies pet. +// NOTE: The client uses the "hair style" field in the mob packet to tell them apart from mobs. +// This value is always higher than the max hair-style available in said client. +// Known values to work (all 2005 clients): +// older sakexes: 20 +// sakexe 0614: 24 +// sakexe 0628 (and later): 100 +pet_hair_style: 100 + +// Visible area size (how many squares away from a player can they see) +area_size: 14 + +// Chat area size (how many squares away from a player can they chat) +chat_area_size: 14 + +// Maximum walk path (how many cells a player can walk going to cursor) +// default: 17(official) +max_walk_path: 17 + +// Maximum allowed 'level' value that can be sent in unit packets. +// Use together with the aura_lv setting to tell when exactly to show the aura. +// NOTE: You also need to adjust the client if you want this to work. +// NOTE: Default is 99. Values above 127 will probably behave incorrectly. +// NOTE: If you don't know what this does, don't change it!!! +max_lv: 99 + +// Level required to display an aura. +// NOTE: This assumes that sending max_lv to the client will display the aura. +// NOTE: aura_lv must not be less than max_lv. +// Example: If max_lv is 99 and aura_lv is 150, characters with level 99~149 +// will be sent as being all level 98, and only characters with level +// 150 or more will be reported as having level 99 and show an aura. +aura_lv: 99 + +// Units types affected by max_lv and aura_lv settings. (Note 3) +// Note: If an unit type, which normally does not show an aura, is +// set it will obtain an aura when it meets the level requirement. +// Default: 0 (none) +client_limit_unit_lv: 0 + +// Will tuxedo and wedding dresses be shown when worn? (Note 1) +wedding_modifydisplay: false + +// Save Clothes color. (This will degrade performance) (Note 1) +save_clothcolor: true + +// Save body styles? (Note 1) +// Note: Don't turn this on unless you know what your doing. +// Sprites are not released officially. +save_body_style: false + +// Do not display cloth colors for the wedding costume? +// Note: Both save_clothcolor and wedding_modifydisplay have to be enabled +// for this option to take effect. Set this to true if your cloth palettes +// pack doesn't has wedding palettes (or has less than the other jobs) +wedding_ignorepalette: false + +// Do not display cloth colors for the Xmas costume? +// Set this to true if your cloth palettes pack doesn't has Xmas palettes (or has less than the other jobs) +xmas_ignorepalette: false + +// Do not display cloth colors for the Summer costume? +// Set this to true if your cloth palettes pack doesn't has Summer palettes (or has less than the other jobs) +summer_ignorepalette: false + +// Do not display cloth colors for the Hanbok costume? +// Set this to true if your cloth palettes pack doesn't has Hanbok palettes (or has less than the other jobs) +hanbok_ignorepalette: false + +// Do not display cloth colors for the Oktoberfest costume? +// Set this to true if your cloth palettes pack doesn't has Oktoberfest palettes (or has less than the other jobs) +oktoberfest_ignorepalette: false + +// Do not display cloth colors for the Summer 2 costume? +// Set this to true if your cloth palettes pack doesn't has Summer 2 palettes (or has less than the other jobs) +summer2_ignorepalette: false + +// Show Hercules version to users when the login? +display_version: false + +// When affected with the "Hallucination" status effect, send the effect to client? (Note 1) +// Note: Set to false if the client lags due to the "Wavy" screen effect. +display_hallucination: true + +// Set this to 1 if your client supports status change timers and you want to use them +// Clients from 2009 onward support this +display_status_timers: true + +// Randomizes the dice emoticon server-side, to prevent clients from forging +// packets for the desired number. (Note 1) +client_reshuffle_dice: true + +// Sorts the character and guild storage before it is sent to the client. +// Official servers do not sort storage. (Note 1) +// NOTE: Enabling this option degrades performance. +client_sort_storage: false + +// Duration of client's self mute in minutes. +// Note: Do not enable this, if you enabled commands for players, +// because the client sees multiple commands in succession as spam. +// Default: 0 (means disabled) +client_accept_chatdori: 0 + +// Limits use of blank (transparent) pixels in guild emblems to a set +// percentage of the total. +// Official servers do not enforce this technically to date, but some disallow +// use of blank emblems in their rules. (Note 2) +// A value of 100 (allowing 100% blank pixels) disables this check. +// NOTE: Enabling this option slightly degrades performance. +client_emblem_max_blank_percent: 100 + +// Show the MVP EXP reward message for clients 2013-12-23cRagexe and newer? (Note 1) +// kRO removed the packet and this re-enables the message. +// Official: false. +mvp_exp_reward_message: false diff --git a/conf/map/battle/drops.conf b/conf/map/battle/drops.conf new file mode 100644 index 000000000..4dbbf8fd5 --- /dev/null +++ b/conf/map/battle/drops.conf @@ -0,0 +1,148 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +// Battle (Drops) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +//========================================================================= + +// If an item is dropped, does it go straight into the users inventory? (Note 1) +item_auto_get: false + +// How long does it take for an item to disappear from the floor after it is dropped? (in milliseconds) +flooritem_lifetime: 60000 + +// Grace time during which only the person who did the most damage to a monster can get the item? (in milliseconds) +item_first_get_time: 3000 + +// Grace time during which only the first and second person who did the most damage to a monster can get the item? (in milliseconds) +// (Takes effect after item_first_get_time elapses) +item_second_get_time: 1000 + +// Grace time during which only the first, second and third person who did the most damage to a monster can get the item? (in milliseconds) +// (Takes effect after the item_second_get_time elapses) +item_third_get_time: 1000 + +// Grace time to apply to MvP reward items when the Most Valuable Player can't get the prize item and it drops on the ground? (in milliseconds) +mvp_item_first_get_time: 10000 + +// Grace time for the first and second MvP so they can get the item? (in milliseconds) +// (Takes effect after mvp_item_first_get_time elapses) +mvp_item_second_get_time: 10000 + +// Grace time for the first, second and third MvP so they can get the item? (in milliseconds) +// (Takes effect after mvp_item_second_get_time elapses) +mvp_item_third_get_time: 2000 + +// Item drop rates (Note 2) + +// The rate the common items are dropped (Items that are in the ETC tab, besides card) +item_rate_common: 100 +item_rate_common_boss: 100 +item_drop_common_min: 1 +item_drop_common_max: 10000 + +// The rate healing items are dropped (items that restore HP or SP) +item_rate_heal: 100 +item_rate_heal_boss: 100 +item_drop_heal_min: 1 +item_drop_heal_max: 10000 + +// The rate at which usable items (in the item tab) other then healing items are dropped. +item_rate_use: 100 +item_rate_use_boss: 100 +item_drop_use_min: 1 +item_drop_use_max: 10000 + +// The rate at which equipment is dropped. +item_rate_equip: 100 +item_rate_equip_boss: 100 +item_drop_equip_min: 1 +item_drop_equip_max: 10000 + +// The rate at which cards are dropped +item_rate_card: 100 +item_rate_card_boss: 100 +item_drop_card_min: 1 +item_drop_card_max: 10000 + +// The rate adjustment for the MVP items that the MVP gets directly in their inventory +item_rate_mvp: 100 +item_drop_mvp_min: 1 +item_drop_mvp_max: 10000 + +// The rate adjustment for card-granted item drops. +item_rate_adddrop: 100 +item_drop_add_min: 1 +item_drop_add_max: 10000 + +// Rate adjustment for Treasure Box drops (these override all other modifiers) +item_rate_treasure: 100 +item_drop_treasure_min: 1 +item_drop_treasure_max: 10000 + +// Use logarithmic drops? (Note 1) +// Logarithmic drops scale drop rates in a non-linear fashion using the equation +// Droprate(x,y) = x * (5 - log(x)) ^ (ln(y) / ln(5)) +// Where x is the original drop rate and y is the drop_rate modifier (the previously mentioned item_rate* variables) +// Use the following table for an idea of how the rate will affect drop rates when logarithmic drops are used: +// Y: Original Drop Rate +// X: Rate drop modifier (eg: item_rate_equip) +// X\Y | 0.01 0.02 0.05 0.10 0.20 0.50 1.00 2.00 5.00 10.00 20.00 +// -----+--------------------------------------------------------------- +// 50 | 0.01 0.01 0.03 0.06 0.11 0.30 0.62 1.30 3.49 7.42 15.92 +// 100 | 0.01 0.02 0.05 0.10 0.20 0.50 1.00 2.00 5.00 10.00 20.00 +// 200 | 0.02 0.04 0.09 0.18 0.35 0.84 1.61 3.07 7.16 13.48 25.13 +// 500 | 0.05 0.09 0.22 0.40 0.74 1.65 3.00 5.40 11.51 20.00 33.98 +// 1000 | 0.10 0.18 0.40 0.73 1.30 2.76 4.82 8.28 16.47 26.96 42.69 +// 2000 | 0.20 0.36 0.76 1.32 2.28 4.62 7.73 12.70 23.58 36.33 53.64 +// 5000 | 0.50 0.86 1.73 2.91 4.81 9.11 14.45 22.34 37.90 53.91 72.53 +//10000 | 1.00 1.67 3.25 5.28 8.44 15.24 23.19 34.26 54.57 72.67 91.13 +//20000 | 2.00 3.26 6.09 9.59 14.83 25.49 37.21 52.55 77.70 97.95 100% +//50000 | 5.00 7.87 13.98 21.12 31.23 50.31 69.56 92.48 100% 100% 100% +item_logarithmic_drops: false + +// Can the monster's drop rate become 0? (Note 1) +// Default: false (as in official servers). +drop_rate0item: false + +// Makes your LUK value affect drop rates on an absolute basis. +// Setting to 100 means each luk adds 0.01% chance to find items +// (regardless of item's base drop rate). +drops_by_luk: 0 + +// Makes your LUK value affect drop rates on a relative basis. +// Setting to 100 means each luk adds 1% chance to find items +// (So at 100 luk, everything will have double chance of dropping). +drops_by_luk2: 0 + +// Whether or not Marine Spheres and Floras summoned by Alchemist drop items? +// This setting has three available values: +// 0: Nothing drops. +// 1: Only marine spheres drop items. +// 2: All alchemist summons drop items. +alchemist_summon_reward: 1 diff --git a/conf/map/battle/exp.conf b/conf/map/battle/exp.conf new file mode 100644 index 000000000..3a38c1c6c --- /dev/null +++ b/conf/map/battle/exp.conf @@ -0,0 +1,114 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +// Battle (Experience) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: The max level of classes is stored in the exp table. +// See files db/exp.txt and db/exp2.txt to change them. +//========================================================================= + +// Rate at which exp. is given. (Note 2) +base_exp_rate: 100 + +// Rate at which job exp. is given. (Note 2) +job_exp_rate: 100 + +// Turn this on to allow a player to level up more than once from a kill. (Note 1) +multi_level_up: false + +// Setting this can cap the max experience one can get per kill specified as a +// % of the current exp bar. (Every 10 = 1.0%) +// For example, set it to 500 and no matter how much exp the mob gives, +// it can never give you above half of your current exp bar. +max_exp_gain_rate: 0 + +// Method of calculating earned experience when defeating a monster: +// 0 = uses damage given / total damage as damage ratio +// 1 = uses damage given / max_hp as damage ratio +// NOTE: Using type 1 disables the bonus where the first attacker gets +// his share of the exp doubled when multiple people attack the mob. +exp_calc_type: 0 + +// Experience increase per attacker. That is, every additional attacker to the +// monster makes it give this much more experience +// (eg: 5 people attack with 25 here, +(25*4)% -> +100% exp) +exp_bonus_attacker: 25 + +// Max number of attackers at which exp bonus is capped +// (eg: if set at 5, the max bonus is 4*bonus-per-char regardless of attackers) +exp_bonus_max_attacker: 12 + +// MVP bonus exp rate. (Note 2) +mvp_exp_rate: 100 + +// Rate of base/job exp given by NPCs. (Note 2) +quest_exp_rate: 100 + +// The rate of job exp. from using Heal skill (100 is the same as the heal amount, 200 is double. +// The balance of the exp. rate is best used with 5 to 10) +heal_exp: 0 + +// The rate of exp. that is gained by the process of resurrection, a unit is 0.01%. +// Experience calculations for the experience value * level difference of the person revived / 100 * resurrection_exp/10000 which the revived player has can be got. +resurrection_exp: 0 + +// The rate of job exp. when using discount and overcharge on an NPC +// (in 0.01% increments - 100 is 1%, 10000 is normal, 20000 is double.) +// The way it is calculated is (money received * skill lv) * shop_exp / 10000. +shop_exp: 0 + +// PVP exp. Do players get exp in PvP maps +// (Note: NOT exp from players, but from normal leveling) +pvp_exp: true + +// When a player dies, how should we penalize them? +// 0 = No penalty. +// 1 = Lose % of current level when killed. +// 2 = Lose % of total experience when killed. +death_penalty_type: 1 + +// Base exp. penalty rate (Each 100 is 1% of their exp) +death_penalty_base: 100 + +// Job exp. penalty rate (Each 100 is 1% of their exp) +death_penalty_job: 100 + +// When a player dies (to another player), how much zeny should we penalize them with? +// NOTE: It is a percentage of their zeny, so 100 = 1% +zeny_penalty: 0 + +// Will display experience gained from killing a monster. (Note 1) +disp_experience: false + +// Will display zeny earned (from mobs, trades, etc) (Note 1) +disp_zeny: false + +// Use the contents of db/statpoint.txt when doing a stats reset and leveling up? (Note 1) +// If false, an equation will be used which preserves statpoints earned/lost +// through external means (ie: stat point buyers/sellers) +use_statpoint_table: true diff --git a/conf/map/battle/feature.conf b/conf/map/battle/feature.conf new file mode 100644 index 000000000..e01c7f93d --- /dev/null +++ b/conf/map/battle/feature.conf @@ -0,0 +1,73 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +// Battle (Feature) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +//========================================================================= + +features: { + // Buying store (Note 1) + // Requires: 2010-04-27aRagexeRE or later + buying_store: true + + // Search stores (Note 1) + // Requires: 2010-08-03aRagexeRE or later + search_stores: true + + // Atcommand suggestions (Note 1) + // If one type incomplete atcommand, it will suggest the complete ones. + atcommand_suggestions: false + + // Banking (Note 1) + // Requires: 2013-07-24aRagexe or later + banking: true + + // Auction (Note 1) + // Feature became unstable on clients 2012 onwards (exact date not known), + // it has been fixed on clients 2013-05-15 onwards however. + auction: false + + // Roulette (Note 1) + // Requires: 2014-10-22bRagexe or later + // Disabled by default while test version is out; enable at your own risk -- the mean dev. + roulette: false + + // Enabled RoDEX (Note 1) + // Requires: 2015-05-13aRagexe or later + rodex: true + + // Allow usage of "Account Mail" box in RoDEX? + // Requires: 2016-03-16aRagexeRE or later + // This is disabled in client-side in some client versions + // Disabled by default + rodex_use_accountmail: false + + // Allow Homunculus autofeeding + // true: enable (Default) + // false: disable + enable_homun_autofeed: true +} diff --git a/conf/map/battle/gm.conf b/conf/map/battle/gm.conf new file mode 100644 index 000000000..ffc4946ab --- /dev/null +++ b/conf/map/battle/gm.conf @@ -0,0 +1,66 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +// Battle (GM) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +//========================================================================= + +// The maximum quantity of monsters that can be summoned per GM command (0 denotes an unlimited quantity) +atcommand_spawn_quantity_limit: 100 + +// Maximum number of slave-clones that can be have by using the @slaveclone at command. (0 denotes unlimited quantity) +atcommand_slave_clone_limit: 25 + +// If false, commands require exact player name. If true, entering a partial +// name will work, as long as there's only one match from all players in the +// current map server. +partial_name_scan: false + +// (@) @allstats/@str/@agi/@vit/@int/@dex/@luk +// allow gms to bypass the maximum stat parameter? ( if true gm stats can go up to 32k ) +// default: false +atcommand_max_stat_bypass: false + +// Ban people that try trade dupe. +// Duration of the ban, in minutes (default: 5). To disable the ban, set 0. +ban_hack_trade: 5 + +// requires RENEWAL_DROP to be enabled (src/map/config/renewal.h) +// modifies @mobinfo to display the users' real drop rate as per renewal_drop formula +// modifies @iteminfo to not display the minimum item drop rate (since it can't tell the mob level) +atcommand_mobinfo_type: 0 + +// Ignore warpable area configuration. +// Set the minimum group id to ignore invalid cells when warping. +// Default group is 2. Use 100 to disable this setting. +gm_ignore_warpable_area: 2 + +// Should atcommands trigger level up events for NPCs? (Note 1) +// This option is for @baselevelup and @joblevelup +// Default: false +atcommand_levelup_events: false diff --git a/conf/map/battle/guild.conf b/conf/map/battle/guild.conf new file mode 100644 index 000000000..c8f8db8c3 --- /dev/null +++ b/conf/map/battle/guild.conf @@ -0,0 +1,73 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +// Battle (Guild) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +//========================================================================= + +// When making a guild, an Emperium is consumed? (Note 1) +guild_emperium_check: true + +// Maximum tax limit on a guild member. +guild_exp_limit: 50 + +// Maximum castles one guild can own (0 = unlimited) +guild_max_castles: 0 + +// Restart guild skills cooldown by relog? (Note 1) +// When false, you relog with the same cooldown remaining as from when you +// logged out, true restarts the cooldown upon login to its full duration. +guild_skill_relog_delay: false + +// Damage adjustments for WOE battles against defending Guild monsters (Note 2) +castle_defense_rate: 100 + +// Flee penalty on gvg grounds. Official value is 20 (Note 2) +// NOTE: It's %, not absolute, so 20 is -20% of your total flee +gvg_flee_penalty: 20 + +// Can the 'Glory of Guild' skill be learnt in the Guild window, +// and does changing emblems require it? (Note 1) +// P.S: This skill is not implemented on official servers +require_glory_guild: false + +// Limit Guild alliances. Value is 0 to 3. +// If you want to change this value, clear the guild alliance table. +// Default is 3 +max_guild_alliance: 3 + +// When to re-display the guild notice +// Upon teleporting (regardless of changing maps): 2 (official) +// Upon changing maps: 1 +// Do not re-display: 0 (disabled) +guild_notice_changemap: 2 + +// Can guild members invite/expel members inside guild castles in WoE/GvG? (Note 1) +// default: false +guild_castle_invite: false +guild_castle_expulsion: false diff --git a/conf/map/battle/homunc.conf b/conf/map/battle/homunc.conf new file mode 100644 index 000000000..0bf2a4b98 --- /dev/null +++ b/conf/map/battle/homunc.conf @@ -0,0 +1,68 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +// Battle (Homunculus) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// Homunculus setting (Note 3) +// Activates various 'quirks' that makes them behave unlike normal characters. +// 0x001: Can't be targetted by support skills (except for their master) +// 0x004: Mobs will always go after them instead of players until attacked +// 0x008: Copy their master's speed on spawn/map-change +// 0x010: They display luk/3+1 instead of their actual critical in the +// stat window (by default they don't crit) +// 0x020: Their Min-Matk is always the same as their max +// 0x040: Skill re-use delay is reset when they are vaporized. +hom_setting: 0x1D + +// The rate a homunculus will get friendly by feeding it. (Note 2) +homunculus_friendly_rate: 100 + +// Can you name a homunculus more then once? (Note 1) +hom_rename: false + +// Intimacy needed to use Evolved Vanilmirth's Bio Explosion +hvan_explosion_intimate: 45000 + +// Show stat growth to the owner when an Homunculus levels up +homunculus_show_growth: true + +// Does autoloot work, when a monster is killed by homunculus only? +homunculus_autoloot: true + +// Should homunculi Vaporize when Master dies? +homunculus_auto_vapor: true + +// Max level for regular Homunculus +homunculus_max_level: 99 + +// Max level for Homunculus S +homunculus_S_max_level: 150 diff --git a/conf/map/battle/items.conf b/conf/map/battle/items.conf new file mode 100644 index 000000000..f7ffd3f32 --- /dev/null +++ b/conf/map/battle/items.conf @@ -0,0 +1,121 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +// Battle (Items) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// The highest value at which an item can be sold via the merchant vend skill. (in zeny) +vending_max_value: 1000000000 + +// Whether to allow buying from vending chars that are at their max. zeny limit. +// If set to true, the rest of the zeny above the char's capacity will disappear. +vending_over_max: true + +// Tax to apply to all vending transactions (eg: 10000 = 100%, 50 = 0.50%) +// When a tax is applied, the item's full price is charged to the buyer, but +// the vender will not get the whole price paid (they get 100% - this tax). +vending_tax: 200 + +// Show the buyer's name when successfully vended an item +buyer_name: true + +// Forging success rate. (Note 2) +weapon_produce_rate: 100 + +// Prepare Potion success rate. (Note 2) +potion_produce_rate: 100 + +// Do produced items have the maker's name on them? (Note 3) +// 0x01: Produced Weapons +// 0x02: Produced Potions +// 0x04: Produced Arrows +// 0x08: Produced Holy Water/Ancilla +// 0x10: Produced Deadly Potions +// 0x80: Other produced items. +produce_item_name_input: 0x03 + +// Is a monster summoned via dead branch aggressive? (Note 1) +dead_branch_active: true + +// Should summoned monsters check the player's base level? (dead branches) (Note 1) +// On officials this is false - monsters summoned from dead/bloody branches can be ANY level. +// Change to true to only summon monsters less than or equal to the player's base level. +random_monster_checklv: false + +// Can any player equip any item regardless of the gender restrictions +// NOTE: Wedding Rings and Whips/Musical Instruments will check gender regardless of setting. +ignore_items_gender: true + +// Item check? (Note 1) +// On map change it will check for items not tagged as "available" and +// auto-delete them from inventory/cart. +// NOTE: An item is not available if it was not loaded from the item_db or you +// specify it as unavailable in db/item_avail.txt +item_check: false + +// How much time must pass between item uses? +// Only affects the delay between using items, prevents healing item abuse. Recommended ~500 ms +// On officials this is 0, but it's set to 100ms as a measure against bots/macros. +item_use_interval: 100 + +// Required level of bNoMagicDamage before Status Changes are blocked (Golden Thief Bug card). +// For example, if left at 50. An item can give bNoMagicDamage,40; +// which reduces magic damage by 40%, but does not blocks status changes. +gtb_sc_immunity: 50 + +// Enable autospell card effects to stack? +// NOTE: Different cards that grant the same skill will both +// always work independently of each other regardless of setting. +autospell_stacking: false + +// Will disabled consumables (disabled by map_zone_db.conf) be consumed when trying to use them? +// Default: true (official) +item_restricted_consumption_type: true + +// Enable all NPC to allow changing of equipments while interacting? (Note 1) +// Script commands 'enable_items/disable_items' will not be override. (see doc/script_commands.txt) +// Default: true (official) +item_enabled_npc: true + +// Unequip the equipments that has disabled by map_zone_db.conf ? +// 0 : disabled equipments and cards are nullify (official) +// 1 : disabled equipments are unequip, disabled cards are nullify +// 2 : disabled equipments are nullify, disabled cards will caused the equipment to unequip +// 3 : disabled equipments are unequip, disabled cards will caused the equipment to unequip (1+2) +unequip_restricted_equipment: 0 + +// When unequip a bow with arrow equipped, it also unequip the arrow? +// Default: true (Official behavior, applies only in Renewal) +bow_unequip_arrow: true + +// How much should rental mounts increase a player's movement speed? (Note 2) +// Official: 25 (Default) +boarding_halter_speed: 25 diff --git a/conf/map/battle/misc.conf b/conf/map/battle/misc.conf new file mode 100644 index 000000000..2f88dbe0e --- /dev/null +++ b/conf/map/battle/misc.conf @@ -0,0 +1,173 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +// Battle (Misc) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// PK Server Mode. +// Turns entire server pvp(excluding towns). +// Experience loss is doubled if killed by another player. +// When players hunt monsters over 20 levels higher, they will receive 15% +// additional exp., and 25% chance of receiving more items. +// There is a nopvp.txt for setting up maps not to have pk on in this mode. +// Novices cannot be attacked and cannot attack. +// Normal pvp counter and rank display are disabled as well. +// Note: If pk_mode is set to 2 instead of 1, players will receive a +// manner penalty of 5 each time they kill another player (see manner_system +// config to adjust how this will affect players) +pk_mode: 0 + +// Manner/karma system configuration. Specifies how does negative manner +// (red no chat bubble) affects players (add as needed): +// 0: No penalties. +// 1: Disables chatting (includes whispers, party/guild msgs, etc) +// 2: Disables skill usage +// 4: Disables commands usage +// 8: Disables item usage/picking/dropping +// 16: Disables room creation (chatrooms and vending shops) +manner_system: 31 + +// For PK Server Mode. Change this to define the minimum level players can start PK-ing +pk_min_level: 55 + +// For PK Server Mode. It specifies the maximum level difference between +// players to let them attack each other. 0 disables said limit. +pk_level_range: 0 + +// Display skill usage in console? (for debug only) (default: false) (Note 3) +skill_log: false + +// Display battle log? (for debug only) (default: false) (Note 1) +battle_log: false + +// Display other stuff? (for debug only) (default: false) (Note 1) +etc_log: false + +// Do you want to debug warp points? If set to true, warp points will appear as flags.(Note 1) +// It will also run on start-up a warp-check to print out which warp points lead directly on +// top of on-touch npcs (which can lead to infinite loopback warping situations) +warp_point_debug: false + +// Choose if server begin with night (true) or day (false) +night_at_start: false + +// Define duration in msec of the day (default: 7200000 = 2 hours) +// Set to 0 to disable day cycle (but not @day GM command). +// Except 0, minimum is 60000 (1 minute) +day_duration: 0 + +// Define duration in msec of the night (default: 1800000 = 30 min) +// Set to 0 to disable night cycle (but not @night GM command). +// Except 0, minimum is 60000 (1 minute) +night_duration: 0 + +// Using duel on pvp-maps +duel_allow_pvp: false + +// Using duel on gvg-maps +duel_allow_gvg: false + +// Allow using teleport/warp when dueling +duel_allow_teleport: false + +// Autoleave duel when die +duel_autoleave_when_die: true + +// Delay between using @duel in minutes +duel_time_interval: 1 + +// Restrict duel usage to same map +duel_only_on_same_map: false + +// Determines max number of characters that can stack within a single cell. +// Official - Only affects the walking routines of characters, including monsters. +// If a unit stops walking and is on a cell with more than stack limit +// characters on it, it will walk to the closest free cell. +// Custom - This variation will make every full cell to be considered a wall. +// NOTE: For this setting to take effect you have to use a server compiled +// with Cell Stack Limit support (see src/map/map.h) +official_cell_stack_limit: 0 +custom_cell_stack_limit: 1 + +// If false while walking not check occupied cells +// If true while walking check occupied cells +check_occupied_cells: false + +// Allow autotrade only in map with autotrade flag? +// Set this to "false" will allow autotrade where no "autotrade" mapflag is set +// Set this to "true" to only allow autotrade on maps with "autotrade" mapflag +at_mapflag: false + +// Set this to the amount of minutes autotrade chars will be kicked from the server. +at_timeout: 0 + +// Auction system, fee per hour. Default is 12000 +auction_feeperhour: 12000 + +// Auction maximum sell price +auction_maximumprice: 500000000 + +// Minimum delay between each store search query in seconds. +searchstore_querydelay: 10 + +// Maximum amount of results a store search query may yield, before +// it is canceled. +searchstore_maxresults: 30 + +// Whether or not gaining and loosing of cash points is displayed (Note 1). +// Default: false +cashshop_show_points: false + +// Whether or not mail box status is displayed upon login. +// Default: 0 +// 0 = No +// 1 = Yes +// 2 = Yes, when there are unread mails +mail_show_status: 0 + +// Is monster transformation disabled during Guild Wars? +// If set to true, monster transforming is automatically removed/disabled when entering castles during WoE times +mon_trans_disable_in_gvg: false + +// Whether AegisName and SpriteName lookups are case sensitive +// Default: true (as in official servers) +// When this is set to true, item and monster lookups through atcommands and +// script commands will match AegisNames and SpriteNames only when the case +// matches. Display name lookups are not affected by this setting. +// Example: Given the two items: +// - { Id: 553, AegisName: "Bun", Name: "Bao" } +// - { Id: 6115, AegisName: "Bun_", Name: "Bun" } +// query when true when false +// @item bun # 6115 # 553 +// @item Bun # 553 # 553 +// @item Bao # 553 # 553 +// @item Bun_ # 6115 # 6115 +case_sensitive_aegisnames: true diff --git a/conf/map/battle/monster.conf b/conf/map/battle/monster.conf new file mode 100644 index 000000000..beffda982 --- /dev/null +++ b/conf/map/battle/monster.conf @@ -0,0 +1,267 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +// Battle (Monster) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// The HP rate of MVPs. (Note 2) +mvp_hp_rate: 100 + +// The HP rate of normal monsters (that is monsters that are not MVP's) (Note 2) +monster_hp_rate: 100 + +// The maximum attack speed of a monster +monster_max_aspd: 199 + +// Defines various mob AI related settings. (Note 3) +// 0x001: When enabled mobs will update their target cell every few iterations +// (normally they never update their target cell until they reach it while +// chasing) +// 0x002: Makes mob use their "rude attack" skill (usually warping away) if they +// are attacked and they can't attack back regardless of how they were +// attacked (eg: GrimTooth), otherwise, their rude attack" is only activated +// if they can't melee reach the target (eg: sniping) +// 0x004: If not set, mobs that can change target only do so when melee attacked +// (distance player/mob < 3), otherwise mobs may change target and chase +// ranged attackers. This flag also overrides the 'provoke' target. +// 0x008: When set, mobs scatter as soon as they lose their target. Use this mode +// to make it much harder to mob-train by hiding and collecting them on a +// single spot (ie: GrimTooth training) +// 0x010: If set, mob skills defined for friends will also trigger on themselves. +// 0x020: When set, the monster ai is executed for all monsters in maps that +// have players on them, instead of only for mobs who are in the vicinity +// of players. +// 0x040: When set, when the mob's target changes map, the mob will walk towards +// any npc-warps in it's sight of view (use with mob_warp below) +// 0x100: When set, a mob will pick a random skill from it's list and start from +// that instead of checking skills in orders (when unset, if a mob has too +// many skills, the ones near the end will rarely get selected) +// 0x200: When set, a mob's skill re-use delay will not be applied to all entries of +// the same skill, instead, only to that particular entry (eg: Mob has heal +// on six lines in the mob_skill_db, only the entry that is actually used +// will receive the delay). This will make monsters harder, especially MvPs. +// 0x400: Set this to make mobs have a range of 9 for all skills. Otherwise, they +// will obey the normal skill range rules. +// Example: 0x140 -> Chase players through warps + use skills in random order. +monster_ai: 0x001 + +// How often should a monster rethink its chase? +// 0: Every 100ms (MIN_MOBTHINKTIME) +// 1: Every cell moved +// 2: Every 2 cells moved +// 3: Every 3 cells moved (official) +// x: Every x cells moved +// Regardless of this setting, a monster will always rethink its chase if it has +// reached its target. Increase this value if you want to make monsters continue +// moving after they lost their target (hide, no line of sight, etc.). +monster_chase_refresh: 2 + +// Should mobs be able to be warped (add as needed)? +// 0: Disable. +// 1: Enable mob-warping when standing on NPC-warps +// 2: Enable mob-warping when standing on Priest Warp Portals +// 4: Disable warping when the target map is a 'nobranch' map. +mob_warp: 0 + +// If these are set above 0, they define the time (in ms) during which monsters +// will have their 'AI' active after all players have left their vicinity. +mob_active_time: 0 +boss_active_time: 0 + +// Mobs and Pets view-range adjustment (range2 column in the mob_db) (Note 2) +view_range_rate: 100 + +// Chase Range is the base minimum-chase that a mob gives before giving up +// (as long as the target is outside their field of view). This is the range3 +// column in the mob_db. (Note 2) +chase_range_rate: 100 + +// Allow monsters to be aggresive and attack first? (Note 1) +monster_active_enable: true + +// Should the mob_db names override the mob names specified in the spawn files? +// 0: No +// 1: always use the mob_db Name column (english mob name) +// 2: always use the mob_db JName column (original Kro mob name) +override_mob_names: 0 + +// Monster damage delay rate (Note 2) +// Setting to 0 is like they always have endure. +monster_damage_delay_rate: 100 + +// Looting monster actions. +// 0 = Monster will consume the item. +// 1 = Monster will not consume the item. +monster_loot_type: 0 + +// Chance of mob casting a skill (Note 2) +// Higher rates lead to 100% mob skill usage with no/few normal attacks. +// Set to 0 to disable mob skills. +mob_skill_rate: 100 + +// Mob skill delay adjust (Note 2) +// After a mob has casted a skill, there is a delay before being able to +// re-cast it. Note that skills with a delay of 0 can't be affected by this +// setting. +mob_skill_delay: 100 + +// Rate of monsters on a map, 200 would be twice as many as normal. (Note 2) +mob_count_rate: 100 + +// Respawn rate of monsters on a map. 50 would make mobs respawn twice as fast (half delay time) (Note 2) +//Note: This does not affects mobs with immediate respawn (most normal mobs) +mob_spawn_delay: 100 +plant_spawn_delay: 100 +boss_spawn_delay: 100 + +// Should mobs not spawn within the viewing range of players? +// 0 is disabled, otherwise it is the number of retries before giving up +// and spawning the mob within player-view anyway, unless the max (100) is used, +// in which case the mob will not be spawned, and it'll be retried again in +// 5 seconds. +// NOTE: This has no effect on mobs that always spawn on the very same cell +// (like ant eggs) except if you set it to the max. +no_spawn_on_player: 0 + +// Should spawn coordinates in the mob-spawn files be ignored? (Note 1) +// If set to true, all monsters will have a random respawn spot across the whole +// map regardless of what the mob-spawn file says. +force_random_spawn: false + +// Do summon slaves inherit the passive/aggressive traits of their master? +// 0: No, retain original mode. +// 1: Slaves are always aggressive. +// 2: Slaves are always passive. +// 3: Same as master's aggressive/passive state. +slaves_inherit_mode: 2 + +// Do summon slaves have the same walking speed as their master? +// NOTE: The default is 3 for official servers. +// 0: Never. +// 1: If the master can walk +// 2: If the master can't walk (even motionless mobs have a speed +// entry in their mob_db) +// 3: Always +slaves_inherit_speed: 3 + +// Will summoned monsters (alchemists, or @summon'ed monsters) attack cause a +// chance of triggering the master's autospell cards? (Note 1) +summons_trigger_autospells: true + +// When a mob is attacked by another monster, will the mob retaliate against the master of said mob instead of the mob itself? +// NOTE: Summoned mobs are both those acquired via @summon and summoned by Alchemists +retaliate_to_master: true + +// Whether mobs should change target temporarily when a skill triggers a counter mob skill (Note 1) +// eg: Mob attacks player B, and player A casts a skill C. If set to true and the +// mob has a skill that is triggered by skill C, then A will be the target of +// the skill, otherwise B will be targetted by the reaction skill. +mob_changetarget_byskill: false + +// If monster's class is changed will it fully recover HP? (Note 1) +monster_class_change_full_recover: true + +// Display some mob info next to their name? (add as needed) +// (does not works on guardian or Emperium) +// 1: Display mob HP (Hp/MaxHp format) +// 2: Display mob HP (Percent of full life format) +// 4: Display mob's level +show_mob_info: 0 + +// Zeny from mobs +zeny_from_mobs: false + +// Monsters level up (monster will level up each time a player is killed and they will grow stronger) +// Exp rate is calculated ((monster level-original monster level)*(exp*(mobs_level_up_exp rate/100))) +// NOTE: Does not apply to WoE Guardians. +mobs_level_up: false +mobs_level_up_exp_rate: 1 + +// Dynamic Mobs Options +// Use dynamic mobs? (recommended for small-medium sized servers) +dynamic_mobs: true + +// Remove Mobs even if they are hurt +mob_remove_damaged: true + +// Delay before removing mobs from empty maps (default 5 min = 300 secs) +mob_remove_delay: 300000 + +// Defines on who the mob npc_event gets executed when a mob is killed. +// Type 1: On the player that killed the mob (if killed by a non-player, resorts to type 0) +// Type 0: On the player that did the most damage to the mob. +// NOTE: This affects who gains the Castle when the Emperium is broken. +mob_npc_event_type: 1 + +// Time in milliseconds to activate protection against Kill Steal +// Set to 0 to disable it. +// If this is activated and a player is using @noks, damage from others players (KS) not in the party +// will be reduced to 0. +ksprotection: 0 + +// Should MVP slaves retain their target when summoned back to their master? +mob_slave_keep_target: true + +// Whether or not to spawn the mvp tomb. +// See http://irowiki.org/wiki/MVP#Gravestone +mvp_tomb_enabled: true + +// Show hp bar on monsters? (Default: yes) +// NOTE: only works on client 2012-04-04aRagexeRE onwards +show_monster_hp_bar: true + +// Whether or not the size of specially summoned mobs influences experience, drop rates, +// and stats. The rates will be doubled for large mobs, and halved for small ones. +// This is only invoked under the 'monster' command, @monsterbig, and @monstersmall. (Note 1) +// Default: false +mob_size_influence: false + +// How should a monster be trapped by an icewall casted directly on it? +// On official servers, monsters can only leave an icewall to the west and south. If their target is north or east of +// them they will continously try to chase it but fail doing so. This brings them into a loop during which they will use +// idle and chase skills. Boss monsters on the other hand will behave like a trapped monster, do not move and will use +// idle and rudeattacked skills (when attacked). +// 0: Monster won't be stuck in icewall at all. +// 1: Monster will behave like a trapped monster. +// 2-255: Number of loops a monster will go through the behavior described above before it frees itself from icewall. +// NOTE: On some servers, normal monsters can free themselves after 15-35 second depending on their speed. On other +// servers, they will be stuck inside icewall until it expires. Also, many official servers (e.g. iRO) have casting +// icewall completely blocked on all maps that have boss monsters on them. +// Default (least exploitable): mob - 75, boss - 0 +// Default (most official): mob - 220, boss - 1 +mob_icewall_walk_block: 220 +boss_icewall_walk_block: 1 + +// Which level of of Vulture's Eye and Snake's Eye should monsters have learned? +// Officially monsters don't have these skills learned, so their ranged skills +// only have a range of 9. If you put a number higher than 0, their range will +// be increased by that number. +monster_eye_range_bonus: 0 diff --git a/conf/map/battle/party.conf b/conf/map/battle/party.conf new file mode 100644 index 000000000..f1d4ab4ed --- /dev/null +++ b/conf/map/battle/party.conf @@ -0,0 +1,82 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +// Battle (Party) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +//========================================================================= + +// If someone steals (gank/steal skills), show name in party? (Note 1) +show_steal_in_same_party: false + +// Interval before updating the party-member map mini-dots (milliseconds) +party_update_interval: 1000 + +// Method used to update party-mate hp-bars: +// 0: Aegis - bar is updated every time HP changes (bandwidth intensive) +// 1: Athena - bar is updated with the party map dots (up to 1 second delay) +party_hp_mode: 0 + +// When changing party leader, should the new leader be in the same map +// as the current leader. (Note 1) +// true: Aegis - They must be in the same map +// false: Athena - They can be in different maps +party_change_leader_same_map: false + +// When 'Party Share' item sharing is enabled in a party, +// announce in the party which party-member received the item and what's he received? (Note 1) +show_party_share_picker: true + +// What types of items are going to be announced when 'show_party_share_picker' is active? +// 1: IT_HEALING, 2: IT_UNKNOWN, 4: IT_USABLE, 8: IT_ETC, +// 16: IT_WEAPON, 32: IT_ARMOR, 64: IT_CARD, 128: IT_PETEGG, +// 256: IT_PETARMOR, 512: IT_UNKNOWN2, 1024: IT_AMMO, 2048: IT_DELAYCONSUME +// 262144: IT_CASH +show_picker_item_type: 112 + +// Method of distribution when item party share is enabled in a party: +// 0: Normal (item goes to a random party member) +// 1: Item Share is disabled for non-mob drops (player/pet drops) +// 2: Round Robin (items are distributed evenly and in order among members) +// 3: 1+2 +party_item_share_type: 0 + +// Is exp/item sharing disabled for idle members in the party? +// Set to 0, or the amount of seconds (NOT milliseconds) that need to pass before considering +// a character idle. +// Characters in a chat/vending are always considered idle. +// A character's idle status is reset upon item use/skill use/attack (auto attack counts too)/movement. +idle_no_share: 0 + +// Give additional experience bonus per party-member involved on even-share parties (excluding yourself)? +// ex. If set to 10, an even-share party of 5 people will receive +40% exp (4 members * 10% exp): +// 140% party experience in total, so each member receives 140%/5 = 28% exp (instead of 20%). +party_even_share_bonus: 0 + +// Display party name regardless if player is in a guild. +// Official servers do not display party name unless the user is in a guild. (Note 1) +display_party_name: true diff --git a/conf/map/battle/pet.conf b/conf/map/battle/pet.conf new file mode 100644 index 000000000..a07963b98 --- /dev/null +++ b/conf/map/battle/pet.conf @@ -0,0 +1,100 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +// Battle (Pet) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// Rate for catching pets (Note 2) +pet_catch_rate: 100 + +// Can you name a pet more then once? (Note 1) +pet_rename: true + +// The rate a pet will get friendly by feeding it. (Note 2) +pet_friendly_rate: 100 + +// The rate at which a pet will become hungry. (Note 2) +pet_hungry_delay_rate: 100 + +// If your pet is hungry by how much will the friendlyness decrease by. (Default is 5) +// Note: The friendlyness is 0-1000 total, at 0 the pet runs away. +pet_hungry_friendly_decrease: 5 + +// Does the pet need its equipment before it does its skill? (Note 1) +pet_equip_required: true + +// When the master attacks a monster, whether or not the pet will also attack. (Note 1) +pet_attack_support: false + +// When the master receives damage from the monster, whether or not the pet attacks back. (Note 1) +pet_damage_support: false + +// Minimum intimacy necessary for a pet to support their master. Default is 900 +// (intimacy goes from 0 to 1000). At this minimum, support rate is 50% of pet's normal value. +// At max (1000) support rate is 150%. +pet_support_min_friendly: 900 + +// Same as above, but this is to use the pet_script field with official pet abilities. +pet_equip_min_friendly: 900 + +// Whether or not the pet's will use skills. (Note 1) +// Note: Offensive pet skills need at least pet_attack_support or +// pet_damage_support to work (they trigger while the pet is attacking). +pet_status_support: false + +// Rate at which a pet will support it's owner in battle. (Note 2) +// Affects pet_attack_support & pet_damage_support. +pet_support_rate: 100 + +// Does the pets owner receive exp from the pets damage? +pet_attack_exp_to_master: false + +// The rate exp. is gained from the pet attacking monsters +pet_attack_exp_rate: 100 + +// Pet leveling system. Use 0 to disable (default). +// When enabled, a pet's level is a fixed % of the master's. (Note 2) +// If 200%, pet has double level, if 50% pet has half your level, etc. +pet_lv_rate: 0 + +// When pet leveling is enabled, what is the max stats for pets? +pet_max_stats: 99 + +// When pet leveling is enabled, these are the imposed caps on +// min/max damage. Note that these only cap atk1 and atk2, if you +// enable pet_str, their max damage is then their base_atk + pet_max_atk2 +pet_max_atk1: 500 +pet_max_atk2: 1000 + +// Are pets disabled during Guild Wars? +// If set to true, pets are automatically returned to egg when entering castles during WoE times +// and hatching is forbidden within as well. +pet_disable_in_gvg: false diff --git a/conf/map/battle/player.conf b/conf/map/battle/player.conf new file mode 100644 index 000000000..b8fe28a3c --- /dev/null +++ b/conf/map/battle/player.conf @@ -0,0 +1,227 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +// Battle (Player) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. +//========================================================================= + +// Players' maximum HP rate? (Default is 100) +hp_rate: 100 + +// Players' maximum SP rate? (Default is 100) +sp_rate: 100 + +// Whether or not cards and attributes of the left hand are applied to the right hand attack (Note 1) +// (It is true on official servers) +left_cardfix_to_right: true + +// The amount of HP a player will respawn with, 0 is default. +// (Unit is in percentage of total HP, 100 is full heal of HP, 0 is respawn with 1HP total.) +restart_hp_rate: 0 + +// The amount of SP a player will respawn with, 0 is default. +// (Unit is in percentage of total SP, 100 is full heal of SP, 0 is respawn with 1SP total.) +restart_sp_rate: 0 + +// Can a normal player by-pass the skill tree? (Note 1) +player_skillfree: false + +// When set to true, forces skill points gained from 1st class to be put into 1st class +// skills, and forces novice skill points to be put into the basic skill. (Note 1) +player_skillup_limit: true + +// Quest skills can be learned? (Note 1) +// Setting this to true can open an exploit on your server! +quest_skill_learn: false + +// When skills are reset, quest skills are reset as well? (Note 1) +// Setting this to true can open an exploit on your server! +// NOTE: If you have quest_skill_learn set to true, quest skills are always reset. +quest_skill_reset: false + +// You must have basic skills to be able to sit, trade, form a party or create a chatroom? (Note 1) +basic_skill_check: true + +// When teleporting, or spawning to a map, how long before a monster sees you if you don't move? (time is in milliseconds) +// That is, when you go to a map and don't move, how long before the monsters will notice you. +// When moving, attacking or doing similar actions, the effect ends instantly. +// Value is also affected by 'invincible_time_inc' mapflag +player_invincible_time: 5000 + +// When set to true, it prevent portal abuse for avoid hits. Official value is false. +fix_warp_hit_delay_abuse: true + +// The time interval for HP to restore naturally. (in milliseconds) +natural_healhp_interval: 6000 + +// The time interval for SP to restore naturally. (in milliseconds) +natural_healsp_interval: 8000 + +// Automatic healing skill's time interval. (in milliseconds) +natural_heal_skill_interval: 10000 + +// The maximum weight for a character to carry when the character stops healing naturally. (in %) +natural_heal_weight_rate: 50 + +// Maximum atk speed. (Default 190, Highest allowed 199) +max_aspd: 190 + +// Same as max_aspd, but for 3rd classes. (Default 193, Highest allowed 199) +max_third_aspd: 193 + +// Maximum walk speed rate (200 would be capped to twice the normal speed) +max_walk_speed: 300 + +// Maximum HP. (Default is 1000000) +max_hp: 1000000 + +// Maximum SP. (Default is 1000000) +max_sp: 1000000 + +// Max limit of char stats. (agi, str, etc.) +max_parameter: 99 + +// Same as max_parameter, but for 3rd classes. +max_third_parameter: 130 + +// Same as max_parameter, but for extended classes (Ex. Super Novice, Kagero/Oboro, Rebellion). +max_extended_parameter: 125 + +// Same as max_parameter, but for summoner class +max_summoner_parameter: 120 + +// Same as max_parameter, but for baby classes. +max_baby_parameter: 80 + +// Same as max_parameter, but for baby 3rd's. +max_baby_third_parameter: 117 + +// Max armor def/mdef +// NOTE: This setting have no effect if server is run on Renewal Mode (RENEWAL) +// NOTE: does not affects skills and status effects like Mental Strength +// If weapon_defense_type is non-zero, it won't apply to max def. +// If magic_defense_type is non-zero, it won't apply to max mdef. +max_def: 99 + +// Def to Def2 conversion bonus. If the armor def/mdef exceeds max_def, +// the remaining is converted to vit def/int mdef using this multiplier +// (eg: if set to 10, every armor point above the max becomes 10 vit defense points) +over_def_bonus: 0 + +// Max weight carts can hold. +max_cart_weight: 8000 + +// Prevent logout of players after being hit for how long (in ms, 0 disables)? +prevent_logout: 10000 + +// When should the server prevent a player from logging out? Have no effect if prevent_logout is disabled. (Note 3) +// Official servers prevent players from logging out after attacking, casting skills, and taking damage. +// 0 = Players can always logout +// 1 = Prevent logout on login +// 2 = Prevent logout after attacking +// 4 = Prevent logout after casting skill +// 8 = Prevent logout after being hit +prevent_logout_trigger: 14 + +// Display the drained hp/sp values from normal attacks? (Ie: Hunter Fly card) +show_hp_sp_drain: false + +// Display the gained hp/sp values from killing mobs? (Ie: Sky Deleter Card) +show_hp_sp_gain: true + +// Show the critical bonus for katar class weapon in player status window? On +// official server, the critical bonus from katar class weapon isn't display. +// (Default: false) +show_katar_crit_bonus: true + +// If set, when A accepts B as a friend, B will also be added to A's friend +// list, otherwise, only A appears in B's friend list. +// NOTE: this setting only enables friend auto-adding; auto-deletion does not work yet +friend_auto_add: true + +// Are simultaneous trade/party/guild invite requests automatically rejected? +invite_request_check: true + +// Players' will drop a 'Skull' when killed? +// 0 = Disabled +// 1 = Dropped only in PvP maps +// 2 = Dropped in all situations +bone_drop: 0 + +// Do mounted (on Peco) characters increase their size +// 0 = no +// 1 = only Normal Classes on Peco have Big Size +// 2 = only Baby Classes on Peco have Medium Size +// 3 = both Normal Classes on Peco have Big Size +// and Baby Classes on Peco have Medium Size +character_size: 0 + +// Idle characters can receive autoloot? +// Set to the time in seconds where an idle character will stop receiving +// items from Autoloot (0: disabled). +idle_no_autoloot: 0 + +// Minimum distance a vending/chat room must be from a NPC in order to be placed +// Default: 3 (0: disabled). +min_npc_vendchat_distance: 3 + +// If min_npc_vendchat_distance is enabled, +// can players vend/chat room nearby hidden npc? (Ie: FAKE_NPC/HIDDEN_WARP_NPC) +vendchat_near_hiddennpc: false + +// Super Novice's fury is enabled to increments of 10%, such as at 10.0%, 20.0% - 80.0%, 90.0% +// Changing snovice_call_type config to 1 enables its use at 0%, for maxed super novices. +// default: 0 +snovice_call_type: 0 + +// How the server should measure the character's idle time? (Note 3) +// 0x001 - Walk Request +// 0x002 - UseSkillToID Request ( targetted skill use attempt ) +// 0x004 - UseSkillToPos Request ( aoe skill use attempt ) +// 0x008 - UseItem Request ( including equip/unequip ) +// 0x010 - Attack Request +// 0x020 - Chat Request ( whisper, party, guild, bg, etca ) +// 0x040 - Sit/Standup Request +// 0x080 - Emotion Request +// 0x100 - DropItem Request +// 0x200 - @/#Command Request +// Please note that at least 1 option has to be enabled. +// Be mindful that the more options used, the easier it becomes to cheat features that rely on idletime (e.g. checkidle()). +// Default: walk ( 0x1 ) + useskilltoid ( 0x2 ) + useskilltopos ( 0x4 ) + useitem ( 0x8 ) + attack ( 0x10 ) = 0x1F +idletime_criteria: 0x1F + +// Can players get ATK/DEF from refinements on costume/shadow equips? +// Default: yes (Official behavior not known) +costume_refine_def: true +shadow_refine_def: true +shadow_refine_atk: true + +// Keep player facing direction after warping? +// Default: false (on official servers players always faces north) +player_warp_keep_direction: true diff --git a/conf/map/battle/skill.conf b/conf/map/battle/skill.conf new file mode 100644 index 000000000..b88c5d141 --- /dev/null +++ b/conf/map/battle/skill.conf @@ -0,0 +1,326 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +// Battle (Skill) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// The rate of time it takes to cast a spell (Note 2, 0 = No casting time) +casting_rate: 100 + +// Delay time after casting (Note 2) +delay_rate: 100 + +// Does the delay time depend on the caster's DEX and/or AGI? (Note 1) +// Note: On Official servers, neither Dex nor Agi affect delay time +delay_dependon_dex: false +delay_dependon_agi: false + +// Minimum allowed delay for ANY skills after casting (in milliseconds) (Note 1) +// Note: Setting this to anything above 0 can stop speedhacks. +min_skill_delay_limit: 100 + +// This delay is the min 'can't walk delay' of all skills. +// NOTE: Do not set this too low, if a character starts moving too soon after +// doing a skill, the client will not update this, and the player/mob will +// appear to "teleport" afterwards. +default_walk_delay: 300 + +//Completely disable skill delay of the following types (Note 3) +//NOTE: By default mobs don't have the skill delay as specified in the skill +// database, but follow their own 'reuse' skill delay which is specified on +// the mob skill db. When set, the delay for all skills become +// min_skill_delay_limit. +no_skill_delay: 2 + +// At what dex does the cast time become zero (instant cast)? +castrate_dex_scale: 150 + +// How much (dex*2+int) does variable cast turns zero? +vcast_stat_scale: 530 + +// What level of leniency should the skill system give for skills when +// accounting attack motion (ASPD) for casting skills (Note 2, between 0 and 300) +// +// NOTE: Setting this to 100% may cause some issues with valid skills not being cast. +// The time difference between client and server varies so allowing 90% leniency +// should be enough to forgive very small margins of error. +skill_amotion_leniency: 90 + +// Will normal attacks be able to ignore the delay after skills? (Note 1) +skill_delay_attack_enable: true + +// Range added to skills after their cast time finishes. +// Decides how far away the target can walk away after the skill began casting before the skill fails. +// 0 disables this range checking (default) +skill_add_range: 0 + +// If the target moves out of range while casting, do we take the items and SP for the skill anyway? (Note 1) +skill_out_range_consume: false + +// Does the distance between caster and target define if the skill is a ranged skill? (Note 3) +// If set, when the distance between caster and target is greater than 3 the skill is considered long-range, otherwise it's a melee range. +// If not set, then the range is determined by the skill's range (if it is above 5, the skill is ranged). +// Default 14 (mobs + pets + homun) +skillrange_by_distance: 14 + +// Should the equipped weapon's range override the skill's range defined in the skill_db for most weapon-based skills? (Note 3) +// NOTE: Skills affected by this option are those whose range in the skill_db are negative. By default always the skill range is used. +// Note that if you want all monster skills to have a range of 9 you need to set monster_ai&0x400. +skillrange_from_weapon: 0 + +// Should a check on the caster's status be performed in all skill attacks? +// When set to true, meteors, storm gust and any other ground skills will have +// no effect while the caster is unable to fight (eg: stunned). +skill_caster_check: true + +// Should ground placed skills be removed as soon as the caster dies? (Note 3) +clear_skills_on_death: 0 + +// Should ground placed skills be removed when the caster changes maps? (Note 3) +clear_skills_on_warp: 15 + +//Setting this to true will override the target mode of ground-based skills with the flag 0x01 to "No Enemies" +//The two skills affected by default are Pneuma and Safety Wall (if set to true, those two skills will not protect everyone, but only allies) +//See db/skill_unit_db.txt for more info. +defunit_not_enemy: false + +// Do skills do at least 'hits' damage when they don't miss/are blocked? +//(for example, will firebolts always do "number of bolts" damage versus plants?) +//Values (add as appropriate): 1 for weapon-based attacks, 2 for magic attacks, 4 for misc attacks. +skill_min_damage: 6 + +// The delay rate of monk's combo (Note 2) +combo_delay_rate: 100 + +// Use alternate auto Counter Attack Skill Type? (Note 3) +// For those characters on which it is set, 100% Critical, +// Otherwise it disregard DEF and HIT+20, CRI*2 +auto_counter_type: 15 + +// Can ground skills be placed on top of each other? (Note 3) +// By default, skills with UF_NOREITERATION set cannot be stacked on top of +// other skills, this setting will override that. (skill_unit_db) +skill_reiteration: 0 + +// Can ground skills NOT be placed underneath/near players/monsters? (Note 3) +// If set, only skills with UF_NOFOOTSET set will be affected (skill_unit_db) +skill_nofootset: 1 + +// Should traps (hunter traps + quagmire) change their target to "all" inside gvg/pvp grounds? (Note 3) +// Default on official servers: true for player-traps +gvg_traps_target_all: 1 + +// Some traps settings (add as necessary): +// 1: Traps are invisible to those who come into view of it. When unset, all traps are visible at all times. +// (Invisible traps can be revealed through Hunter's Detecting skill) +traps_setting: 0 + +// Restrictions applied to the Alchemist's Summon Flora skill (add as necessary) +// 1: Enable players to damage the floras outside of versus grounds. +// 2: Disable having different types out at the same time +// (eg: forbid summoning anything except hydras when there's already +// one hydra out) +summon_flora_setting: 3 + +// When songs are canceled, terminated or the character goes out of the +// area of effect, there's an additional effect that lasts for 20 seconds +// Should that time be reset for each song? +// 0: No, you must recast the song AFTER those 20 seconds to have the effect again (Aegis) +// 1: Yes, recasting songs reset the 20 seconds timer (eathena) +song_timer_reset: 0 + +// Whether placed down skills will check walls (Note 1) +// (Makes it so that Storm Gust/Lord of Vermillion/etc when cast next to a wall, won't hit on the other side) +skill_wall_check: true + +// When cloaking, Whether the wall is checked or not. (Note 1) +// Note: When the skill does not checks for walls, you will always be considered +// as if you had a wall-next to you (you always get the wall-based speed). +// Add the settings as required, being hit always uncloaks you. +// 0 = doesn't check for walls +// 1 = Check for walls +// 2 = Cloaking is not canceled when attacking. +// 4 = Cloaking is not canceled when using skills +player_cloak_check_type: 1 +monster_cloak_check_type: 4 + +// Can't place unlimited land skills at the same time (Note 3) +land_skill_limit: 9 + +//Determines which kind of skill-failed messages should be sent: +// 0 - Enable by default +// 1 - Disable all skill-failed messages. +// 2 - Disable skill-failed messages due to can-act delays. +// 4 - Disable failed message from Snatcher +// 8 - Disable failed message from Envenom +display_skill_fail: 0 + +// Can a player in chat room (in-game), be warped by a warp portal? (Note 1) +chat_warpportal: false + +// What should the wizard's "Sense" skill display on the defense fields? +// 0: Do not show defense +// 1: Base defense [RE default] +// 2: Vit/Int defense +// 3: Both (the addition of both) +sense_type: 1 + +// Which finger offensive style will be used? +// 0 = Aegis style (single multi-hit attack) +// 1 = Athena style (multiple consecutive attacks) +finger_offensive_type: 0 + +// Grandcross Settings (Don't mess with these) +// If set to false, hit interval is increased based on the amount of mobs standing on the same cell +// (means that when there's stacked mobs in the same cell, they won't receive all hits) +gx_allhit: false + +// Grandcross display type (Default 1) +// 0: Yellow character +// 1: White character +gx_disptype: 1 + +// Max Level Difference for Devotion +devotion_level_difference: 10 + +// If false than you can use the ensemble skills alone. (Note 1) +player_skill_partner_check: true + +// Remove trap type +// 0 = Aegis system : Returns 1 'Trap' item +// 1 = Athena system : Returns all items used to deploy the trap +skill_removetrap_type: 0 + +// Does using bow to do a backstab give a 50% damage penalty? (Note 1) +backstab_bow_penalty: true + +// How many times you could try to steal from a mob. +// Note: It helps to avoid stealing exploit on monsters with few rare items +// Use 0 to disable (max allowed value is 255) +skill_steal_max_tries: 0 + +// Can Rogues plagiarize advanced job skills +// 0 = no restriction +// 1 = only stalker may plagiarize advanced skills +// 2 = advanced skills cannot be plagiarized by anyone +// Official servers setting: 2 +copyskill_restrict: 2 + +// Does Berserk/Frenzy cancel other self-buffs when used? +berserk_cancels_buffs: false + +// Level and Strength of "MVP heal". When someone casts a heal of this level or +// above, the heal formula is bypassed and this value is used instead. +max_heal: 9999 +max_heal_lv: 11 + +// Emergency Recall Guild Skill setting (add as appropriate). +// Note that for the skill to be usable at all, +// you need at least one of 1/2 and 4/8 +// 1: Skill is usable outside of woe. +// 2: Skill is usable during woe. +// 4: Skill is usable outside of GvG grounds +// 8: Skill is usable on GvG grounds +//16: Disable skill from "nowarpto" maps +// (it will work on GVG castles even if they are set to nowarpto, though) +emergency_call: 11 + +// Guild Aura Skills setting (add as appropriate). +// (This affects GD_LEADERSHIP, GD_GLORYWOUNDS, GD_SOULCOLD and GD_HAWKEYES) +// Note that for the skill to be usable at all, +// you need at least one of 1/2 and 4/8 +// 1: Skill works outside of woe. +// 2: Skill works during woe. +// 4: Skill works outside of GvG grounds +// 8: Skill works on GvG grounds +//16: Disable skill from affecting Guild Master +guild_aura: 31 + +// Allows players to skip menu when casting Teleport level 1 +// Menu contains two options. "Random" and "Cancel" +skip_teleport_lv1_menu: false + +// Allow use of SG skills without proper day (Sun/Moon/Star) ? +allow_skill_without_day: false + +// Allow use of ES-type magic on players? +allow_es_magic_player: false + +// Miracle of the Sun, Moon and Stars skill ratio (100% = 10000) +sg_miracle_skill_ratio: 2 + +// Miracle of the Sun, Moon and Stars skill duration in milliseconds +sg_miracle_skill_duration: 3600000 + +// Angel of the Sun, Moon and Stars skill ratio (100% = 10000) +sg_angel_skill_ratio: 10 + +// Skills that bHealPower has effect on +// 1: Heal, 2: Sanctuary, 4: Potion Pitcher, 8: Slim Pitcher, 16: Apple of Idun, 32: Highness Heal +skill_add_heal_rate: 7 + +// Whether the damage of EarthQuake with a single target on screen is able to be reflected. +// Note: On official server, EQ is reflectable when there is only one target on the screen, +// which might be an exploit to hunt the MVPs. +eq_single_target_reflectable: true + +// On official server, you will receive damage from Reflection and some Tarot Card even in invincible status. +// When this setting is enabled, it allows you to immune to all kinds of damage, including those stated previous. +// (The number will show but no actual damage will be done) +invincible_nodamage: false + +// Dancing Weapon Switch +// On official server, a fix is in place that prevents the switching of weapons to cancel songs. +// Default: true +dancing_weaponswitch_fix: true + +// Skill Trap Type (GvG) +// 0: (official) Traps in GvG only make player stop moving after its walk path is complete, and it activates other traps on the way. +// 1: Traps in GvG make player stop moving right when stepping over it. +skill_trap_type: 0 + +// Max Possible Level of Monster skills +// Note: If your MVPs are too tough, reduce it to 10. +mob_max_skilllvl: 100 + +// Area of Bowling Bash chain reaction +// 0: Use official gutter line system +// 1: Gutter line system without demi gutter bug +// 2-20: Area around caster (2 = 5x5, 3 = 7x7, 4 = 9x9, ..., 20 = 41x41) +// Note: If you knock the target out of the area it will only be hit once and won't do splash damage +bowling_bash_area: 0 + +// On official servers, Storm Gust consists of 81 units that all deal 3x3 splash damage "away from center". Due to +// south-western cells being processed first, this usually leads to a knockback to the northeast. Knockback at the +// edges will be away from SG. Knockback direction can also be influenced by Ganbantein and Land Protector. If you +// punch a hole into SG it will for example create a "suck in" effect. +// If you disable this setting, the knockback direction will be completely random (eAthena style). +stormgust_knockback: true diff --git a/conf/map/battle/status.conf b/conf/map/battle/status.conf new file mode 100644 index 000000000..37b2e013d --- /dev/null +++ b/conf/map/battle/status.conf @@ -0,0 +1,47 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +// Battle (Status) Configuration File +//========================================================================= +// Note 1: Value is a config switch (true/false) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, +// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary) +//========================================================================= + +// Should skill casting be canceled when inflicted by curse/stun/sleep/etc (includes silence) (Note 3)? +status_cast_cancel: 0 + +// Adjustment for the natural rate of resistance from status changes. +// If 50, status defense is halved, and you need twice as much stats to block +// them (eg: 200 vit to completely block stun) +pc_status_def_rate: 100 +mob_status_def_rate: 100 + +// Maximum resistance to status changes. (100 = 100%) +// NOTE: Cards and equipment can go over this limit, so it only applies to natural resist. +pc_max_status_def: 100 +mob_max_status_def: 100 diff --git a/conf/map/charhelp.txt b/conf/map/charhelp.txt new file mode 100644 index 000000000..e3acddbb4 --- /dev/null +++ b/conf/map/charhelp.txt @@ -0,0 +1,28 @@ + 40:--- CHARACTER CMD --- + 40:#statsall <char name> - Set all stats of a player to maximum. + 40:#itemlist <char name> - Displays all items of a player. + 40:#storagelist <char name> - Displays all items of a player's storage. + 40:#stats <char name> - Displays a characters stats. + 60:#option <char name> <param1> <param2> <param3> - Like @option command but only to target character. + 50:#mountpeco <char name> - Give/remove to a player a peco (Class is required, but not skill). + 50:#petrename <char name> - Re-enable pet rename to a player. + 60:#save <char name> <map> <x> <y> - Changes the target players respawn point. + 60:#baselvl/#blvl <char name> <#> - Change a characters base level. + 60:#joblvl/#jlvl <char name> <#> - Change a characters job level. + 60:#job/#jobchange <char name> <job ID> - Changes target characters job. + 60:#zeny <char name> <amount> - Give/take a players Zeny + 60:#cash <char name> <amount> - Give/take a player cash points + 60:#points <char name> <amount> - Give/take a player Kafra points + 60:#stpoint <char name> <amount> - Give/take a players stat points + 60:#skpoint <char name> <amount> - give/take a players skill points + 60:#skreset <char name> - Reset skills of a character. + 60:#streset <char name> - Reset stats of a character. + 60:#reset <char name> - Reset stats AND skills of a character. + 60:#questskill <char name> <#> - Gives to a player the specified quest skill. + 60:#lostskill <char name> <#> - Takes away the specified quest skill from the player. + 60:#delitem <char name> <item_name_or_ID> <quantity> - Remove items from a character + 50:#model <char name> <hair type> <hair color> <clothes color> - Changes a player's model + 60:#disguise <char name> <monster_name_or_monster_ID> - Changes disguise of a player + 60:#undisguise <char name> - Cancels disguise of a player + 60:#changesex <char name> - Changes sex of a player (all characters of the account) + 60:#warp/#rura+ <char name> <mapname> <x> <y> - Warps character to location of choice diff --git a/conf/map/help.txt b/conf/map/help.txt new file mode 100644 index 000000000..846c16276 --- /dev/null +++ b/conf/map/help.txt @@ -0,0 +1,307 @@ +// This is help file that contains help messages for atcommands/charcommands. + +// Format: +// <command>: "<help message>" + +// This file uses libconfig syntax. + +help: "Params: <command>\n" "Shows help for specified command." +noask: "Auto rejects deals/invites." +me: "Params: <message>\n" "Displays normal text as a message in this format: *name message* (like /me in mIRC)." +fakename: "Params: <name>\n" "Changes your name to your choice temporarily." +npctalk: "Params: <NPC name> <message>\n" "Forces a NPC to display a message in normal chat." +broadcast: "Params: <message>\n" "Broadcasts a message with your name (in yellow)." +kami: "Params: <message>\n" "Broadcasts a message without your name (in yellow)." +kamib: "Params: <message>\n" "Broadcasts a message without your name (in blue)." +localbroadcast: "Params: <message>\n" "Broadcasts a message with your name (in yellow) only on your map." +commands: "Displays a list of commands that you can use." +rates: "Displays the server's current rates." +uptime: "Displays how long the server has been online." +showdelay: "Shows/hides the \"There is a delay after this skill\" message." +exp: "Displays current levels and % progress." +mobinfo: "Params: <monster name|ID>\n" "Shows monster info (stats, exp, drops etc)." +iteminfo: "Params: <item name|ID>\n" "Shows item info (type, price etc)." +whodrops: "Params: <item name|ID>\n" "Shows who drops an item (monster with highest drop rates)." +version: "Displays SVN version of the server." +email: "Params: <current email> <new email>\n" "Changes your account e-mail address." +where: "Params: <char name>\n" "Tells you the location of a character." +time: "Shows the date and time of the server." +showexp: "Displays/hides experience gained." +showzeny: "Displays/hides Zeny gained." +mobsearch: "Params: <monster name|ID>\n" "Shows the location of a certain mob on the current map." +who: "Params: [<name>]\n" "Shows a list of online players and their party and guild." +who2: "Params: [<name>]\n" "Shows a list of online players and their job." +who3: "Params: [<name>]\n" "Shows a list of online players and their location." +whomap: "@whomap/@whomap2/@whomap3 [map] - like @who/@who2/@who3 but only for specified map." +whogm: "Params: [match_text] - Like @who+@who2+who3, but only for GM." +guildspy: "Params: <guild name|id> - You will receive all messages of the guild channel (Chat logging must be enabled)" +partyspy: "@partyspy <party name|id> - You will receive all messages of the party channel (Chat logging must be enabled)" +mapinfo: "Params: [<0-3> [map]] - Give information about a map (general info +: 0: no more, 1: players, 2: NPC, 3: shops/chat)." +go: "Params: <city name|number>\n" "Warps you to a city.\n" + " -3: (Memo point 2) 14: louyang 31: mora\n" + " -2: (Memo point 1) 15: start point 32: dewata\n" + " -1: (Memo point 0) 16: prison/jail 33: malangdo island\n" + " 0: prontera 17: jawaii 34: malaya port\n" + " 1: morocc 18: ayothaya 35: eclage\n" + " 2: geffen 19: einbroch\n" + " 3: payon 20: lighthalzen\n" + " 4: alberta 21: einbech\n" + " 5: izlude 22: hugel\n" + " 6: aldebaran 23: rachel\n" + " 7: xmas (lutie) 24: veins\n" + " 8: comodo 25: moscovia\n" + " 9: yuno 26: midgard camp\n" + " 10: amatsu 27: manuk\n" + " 11: gonryun 28: splendide\n" + " 12: umbala 29: brasilis\n" + " 13: niflheim 30: el dicastes\n" +jumpto: "Params: <char name>\n" "Warps you to selected character." +follow: "Params: <char name>\n" "Follow a player." +mount: "Give/remove you a peco (Class is required, but not skill)" +disguise: "Params: <monster name|ID>\n" "Change your appearence to other players to a mob." +undisguise: "Restore your normal appearance." +disguiseguild: "Disguises all online characters of a guild." +undisguiseguild: "Restore the normal appearance of all characters of a guild." +model: "Params: <hair ID: 0-17> <hair color: 0-8> <clothes color: 0-4> - Changes your characters appearence." +size: "Params: <1-3> Changes your size (1-Smallest 2-Biggest 3-Normal)" +sizeall: "Changes the size of all players." +sizeguild: "Changes the size of all online characters of a guild." +hide: "Makes you character invisible (GM invisibility). Type again to become visible." +save: "Sets respawn point to current spot." +load: "Warps you to your save point." +warp: "Params: <mapname> [<x> <y>]\n" "Warps you to the selected map and position." +jump: "Params: [<x> [<y>]]\n" "Randomly warps you like a flywing." +jobchange: "Params: <job name|ID>\n" "Changes your job.\n" + "----- Novice / 1st Class -----\n" + " 0 Novice 1 Swordman 2 Magician 3 Archer\n" + " 4 Acolyte 5 Merchant 6 Thief\n" + "----- 2nd Class -----\n" + " 7 Knight 8 Priest 9 Wizard 10 Blacksmith\n" + " 11 Hunter 12 Assassin 14 Crusader 15 Monk\n" + " 16 Sage 17 Rogue 18 Alchemist 19 Bard\n" + " 20 Dancer\n" + "----- High Novice / High 1st Class -----\n" + "4001 Novice High 4002 Swordman High 4003 Magician High 4004 Archer High\n" + "4005 Acolyte High 4006 Merchant High 4007 Thief High\n" + "----- Transcendent 2nd Class -----\n" + "4008 Lord Knight 4009 High Priest 4010 High Wizard 4011 Whitesmith\n" + "4012 Sniper 4013 Assassin Cross 4015 Paladin 4016 Champion\n" + "4017 Professor 4018 Stalker 4019 Creator 4020 Clown\n" + "4021 Gypsy\n" + "----- 3rd Class (Regular) -----\n" + "4054 Rune Knight 4055 Warlock 4056 Ranger 4057 Arch Bishop\n" + "4058 Mechanic 4059 Guillotine Cross 4066 Royal Guard 4067 Sorcerer\n" + "4068 Minstrel 4069 Wanderer 4070 Sura 4071 Genetic\n" + "4072 Shadow Chaser\n" + "----- 3rd Class (Transcendent) -----\n" + "4060 Rune Knight 4061 Warlock 4062 Ranger 4063 Arch Bishop\n" + "4064 Mechanic 4065 Guillotine Cross 4073 Royal Guard 4074 Sorcerer\n" + "4075 Minstrel 4076 Wanderer 4077 Sura 4078 Genetic\n" + "4079 Shadow Chaser\n" + "----- Expanded Class -----\n" + " 23 Super Novice 24 Gunslinger 25 Ninja 4045 Super Baby\n" + "4046 Taekwon 4047 Star Gladiator 4049 Soul Linker 4050 Gangsi\n" + "4051 Death Knight 4052 Dark Collector 4190 Ex. Super Novice 4191 Ex. Super Baby\n" + "4211 Kagerou 4212 Oboro 4215 Rebellion 4218 Summoner\n" + "----- Baby Novice And Baby 1st Class -----\n" + "4023 Baby Novice 4024 Baby Swordman 4025 Baby Magician 4026 Baby Archer\n" + "4027 Baby Acolyte 4028 Baby Merchant 4029 Baby Thief\n" + "---- Baby 2nd Class ----\n" + "4030 Baby Knight 4031 Baby Priest 4032 Baby Wizard 4033 Baby Blacksmith\n" + "4034 Baby Hunter 4035 Baby Assassin 4037 Baby Crusader 4038 Baby Monk\n" + "4039 Baby Sage 4040 Baby Rogue 4041 Baby Alchemist 4042 Baby Bard\n" + "4043 Baby Dancer\n" + "---- Baby 3rd Class ----\n" + "4096 Baby Rune Knight 4097 Baby Warlock 4098 Baby Ranger 4099 Baby Arch Bishop\n" + "4100 Baby Mechanic 4101 Baby Glt. Cross 4102 Baby Royal Guard 4103 Baby Sorcerer\n" + "4104 Baby Minstrel 4105 Baby Wanderer 4106 Baby Sura 4107 Baby Genetic\n" + "4108 Baby Shadow Chaser\n" + "---- Modes And Others ----\n" + " 22 Wedding 26 Christmas 27 Summer 4048 Star Gladiator (Union)\n" +option: "Params: <param1> <param2>(stackable) <param3>(stackable)\n" "Adds different visual effects on or around your character.\n" +" <param1> <param2> <param3>\n" +"01: Stone 01: Sight 01: Sight 512: Cart Lv. 4\n" +"02: Frozen 02: Curse 02: Hiding 1024: Cart Lv. 5\n" +"03: Stun 04: Silence 04: Cloaking 2048: Orc Head\n" +"04: Sleep 08: Signum 08: Cart Lv. 1 4096: Wedding\n" +"06: Petrify 16: Blind 16: Falcon 8192: Ruwach\n" +"07: Burning 32: Angelus 32: Riding 16384: Chasewalk\n" +"08: Imprison 64: Bleeding 64: Invisible\n" +"16: (Nothing) 128: D. Poison 128: Cart Lv. 2\n" +"32: (Nothing) 256: Fear 256: Cart Lv. 3" +heal: "Params: [<HP> <SP>]\n" "Heals the desired amount of HP and SP. No value specified will do a full heal." +dye: "Params: <clothes palette no.>\n" "Changes your characters clothes color." +hairstyle: "Params: <hairstyle no.>\n" "Changes your hair style." +haircolor: "Params <hair palette no.>\n" "Changes your hair color." +speed: "Params: <1-1000>\n" "Changes you walking speed. 1 being the fastest and 1000 the slowest. Default is 150." +effect: "Params: <effect id> [<flag>]\n" "Give an effect to your character." +dropall: "Throws all your possession on the ground." +storeall: "Puts all your possessions in storage." +killable: "Make your character killable." +memo: "Params: [memo position]\n" "Set/change a memo location (no position: display memo points)." +spiritball: "Params: <1-100>\n" "Gives you \"spirit spheres\" like from the skill \"Call Spirits\".\n" +questskill: "Params: <#>\n" "Gives you the specified quest skill\n" +"Novice = 142: First Aid, 143: Act Dead\n" +"Archer = 147: Create Arrow, 148: Charge Arrow\n" +"Swordman = 144: Moving HP Recovery, 145: Attack Weak Point, 146: Auto Berserk\n" +"Acolyte = 156: Holy Light\n" +"Thief = 149: Throw Sand, 150: Back Sliding, 151: Take Stone, 152: Throw Stone\n" +"Merchant = 153: Cart Revolution, 154: Change Cart, 155: Crazy Uproar, 2535: Open Buying Store\n" +"Magician = 157: Energy Coat\n" +"Hunter = 1009: Phantasmic Arrow\n" +"Bard = 1010: Pang Voice\n" +"Dancer = 1011: Wink of Charm\n" +"Knight = 1001: Charge Attack\n" +"Crusader = 1002: Shrink\n" +"Priest = 1014: Redemptio\n" +"Monk = 1015: Ki Translation, 1016: Ki Explosio\n" +"Assassin = 1003: Sonic Acceleration, 1004: Throw Venom Knife\n" +"Rogue = 1005: Close Confine\n" +"Blacksmith = 1012: Unfair Trick, 1013: Greed\n" +"Alchemist = 238: Basis of Life\n" +"Wizard = 1006: Sight Blaster\n" +"Sage = 1007: Create Elemental Converter, 1008: Elemental Change (Water), 1017: Elemental Change (Earth), 1018: Elemental Change (Fire), 1019: Elemental Change (Wind)" +lostskill: "Params: <#>\n" "Takes away the specified quest skill from you\n" +"Novice = 142: First Aid, 143: Act Dead\n" +"Archer = 147: Create Arrow, 148: Charge Arrow\n" +"Swordman = 144: Moving HP Recovery, 145: Attack Weak Point, 146: Auto Berserk\n" +"Acolyte = 156: Holy Light\n" +"Thief = 149: Throw Sand, 150: Back Sliding, 151: Take Stone, 152: Throw Stone\n" +"Merchant = 153: Cart Revolution, 154: Change Cart, 155: Crazy Uproar, 2535: Open Buying Store\n" +"Magician = 157: Energy Coat\n" +"Hunter = 1009: Phantasmic Arrow\n" +"Bard = 1010: Pang Voice\n" +"Dancer = 1011: Wink of Charm\n" +"Knight = 1001: Charge Attack\n" +"Crusader = 1002: Shrink\n" +"Priest = 1014: Redemptio\n" +"Monk = 1015: Ki Translation, 1016: Ki Explosio\n" +"Assassin = 1003: Sonic Acceleration, 1004: Throw Venom Knife\n" +"Rogue = 1005: Close Confine\n" +"Blacksmith = 1012: Unfair Trick, 1013: Greed\n" +"Alchemist = 238: Basis of Life\n" +"Wizard = 1006: Sight Blaster\n" +"Sage = 1007: Create Elemental Converter, 1008: Elemental Change (Water), 1017: Elemental Change (Earth), 1018: Elemental Change (Fire), 1019: Elemental Change (Wind)" +skillid: "Params: <name>\n" "Look up a skill by name" +useskill: "Params: <skillid> <skillv> <target>\n" "Use a skill on target" +skilltree: "Params: <skillnum> <charname>\n" "Prints the skill tree needed to get a skill for the target player." +marry: "Params: <player name>\n" "Marry another player." +divorce: "Divorce player." +alive: "Revives yourself from death." +blvl: "Params: <number of levels>\n" "Raises your base level the desired number of levels." +jlvl: "Params: <number of levels>\n" "Raises your job level the desired number of levels." +allskill: "Give you all skills." +stpoint: "Params: <number of points> - Gives you the desired number of stat points." +skpoint: "Params: <number of points> - Gives you the desired number of skill points." +zeny: "Params: <amount> - Gives you desired amount of Zeny." +cash: "Params: <amount> - Gives you the specified amount of cash points." +points: "Params: <amount> - Gives you the specified amount of Kafra Points." +str: "Params: <amount>\n" "Raises STR by given amount." +agi: "Params: <amount>\n" "Raises AGI by given amount." +dex: "Params: <amount>\n" "Raises DEX by given amount." +vit: "Params: <amount>\n" "Raises VIT by given amount." +int: "Params: <amount>\n" "Raises INT by given amount." +luk: "Params: <amount>\n" "Raises LUK by given amount." +allstats: "Params: <value>\n" "Adds value in all stats (maximum if no value)." +addwarp: "Params: <map name> <x coord> <y coord>\n" +killmonster2: "Kills all monsters of your map (without drops)." +monster: "Params: <monster name|ID> [<number to spawn> [<desired_monster_name> [<x coord> [<y coord>]]]]\n" + "@monster2 <desired_monster_name> <monster name|ID> [<number to spawn> [<x coord> [<y coord>]]]\n" +"@spawn/@monster/@summon/@monster2 \"desired monster name\" <monster name|ID> [<number to spawn> [<x coord> [<y coord>]]]\n" +"@spawn/@monster/@summon/@monster2 <monster name|ID> \"desired monster name\" [<number to spawn> [<x coord> [<y coord>]]]\n" +" Spawns the desired monster with any desired name." +monstersmall: "Params: <monster name|ID>\n" "Spawns a smaller version of a monster." +monsterbig: "Params: <monster name|ID>\n" "Spawns a larger version of a monster." +killmonster: "Params: <map>\n" "Kill all monsters of the map (they drop)" +autoloot: "Params: <on|off|#>\n" "Makes items go straight into your inventory." +autotrade: "Allows you to vend while you are offline." +changegm: "Params: <charname>\n" "Changes the leader of your guild (You must be guild leader)" +changeleader: "Params: <charname>\n" "Changes the leader of your party (You must be party leader)" +request: "Params: <message>\n" "Sends a message to all connected GMs (via the gm whisper system)" +sound: "Params: <path to file in data folder or GRF file>\n" "Plays a sound from the data folder or GRF file located on the client." +clone: "Params: <charname>\n" "Spawns a supportive clone of the given player." +slaveclone: "Params: <charname>\n" "Spawns a supportive clone of the given player that follows the creator around." +evilclone: "Params: <charname>\n" "Spawns an aggressive clone of the given player." +changesex: "Changes your gender." +duel: "Starts a duel." +invite: "Invites a player to a duel." +accept: "Accepts an invitation to a duel." +reject: "Rejects an invitation to a duel." +leave: "Leaves a duel." +mail: "Open mail box." +storage: "Opens storage." +itemreset: "Remove all your items." +guildstorage: "Opens guild storage." +idsearch: "Params: <part_of_item_name>\n" "Search all items that name have part_of_item_name" +refine: "Params: <equip position> <+/- amount>" +produce: "Params: <equip name or equip ID> <element> <# of very's>\n" +" Element: 0=None 1=Ice 2=Earth 3=Fire 4=Wind\n" +" You can add up to 3 Star Crumbs and 1 element\n" +repairall: "Repair all items of your inventory" +item: "Params: <item name or ID> <quantity>\n" "Gives you the desired item." +item2: "Params: <item name or ID> <quantity> <identified_flag> <refine> <broken_flag> <Card1> <Card2> <Card3> <Card4>\n" "Gives you the desired item." +pvpon: "Turns pvp on on the current map" +pvpoff: "Turns pvp off on the current map" +gvgon: "Turns gvg on on the current map" +gvgoff: "Turns gvg off on the current map" +agitstart: "Starts War of Emperium" +agitend: "End War of Emperium" +party: "Params: <party_name>\n" "Create a party." +guild: "Params: <guild_name>\n" "Create a guild." +glvl: "Params: <# of levels>\n" "Raise Guild by desired number of levels" +guildrecall: "Params: <guild name|ID>\n" "Warps all online characters of a guild to you." +partyrecall: "Params: <party name|ID>\n" "Warps all online characters of a party to you." +petrename: "Re-enable pet rename" +pettalk: "Params: <message>\n" "Makes your pet say a message." +petfriendly: "Params: <#>\n" "Set pet friendly amount (0-1000) 1000 = Max" +pethungry: "Params: <#>\n" "Set pet hungry amount (0-100) 100 = Max" +hatch: "Create a pet from your inventory eggs list." +makeegg: "Params: <pet_id>\n" "Gives pet egg for monster number in pet DB" +kick: "Params: <char name>\n" "Kicks specified character off the server" +unjail: "Params: <char name>\n" "Discharges specified character/prisoner" +kill: "Params: <char name>\n" "Kills player." +recall: "Params: <char name>\n" "Warps target character to you." +raise: "Params: <char name>\n" "Revives target character." +block: "Params: <char name>\n" "Permanently blocks an account." +unblock: "Params: <char name>\n" "Unblocks an account." +ban: "Params: <time> <name>\n" "Temporarily ban an account.\n" + " time usage: adjustment (+/- value) and element (y/a, m, d/j, h, mn, s)\n" + " Example: @ban +1m-2mn1s-6y testplayer\n" +unban: "Params: <name> - Unban a account" +jail: "Params: <char name> - Sends specified character in jails" +trade: "Params: <char name> - Open a trade window with a another player" +recallall: "Warps every character online to you." +doom: "Kills all NON GM chars on the server." +doommap: "Kills all non GM characters on the map." +raisemap: "Resurrects all characters on the map." +night: "Enables night mode on all maps, all characters are affected." +day: "Disables night mode and restores regular lighting, all characters are affected." +skillon: "turn skills on for a map" +skilloff: "turn skills on for a map" +snow: "Makes all maps to have the snow weather effect." +clouds: "Makes all maps to have the cloudy weather effect." +clouds2: "Makes all maps to have another cloudy weather effect." +fog: "Makes all maps to have the fog weather effect." +fireworks: "Makes all maps to have the fireworks weather effect." +sakura: "Makes all maps to have the sakura weather effect." +leaves: "Makes all maps to have the leaves weather effect." +shownpc: "Params: <NPC name>\n" "Enable a NPC" +hidenpc: "Params: <NPC name>\n" "Disable a NPC" +loadnpc: "Params: <path to script>\n" "Load the specified script file path." +unloadnpc: "Params: <NPC name>\n" "Unload the specified NPC according to name." +adjgroup: "Params: <level> <char name> - Do a temporary adjustment of the GM level of a player" +kickall: "Kick all characters off the server" +mapexit: "Kick all players and shut down map-server." +reloaditemdb: "Reload item database." +reloadmobdb: "Reload monster database." +reloadquestdb: "Reload quest database." +reloadskilldb: "Reload skills definition database." +reloadscript: "Reload all scripts." +gat: "For debugging (you inspect around gat)" +send: "For debugging (packet variety)" +nuke: "Params: <char name>\n" "Blow somebody up, including those surrounding them." +autoloottype: "Manage a list of autolooting item types.\n" +" To add an item type to the list, use \"@autoloottype +<type name>\".\n" +" To remove an item type, use \"@autoloottype -<type name>\".\n" +" Type List: healing, usable, etc, weapon, armor, card, petegg, petarmor, ammo.\n" +" \"@autoloottype reset\" will clear your autoloottype list." diff --git a/conf/map/logs.conf b/conf/map/logs.conf new file mode 100644 index 000000000..4f3a8a4db --- /dev/null +++ b/conf/map/logs.conf @@ -0,0 +1,181 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +//= Hercules Log configuration file. +//========================================================================= +// Note 1: Value is a config switch (on/off, yes/no or 1/0) +// Note 2: Value is in percents (100 means 100%) +// Note 3: Value is a bit field. If no description is given, assume unit +// types (1: Pc, 2: Mob, 4: Pet, 8: Homun) +//========================================================================= + +map_log: { + // Enable Logs? (Note 3) + // 0x0000000 - Don't log at all + // 0x0000001 - (T) Log trades + // 0x0000002 - (V) Log vending transactions + // 0x0000004 - (P) Log items drop/picked by players + // 0x0000008 - (L) Log items drop/looted by monsters + // 0x0000010 - (S) Log NPC transactions (buy/sell) + // 0x0000020 - (N) Log Script transactions (items deleted/acquired through quests) + // 0x0000040 - (D) Log items stolen from mobs (Steal/Gank) + // 0x0000080 - (C) Log player-used items (consumables/pet&hom&merc food/items used for skills&attacks) + // 0x0000100 - (O) Log produced/ingredient items + // 0x0000200 - (U) Log MVP prize items + // 0x0000400 - (A) Log player created/deleted items (through @/# commands) + // 0x0000800 - (R) Log items placed/retrieved from storage. + // 0x0001000 - (G) Log items placed/retrieved from guild storage. + // 0x0002000 - (E) Log mail system transactions. + // 0x0004000 - (I) Log auction system transactions. + // 0x0008000 - (B) Log buying store transactions + // 0x0010000 - (X) Log other transactions + // 0x0020000 - (K) Log account bank transactions + // 0x0040000 - (Y) Divorce + // 0x0080000 - (Z) Roulette + // 0x0100000 - (W) Rental + // 0x0200000 - (Q) Card + // 0x0400000 - (J) Invalid in inventory + // 0x0800000 - (H) Invalid in cart + // 0x1000000 - (@) Egg + // 0x2000000 - (0) Quest + // 0x4000000 - (1) Skill + // 0x8000000 - (2) Refine + // Example: Log trades+vending+script items+created items: 1+2+32+1024 = 1059 + // Please note that moving items from inventory to cart and back is not logged by design. + enable: 0xFFFFFFF + + // Logging files/tables + // Following settings specify where to log to. If 'use_sql' is + // true, SQL tables are assumed, otherwise flat files. + database: { + // Use MySQL Logs? (Note 1) + use_sql: true + + // Flat files + // log_gm_db: "log/atcommandlog.log" + // log_branch_db: "log/branchlog.log" + // log_chat_db: "log/chatlog.log" + // log_mvpdrop_db: "log/mvplog.log" + // log_npc_db: "log/npclog.log" + // log_pick_db: "log/picklog.log" + // log_zeny_db: "log/zenylog.log" + // SQL tables + log_gm_db: "atcommandlog" + log_branch_db: "branchlog" + log_chat_db: "chatlog" + log_mvpdrop_db: "mvplog" + log_npc_db: "npclog" + log_pick_db: "picklog" + log_zeny_db: "zenylog" + } + + // Log Dead Branch Usage (Note 1) + log_branch: false + + // Track Zeny Changes + // Filter settings + // 0 - don't log; 1 - log any zeny changes; 2.....1000000 - minimal absolute logging zeny value + log_zeny: 0 + + // Log MVP Monster Drops (Note 1) + // Outdated. Use Pick_Log instead. But this log could be useful to keep track slayed MVPs + log_mvpdrop: false + + // Log AtCommands & Charcommands (Note 1) + // Only commands issued by player groups ('conf/groups.conf') with + // 'log_commands' setting set to 'true' will be logged. + log_commands: true + + // Log NPC 'logmes' commands (Note 1) + log_npc: false + + // Logging filters + filter: { + item: { + // Filters + // if any condition is true then the item will be logged + // 0 = Don't log at all + // 1 = Log any item + // Advanced Filter Bits by item type: || + // 0x002 - Healing items (0) + // 0x004 - Etc Items(3) + Arrows (10) + // 0x008 - Usable Items(2) + Lures,Scrolls(11) + Usable Cash Items(18) + // 0x010 - Weapon(4) + // 0x020 - Shields,Armor,Headgears,Accessories,etc(5) + // 0x040 - Cards(6) + // 0x080 - Pet Accessories(8) + Eggs(7) (well, monsters don't drop 'em but we'll use the same system for ALL logs) + // 0x100 - Log expensive items ( >= price_items_log) + // 0x200 - Log big amount of items ( >= amount_items_log) + // 0x400 - Log refined items (if their refine >= refine_items_log ) + // 0x800 - Log rare items (if their drop chance <= rare_items_log ) + // Examples: (log filters) + // log_filter: 1 = logs ANY items + // log_filter: 0x2 = logs only HEALING items + // log_filter: 0x4 = logs only Etc Items and Arrows + // log_filter: 0x40 = logs only Cards + // log_filter: 0x142 = logs only Healing items, Cards and those items which price is >= price_items_log + // log_filter: 0xff0 = logs all items (including all rare, big amount) except healing, etc, arrows and useble ones + log_filter: 1 + + // Log Items which Refine >= refine_items_log + refine_items_log: 5 + + // Log Items whith min drop rate <= rare_items_log + // 1 = 0.01%, 100 = 1% drop chance, etc + rare_items_log: 100 + + // don't log it if the current item buy price < price_items_log + price_items_log: 1000 + + // don't log it if the current item amount < amount_items_log + amount_items_log: 100 + } // item + + chat: { + // Log CHAT (Global, Whisper, Party, Guild, Main chat) (Note 3) + // LOGGING FILTERS + // ============================================================= + // 0x00 = Don't log at all + // 0x01 - Log Global messages + // 0x02 - Log Whisper messages + // 0x04 - Log Party messages + // 0x08 - Log Guild messages + // 0x10 - Log Main chat messages + // Example: + // log_chat: 0x5 = logs both Whisper & Party messages + // log_chat: 0x8 = logs only Guild messages + // log_chat: 0x1f = logs everything + // FIXME: This isn't fully functional, as of now it's only checking + // if the log is active or not [Panikon] + log_chat: 0x1f + + // Disable chat logging when WoE is running? (Note 1) + log_chat_woe_disable: false + } // chat + } // filter +} + +import: "conf/import/logs.conf" diff --git a/conf/map/map-server.conf b/conf/map/map-server.conf new file mode 100644 index 000000000..a651c3570 --- /dev/null +++ b/conf/map/map-server.conf @@ -0,0 +1,113 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +//= Map Server Configuration File +//========================================================================= + +map_configuration: { + @include "conf/global/console.conf" + @include "conf/import/sql_connection.conf" + + // map_list and map_removed + @include "conf/map/maps.conf" + + // When @help or @h is typed when you are a gm, this is displayed for helping new gms understand gm commands. + help_txt: "conf/map/help.txt" + charhelp_txt: "conf/map/charhelp.txt" + + // Enable the @guildspy and @partyspy at commands? + // Note that enabling them decreases packet sending performance. + enable_spy: false + + // Read map data from GATs and RSWs in GRF files or a data directory + // as referenced by grf-files.txt rather than from the mapcache? + use_grf: false + + // When employing more than one language (see db/translations.conf), + // this setting is used as a fallback + default_language: "English" + + // Information related to inter-server behavior + inter: { + // Interserver communication passwords, set in the login server database + userid: "s1" + passwd: "p1" + + // Character Server IP + // The map server connects to the character server using this IP address. + // NOTE: This is useful when you are running behind a firewall or are on + // a machine with multiple interfaces. + //char_ip: "127.0.0.1" + + // The map server listens on the interface with this IP address. + // NOTE: This allows you to run multiple servers on multiple interfaces + // while using the same ports for each server. + //bind_ip: "127.0.0.1" + + // Map Server IP + // The IP address which clients will use to connect. + // Set this to what your server's public IP address is. + //map_ip: "127.0.0.1" + + @include "conf/import/ports.conf" + } + + database: { + // Where should all database data be read from? + db_path: "db" + + // Database autosave time + // All characters are saved on this time in seconds (example: + // autosave of 60 secs with 60 characters online -> one char is + // saved every second) + autosave_time: 300 + + // Min database save intervals (in ms) + // Prevent saving characters faster than at this rate (prevents + // char-server save-load getting too high as character-count + // increases) + minsave_time: 100 + + // Apart from the autosave_time, players will also get saved + // when involved in the following (add as needed): + // 0x001: After every successful trade + // 0x002: After every vending transaction + // 0x004: After closing storage/guild storage. + // 0x008: After hatching/returning to egg a pet. + // 0x010: After successfully sending a mail with attachment + // 0x020: After successfully submitting an item for auction + // 0x040: After successfully get/delete/complete a quest + // 0x080: After every buying store transaction + // 0x100: After every bank transaction (deposit/withdraw) + // NOTE: These settings decrease the chance of dupes/lost items + // when there's a server crash at the expense of increasing the + // map/char server lag. If your server rarely crashes, but + // experiences interserver lag, you may want to set these off. + save_settings: 0x1ff + } +} + +import: "conf/import/map-server.conf" diff --git a/conf/map/maps.conf b/conf/map/maps.conf new file mode 100644 index 000000000..2eccce590 --- /dev/null +++ b/conf/map/maps.conf @@ -0,0 +1,78 @@ +map_removed: ( +) +map_list: ( + "000-0-0", + "000-0-1", + "000-0", + "000-1", + "000-2-0", + "000-2-1", + "000-2-2", + "000-2-3", + "000-2-4", + "001-1", + "001-2-0", + "001-2-1", + "001-2-10", + "001-2-11", + "001-2-12", + "001-2-13", + "001-2-14", + "001-2-15", + "001-2-16", + "001-2-17", + "001-2-18", + "001-2-19", + "001-2-2", + "001-2-20", + "001-2-21", + "001-2-22", + "001-2-23", + "001-2-24", + "001-2-25", + "001-2-26", + "001-2-27", + "001-2-28", + "001-2-29", + "001-2-3", + "001-2-30", + "001-2-31", + "001-2-32", + "001-2-33", + "001-2-34", + "001-2-35", + "001-2-36", + "001-2-37", + "001-2-38", + "001-2-39", + "001-2-4", + "001-2-40", + "001-2-41", + "001-2-42", + "001-2-5", + "001-2-6", + "001-2-7", + "001-2-8", + "001-2-9", + "001-3-0", + "001-3-1", + "008-1", + "008-2-0", + "008-2-1", + "008-2-10", + "008-2-11", + "008-2-12", + "008-2-13", + "008-2-14", + "008-2-2", + "008-2-3", + "008-2-4", + "008-2-5", + "008-2-6", + "008-2-7", + "008-2-8", + "008-2-9", + "029-1", + "test", + "testbg", +) diff --git a/conf/map/script.conf b/conf/map/script.conf new file mode 100644 index 000000000..78514e637 --- /dev/null +++ b/conf/map/script.conf @@ -0,0 +1,64 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2016 Hercules Dev Team +//= +//= Hercules is free software: you can redistribute it and/or modify +//= it under the terms of the GNU General Public License as published by +//= the Free Software Foundation, either version 3 of the License, or +//= (at your option) any later version. +//= +//= This program is distributed in the hope that it will be useful, +//= but WITHOUT ANY WARRANTY; without even the implied warranty of +//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//= GNU General Public License for more details. +//= +//= You should have received a copy of the GNU General Public License +//= along with this program. If not, see <http://www.gnu.org/licenses/>. +//========================================================================= +//= Hercules Script Configuration File. +//========================================================================= + +script_configuration: { + // Specifies whether or not an error should be outputed when there's a + // mismatch between the number of provided arguments and of expected + // arguments + // Default: true + warn_func_mismatch_paramnum: true + + // Specifies whether or not each built-in function's arguments are + // checked for correct type. When a function is given an argument + // different from what it expects, a warning is thrown before the + // function is ran anyway. + // Default: true + warn_func_mismatch_argtypes: true + + // Maximum number of operations before considering a set of operations too intensive + // Defaults to 655360 + check_cmdcount: 655360 + + // Maximum number of iterations before considering a loop infinite + // Defaults to 2048 + check_gotocount: 2048 + + // Default value of the 'min' argument of the script command 'input'. + // When the 'min' argument isn't provided, this value is used instead. + // Defaults to 0. + //input_min_value: 0 + + // Default value of the 'max' argument of the script command 'input'. + // When the 'max' argument isn't provided, this value is used instead. + // Defaults to INT_MAX. + //input_max_value: 2147483647 + input_max_value: 10000000 +} + +import: "conf/import/script.conf" diff --git a/conf/messages.conf b/conf/messages.conf new file mode 100644 index 000000000..9a5d7eb49 --- /dev/null +++ b/conf/messages.conf @@ -0,0 +1,1548 @@ +//===== Hercules Message Configuration ======================= +//= Hercules messages.conf +//===== Description: ========================================= +//= This file handles all messages set throughout the server. +//============================================================ +// For translation, just change msg here (second line), +// no need to modify source code or alternatively, +// use conf/import/msg_conf.txt. +//============================================================ +// Format: +// // English message +// msg_number: translated message +//============================================================ + +// 0-499: reserved for GM commands +// 500-549: reserved for others +// 550-699: reserved for job names (also loaded by char server) +// 900-1500: @atcommand + +// To disable a string (%s) field, make its max length 0: +// eg: +// 270: *%s %s* (@me format) +// 270: *%.0s%s* (remove the character's name from it) + +// Messages of GM commands +// ----------------------- + +0: Warped. +1: Map not found. +2: Invalid coordinates, using random target cell. +3: Character not found. +4: Jump to %s +5: Jump to %d %d +6: Your save point has been changed. +7: Warping to save point. +8: Speed changed. +9: Options changed. +10: Invisible: Off +11: Invisible: On +12: Your job has been changed. +13: You've died. +14: Character killed. +15: Unknown +16: You've been revived! +17: HP, SP recovered. +18: Item created. +19: Invalid item ID or name. +20: All of your items have been removed. +21: Base level raised. +22: Base level lowered. +23: Job level can't go any higher. +24: Job level raised. +25: Job level lowered. +26: [%d] seconds left until you can use +27: Storage has been not loaded yet. +28: No player found. +29: 1 player found. +30: %d players found. +31: PvP Off. +32: PvP On. +33: GvG Off. +34: GvG On. +35: This job has no alternate body styles. +36: Appearance changed. +37: An invalid number was specified. +38: Invalid location number, or name. +39: All monsters summoned! +40: Invalid monster ID or name. +41: Unable to decrease the number/value. +42: Stat changed. +43: You're not in a guild. +44: You're not the master of your guild. +45: Guild level change failed. +46: %s recalled! +47: Base level can't go any higher. +48: Any work in progress (NPC dialog, manufacturing ...) quit and try again. +//49-52 FREE +53: '%s' stats: +54: No player found in map '%s'. +55: 1 player found in map '%s'. +56: %d players found in map '%s'. +//57-58 FREE +59: Night Mode Activated. +60: Day Mode Activated. +61: The holy messenger has given judgement. +62: Judgement has passed. +63: Mercy has been shown. +64: Mercy has been granted. +//65-69 FREE +70: You have learned the skill. +71: You have forgotten the skill. +72: War of Emperium has been initiated. +73: War of Emperium is currently in progress. +74: War of Emperium has been ended. +75: War of Emperium is currently not in progress. +76: All skills have been added to your skill tree. +77: Search results for '%s' (name: id): +78: %s: %d +79: %d results found. +80: Please specify a display name or monster name/id. +81: Your GM level doesn't authorize you to perform this action on the specified player. +//82-83 FREE +84: All stats changed! +85: Invalid time for ban command. +//86-87 FREE +88: Sending request to login server... +89: Night mode is already enabled. +90: Day mode is already enabled. +//91 FREE +92: All characters recalled! +93: All online characters of the %s guild have been recalled to your position. +94: Incorrect name/ID, or no one from the specified guild is online. +95: All online characters of the %s party have been recalled to your position. +96: Incorrect name/ID, or no one from the specified party is online. +97: Item database has been reloaded. +98: Monster database has been reloaded. +99: Skill database has been reloaded. +100: Scripts have been reloaded. +//101 FREE +102: You have mounted a Peco Peco. +103: No longer spying on the %s guild. +104: Spying on the %s guild. +105: No longer spying on the %s party. +106: Spying on the %s party. +107: All items have been repaired. +108: No item need to be repaired. +109: Player has been nuked! +110: NPC Enabled. +111: This NPC doesn't exist. +112: NPC Disabled. +113: %d item(s) removed by a GM. +114: %d item(s) removed from the player. +115: %d item(s) removed. Player had only %d on %d items. +116: Character does not have the specified item. +117: You have been jailed by a GM. +118: Player warped to jail. +119: This player is not in jail. +120: A GM has discharged you from jail. +121: Player unjailed. +122: Disguise applied. +123: Invalid Monster/NPC name/ID specified. +124: Disguise removed. +125: You're not disguised. +//Clone Messages +126: Cannot clone a player of higher GM level than yourself. +127: You've reached your slave clones limit. +128: Evil clone spawned. +129: Unable to spawn evil clone. +130: Clone spawned. +131: Unable to spawn clone. +132: Slave clone spawned. +133: Unable to spawn slave clone. +//134-142 FREE (possibly for other clone types) +143: Commands are disabled in this map. +144: Invalid e-mail. If your email hasn't been set, use a@a.com. +145: Invalid new e-mail. Please enter a real e-mail address. +146: New e-mail must be a real e-mail address. +147: New e-mail must be different from the current e-mail address. +148: Information sent to login-server via char-server. +149: Impossible to increase the number/value. +150: No GM found. +151: 1 GM found. +152: %d GMs found. +153: %s is Unknown Command. +154: %s failed. +155: You are unable to change your job. +156: HP or/and SP modified. +157: HP and SP have already been recovered. +158: Base level can't go any lower. +159: Job level can't go any lower. +160: PvP is already Off. +161: PvP is already On. +162: GvG is already Off. +163: GvG is already On. +//164 FREE +165: All monsters killed! +166: No item has been refined. +167: 1 item has been refined. +168: %d items have been refined. +169: The item (%d: '%s') is not equippable. +170: The item is not equippable. +171: %d - void +172: Speed returned to normal. +//173 FREE +174: Number of status points changed. +175: Number of skill points changed. +176: Current amount of zeny changed. +177: You cannot decrease that stat anymore. +178: You cannot increase that stat anymore. +179: Guild level changed. +180: The monster/egg name/ID doesn't exist. +181: You already have a pet. +182: Pet intimacy changed. +183: Pet intimacy is already at maximum. +184: Sorry, but you have no pet. +185: Pet hunger changed. +186: Pet hunger is already at maximum. +187: You can now rename your pet. +188: You can already rename your pet. +//189-194 FREE +195: All players have been kicked! +196: You already have this quest skill. +197: This skill number doesn't exist or isn't a quest skill. +198: This skill number doesn't exist. +//199-200 FREE +201: You don't have this quest skill. +//202-203 FREE +204: You can't open a shop on this cell. +205: Maybe you meant: +206: '%s' skill points reset. +207: '%s' stats points reset. +208: '%s' skill and stat points have been reset. +//209-211 FREE +212: Cannot mount while in disguise. +213: You need %s to mount! +214: You have released your Peco Peco. +215: Your class can't mount! +//216-218 FREE +219: %d day +220: %d days +221: %d hour +222: %d hours +223: %d minute +224: %d minutes +225: and %d second +226: and %d seconds +227: Party modification is disabled in this map. +228: Guild modification is disabled in this map. +229: Your effect has changed. +230: Server time (normal time): %A, %B %d %Y %X. +231: Game time: The game is in permanent daylight. +232: Game time: The game is in permanent night. +233: Game time: The game is in night for %s. +//234 FREE +235: Game time: The game is in daylight for %s. +//236 FREE +237: Game time: After, the game will be in night for %s. +238: Game time: A day cycle has a normal duration of %s. +239: Game time: After, the game will be in daylight for %s. +240: %d monster(s) summoned! +241: You can now attack and kill players freely. +242: You can now be attacked and killed by players. +243: Skills have been disabled in this map. +244: Skills have been enabled in this map. +245: Server Uptime: %ld days, %ld hours, %ld minutes, %ld seconds. +246: Your GM level doesn't authorize you to perform this action. +247: You are not authorized to warp to this map. +248: You are not authorized to warp from your current map. +249: You are not authorized to warp to your save map. +250: You have already opened your storage. Close it first. +251: You have already opened your guild storage. Close it first. +252: You are not in a guild. +253: You already are at your destination! +254: GM command configuration has been reloaded. +255: Battle configuration has been reloaded. +256: Status database has been reloaded. +257: Player database has been reloaded. +258: Sent packet 0x%x (%d) +259: Invalid packet +260: This item cannot be traded. +261: Script could not be loaded. +262: Script loaded. +263: This item cannot be dropped. +264: This item cannot be stored. +265: %s has bought your item(s). +266: Some of your items cannot be vended and were removed from the shop. +//267-268 FREE +269: Displaying first %d out of %d matches +//@me output format +270: * :%s %s: * +271: You can't drop items in this map +272: You can't trade in this map +273: Available commands: +274: %d commands found. +//275 FREE +276: You can't open a shop in this map +277: Usage: @request <petition/message to online GMs>. +278: (@request): %s +279: @request sent. +280: Invalid name. +281: You can't create chat rooms in this map +//Party-related +282: You need to be a party leader to use this command. +283: Target character must be online and in your current party. +284: Leadership transferred. +285: You've become the party leader. +286: There's been no change in the setting. +287: You cannot change party leaders in this map. +//Missing stuff for @killer related commands. +288: You are no longer killable. +//289-290 FREE +291: Weather effects will disappear after teleporting or refreshing. +292: Killer state reset. +//Item Bind System +293: This bound item cannot be traded to that character. +294: This bound item cannot be stored there. +295: Please enter an item name or ID (usage: @itembound <item name/ID> <quantity> <bound_type>). +296: Please enter all parameters (usage: @itembound2 <item name/ID> <quantity> +297: <identify_flag> <refine> <attribute> <card1> <card2> <card3> <card4> <bound_type>). +298: Invalid bound type. Valid types are - 1:Account 2:Guild 3:Party 4:Character +//299 FREE +// Guild Castles Number +// -------------------- +300: None Taken +301: One Castle +302: Two Castles +303: Three Castles +304: Four Castles +305: Five Castles +306: Six Castles +307: Seven Castles +308: Eight Castles +309: Nine Castles +310: Ten Castles +311: Eleven Castles +312: Twelve Castles +313: Thirteen Castles +314: Fourteen Castles +315: Fifteen Castles +316: Sixteen Castles +317: Seventeen Castles +318: Eighteen Castles +319: Nineteen Castles +320: Twenty Castles +321: Twenty-One Castles +322: Twenty-Two Castles +323: Twenty-Three Castles +324: Twenty-Four Castles +325: Twenty-Five Castles +326: Twenty-Six Castles +327: Twenty-Seven Castles +328: Twenty-Eight Castles +329: Twenty-Nine Castles +330: Thirty Castles +331: Thirty-One Castles +332: Thirty-Two Castles +333: Thirty-Three Castles +// 334: Thirty-Four Castles +334: Total Domination + +//335-342 FREE + +// Templates for @who output +343: Name: %s +344: (%s) +345: | Party: '%s' +346: | Guild: '%s' +//You may omit the last %s, then you won't see players job name +347: | Lv:%d/%d | Job: %s +//You may omit 2 last %d, then you won't see players coordinates, just map name +348: | Location: %s %d %d +//349 FREE + +// @duel +350: Duel| You can't use @invite. You aren't a duelist. +351: Duel| The limit of players has been reached. +352: Duel| Player name not found. +353: Duel| The Player is in the duel already. +354: Duel| Invitation has been sent. +355: Duel| You can't use @duel without @reject. +356: Duel| You can take part in duel once per %d minutes. +357: Duel| Invalid value. +358: Duel| You can't use @leave. You aren't a duelist. +359: Duel| You've left the duel. +360: Duel| You can't use @accept without a duel invitation. +361: Duel| The duel invitation has been accepted. +362: Duel| You can't use @reject without a duel invitation. +363: Duel| The duel invitation has been rejected. +364: Duel| You can't invite %s because he/she isn't in the same map. +365: Duel| Can't use %s in duel. +//366-369 FREE +370: -- Duels: %d/%d, Members: %d/%d, Max players: %d -- +371: -- Duels: %d/%d, Members: %d/%d -- +372: -- Duel has been created (Use @invite/@leave) -- +373: -- Player %s invites %s to duel -- +374: Blue -- Player %s invites you to PVP duel (Use @accept/@reject) -- +375: <- Player %s has left the duel -- +376: -> Player %s has accepted the duel -- +377: -- Player %s has rejected the duel -- +//378-385 FREE +// Main chat +386: %s :Main: %s +//387-389 FREE +//NoAsk +390: Autorejecting is activated. +391: Autorejecting is deactivated. +392: You request has been rejected by autoreject option. +393: Autorejected trade request from %s. +394: Autorejected party invite from %s. +395: Autorejected guild invite from %s. +396: Autorejected alliance request from %s. +397: Autorejected opposition request from %s. +398: Autorejected friend request from %s. +//399 FREE +400: Usage: @jailfor <time> <character name> +//401 FREE +402: %s in jail for %d years, %d months, %d days, %d hours and %d minutes +// WoE SE (@agitstart2) +403: War of Emperium SE has been initiated. +404: War of Emperium SE is currently in progress. +405: War of Emperium SE has been ended. +406: War of Emperium SE is currently not in progress. +//407 FREE +//chrif related +408: Disconnecting to perform change-sex request... +409: Your sex has been changed (disconnection required to complete the process)... +//410-411 used by cash shop +412: Your account is 'Unregistered'. +413: Your account has an 'Incorrect Password'... +414: Your account has expired. +415: Your account has been rejected from server. +416: Your account has been blocked by the GM Team. +417: Your Game's EXE file is not the latest version. +418: Your account has been prohibited to log in. +419: Server is jammed due to overpopulation. +420: Your account is no longer authorized. +421: Your account has been totally erased. +//422 FREE +423: Your account has been banished until +424: Login-server has been asked to %s the player '%.*s'. +425: The player '%.*s' doesn't exist. +426: Your GM level doesn't authorize you to %s the player '%.*s'. +427: Login-server is offline. Impossible to %s the player '%.*s'. +428: block +429: ban +430: unblock +431: unban +432: change the sex of +433: This character has been banned until +434: Char-server has been asked to %s the character '%.*s'. +//435-449 FREE +// Homunculus messages +450: You already have a homunculus + +// Return pet to egg message +451: You can't return your pet because your inventory is full. +//452-497 FREE + +// Messages of others (not for GM commands) +// ---------------------------------------- + +// @itembound / @itembound2 +498: Cannot create bound pet eggs or pet armors. + +//499-500 FREE +501: Your account time limit is: %d-%m-%Y %H:%M:%S. +502: Day Mode is activated +503: Night Mode is activated + +// Cash point change messages +504: Used %d Kafra points and %d cash points. %d Kafra and %d cash points remaining. +505: Gained %d cash points. Total %d points. +506: Gained %d Kafra points. Total %d points. +410: Removed %d cash points. Total %d points. +411: Removed %d Kafra points. Total %d points. + +// Trade Spoof Messages +507: This player has been banned for %d minute(s). +508: This player hasn't been banned (Ban option is disabled). +//509 FREE + +// mail system +//---------------------- +510: You have %d new emails (%d unread) +//511-537 FREE + +// Trade Spoof Messages +538: Hack on trade: character '%s' (account: %d) try to trade more items that he has. +539: This player has %d of a kind of item (id: %d), and tried to trade %d of them. +540: This player has been definitively blocked. +//541-545 FREE +// @showmobs +546: Please enter a mob name/id (usage: @showmobs <mob name/id>) +547: Invalid mob name %s! +// @clearcart +548: You can't clean a cart while vending! +// @Autotrade +549: You should have a shop open in order to use @autotrade. + +//550 -> 699: Job Names +550: Novice +551: Swordsman +552: Magician +553: Archer +554: Acolyte +555: Merchant +556: Thief +557: Knight +558: Priest +559: Wizard +560: Blacksmith +561: Hunter +562: Assassin +563: Crusader +564: Monk +565: Sage +566: Rogue +567: Alchemist +568: Bard +569: Dancer +570: Wedding +571: Super Novice +572: Gunslinger +573: Ninja +574: Christmas +575: High Novice +576: High Swordsman +577: High Magician +578: High Archer +579: High Acolyte +580: High Merchant +581: High Thief +582: Lord Knight +583: High Priest +584: High Wizard +585: Whitesmith +//585: Mastersmith //iRO name +586: Sniper +587: Assassin Cross +588: Paladin +589: Champion +590: Professor +//590: Scholar //iRO name +591: Stalker +592: Creator +//592: Biochemist //iRO Name +593: Clown +//593: Minstrel //iRO Name +594: Gypsy +595: Baby Novice +596: Baby Swordsman +597: Baby Magician +598: Baby Archer +599: Baby Acolyte +600: Baby Merchant +601: Baby Thief +602: Baby Knight +603: Baby Priest +604: Baby Wizard +605: Baby Blacksmith +606: Baby Hunter +607: Baby Assassin +608: Baby Crusader +609: Baby Monk +610: Baby Sage +611: Baby Rogue +612: Baby Alchemist +613: Baby Bard +614: Baby Dancer +615: Super Baby +616: Taekwon +617: Star Gladiator +618: Soul Linker +//619 FREE +620: Unknown Job +621: Summer +622: Gangsi +623: Death Knight +624: Dark Collector +625: Rune Knight +626: Warlock +627: Ranger +628: Arch Bishop +629: Mechanic +630: Guillotine Cross +631: Royal Guard +632: Sorcerer +633: Minstrel +//633: Maestro //iRO Name +634: Wanderer +635: Sura +636: Genetic +//636: Geneticist //iRO Name +637: Shadow Chaser +638: Baby Rune Knight +639: Baby Warlock +640: Baby Ranger +641: Baby Arch Bishop +642: Baby Mechanic +643: Baby Guillotine Cross +644: Baby Royal Guard +645: Baby Sorcerer +646: Baby Minstrel +647: Baby Wanderer +648: Baby Sura +649: Baby Genetic +650: Baby Shadow Chaser +651: Expanded Super Novice +652: Expanded Super Baby +653: Kagerou +654: Oboro +655: Rebellion + +656: Rune Knight T +657: Warlock T +658: Ranger T +659: Arch Bishop T +660: Mechanic T +661: Guillotine Cross T +662: Royal Guard T +663: Sorcerer T +664: Minstrel T +665: Wanderer T +666: Sura T +667: Genetic T +668: Shadow Chaser T +669: Summoner + +//670-853 FREE (please start using from the top if you need, leave the 670+ range for new jobs) + +// Mapflag to disable Autoloot Commands +854: Auto loot item are disabled on this map. + +// MVP exp message issue clients 2013-12-23cRagexe and newer. +855: Congratulations! You are the MVP! Your reward EXP Points are %u !! + +// MvP Tomb +856: Tomb +857: [ ^EE0000%s^000000 ] +858: Has met its demise +859: Time of death : ^EE0000%s^000000 +860: Defeated by +861: [^EE0000%s^000000] + +// Etc messages from source +862: You're too close to a NPC, you must be at least %d cells away from any NPC. +863: Duel| Can't use this item in duel. +864: You cannot use this command when dead. +865: Can't create chat rooms in this area. +866: Pets are not allowed in Guild Wars. +867: You're not dead. +868: Your current memo positions are: +869: You broke the target's weapon. +870: You can't leave battleground guilds. +871: Friend already exists. +872: Name not found in list. +873: This action can't be performed at the moment. Please try again later. +874: Friend removed. +875: Cannot send mails too fast!! +876: Alliances cannot be made during Guild Wars! +877: Alliances cannot be broken during Guild Wars! +878: You are no longer the Guild Master. +879: You have become the Guild Master! +880: You have been recovered! +881: Shop is out of stock! Come again later! +//882-899 FREE + +//------------------------------------ +// More atcommands message +//------------------------------------ + +// @send +900: Usage: +901: @send len <packet hex number> +902: @send <packet hex number> {<value>}* +903: Value: <type=B(default),W,L><number> or S<length>"<string>" +904: Packet 0x%x length: %d +905: Unknown packet: 0x%x +906: Not a string: +907: Not a hexadecimal digit: +908: Unknown type of value in: + +// @rura +909: Please enter a map (usage: @warp/@rura/@mapmove <mapname> <x> <y>). + +// @where +910: Please enter a player name (usage: @where <char name>). + +// @jumpto +911: Please enter a player name (usage: @jumpto/@warpto/@goto <char name/ID>). + +// @who +912: (CID:%d/AID:%d) + +// @whogm +913: Name: %s (GM) +914: Name: %s (GM:%d) | Location: %s %d %d +915: BLvl: %d | Job: %s (Lvl: %d) +916: Party: '%s' | Guild: '%s' +917: None + +// @speed +918: Please enter a speed value (usage: @speed <%d-%d>). + +// @storage +919: Storage opened. + +// @guildstorage +920: Guild storage opened. + +// @option +921: Please enter at least one option. + +//922 FREE + +// @jobchange +923: You can not change to this job by command. +//924-979 FREE + +// @kami +980: Please enter a message (usage: @kami <message>). +981: Please enter color and message (usage: @kamic <color> <message>). +982: Invalid color. + +// @item +983: Please enter an item name or ID (usage: @item <item name/ID> <quantity>). + +// @item2 +984: Please enter all parameters (usage: @item2 <item name/ID> <quantity>). +985: <identify_flag> <refine> <attribute> <card1> <card2> <card3> <card4>). + +// @baselevelup +986: Please enter a level adjustment (usage: @lvup/@blevel/@baselvlup <number of levels>). + +// @joblevelup +987: Please enter a level adjustment (usage: @joblvup/@jlevel/@joblvlup <number of levels>). + +// @help +988: There is no help for %c%s. +989: Help for command %c%s: +990: Available aliases: + +// @model +991: Please enter at least one value (usage: @model <hair ID: %d-%d> <hair color: %d-%d> <clothes color: %d-%d>). + +// @dye +992: Please enter a clothes color (usage: @dye/@ccolor <clothes color: %d-%d>). + +// @hairstyle +993: Please enter a hair style (usage: @hairstyle/@hstyle <hair ID: %d-%d>). + +// @haircolor +994: Please enter a hair color (usage: @haircolor/@hcolor <hair color: %d-%d>). + +//995 FREE + +// @refine +996: Please enter a position bitmask and an amount (usage: @refine <equip position> <+/- amount>). +997: %d: Lower Headgear +998: %d: Right Hand +999: %d: Garment +1000: %d: Left Accessory +1001: %d: Body Armor +1002: %d: Left Hand +1003: %d: Shoes +1004: %d: Right Accessory +1005: %d: Top Headgear +1006: %d: Mid Headgear + +// @produce +1007: Please enter at least one item name/ID (usage: @produce <equip name/ID> <element> <# of very's>). + +// @memo +1008: Please enter a valid position (usage: @memo <memo_position:%d-%d>). + +// @displaystatus +1009: Please enter a status type/flag (usage: @displaystatus <status type> <flag> <tick> {<val1> {<val2> {<val3>}}}). + +// @stpoint +1010: Please enter a number (usage: @stpoint <number of points>). + +// @skpoint +1011: Please enter a number (usage: @skpoint <number of points>). + +// @zeny +1012: Please enter an amount (usage: @zeny <amount>). + +// @param +1013: Please enter a valid value (usage: @str/@agi/@vit/@int/@dex/@luk <+/-adjustment>). + +// @guildlevelup +1014: Please enter a valid level (usage: @guildlvup/@guildlvlup <# of levels>). + +// @makeeg +1015: Please enter a monster/egg name/ID (usage: @makeegg <pet>). + +// @petfriendly +1016: Please enter a valid value (usage: @petfriendly <0-1000>). + +// @pethungry +1017: Please enter a valid number (usage: @pethungry <0-100>). + +// @recall +1018: Please enter a player name (usage: @recall <char name/ID>). +1019: You are not authorized to warp someone to this map. + +// @recall +1020: You are not authorized to warp this player from their map. + +// @block +1021: Please enter a player name (usage: @block <char name>). + +// @ban +1022: Please enter ban time and a player name (usage: @ban <time> <char name>). +1023: You are not allowed to reduce the length of a ban. + +// @unblock +1024: Please enter a player name (usage: @unblock <char name>). + +// @unban +1025: Please enter a player name (usage: @unban <char name>). + +// @kick +1026: Please enter a player name (usage: @kick <char name/ID>). + +// @questskill / @lostskill +1027: Please enter a quest skill ID. + +// @spiritball +1028: Please enter an amount (usage: @spiritball <number: 0-%d>). + +// @party +1029: Please enter a party name (usage: @party <party_name>). + +// @guild +1030: Please enter a guild name (usage: @guild <guild_name>). + +// @idsearch +1031: Please enter part of an item name (usage: @idsearch <part_of_item_name>). + +// @recallall / @guildrecall / @partyrecall +1032: You are not authorized to warp someone to your current map. +1033: Because you are not authorized to warp from some maps, %d player(s) have not been recalled. + +// @guildrecall +1034: Please enter a guild name/ID (usage: @guildrecall <guild_name/ID>). + +// @partyrecall +1035: Please enter a party name/ID (usage: @partyrecall <party_name/ID>). + +// @reloadatcommand +1036: Error reading groups.conf, reload failed. +1037: Error reading atcommand.conf, reload failed. + +// @mapinfo +1038: Please enter at least one valid list number (usage: @mapinfo <0-3> <map>). +1039: ------ Map Info ------ +1040: Map: %s (Zone:%s) | Players: %d | NPCs: %d | Chats: %d | Vendings: %d +1041: ------ Map Flags ------ +1042: Town Map +1043: Autotrade Enabled +1044: Autotrade Disabled +1045: Battlegrounds ON +1046: PvP Flags: +1047: Pvp ON | +1048: NoGuild | +1049: NoParty | +1050: NightmareDrop | +1051: NoCalcRank | +1052: GvG Flags: +1053: GvG ON | +1054: GvG Dungeon | +1055: GvG Castle | +1056: NoParty | +1057: Teleport Flags: +1058: NoTeleport | +1059: Monster NoTeleport | +1060: NoWarp | +1061: NoWarpTo | +1062: NoReturn | +1063: NoAutoloot | +1064: NoMemo | +1065: No Exp Penalty: %s | No Zeny Penalty: %s +1066: On +1067: Off +1068: No Save (Return to last Save Point) +1069: No Save, Save Point: %s,Random +1070: No Save, Save Point: %s,%d,%d +1071: Weather Flags: +1072: Snow | +1073: Fog | +1074: Sakura | +1075: Clouds | +1076: Clouds2 | +1077: Fireworks | +1078: Leaves | +1079: NoViewID | +1080: Displays Night | +1081: Other Flags: +1082: NoBranch | +1083: NoTrade | +1084: NoVending | +1085: NoDrop | +1086: NoSkill | +1087: NoIcewall | +1088: AllowKS | +1089: Reset | +1090: Other Flags: +1091: NoCommand | +1092: NoBaseEXP | +1093: NoJobEXP | +1094: NoMobLoot | +1095: NoMVPLoot | +1096: PartyLock | +1097: GuildLock | +1098: ----- Players in Map ----- +1099: Player '%s' (session #%d) | Location: %d,%d +1100: ----- NPCs in Map ----- +1101: North +1102: North West +1103: West +1104: South West +1105: South +1106: South East +1107: East +1108: North East +1109: North +1110: Unknown +1111: NPC %d: %s | Direction: %s | Sprite: %d | Location: %d %d +1112: NPC %d: %s::%s | Direction: %s | Sprite: %d | Location: %d %d +1113: ----- Chats in Map ----- +1114: Chat: %s | Player: %s | Location: %d %d +1115: Users: %d/%d | Password: %s | Public: %s +1116: Yes +1117: No +1118: Please enter at least one valid list number (usage: @mapinfo <0-3> <map>). + +// @mount +1119: You have mounted your Dragon. +1120: You have released your Dragon. +1121: You have mounted your Warg. +1122: You have released your Warg. +1123: You have mounted your Mado Gear. +1124: You have released your Mado Gear. + +// @guildspy +1125: The mapserver has spy command support disabled. +1126: Please enter a guild name/ID (usage: @guildspy <guild_name/ID>). + +// @partyspy +1127: Please enter a party name/ID (usage: @partyspy <party_name/ID>). + +// @nuke +1128: Please enter a player name (usage: @nuke <char name>). + +// @tonpc +1129: Please enter a NPC name (usage: @tonpc <NPC_name>). + +// @enablenpc +1130: Please enter a NPC name (usage: @enablenpc <NPC_name>). + +// @hidenpc +1131: Please enter a NPC name (usage: @hidenpc <NPC_name>). + +// @loadnpc +1132: Please enter a script file name (usage: @loadnpc <file name>). + +// @npcoff +1133: Please enter a NPC name (usage: @npcoff <NPC_name>). + +// @jail +1134: Please enter a player name (usage: @jail <char_name>). + +// @unjail +1135: Please enter a player name (usage: @unjail/@discharge <char_name>). + +// @jailfor +1136: Invalid time for jail command. +1137: You are now +1138: This player is now + +// @jailtime +1139: You are not in jail. +1140: You have been jailed indefinitely. +1141: You have been jailed for an unknown amount of time. +1142: You will remain + +// @disguise +1143: Please enter a Monster/NPC name/ID (usage: @disguise <name/ID>). +1144: Character cannot be disguised while mounted. + +// @disguiseall +1145: Please enter a Monster/NPC name/ID (usage: @disguiseall <name/ID>). + +// @disguiseguild +1146: Please enter a mob name/ID and guild name/ID (usage: @disguiseguild <mob name/ID>, <guild name/ID>). + +// @undisguiseguild +1147: Please enter guild name/ID (usage: @undisguiseguild <guild name/ID>). + +// @exp +1148: Base Level: %d (%.3f%%) | Job Level: %d (%.3f%%) + +// @broadcast +1149: Please enter a message (usage: @broadcast <message>). + +// @localbroadcast +1150: Please enter a message (usage: @localbroadcast <message>). + +// @email +1151: Please enter two e-mail addresses (usage: @email <current@email> <new@email>). + +// @effect +1152: Please enter an effect number (usage: @effect <effect number>). + +// @npcmove +1153: Usage: @npcmove <X> <Y> <npc_name> +1154: NPC is not in this map. +1155: NPC moved. + +// @addwarp +1156: Usage: @addwarp <mapname> <X> <Y> <npc name> +1157: Unknown map '%s'. +1158: New warp NPC '%s' created. + +// @follow +1159: Follow mode OFF. +1160: Follow mode ON. + +// @storeall +1161: You currently cannot open your storage. +1162: All items stored. + +// @skillid +1163: Please enter a skill name to look up (usage: @skillid <skill name>). +1164: skill %d: %s (%s) + +// @useskill +1165: Usage: @useskill <skill ID> <skill level> <target> + +// @displayskill +1166: Usage: @displayskill <skill ID> {<skill level>} + +// @skilltree +1167: Usage: @skilltree <skill ID> <target> +1168: Player is using %s skill tree (%d basic points). +1169: The player cannot use that skill. +1170: Player requires level %d of skill %s. +1171: The player meets all the requirements for that skill. + +// @marry +1172: Usage: @marry <char name> +1173: They are married... wish them well. +1174: The two cannot wed because one is either a baby or already married. + +// @divorce +1175: '%s' is not married. +1176: '%s' and his/her partner are now divorced. + +// @changelook +1177: Usage: @changelook {<position>} <view id> +1178: Position: 1:Top 2:Middle 3:Bottom 4:Weapon 5:Shield 6:Shoes 7:Robe 8:Body + +// @autotrade +1179: Autotrade is not allowed in this map. +1180: You cannot autotrade when dead. + +// @changegm +1181: You need to be a Guild Master to use this command. +1182: You cannot change guild leaders in this map. +1183: Usage: @changegm <guild_member_name> +1184: Target character must be online and be a guild member. + +// @changeleader +1185: Usage: @changeleader <party_member_name> + +// @partyoption +1186: Usage: @partyoption <pickup share: yes/no> <item distribution: yes/no> + +// @autoloot +1187: Autolooting items with drop rates of %0.02f%% and below. +1188: Autoloot is now off. + +// @autolootitem +1189: Item not found. +1190: You're already autolooting this item. +1191: Your autolootitem list is full. Remove some items first with @autolootid -<item name or ID>. +1192: Autolooting item: '%s'/'%s' {%d} +1193: You're currently not autolooting this item. +1194: Removed item: '%s'/'%s' {%d} from your autolootitem list. +1195: You can have %d items on your autolootitem list. +1196: To add an item to the list, use "@alootid +<item name or ID>". To remove an item, use "@alootid -<item name or ID>". +1197: "@alootid reset" will clear your autolootitem list. +1198: Your autolootitem list is empty. +1199: Items on your autolootitem list: +1200: Your autolootitem list has been reset. + +// @guildstorage +1201: Your guild's storage has already been opened by another member, try again later. + +//1202 FREE + +// @snow +1203: Snow has stopped falling. +1204: It has started to snow. + +// @sakura +1205: Cherry tree leaves no longer fall. +1206: Cherry tree leaves have begun to fall. + +// @clouds +1207: Clouds have disappeared. +1208: Clouds appeared. + +// @clouds2 +1209: Alternative clouds have disappeared. +1210: Alternative clouds appeared. + +// @fog +1211: The fog has gone. +1212: Fog hangs over. + +// @leaves +1213: Leaves have stopped falling. +1214: Leaves started falling. + +// @fireworks +1215: Fireworks have ended. +1216: Fireworks are launched. + +// @sound +1217: Please enter a sound filename (usage: @sound <filename>). + +// @mobsearch +1218: Please enter a monster name (usage: @mobsearch <monster name>). +1219: Invalid mob ID %s! +1220: Mob Search... %s %s + +// @cleanmap +1221: All dropped items have been cleaned up. + +// @npctalk +1222: Please enter the correct parameters (usage: @npctalk <npc name>, <message>). +1223: Please enter the correct parameters (usage: @npctalkc <color> <npc name>, <message>). + +// @pettalk +1224: Please enter a message (usage: @pettalk <message>). + +// @summon +1225: Please enter a monster name (usage: @summon <monster name> {duration}). + +// @adjgroup +1226: Usage: @adjgroup <group_id> +1227: Specified group does not exist. +1228: Group changed successfully. +1229: Your group has been changed. + +// @trade +1230: Please enter a player name (usage: @trade <char name>). + +// @setbattleflag +1231: Usage: @setbattleflag <flag> <value> +1232: Unknown battle_config flag. +1233: Set battle_config as requested. + +// @unmute +1234: Please enter a player name (usage: @unmute <char name>). +1235: Player is not muted. +1236: Player unmuted. + +// @mute +1237: Usage: @mute <time> <char name> + +// @identify +1238: There are no items to appraise. + +// @mobinfo +1239: Please enter a monster name/ID (usage: @mobinfo <monster_name_or_monster_ID>). +1240: MVP Monster: '%s'/'%s'/'%s' (%d) +1241: Monster: '%s'/'%s'/'%s' (%d) +1242: Lv:%d HP:%d Base EXP:%u Job EXP:%u HIT:%d FLEE:%d +1243: DEF:%d MDEF:%d STR:%d AGI:%d VIT:%d INT:%d DEX:%d LUK:%d +1244: ATK:%d~%d Range:%d~%d~%d Size:%s Race: %s Element: %s (Lv:%d) +1245: Drops: +1246: This monster has no drops. +1247: MVP Bonus EXP:%u +1248: MVP Items: +1249: This monster has no MVP prizes. + +// @showmobs +1250: Invalid mob id %s! +1251: Can't show boss mobs! +1252: Mob Search... %s %s + +// @homlevel +1253: Please enter a level adjustment (usage: @homlevel <number of levels>). + +// @homlevel / @homevolve / @homfriendly / @homhungry / @homtalk / @hominfo / @homstats +1254: You do not have a homunculus. + +// @homevolve +1255: Your homunculus doesn't evolve. + +// @makehomun +1256: Please enter a homunculus ID (usage: @makehomun <homunculus id>). +1257: Invalid Homunculus ID. + +// @homfriendly +1258: Please enter an intimacy value (usage: @homfriendly <intimacy value [0-1000]>). + +// @homhungry +1259: Please enter a hunger value (usage: @homhungry <hunger value [0-100]>). + +// @homtalk +1260: Please enter a message (usage: @homtalk <message>). + +// @hominfo +1261: Homunculus stats: +1262: HP: %d/%d - SP: %d/%d +1263: ATK: %d - MATK: %d~%d +1264: Hungry: %d - Intimacy: %u +1265: Stats: Str %d / Agi %d / Vit %d / Int %d / Dex %d / Luk %d + +// @homstats +1266: Homunculus growth stats (Lv %d %s): +1267: Max HP: %d (%d~%d) +1268: Max SP: %d (%d~%d) +1269: Str: %d (%d~%d) +1270: Agi: %d (%d~%d) +1271: Vit: %d (%d~%d) +1272: Int: %d (%d~%d) +1273: Dex: %d (%d~%d) +1274: Luk: %d (%d~%d) + +// @homshuffle +1275: Homunculus stats altered. + +// @iteminfo +1276: Please enter an item name/ID (usage: @ii/@iteminfo <item name/ID>). +1277: Item: '%s'/'%s'[%d] (%d) Type: %s | Extra Effect: %s +1278: None +1279: With script +1280: NPC Buy:%dz, Sell:%dz | Weight: %.1f +1281: - Available in shops only. +1282: - Maximal monsters drop chance: %02.02f%% +1283: - Monsters don't drop this item. + +// @whodrops +1284: Please enter item name/ID (usage: @whodrops <item name/ID>). +1285: Item: '%s'[%d] +1286: - Item is not dropped by any mobs. +1287: - Common mobs with highest drop chance (only max %d are listed): + +// @whereis +1288: Please enter a monster name/ID (usage: @whereis <monster_name_or_monster_ID>). +1289: %s spawns in: +1290: This monster does not spawn normally. + +// @mobinfo ... +1291: ATK:%d~%d MATK:%d~%d Range:%d~%d~%d Size:%s Race: %s Element: %s (Lv:%d) + +//1292-1293 FREE +//1294 used by hercules chat feature + +// @version +1295: %s revision '%s' (src) / '%s' (scripts) +1296: Hercules %d-bit for %s + +// @mutearea +1297: Please enter a time in minutes (usage: @mutearea/@stfu <time in minutes>). + +// @rates +1298: Experience rates: Base %.2fx / Job %.2fx +1299: Normal Drop Rates: Common %.2fx / Healing %.2fx / Usable %.2fx / Equipment %.2fx / Card %.2fx +1300: Boss Drop Rates: Common %.2fx / Healing %.2fx / Usable %.2fx / Equipment %.2fx / Card %.2fx +1301: Other Drop Rates: MvP %.2fx / Card-Based %.2fx / Treasure %.2fx + +// @me +1302: Please enter a message (usage: @me <message>). + +// @size / @sizeall / @sizeguild +1303: Size change applied. + +// @sizeguild +1304: Please enter guild name/ID (usage: @sizeguild <size> <guild name/ID>). + +// @monsterignore +1305: You are now immune to attacks. +1306: Returned to normal state. + +// @fakename +1307: Returned to real name. +1308: You must enter a name. +1309: Fake name must be at least two characters. +1310: Fake name enabled. + +// @mapflag +1311: Enabled Mapflags in this map: +1312: Usage: "@mapflag monster_noteleport 1" (0=Off | 1=On) +1313: Type "@mapflag available" to list the available mapflags. +1314: Invalid flag name or flag. +1315: Available Flags: + +// @showexp +1316: Gained exp will not be shown. +1317: Gained exp is now shown. + +// @showzeny +1318: Gained zeny will not be shown. +1319: Gained zeny is now shown. + +// @showdelay +1320: Skill delay failures will not be shown. +1321: Skill delay failures are now shown. + +// @cash +1322: Please enter an amount. + +// @clone +1323: You must enter a player name or ID. + +// @feelreset +1324: Reset 'Feeling' maps. + +// @noks +1325: [ K.S Protection Inactive ] +1326: [ K.S Protection Active - Option: Party ] +1327: [ K.S Protection Active - Option: Self ] +1328: [ K.S Protection Active - Option: Guild ] +1329: Usage: @noks <self|party|guild> + +// @allowks +1330: [ Map K.S Protection Active ] +1331: [ Map K.S Protection Inactive ] + +// @itemlist +1332: ------ %s items list of '%s' ------ +1333: | equipped: +1334: garment, +1335: left accessory, +1336: body/armor, +1337: right hand, +1338: left hand, +1339: both hands, +1340: feet, +1341: right accessory, +1342: lower head, +1343: top head, +1344: lower/top head, +1345: mid head, +1346: lower/mid head, +1347: lower/mid/top head, +1348: -> (pet egg, pet id: %u, named) +1349: -> (pet egg, pet id: %u, unnamed) +1350: -> (crafted item, creator id: %u, star crumbs %d, element %d) +1351: -> (produced item, creator id: %u) +1352: -> (card(s): +1353: No item found in this player's %s. +1354: %d item(s) found in %d %s slots. + +// @delitem +1355: Please enter an item name/ID, a quantity, and a player name (usage: #delitem <player> <item_name_or_ID> <quantity>). + +// @font +1356: Returning to normal font. +1357: Use @font <1-9> to change your message font. +1358: Use 0 or no parameter to return to normal font. +1359: Invalid font. Use a value from 0 to 9. +1360: Font changed. +1361: Already using this font. + +// @new_mount +1362: NOTICE: If you crash with mount your LUA is outdated. +1363: You have mounted. +1364: You have released your mount. + +// @accinfo +1365: Usage: @accinfo/@accountinfo <account_id/char name> +1366: You may search partial name by making use of '%' in the search, ex. "@accinfo %Mario%" lists all characters whose name contains "Mario". + +// @set +1367: Usage: @set <variable name> <value> +1368: Usage: ex. "@set PoringCharVar 50" +1369: Usage: ex. "@set PoringCharVarSTR$ Super Duper String" +1370: Usage: ex. "@set PoringCharVarSTR$" outputs its value, Super Duper String. +1371: NPC variables may not be used with @set. +1372: Instance variables may not be used with @set. +1373: %s value is now :%d +1374: %s value is now :%s +1375: %s is empty +1376: %s data type is not supported :%u + +// @reloadquestdb +1377: Quest database has been reloaded. + +// @addperm +1378: Usage: %s <permission_name> +1379: -- Permission List +1380: '%s' is not a known permission. +1381: User '%s' already possesses the '%s' permission. +1382: User '%s' doesn't possess the '%s' permission. +1383: -- User '%s' Permissions +1384: User '%s' permissions updated successfully. The changes are temporary. + +// @unloadnpcfile +1385: Usage: @unloadnpcfile <file name> +1386: File unloaded. Be aware that mapflags and monsters spawned directly are not removed. +1387: File not found. + +// General command messages +1388: Charcommand failed (usage: %c<command> <char name> <parameters>). +1389: %s failed. Player not found. + +// @cart +1390: Unknown Cart (usage: %s <0-%d>). +1391: You do not possess a cart to be removed +1392: Cart Added. + +// atcommand.c::is_atcommand +1393: You can't use commands while dead. + +// @clearstorage +1394: Your storage was cleaned. +1395: Your guild storage was cleaned. + +// @clearcart +1396: You do not have a cart to be cleaned. +1397: Your cart was cleaned. + +// @skillid (extension) +1398: -- Displaying first %d partial matches + +// @join +1399: Unknown Channel (usage: %s <#channel_name>) +1400: Unknown Channel '%s' (usage: %s <#channel_name>) +1401: '%s' Channel is password protected (usage: %s <#channel_name> <password>) +//1402 used by hercules chat feature +1403: You're now in the '%s' channel + +// Hercules Chat Feature +1402: You're not in that channel, type '@join <#channel_name>' +1435: You're now in the '#%s' channel for '%s' +1436: You're already in the '%s' channel +1294: You're not allowed to talk on this channel + +// @channel +1404: %s failed +1405: Channel name must start with a '#' +1406: Channel length must be between 3 and %d +1407: Channel '%s' is not available +1408: Channel password may not contain spaces +1409: - #%s ( %d users ) +1410: -- Public Channels +1411: Unknown color '%s' +1412: You're not the owner of channel '%s' +1413: '%s' channel color updated to '%s' +1414: --- Available options: +1415: -- %s create <channel name> <channel password> +1416: - creates a new channel +1417: -- %s list +1418: - lists public channels +1419: -- %s list colors +1420: - lists colors available to select for custom channels +1421: -- %s setcolor <channel name> <color name> +1422: - changes <channel name> color to <color name> +1423: -- %s leave <channel name> +1424: - leaves <channel name> +1425: You're not part of the '%s' channel +1426: You've left the '%s' channel +1427: -- %s bindto <channel name> +1428: - binds your global chat to <channel name>, making anything you type in global be sent to the channel +1429: -- %s unbind +1430: - unbinds your global chat from its attached channel (if bound) +1431: Your global chat is now bound to the '%s' channel +1432: Your global chat is not bound to any channel +1433: Your global chat is no longer bound to the '#%s' channel +1434: Player '%s' was not found +//1435-1436 used by hercules chat feature +1437: Player '%s' has now been banned from the '%s' channel +1438: You cannot join the '%s' channel because you've been banned from it +1439: Channel '%s' has no banned players +1440: Player '%s' is not banned from this channel +1441: Player '%s' has now been unbanned from the '%s' channel +1442: Removed all bans from the '%s' channel +1443: -- '%s' ban list +1444: - %s +1445: - %s (%d) +1446: You need to input a option +1447: '%s' is not a known channel option +1448: -- Available options +1449: option '%s' is already enabled, if you'd like to disable it type '@channel opt %s 0' +1450: option '%s' is now enabled for channel '%s' +1451: value '%d' for option '%s' is out of range (limit is 0-10) +1452: option '%s' is now enabled for channel '%s' with %d seconds +1453: option '%s' is now disabled for channel '%s' +1454: option '%s' is not enabled on channel '%s' +1455: You're talking too fast! +1456: -- %s ban <channel name> <character name> +1457: - bans <character name> from <channel name> channel +1458: -- %s banlist <channel name> +1459: - lists all banned characters from <channel name> channel +1460: -- %s unban <channel name> <character name> +1461: - unbans <character name> from <channel name> channel +1462: -- %s setopt <channel name> <option name> <option value> +1463: - adds or removes <option name> with <option value> to <channel name> channel +1464: Ban failed, it is not possible to ban this user. +1465: Player '%s' is already banned from this channel +1466: For '%s' you need the amount of seconds (from 0 to 10) +1467: -- %s unbanall <channel name> +1468: - unbans everyone from <channel name> + +// @costume +1469: '%s' is not a known costume +1470: You're already with a '%s' costume, type '@costume' to remove it. +1471: -- %s +1472: - Available Costumes +1473: Costume '%s' removed. + +//src/map/pc.c::pc_isUseitem +1474: You cannot use this item while sitting +1475: You cannot use this item while your storage is open + +1476: You are already mounting something else + +//src/map/pc.c::pc_isUseitem +1477: Item cannot be opened when inventory is full + +//@homlv +1478: Homunculus reached its maximum level of '%d' + +//src/map/clif.c::clif_parse_GlobalMessage +1479: Dear angel, can you hear my voice? +1480: I am %s Super Novice~ +1481: Help me out~ Please~ T_T + +//Banking +1482: You can't withdraw that much money +1483: Banking is disabled + +//src/map/atcommand.c::ACMD(auction) +1484: Auction is disabled + +//1485: FREE + +//Monster Transformation +1486: Cannot transform into monster while in disguise. +1487: Character cannot be disguised while in monster form. +1488: Transforming into monster is not allowed in Guild Wars. + +//CashShop mapflag +1489: Cash Shop is disabled in this map + +// @autoloottype +1490: You're already autolooting this item type. +1491: Item type not found. +1492: Autolooting item type: '%s' +1493: You're currently not autolooting this item type. +1494: Removed item type: '%s' from your autoloottype list. +1495: Your autoloottype list is empty. +1496: Item types on your autoloottype list: +1497: Your autoloottype list has been reset. + +//Item Bind +1498: You can't add a party bound item to a character without party! +1499: You can't add a guild bound item to a character without guild! + +//Custom translations +import: conf/import/msg_conf.txt diff --git a/conf/network.conf b/conf/network.conf new file mode 100644 index 000000000..b355acb25 --- /dev/null +++ b/conf/network.conf @@ -0,0 +1,37 @@ +// Network configuration file + +/* + * List here any LAN subnets this server is in. + * Example: + * - char- (or map-) server's IP in LAN is 192.168.0.10 + * - Public IP is 198.51.100.37 + * If the list contains "192.168.0.10:255.255.255.0", any clients connecting + * from the same 192.168.0.0/24 network will be presented with the LAN IP + * (192.168.0.10) in the server list, rather than the public IP (198.51.100.37). + */ +lan_subnets: ( + "127.0.0.1:255.0.0.0", + // "192.168.1.1:255.255.255.0", +) + +/* + * List here any IP ranges a char- or map-server can connect from. + * A wildcard of "0.0.0.0:0.0.0.0" means that server connections are allowed + * from ANY IP. (not recommended). + */ +allowed: ( + "0.0.0.0:0.0.0.0", + // "127.0.0.1:255.0.0.0", +) + +/* + * List here any IP ranges a char- or map-server can connect from. These ranges + * will also be excluded from the automatic ipban in casee of password failure. + * Any entry present in this list is also automatically included in the + * allowed IP list. + * Note: This may be a security threat. Only edit this list if you know what + * you are doing. + */ +trusted: ( + "127.0.0.1:255.0.0.0", +) diff --git a/conf/plugins.conf b/conf/plugins.conf new file mode 100644 index 000000000..9084cfbb6 --- /dev/null +++ b/conf/plugins.conf @@ -0,0 +1,41 @@ +//==================================================== +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//= +//= http://herc.ws/board/ +//==================================================== +//== Topic Discussion ================================ +//== http://herc.ws/board/topic/549-introducing-hercules-plugin-manager/ +//==================================================== +//== Description ===================================== +//The plugin system allows you to create customized scripts +//outside of the source. These scripts won't conflict with any +//future source updates - think of it as a /conf/import/ for the source. +//==================================================== + +/* --------------- Format --------------- +After you have listed your plugin(s) in "quotations", +you need to put in a comma, to separate the plugins. +----------------------------------------- +plugins_list: [ + "example", + "other", +] +----------------------------------------- +Please note that your scripts need to be saved +in the .c (source code) extension and placed in the /src/plugin/ folder. +----------------------------------------- +*/ +plugins_list: [ + /* Enable HPMHooking when plugins in use rely on Hooking */ + "HPMHooking", + //"db2sql", + "libevol_char", + "libevol_login", + "libevol_map", + //"other", +] diff --git a/conf/readme.txt b/conf/readme.txt new file mode 100644 index 000000000..3323b5689 --- /dev/null +++ b/conf/readme.txt @@ -0,0 +1,22 @@ +What is the import folder for? +------------------------------------------------------------------------------- + +The folder provides a way for you to change your config settings without having +to update the files every time you update your server. You store your changes, +and the rest is updated with Hercules (usually though GIT). + +How does this work? +------------------------------------------------------------------------------- + +Place only the settings you have changed in the import files. +For example, if you want to change a value in conf/battle/exp.conf: + + // Rate at which exp. is given. (Note 2) + base_exp_rate: 700 + +You could instead copy the setting into conf/import/battle_conf.txt, +and you'll eliminate any problems updating in the future. + +Neat, isn't it? + +- Semi-guide by Ajarn / Euphy |