diff options
author | Jesusaves <cpntb1@ymail.com> | 2021-07-07 20:36:00 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2021-07-07 20:36:00 -0300 |
commit | 6967b9e0b63d19141d4f59b7933a960ac81916d0 (patch) | |
tree | 8ecd9cd2461f3598cb7faece71eb77162aa4ef2a /conf | |
parent | 9877fd4ad81120af8e63e96d5d429092014dc017 (diff) | |
parent | 046c659193e1ca8bd13478678d1277df8bf9395c (diff) | |
download | serverdata-6967b9e0b63d19141d4f59b7933a960ac81916d0.tar.gz serverdata-6967b9e0b63d19141d4f59b7933a960ac81916d0.tar.bz2 serverdata-6967b9e0b63d19141d4f59b7933a960ac81916d0.tar.xz serverdata-6967b9e0b63d19141d4f59b7933a960ac81916d0.zip |
Merge branch 'master' into legacy
Override all files with 'master' version.
This version is meant to preserve git history as requested by bjorn.
Diffstat (limited to 'conf')
50 files changed, 7119 insertions, 0 deletions
diff --git a/conf/atcommand.conf b/conf/atcommand.conf new file mode 100644 index 00000000..722dfe35 --- /dev/null +++ b/conf/atcommand.conf @@ -0,0 +1,91 @@ +/* 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: "#" // We can use $ if this overlaps with ManaPlus + +/* Command aliases +You can define aliases for any command. Aliases work just like the original command. +Format is + <commandname>: ["<alias>", ...] +*/ + +aliases: { + mobinfo: ["mi"] + iteminfo: ["ii"] + time: ["date", "serverdate", "servertime"] + tonpc: ["npc"] + 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", "safe"] + raise: ["revive"] + kill: ["die"] + guildstorage: ["gstorage"] + accinfo: ["accountinfo"] + itemreset: ["clearinventory"] + channel: ["main"] + autoloottype: ["aloottype"] + camerainfo: ["setcamera", "viewpointvalue"] + tee: ["t"] + log: ["l"] + request: ["wgm"] +} + +/* List of commands that should not be logged at all */ +/* Add as many commands as you like */ +nolog: { + iteminfo: 1 + mobinfo: 1 + uptime: 1 + duel: 1 + accept: 1 + reject: 1 + noask: 1 + time: 1 + jailtime: 1 + email: 1 + rates: 1 + help: 1 + commands: 1 + charcommands: 1 + refresh: 1 + // Should we log @hugo and @linus? They're quite spammy +} + +/* Commands help file */ +help: { + @include "conf/map/help.txt" +} diff --git a/conf/battlegrounds.conf b/conf/battlegrounds.conf new file mode 100644 index 00000000..2b4184e1 --- /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 00000000..f7bdad32 --- /dev/null +++ b/conf/channels.conf.base @@ -0,0 +1,76 @@ +//==================================================== +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//= +//= 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: "#themanaworld" /* 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 + irc_flood_protection_enabled: true /* Whether to enable anti-flood protection for outgoing messages */ + irc_flood_protection_rate: 1000 /* The delay between messages during anti-flood protection (milliseconds) */ + irc_flood_protection_burst: 3 /* The maximum number of messages that are sent at once burst size before triggering the anti-flood protection */ + + // @channel setopt MessageDelay <delay> + // Sets the maximum amount of message delay (in seconds) allowed for a channel. + // Default: 10 + // Max: 255 + channel_opt_msg_delay: 10 +} +) diff --git a/conf/char/char-server.conf b/conf/char/char-server.conf new file mode 100644 index 00000000..0e5a7c6e --- /dev/null +++ b/conf/char/char-server.conf @@ -0,0 +1,255 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 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: "TMW Evolved" + + // 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" + + // Block renaming if character is in a guild or a party? (BOOL) + // Athena: false Aegis: true + // This check is imposed by Aegis to avoid dead entries in databases and is not needed on Hercules, as we clear data properly + use_aegis_rename: false + } + + 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. + // Default: true + 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 + + // Whether or not to refuse pincodes that are blacklisted + // Default: true + check_blacklisted: true + + // Blacklisted pincodes + blacklist: [ + "0000", + "1111", + "2222", + "3333", + "4444", + "5555", + "6666", + "7777", + "8888", + "9999", + "0123", + "1234", + "2345", + "3456", + "4567", + "5678", + "6789", + "7890" + ] + } + +} + +import: "conf/import/char-server.conf" diff --git a/conf/clans.conf b/conf/clans.conf new file mode 100644 index 00000000..82211fce --- /dev/null +++ b/conf/clans.conf @@ -0,0 +1,48 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2017-2019 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/>. +//========================================================================= +//= Clan System local configuration file. +//========================================================================= + +clan_configuration: { + + // Maximum players for each clan + MaxMembers: 500 + + // Maximum alliances/oppositions for each clan + MaxRelations: 6 + + // how many hours player must be inactive to be kicked? + // Disabled: 0 + // Official: 336 (2 weeks) + InactivityKickTime: 336 + + // Checks each clan member every 'InactivityCheckTime' hour(s) (default 24h, minimum value of 1h) + InactivityCheckTime: 24 + + // Clan Database + @include "db/clans.conf" +} diff --git a/conf/common/inter-server.conf b/conf/common/inter-server.conf new file mode 100644 index 00000000..6db189a7 --- /dev/null +++ b/conf/common/inter-server.conf @@ -0,0 +1,128 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 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" + map_reg_num_db: "map_reg_num_db" + map_reg_str_db: "map_reg_str_db" + } + pc: { + hotkey_db: "hotkey" + scdata_db: "sc_data" + cart_db: "cart_inventory" + achievement_db: "char_achievements" + 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" + } + autotrade_merchants_db: "autotrade_merchants" + autotrade_data_db: "autotrade_data" + npc_market_data_db: "npc_market_data" + npc_barter_data_db: "npc_barter_data" + npc_expanded_barter_data_db: "npc_expanded_barter_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/map-index.conf b/conf/common/map-index.conf new file mode 100644 index 00000000..b3a1b4e8 --- /dev/null +++ b/conf/common/map-index.conf @@ -0,0 +1,34 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 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 Index configuration file. +//========================================================================= + +mapindex_configuration: { + // Full path to the map_index.txt file + // Default: db/map_index.txt + file_path: "db/map_index.txt" +} diff --git a/conf/common/socket.conf b/conf/common/socket.conf new file mode 100644 index 00000000..eb7d494b --- /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-2019 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 00000000..57d58b2f --- /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-2019 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 00000000..6af05857 --- /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 00000000..60271a5b --- /dev/null +++ b/conf/groups.conf @@ -0,0 +1,489 @@ +/* +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 + +0: Player +1: Trusted Player + +20/21: Support (Trusted Player + Common) + +40/41: Developer (Support + DEV) + +50/51: Event Coordinator (Support + EVTC) + +60/61: Game Master (Support + GM) + +80/81: Community Coordinator (Support + DEV + EVTC + GM) + +99: Administrator (All Perms) + +NYI commands: +hairstyle and haircolor (use @debug-look) +snow, sakura, clouds, clouds2, fog, fireworks, leaves, clearweather +changesex (faulty) +misceffect (I don't understand) + +*/ + +groups: ( +{ + id: 0 /* group 0 is the default group for every new account */ + name: "Player" + level: 0 + inherit: ( /*empty list*/ ) + commands: { + help: true + commands: true + duel: true + accept: true + reject: true + invite: true + leave: true + noask: true // Autoreject duels + email: true + request: true + time: true + jailtime: true + rates: true + breakguild: true + changegm: true + // Bugfix-level commands + hominfo: true + refresh: true + // KillSteal commands (???) + noks: true + } + permissions: { + /* without this basic permissions regular players could not + trade or party */ + can_trade: true + can_party: true + } +}, +// ===== Trusted Players and Bots +{ + id: 1 + name: "Trusted Player" + inherit: ( "Player" ) /* can do everything Players can and more */ + level: 1 + commands: { + // Information Commands + whogm: true + uptime: true + charcommands: true + exp: true + mobinfo: true + iteminfo: true + whodrops: true + homstats: true + whereis: true + tee: true + log: true + // Server Spam Limit commands + showexp: true + showzeny: true + showdelay: true + // Community Commands + channel: true + // Convenience Commands + autotrade: true + } + log_commands: true + permissions: { + show_client_version: true + } +}, +// ===== Support +{ + id: 20 + name: "Support" + inherit: ( "Trusted Player" ) + level: 20 + commands: { + // Information Commands + version: true + where: [true, true] + who: true + who2: true + who3: true + whomap: true + whomap2: true + whomap3: true + users: true + mobsearch: true + idsearch: true + showmobs: true + skillid: true + // Movement Commands + tonpc: true + jumpto: true + warp: true + jump: true + slide: true + memo: true + save: true + load: true + hugo: true + linus: true + // Community Commands + broadcast: true + localbroadcast: true + hidenpc: true + shownpc: true + stats: [true, true] + refresh: [true, true] + // Moderation Commands + kick: true + mute: true + unmute: true + // Convenience Commands + monsterignore: true + autoloot: true + alootid: true + autoloottype: true + storage: true + mail: true + effect: true + } + log_commands: true + permissions: { + send_gm: true + receive_requests: true + view_equipment: true + } +}, +{ + id: 21 + name: "Support (Hidden)" + inherit: ( "Support" ) + level: 20 + commands: { + } + log_commands: true + permissions: { + send_gm: false + } +}, +// ===== Developer +{ + id: 40 + name: "Developer" + inherit: ( "Support" ) + level: 40 + commands: { + npcmove: true + day: true + night: true + gat: true + skilltree: true + heal: true + alive: true + loadnpc: true + unloadnpc: true + reloadnpc: true + delitem: true + refine: true + speed: true + itemreset: true + reset: true + mapinfo: true + } + log_commands: true + permissions: { + } +}, +{ + id: 41 + name: "Developer (Hidden)" + inherit: ( "Developer" ) + level: 40 + commands: { + } + log_commands: true + permissions: { + send_gm: false + } +}, +// ===== Event Coordinator +{ + id: 50 + name: "Event Coordinator" + inherit: ( "Support" ) + level: 50 + commands: { + fakename: true + invisible: true + + // Community Commands + heal: [true, true] + alive: [true, true] + monster: [true, true] + monstersmall: [true, true] + monsterbig: [true, true] + summon: [true, true] + killmonster2: [true, true] + cleanarea: [true, true] + cleanmap: true + clone: [true, true] + slaveclone: [true, true] + evilclone: [true, true] + disguise: [true, true] + undisguise: [true, true] + pvpon: true + pvpoff: true + gvgon: true + gvgoff: true + npctalk: true + } + log_commands: true + permissions: { + } +}, +{ + id: 51 + name: "Event Coordinator (Hidden)" + inherit: ( "Event Coordinator" ) + level: 50 + commands: { + } + log_commands: true + permissions: { + send_gm: false + } +}, +// ===== Game Master +{ + id: 60 + name: "Game Master" + inherit: ( "Support" ) + level: 60 + commands: { + blvl: [true, true] + jlvl: [true, true] + str: [true, true] + agi: [true, true] + vit: [true, true] + int: [true, true] + dex: [true, true] + luk: [true, true] + allstats: true + invisible: true + speed: [true, true] + guild: [true, true] + + // Moderation Commands + jailfor: true + jail: true + unjail: true + ban: true + block: true + unban: true + delitem: [true, true] + mutearea: true + reset: [true, true] + itemreset: [true, true] + dropall: [true, true] + storeall: [true, true] + accinfo: true + storagelist: [true, true] + cartlist: [true, true] + itemlist: [true, true] + + // Community Commands + heal: [true, true] + alive: [true, true] + slide: [true, true] + warp: [true, true] + killer: true + killable: true + pvpon: true + pvpoff: true + gvgon: true + gvgoff: true + cvcon: true + cvcoff: true + killmonster: [true, true] + killmonster2: [true, true] + recall: true + cleanmap: true + nuke: [true, true] + skillon: true + skilloff: true + raisemap: true + npctalk: true + + } + log_commands: true + permissions: { + who_display_aid: true + view_hpmeter: true + join_chat: true + kick_chat: true + hide_session: true + hack_info: true + } +}, +{ + id: 61 + name: "Game Master (Hidden)" + inherit: ( "Game Master" ) + level: 60 + commands: { + } + log_commands: true + permissions: { + send_gm: false + } +}, +// ===== Community Coordinator (GM/DEV) +{ + id: 80 + name: "Community Coordinator" + inherit: ( "Support", "Developer", "Event Coordinator", "Game Master" ) + level: 80 + commands: { + addwarp: true + refine: [true, true] + repairall: [true, true] + allowks: true + item: [true, true] + item2: [true, true] + itembound: [true, true] + itembound2: [true, true] + zeny: [true, true] + + // Community Commands + raise: true + partyrecall: true + guildrecall: true + doom: true + doommap: true + refreshall: true // Use with caution + effect: [true, true] + marry: [true, true] // Use with caution + divorce: true + + // Change status and options + displaystatus: [true, true] + option: [true, true] + partyoption: [true, true] + + // Moderation Commands + clearstorage: true + cleargstorage: true + recallall: true + breakguild: [true, true] + changeleader: [true, true] + + } + log_commands: true + permissions: { + any_warp: true + } +}, +{ + id: 81 + name: "Community Coordinator (Hidden)" + inherit: ( "Community Coordinator" ) + level: 80 + commands: { + } + log_commands: true + permissions: { + send_gm: false + } +}, +// ===== Administrator +// (There isn't a hidden admin yet) +{ + id: 99 + name: "Administrator" + level: 99 + inherit: ( "Community Coordinator" ) + commands: { + /* not necessary due to all_commands: true */ + } + log_commands: true + permissions: { + can_trade_bound: false + can_party: true + all_skill: false + all_equipment: true + 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 00000000..ff05022c --- /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-2019 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 00000000..3162a31a --- /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-2019 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 00000000..9cd3932f --- /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-2019 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 00000000..c8f1f854 --- /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-2019 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 00000000..47e5a665 --- /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-2019 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 00000000..11e4356b --- /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-2019 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 00000000..e69de29b --- /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 00000000..042644ff --- /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-2019 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 00000000..57806f21 --- /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-2019 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 00000000..da36d0aa --- /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-2019 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://updates.tmw2.org/messworld/" + +import: "conf/import/login-server.conf" diff --git a/conf/map/battle.conf b/conf/map/battle.conf new file mode 100644 index 00000000..f8c6b9a1 --- /dev/null +++ b/conf/map/battle.conf @@ -0,0 +1,88 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 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" + + // Different calculation limits + @include "conf/map/battle/limits.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 00000000..f902e639 --- /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-2019 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: 27 + +// 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: 14 + +// 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: 0 +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: 2 + +// 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: 9 + +// 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: false + +// 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 00000000..08c7fcd8 --- /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-2019 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 00000000..0422cfcf --- /dev/null +++ b/conf/map/battle/client.conf @@ -0,0 +1,240 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 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: 20 + +// 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: 15 + +// Chat area size (how many squares away from a player can they chat) +chat_area_size: 15 + +// Area which monster death packets should be sent to. +// This should be set to the farthest distance a player can reach in 250ms +// after a monster dies. +// Setting it to (area_size + 18) (18 being the range of Monk's Snap skill) +// should be a great value +dead_area_size: 32 + +// 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) +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 + +// Displays the same HP value as official servers do when a character is dead. +// (Note 1) +// On official servers, HP are never displayed as 0, but when dead, they +// display the value that will be shown after resurrection (50% HP for novice +// classes, 1 HP for other classes). Athena servers, instead, show the real +// value (0 when dead), to avoid confusion. +// Note: this is only a visual setting, and the server will internally handle +// it as 0 regardless of this. This means that scripts will know that the +// character has 0 HP when dead. +// Default: true (Official behavior) +display_fake_hp_when_dead: false + +// Send ping timer +// For clients 20190320 Re+ +// Interval in seconds for each timer invoke. +ping_timer_inverval: 30 + +// Send packets timeout in seconds before ping packet can be sent. +// For clients 20190320 Re+ +ping_time: 20 + +// Drop or not connection after client send disconnect request packet +// Official is false +drop_connection_on_quit: true + +// When to display the rate modifier messages? +// 0x0 - Never display rate modifier messages. +// 0x1 - Display rate modifier messages upon login. +// 0x2 - Display rate modifier messages upon map change. +// 0x4 - Display rate modifier messages upon teleporting (regardless of changing maps). +// Default: 0x1 (Official behavior.) +display_rate_messages: 0x1 + +// When to display the configuration messages and which? (Note 3) +// +// Flags for when to display the configuration messages: +// 0x000 - Never display configuration messages. +// 0x001 - Display configuration messages upon login. (Default. Should always be set.) +// 0x002 - Display configuration messages upon map change. +// 0x004 - Display configuration messages upon teleporting (regardless of changing maps). +// +// Flags for which configuration messages are displayed: +// 0x010 - Character's party invitation state. (Default.) +// 0x020 - Character's view equipment state. (Default.) +// 0x040 - Character's Urgent Call state. (Default.) +// 0x080 - Character's pet auto-feed state. (Default.) +// 0x100 - Character's homunculus auto-feed state. (Default.) +// +// Default: 0x1F1 (Official behavior.) +display_config_messages: 0x1F1 + +// When to display the overweight messages? +// 0x0 - Never display overweight messages. +// 0x1 - Display overweight messages upon login. (Default.) +// 0x2 - Display overweight messages upon map change. (Default.) +// Default: 0x3 (Official behavior.) +display_overweight_messages: 0x3 + +// Show tip of the day window upon login? +show_tip_window: false diff --git a/conf/map/battle/drops.conf b/conf/map/battle/drops.conf new file mode 100644 index 00000000..10d78ffe --- /dev/null +++ b/conf/map/battle/drops.conf @@ -0,0 +1,157 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 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: 120000 + +// 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: 15000 + +// 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: 10000 + +// 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: 5000 + +// 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 + +// The maximum number of full iterations that server can do when dropping an item with options. +// When picking random options for a dropped item, it does lots of iterations to choose the option to be set, +// this value limits the number of iterations to avoid making the server hang in a long loop. +option_drop_max_loop: 10 + +// Does autoloot take into account player bonuses and penalties? (Note 1) +// If RENEWAL_DROP, Bubble Gum, or any other modifiers are active autoloot will take them into account. +autoloot_adjust: false diff --git a/conf/map/battle/exp.conf b/conf/map/battle/exp.conf new file mode 100644 index 00000000..5db2cfb4 --- /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-2019 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: true + +// 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: 30 + +// 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: 10 + +// 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: 0 + +// 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 00000000..ea0a5e54 --- /dev/null +++ b/conf/map/battle/feature.conf @@ -0,0 +1,101 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 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: false + + // Search stores (Note 1) + // Requires: 2010-08-03aRagexeRE or later + search_stores: false + + // 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 + + // Allow Pet autofeeding + // true: enable (Default) + // false: disable + enable_pet_autofeed: true + + // Enable Attendance System for clients >= 2018-03-07bRagexeRE or 2018-04-04bRagexe or 2018-04-11aRagexe_zero + // true: enable (Default) + // false: disable + enable_attendance_system: false + + // Attendance End time in the format YearMonthDay + feature_attendance_endtime: 20180331 + + // Enable Achievement System + // true: enable (Default) + // false: disable + enable_achievement_system: false + + // Enable Refinery UI (requires 2016-10-05Ragexe/RE) + // true: enable (Default) + // false: disable + enable_refinery_ui: false + + // Replace Refine NPCs with Refinery UI + // true: enable + // false: disable (default) + replace_refine_npcs: false +} diff --git a/conf/map/battle/gm.conf b/conf/map/battle/gm.conf new file mode 100644 index 00000000..2155940e --- /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-2019 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: 0 + +// 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: 20 + +// 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 00000000..bd26b667 --- /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-2020 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: false + +// Maximum tax limit on a guild member. +guild_exp_limit: 50 + +// Maximum castles one guild can own (0 = unlimited) +guild_max_castles: 0 + +// How guild skills cooldown works? +// 0 - you relog with the same cooldown remaining as from when you logged out +// 1 - restarts the cooldown upon login to its full duration. +// 2 - like 1, but your logged off time is also decreased from the remaining cooldown (Aegis) +guild_skill_relog_delay: 2 + +// 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 display the guild notice? +// 0x0 - Never display guild notice. +// 0x1 - Display guild notice upon login. +// 0x2 - Display guild notice upon map change. +// 0x4 - Display guild notice upon teleporting (regardless of changing maps). +// Default: 0x7 (Official behavior.) +guild_notice_changemap: 0x1 + +// 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 00000000..f2ed4d8d --- /dev/null +++ b/conf/map/battle/homunc.conf @@ -0,0 +1,71 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 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 + +// Bonus EXP homunculus received from master? (Note 2) +hom_bonus_exp_from_master: 10 diff --git a/conf/map/battle/items.conf b/conf/map/battle/items.conf new file mode 100644 index 00000000..e2925a3d --- /dev/null +++ b/conf/map/battle/items.conf @@ -0,0 +1,137 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2020 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: false + +// Which item actions are allowed while interacting with NPC? (Note 3) +// Script commands 'enable_items/disable_items' will not be overridden. (See doc/script_commands.txt.) +// 0x0 (ITEMENABLEDNPC_NONE) - Don't allow any item actions. +// 0x1 (ITEMENABLEDNPC_EQUIP) - Allow changing equipment. +// 0x2 (ITEMENABLEDNPC_CONSUME) - Allow consuming usable items. +// Official RE: 0x1 (Default value.) +// Official Pre-RE: 0x3 +item_enabled_npc: 0x1 + +// 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: false + +// How much should rental mounts increase a player's movement speed? (Note 2) +// Official: 25 (Default) +boarding_halter_speed: 25 + +// Allow to use items when the storage is open? +// Official: false (Default) +storage_use_item: false + +// Minimum item buy price at shop +// Default: 1 +min_item_buy_price: 1 + +// Minimum item sell price at shop +// Default: 0 +min_item_sell_price: 0 diff --git a/conf/map/battle/limits.conf b/conf/map/battle/limits.conf new file mode 100644 index 00000000..78498219 --- /dev/null +++ b/conf/map/battle/limits.conf @@ -0,0 +1,57 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 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 (Limits) Configuration File +//========================================================================= + +// basic attack limits +batk_min_limit: 0 +batk_max_limit: 65535 + +// magic attack limits + +matk_min_limit: 0 +matk_max_limit: 65535 + +// weapon attack limits +watk_min_limit: 0 +watk_max_limit: 65535 + +// flee limits +flee_min_limit: 1 +flee_max_limit: 32767 + +// flee2 limits +flee2_min_limit: 10 +flee2_max_limit: 32767 + +// critical attack limits +critical_min_limit: 10 +critical_max_limit: 32767 + +// hit limits +hit_min_limit: 1 +hit_max_limit: 32767 diff --git a/conf/map/battle/misc.conf b/conf/map/battle/misc.conf new file mode 100644 index 00000000..4aa273f8 --- /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-2019 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 seconds +duel_time_interval: 60 + +// 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 00000000..871bcba7 --- /dev/null +++ b/conf/map/battle/monster.conf @@ -0,0 +1,276 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 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: 3 + +// 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: 0 + +// 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: 1200 + +// 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 + +// Delay before a tomb is spawned, in milliseconds. +// Default: 10000 (10 seconds) +mvp_tomb_spawn_delay: 10000 + +// 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 + +// Should slaves chase after what their master is chasing? +// false: Don't chase after what master is chasing. (old behavior) +// true: Chase after what master is chasing. (official, default) +slave_chase_masters_chasetarget: true diff --git a/conf/map/battle/party.conf b/conf/map/battle/party.conf new file mode 100644 index 00000000..0886e72b --- /dev/null +++ b/conf/map/battle/party.conf @@ -0,0 +1,110 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 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: false + +// 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 +// 112: Card + Armor (rings) + Weapon +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: 300 + +// 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: 5 + +// 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 + +// When and how to send the party options? (Note 3) +// +// Flags for when to display the party options: +// 0x00000 - Never send party options. +// 0x00001 - Send party options upon login. (Default. Should always be set.) +// 0x00002 - Send party options upon map change. +// 0x00004 - Send party options upon teleporting (regardless of changing maps). +// 0x00008 - Send party options upon successfully changing options manually. (Default. Should always be set.) +// 0x00010 - Send party options upon unsuccessfully changing options manually. (Tried to enable EXP sharing if not allowed.) (Default.) +// 0x00020 - Send party options upon changing options automatically. (Default. Should always be set.) +// 0x00040 - Send party options upon joining party. (Default. Should always be set.) +// 0x00080 - Send party options upon leaving party. (Default.) +// +// Flags for how to send the party options: +// 0x00100 - Send party options to all party members upon unsuccessfully changing options manually. (Tried to enable EXP sharing if not allowed.) (Default.) +// 0x00200 - Send all party options upon login. +// 0x00400 - Send all party options upon map change. +// 0x00800 - Send all party options upon teleporting (regardless of changing maps). +// 0x01000 - Send all party options upon successfully changing options manually. (Default.) +// 0x02000 - Send all party options upon unsuccessfully changing options manually. (Tried to enable EXP sharing if not allowed.) (Default.) +// 0x04000 - Send all party options upon changing options automatically. +// 0x08000 - Send all party options upon joining party. +// 0x10000 - Send all party options upon leaving party. +// +// Default: 0x31F9 (Official behavior.) +send_party_options: 0x31F9 diff --git a/conf/map/battle/pet.conf b/conf/map/battle/pet.conf new file mode 100644 index 00000000..e2bf9f66 --- /dev/null +++ b/conf/map/battle/pet.conf @@ -0,0 +1,107 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 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) +//========================================================================= + +// Use the offical formula to calculate the pet catch rate? (Note 1) +// Official formula: +// CatchRate = CaptureRate * (100 - 100 * MonsterHP / MonsterMaxHP) / 100 + CaptureRate +// Custum *Athena formula: +// CatchRate = (CaptureRate + (CharacterBaseLevel - MonsterLevel) * 30 + CharacterLuk * 20) * (200 - 100 * MonsterHP / MonsterMaxHP) / 100 +// (CaptureRate is defined in db/(pre-)re/pet_db.conf.) +pet_catch_rate_official_formula: true + +// 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 + +// Should the pet immediately be removed when its intimacy drops to 0? (Note 1) +// If set to false the pet will randomly walk around the map before being removed. +pet_remove_immediately: true diff --git a/conf/map/battle/player.conf b/conf/map/battle/player.conf new file mode 100644 index 00000000..263d47a6 --- /dev/null +++ b/conf/map/battle/player.conf @@ -0,0 +1,235 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 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: 50 + +// 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: 100 + +// 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: 0 + +// 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 +// 0x400 - NPC Script Interaction +// 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 + +// Can dead players do actions like trading, open a chat room, etc.? +// 0x0 - Don't allow trading and open chat rooms. +// 0x1 - Allow trading when dead. +// 0x2 - Allow open chat room when dead. +// default: 0x3 (Official) +allowed_actions_when_dead: 0x3 diff --git a/conf/map/battle/skill.conf b/conf/map/battle/skill.conf new file mode 100644 index 00000000..5f2f6575 --- /dev/null +++ b/conf/map/battle/skill.conf @@ -0,0 +1,362 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 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 + +// Hunter's traps visibility setting (with HiddenTrap: true on skill_db.conf) +// Here we have 2 configs: +// visibility stands to how traps are displayed by default: +// 0: Traps are always visible to everyone (Hercules/Pre-renewal) +// 1: Traps with HiddenTrap: true are hidden in versus maps (PvP/GvG/BG) +// 2: Traps with HiddenTrap: true are always invisible (Renewal) (Default) +// Notes: - Invisibility applies to players that are not in caster's party. +// - Invisible traps can be made visible to everyone with Hunter's Detecting skill. +// +// display_on_trigger tells if HiddenTraps should become visible once triggered +// 0: Do not make traps visible once triggered (except for Ankle Snare) (Aegis) +// 1: Always make traps visible once triggered (Hercules) +trap_options: { + visibility: 2 + display_on_trigger: 1 +} + +// 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: 2 + +// 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: 0 + +// 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 + +// Trap Reflect +// Whether the damage from traps must be reflected (for example by Reflect Shield or High Orc Card)? +// true: Aegis - traps are reflected +// false: Athena - traps are not reflected +trap_reflect: true + +// 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 + +// Magic Rod's animation behavior (Note 1) +// 0 : (official) Magic Rod's animation occurs every time it is used. +// 1 : Magic Rod's animation would not occur unless a spell was absorbed. (old behavior) +magicrod_type: 0 + +// Which skills are allowed to use while interacting with NPC? +// 0 (SKILLENABLEDNPC_NONE) - Don't allow using skills. +// 1 (SKILLENABLEDNPC_SELF) - Allow using non-damaging self skills. +// 2 (SKILLENABLEDNPC_ALL) - Allow using all skills. +// Official RE: 0 (Default value.) +// Official Pre-RE: 1 +skill_enabled_npc: 0 + +// Close the storage/gstorage when teleported? (Note 1) +// true : (Official) +// false : (Athena) +teleport_close_storage: true diff --git a/conf/map/battle/status.conf b/conf/map/battle/status.conf new file mode 100644 index 00000000..5f6fe68d --- /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-2019 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: 50 +mob_status_def_rate: 50 + +// 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: 75 +mob_max_status_def: 75 diff --git a/conf/map/charhelp.txt b/conf/map/charhelp.txt new file mode 100644 index 00000000..e3acddbb --- /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 00000000..45d17c75 --- /dev/null +++ b/conf/map/help.txt @@ -0,0 +1,309 @@ +// 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." +invisible: "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." +feelreset: "Reset 'Feeling' maps." +hatereset: "Reset 'Hatred' targets." diff --git a/conf/map/logs.conf b/conf/map/logs.conf new file mode 100644 index 00000000..85e110f2 --- /dev/null +++ b/conf/map/logs.conf @@ -0,0 +1,184 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 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) + // 0x00000000 - Don't log at all + // 0x00000001 - (T) Log trades X + // 0x00000002 - (V) Log vending transactions X + // 0x00000004 - (P) Log items drop/picked by players X + // 0x00000008 - (M) Log items dropped by monsters + // 0x00000010 - (S) Log NPC transactions (buy/sell) + // 0x00000020 - (N) Log Script transactions (items deleted/acquired through quests) + // 0x00000040 - (D) Log items stolen from mobs (Steal/Gank) + // 0x00000080 - (C) Log player-used items (consumables/pet&hom&merc food/items used for skills&attacks) + // 0x00000100 - (O) Log produced/ingredient items + // 0x00000200 - (U) Log MVP prize items + // 0x00000400 - (A) Log player created/deleted items (through @/# commands) + // 0x00000800 - (R) Log items placed/retrieved from storage. + // 0x00001000 - (G) Log items placed/retrieved from guild storage. + // 0x00002000 - (E) Log mail system transactions. + // 0x00004000 - (I) Log auction system transactions. + // 0x00008000 - (B) Log buying store transactions + // 0x00010000 - (X) Log other transactions + // 0x00020000 - (K) Log account bank transactions + // 0x00040000 - (Y) Divorce + // 0x00080000 - (Z) Roulette + // 0x00100000 - (W) Rental + // 0x00200000 - (Q) Card + // 0x00400000 - (J) Invalid in inventory + // 0x00800000 - (H) Invalid in cart + // 0x01000000 - (@) Egg + // 0x02000000 - (0) Quest + // 0x04000000 - (1) Skill + // 0x08000000 - (2) Refine + // 0x10000000 - (L) Log items looted by monsters + // 0x20000000 - (3) Achievements + // 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: 0xFFDF7FF + + // 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: 1 + + // 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: true + + // 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 + // 0x20 - Log Clan messages + // Example: + // log_chat: 0x5 = logs both Whisper & Party messages + // log_chat: 0x8 = logs only Guild messages + // log_chat: 0x2f = 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: 0x11 + + // 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 00000000..be19a1cb --- /dev/null +++ b/conf/map/map-server.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-2019 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) + // 0x200: After every allow party flag change + // 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 00000000..68d2bd20 --- /dev/null +++ b/conf/map/maps.conf @@ -0,0 +1,136 @@ +map_removed: ( +) +map_list: ( + "000-1", + "001-1", + "001-2", + "001-3", + "002-1", + "002-2", + "002-3", + "002-4", + "002-5", + "003-1", + "003-4", + "004-1", + "004-3", + "004-4", + "004-5", + "005-3", + "006-1", + "006-2", + "006-3", + "007-1", + "007-2", + "008-1", + "009-1", + "009-2", + "009-3", + "009-4", + "009-5", + "009-6", + "009-7", + "009-8", + "010-1", + "010-2", + "011-1", + "011-3", + "011-4", + "011-6", + "012-1", + "012-3", + "012-4", + "013-1", + "013-2", + "013-3", + "014-1", + "014-3", + "015-1", + "015-3", + "016-1", + "016-2", + "017-1", + "017-2", + "017-3", + "017-4", + "017-9", + "018-1", + "018-2", + "018-3", + "019-1", + "019-3", + "019-4", + "020-1", + "020-2", + "020-3", + "021-3", + "023-1", + "023-2", + "023-3", + "025-1", + "025-3", + "025-4", + "026-1", + "026-2", + "027-1", + "027-2", + "027-3", + "027-4", + "027-5", + "027-6", + "027-7", + "027-8", + "028-1", + "028-3", + "029-1", + "029-2", + "029-3", + "029-4", + "030-1", + "030-2", + "030-3", + "030-4", + "031-1", + "031-2", + "031-3", + "031-4", + "032-3", + "033-1", + "034-1", + "034-2", + "035-2", + "036-2", + "041-1", + "042-1", + "043-1", + "043-3", + "043-4", + "045-1", + "046-1", + "046-3", + "047-1", + "047-3", + "048-2", + "051-1", + "051-3", + "052-1", + "052-2", + "055-1", + "055-3", + "056-2", + "057-1", + "069-2", + "070-1", + "070-3", + "099-1", + "099-2", + "099-3", + "099-4", + "099-5", + "099-6", + "099-7", + "099-8", + "botcheck", + "fermi", + "sec_pri", +) diff --git a/conf/map/script.conf b/conf/map/script.conf new file mode 100644 index 00000000..98a39f52 --- /dev/null +++ b/conf/map/script.conf @@ -0,0 +1,74 @@ +//================= Hercules Configuration ================================ +//= _ _ _ +//= | | | | | | +//= | |_| | ___ _ __ ___ _ _| | ___ ___ +//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| +//= | | | | __/ | | (__| |_| | | __/\__ \ +//= \_| |_/\___|_| \___|\__,_|_|\___||___/ +//================= License =============================================== +//= This file is part of Hercules. +//= http://herc.ws - http://github.com/HerculesWS/Hercules +//= +//= Copyright (C) 2014-2019 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 + + // Specifies whether functions not explicitly marked with a "private" or + // "public" keyword should be treated as "private" by default. + // Default: true + functions_private_by_default: true + + // Specifies whether public functions can be invoked as NPC events. This + // allows, for example, to use a `public function OnDeath { ... }` instead + // of a `OnDeath:` label for mob death events. + functions_as_events: true +} + +import: "conf/import/script.conf" diff --git a/conf/messages.conf b/conf/messages.conf new file mode 100644 index 00000000..cdb4f1e7 --- /dev/null +++ b/conf/messages.conf @@ -0,0 +1,1649 @@ +//===== 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: Unable to Teleport in this area +50: This skill cannot be used within this area. +51: This item cannot be used within this area. +//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: Roulette is disabled +//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-136 FREE (possibly for other clone types) +137: CvC: Off +138: CvC: On +139: CvC ON | +140: You can't join in a clan if you're in a guild. +141: CvC is already Off. +142: CvC is already On. +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: Please enter a valid madogear type. +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 again after %d seconds. +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. +// Stylist Shop +366: Styling Shop +367: <MSG>2949</MSG> +368: <MSG>2950</MSG> +//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-448 FREE +// Homunculus messages +449: Homunculus Experience Gained Base:%u (%.2f%%) +450: You already have a homunculus + +// Return pet to egg message +451: You can't return your pet because your inventory is full. +452: usage @camerainfo range rotation latitude + +// Refinary +453: Refinery UI is not available + +// Battlegrounds +454: Server : %s is leaving the battlefield... +455: Server : %s has been afk-kicked from the battlefield... +456: You are a deserter! Wait %u minute(s) before you can apply again +457: You are a deserter! Wait %u seconds before you can apply again +458: You can't reapply to this arena so fast. Apply to the different arena or wait %u minute(s) +459: You can't reapply to this arena so fast. Apply to the different arena or wait %u seconds +460: Can't apply: not enough members in your team/guild that have not entered the queue in individual mode, minimum is %d +461: Can't apply: not enough members in your team/guild, minimum is %d +462: Can't apply: not enough members in your team/party that have not entered the queue in individual mode, minimum is %d +463: Can't apply: not enough members in your team/party, minimum is %d +464: Server : %s has quit the game... +// IRC +465: [ #%s ] User IRC.%s left the channel. [Quit: %s] +466: [ #%s ] User IRC.%s left the channel. [%s] +467: [ #%s ] User IRC.%s is now known as IRC.%s +468: [ #%s ] User IRC.%s joined the channel. +// 469-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: Inbox is full (Max %d). Delete some mails. +// 512-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-543 FREE +544: <MSG>3455</MSG> +545: <MSG>3456,%d</MSG> +// @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-852 FREE (please start using from the top if you need, leave the 670+ range for new jobs) + +853: NoPet | +// 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 disabled in this map. +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! + +// Frost Joker / Scream text for monster (MobName : SkillName !!) +882: %s : %s !! +// Cursed Circle +883: You are too close to a stone or emperium to do this skill +// +884: Skill Failed. [%s] requires %dx %s. +885: Removed %dz. +886: Gained %dz. +887: %s stole an Unknown Item (id: %i). +888: %s stole %s. +889: Experience Gained Base:%llu (%.2f%%) Job:%llu (%.2f%%) +890: [KS Warning!! - Owner : %s] +891: [Watch out! %s is trying to KS you!] +892: Growth: hp:%d sp:%d str(%.2f) agi(%.2f) vit(%.2f) int(%.2f) dex(%.2f) luk(%.2f) +893: [ Kill Steal Protection Disabled. KS is allowed in this map ] +894: %s is in autotrade mode and cannot receive whispered messages. +// 895 FREE +896: Base EXP : %d%% | Base Drop: %d%% | Base Death Penalty: %d%% +897: #%s '%s' joined +898: #%s '%s' left +// 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. + +// atcommand_setzone +924: Usage: @setzone <zone name> +925: The zone is already set to '%s'. +926: Zone not found. Keep in mind that the names are CaSe SenSitiVe. +927: Zone successfully changed from '%s' to '%s'. + +//928-978 FREE + +// @hatereset +979: Reset 'Hatred' targets. + +// @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 - Part 1 +996: Please enter a position bitmask and an amount (usage: @refine <equip position> <+/- amount>). +997: %d: Headgear (Low) +998: %d: Hand (Right) +999: %d: Garment +1000: %d: Accessory (Left) +1001: %d: Body Armor +1002: %d: Hand (Left) +1003: %d: Shoes +1004: %d: Accessory (Right) +1005: %d: Headgear (Top) +1006: %d: Headgear (Mid) + +// @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>). + +// @unloadnpc +1133: Please enter a NPC name (Usage: @unloadnpc <NPC_name> {<flag>}). + +// @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: PrivateAirshipStartable | +1293: PrivateAirshipEndable | +//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 <path> {<flag>} +1386: File unloaded. Be aware that some changes made by NPC are not reverted on unload. See doc/atcommands.txt for details. +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-%d) +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 cannot send a message to this channel for another %d seconds. +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! + +// @dropall +1500: Usage: @dropall {<type>} +1501: Type List: (default) all = -1, healing = 0, usable = 2, etc = 3, weapon = 4, armor = 5, card = 6, petegg = 7, petarmor = 8, ammo = 10, delayed-consumable = 11, cash = 18 +1502: %d items are dropped (%d skipped)! + +// @refine - Part 2 +1503: %d: Costume Headgear (Top) +1504: %d: Costume Headgear (Mid) +1505: %d: Costume Headgear (Low) +1506: %d: Costume Garment +1507: %d: Shadow Armor +1508: %d: Shadow Weapon +1509: %d: Shadow Shield +1510: %d: Shadow Shoes +1511: %d: Shadow Accessory (Right) +1512: %d: Shadow Accessory (Left) +1513: %d: Refine All Equip (General) +1514: %d: Refine All Equip (Costume) +1515: %d: Refine All Equip (Shadow) + +// @reloadnpc +1516: Usage: @reloadnpc <path> {<flag>} +1517: Script could not be unloaded. + +// File name validation +1518: Not a file. +1519: Can't open file. + +//Custom translations +import: conf/import/msg_conf.txt diff --git a/conf/network.conf b/conf/network.conf new file mode 100644 index 00000000..b355acb2 --- /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 00000000..9084cfbb --- /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 00000000..3323b568 --- /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 |