summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xathena.sh69
-rw-r--r--conf/atcommand_athena.conf629
-rw-r--r--conf/battle_athena.conf711
-rw-r--r--conf/gm_account.txt1
-rw-r--r--conf/grf-files.txt0
-rw-r--r--conf/help.txt225
-rw-r--r--conf/inter_athena.conf31
-rw-r--r--conf/ladmin_athena.conf34
-rw-r--r--conf/lan_support.conf41
-rw-r--r--conf/login_athena.conf135
-rw-r--r--conf/msg_athena.conf511
-rw-r--r--conf/script_athena.conf2
-rw-r--r--conf/water.txt54
-rw-r--r--conf/water_height.txt68
-rw-r--r--db/attr_fix.txt53
-rw-r--r--db/card_labels.txt1
-rw-r--r--db/const.txt231
-rw-r--r--db/exp.txt99
-rw-r--r--db/exp2.txt99
-rw-r--r--db/item_bluebox.txt7
-rw-r--r--db/item_cardalbum.txt7
-rw-r--r--db/item_descriptions.txt105
-rw-r--r--db/item_giftbox.txt7
-rw-r--r--db/item_noequip.txt4
-rw-r--r--db/item_scroll.txt5
-rw-r--r--db/item_violetbox.txt7
-rw-r--r--db/job_db1.txt70
-rw-r--r--db/job_db2-2.txt26
-rw-r--r--db/job_db2.txt71
-rw-r--r--db/mob_branch.txt9
-rw-r--r--db/statpoint.txt255
-rw-r--r--npc/cave-small/hermit.txt14
-rw-r--r--npc/cave-small/monsters.txt1
-rw-r--r--npc/cave1/miners.txt41
-rw-r--r--npc/cave1/monsters.txt26
-rw-r--r--npc/cave1/passages.txt4
-rw-r--r--npc/cave2/chest.txt28
-rw-r--r--npc/cave2/monsters.txt25
-rw-r--r--npc/cave2/passages.txt4
-rw-r--r--npc/eastern-desert/monsters.txt2
-rw-r--r--npc/eastern-desert/passages.txt4
-rw-r--r--npc/tulimshar-casino/casino.txt360
-rw-r--r--npc/tulimshar/banker.txt1
-rw-r--r--npc/tulimshar/elanore.txt132
-rw-r--r--npc/tulimshar/guide.txt87
-rw-r--r--npc/tulimshar/man.txt18
-rw-r--r--npc/tulimshar/merchant.txt1
-rw-r--r--npc/tulimshar/passages.txt2
-rw-r--r--npc/tulimshar/rewards_master.txt185
-rw-r--r--npc/tulimshar/sandra.txt81
-rw-r--r--npc/tulimshar/vincent.txt90
-rw-r--r--npc/western-desert/dark_mage.txt37
-rw-r--r--npc/western-desert/merchant.txt1
-rw-r--r--npc/western-desert/monsters.txt3
-rw-r--r--npc/western-desert/nomads.txt23
-rw-r--r--npc/western-desert/passages.txt4
-rw-r--r--npc/woodland/alchemist.txt39
-rw-r--r--npc/woodland/monsters.txt2
-rw-r--r--npc/woodland/passages.txt54
-rw-r--r--npc/xmas/monsters.txt2
-rw-r--r--npc/xmas/santa.txt50
-rw-r--r--npc/xmas/snowman.txt44
-rw-r--r--npc/xmas/taro.txt13
-rw-r--r--save/account.txt17
64 files changed, 4962 insertions, 0 deletions
diff --git a/athena.sh b/athena.sh
new file mode 100755
index 00000000..51fe8b24
--- /dev/null
+++ b/athena.sh
@@ -0,0 +1,69 @@
+#!/bin/bash
+
+# $Id$
+#----------------------------------------------------------------------
+# Description: eAthena dameon control script.
+# Author: Zuzanna K. Filutowska <platyna@platinum.linux.pl>
+# Created at: Fri Feb 17 18:23:56 CET 2006
+# License: GPL
+# Copyright (c) 2006 Zuzanna K. Filutowska All rights reserved.
+#
+#----------------------------------------------------------------------
+# Configure section:
+PATH=$PATH:.
+SRVHOMEDIR=$HOME/tmwserver
+#----------------------------------------------------------------------
+# main()
+
+cd ${SRVHOMEDIR}
+
+athena_start() {
+ if [ -x ${SRVHOMEDIR}/login-server ];
+ then echo "Starting login server..."
+ ${SRVHOMEDIR}/login-server > ${SRVHOMEDIR}/log/login-server-startup.log 2>&1 &
+ else echo "Login server binary is not executable or not found."
+ fi
+
+ if [ -x ${SRVHOMEDIR}/char-server ];
+ then echo "Starting char server..."
+ ${SRVHOMEDIR}/char-server > ${SRVHOMEDIR}/log/char-server-startup.log 2>&1 &
+ else echo "Character server binary is not executable or not found."
+ fi
+
+ if [ -x ${SRVHOMEDIR}/map-server ];
+ then echo "Starting map server..."
+ ${SRVHOMEDIR}/map-server > ${SRVHOMEDIR}/log/map-server-startup.log 2>&1 &
+ else
+ echo "Map server binary is not executable or not found."
+ fi
+}
+
+athena_stop() {
+ echo "Shutting down login server..."
+ killall login-server
+ echo "Shutting down char server..."
+ killall char-server
+ echo "Shutting down map server..."
+ killall map-server
+}
+
+athena_restart() {
+ athena_stop
+ echo "Waiting for all processes to end..."
+ sleep 10
+ athena_start
+}
+
+case "$1" in
+'start')
+ athena_start
+ ;;
+'stop')
+ athena_stop
+ ;;
+'restart')
+ athena_restart
+ ;;
+*)
+ echo "usage $0 start|stop|restart"
+esac
diff --git a/conf/atcommand_athena.conf b/conf/atcommand_athena.conf
new file mode 100644
index 00000000..b0711beb
--- /dev/null
+++ b/conf/atcommand_athena.conf
@@ -0,0 +1,629 @@
+// Athena atcommand Configuration file.
+// Translated by Peter Kieser <pfak@telus.net>
+
+// Set here the symbol that you want to use for your commands
+// Only 1 character is get (default is '@'). You can set any character,
+// except control-character (0x00-0x1f), '%' (party chat speaking) and '/' (standard ragnarok GM commands)
+// With default character, all commands begin by a '@': <example> @revive
+command_symbol: @
+
+
+// Sets the level of the users that can use the GM commands.
+// <command name>: level
+// When battle_athena.conf has atcommand_gm_only set to no,
+// normal players (gm level 0) can use GM commands if you set 0 to the command level.
+// Max GM level is 99. If you want forbid a command to all people, set it with level 100.
+
+// Default values are set to define different GM levels like follow:
+// 0: normal player
+// -> no special advantage (only @time to know time and if at_command_gm_only is disabled)
+// 1: Super player
+// -> some (very) little advantages: storage, petrename, etc...
+// 10: Super player+
+// -> same of Super player with !go (very super player)
+// 20: Mediator
+// -> it's a GM that only need to know people, and move to their to speak with them (they can access to any command about wisps)
+// 40: Sub-GM
+// -> This GM can help a GM, and can not create item or zeny or modify a character (can have some information commands)
+// 50: Sub-GM+
+// -> This GM can change some non-important things on a character
+// 60: GM
+// -> can do almost anything (excep administration, and mass commands)
+// GM is the first level where we can modify a character with important value, create items or create zenys
+// 80: GM Chief
+// -> can do anything, except administration commands
+// 99: Administrator
+// -> can do anything!
+
+
+//--------------------------
+// 0: normal player commands
+
+// Give server time. (6 same commands)
+time: 0
+date: 0
+server_date: 0
+serverdate: 0
+server_time: 0
+servertime: 0
+
+// Display your ignore list (people from which you ignore wisps)
+ignorelist: 0
+
+// To change your (own) email (characters protection)
+// note: this command doesn't check email itself, but check structure of the email (xxx@xxx)
+// if you want be sure of each e-mail disable this option (value: 100)
+email: 0
+
+// To become GM (need password; password is set in login_athena.conf).
+// special!: only a non-GM (player with gm level 0) need to have this command.
+// if you change the value, be sure of what you do!
+// To be able to create a gm with @gm, you must:
+// - give a level to level_new_gm (parameter of login_athena.conf) (not 0)
+// - enable to level 0 the @gm command (atcommand_athena.conf) (default 100) - Only level 0 can give access to this command
+// - enable gm commands to normal player (battle_athena.conf, atcommand_gm_only parameter)
+// - and normal player must give correct password when he use the @gm command (gm_pass paramter in login_athena.conf)
+gm: 100
+
+
+//-------------------------
+// 1: Super player commands
+
+// Suicide your character.
+die: 1
+
+// Enables you to rename your pet.
+petrename: 1
+
+party: 1
+
+// Brings up your personal storage wherever you are.
+storage: 1
+
+// Locate someone on a map, returns your coordinates if the person isn't on.
+where: 1
+
+
+//---------------------------
+// 10: Super player+ commands
+
+// Spawns you to set points in major cities.
+go: 10
+
+
+//----------------------
+// 20: Mediator commands
+
+// Displays helpfile in Athena base directory (2 same commands).
+help: 20
+h: 20
+
+// Warp yourself to a person (3 same commands + /shift).
+jumpto: 20
+goto: 20
+warpto: 20
+
+// follow a player (including warping to them)
+follow: 20
+
+// Disconnects a user from the server (1 command + right click menu for GM "(name) force to quit").
+kick: 20
+
+// Changes your apperance.
+model: 20
+
+// To get a peco to (un)ride
+mountpeco: 20
+
+// Returns list of logged in characters with their position (2 same commands).
+who: 20
+whois: 20
+
+// Returns list of logged in characters with their job.
+who2: 20
+
+// Returns list of logged in characters with their party/guild.
+who3: 20
+
+// Returns list of logged in characters with their position in a specifical map.
+whomap: 20
+
+// Returns list of logged in characters with their job in a specifical map.
+whomap2: 20
+
+// Returns list of logged in characters with their party/guild in a specifical map.
+whomap3: 20
+
+// Like @who+@who2+who3, but only for GM.
+whogm: 20
+
+// Change your appearence to other players to a mob.
+disguise: 20
+
+//Restore your normal appearance.
+undisguise: 20
+
+// Display ignore list of a player (people from which the player ignore wisps)
+charignorelist: 20
+
+// Enable all wispers for a player
+inall: 20
+
+// Disable all wispers for a player
+exall: 20
+
+
+//--------------------
+// 40: Sub-GM commands
+
+// Broadcast to the whole server. Using (1 command + /nb, /b).
+broadcast: 40
+
+// Broadcast to the map you are on (1 command + /lb, /nlb).
+local_broadcast: 40
+
+// Broadcast (with or without name).
+kami: 40
+kamib: 40
+
+// Enables you to go to a certain map, at (x,y) coordinates. (@mapmove + /mm or /mapmove)
+mapmove: 40
+
+// Enables you to view other characters stats.
+charstats: 40
+
+// Shows Stats Of All Characters Online
+charstatsall: 40
+
+// Enables GVG on a map (2 same commands).
+gvgon: 40
+gpvpon: 40
+
+// Turns GVG (Guild v. Guild) off on a map (2 same commands).
+gvgoff: 40
+gpvpoff: 40
+
+// Heals a person to full HP/SP.
+heal: 40
+
+// GM Hide (enables you to be invisible to characters, and most monsters) (1 command + /hide).
+hide: 40
+
+// Changes your job to one you specify (2 same commands).
+job: 40
+jobchange: 40
+
+// Enables you to to jump randomly on a map (that you are already on).
+jump: 40
+
+// Warps you to your last save point (2 same commands).
+return: 40
+load: 40
+
+// Enables lost skills.
+lostskill: 40
+
+// Saves a warp point.
+memo: 40
+
+// Set your character display options. (Visual effects of your character)
+option: 40
+
+//Makes an egg
+makeegg: 40
+
+//Hatches an egg
+hatch: 40
+
+// Sets the level of intemecy of your pet.
+petfriendly: 40
+
+// Sets hunger level of your pet.
+pethungry: 40
+
+// Turns PVP (Person v. Person) off on a map.
+pvpoff: 40
+
+// Enables PVP on a map.
+pvpon: 40
+
+// Enables platinum skills.
+questskill: 40
+
+// Sets the speed you can walk/attack at. Default is 150.
+speed: 40
+
+// Enables spirit sphere balls.
+spiritball: 40
+
+// Warp yourself to a certain map, at (x,y) coordinates (2 same commands).
+rura: 40
+warp: 40
+
+// Changes GM clothes color (2 same commands)
+dye: 40
+ccolor: 40
+
+// Changes GM hair style (2 same commands)
+hairstyle: 40
+hstyle: 40
+
+// Changes GM hair color (2 same commands)
+haircolor: 40
+hcolor: 40
+
+// Deletes all your items.
+itemreset: 40
+
+// Kill all monsters in map (without drops)
+killmonster2: 40
+
+// Sets your spawn point (aka save point).
+save: 40
+
+// Do some visual effect on your character
+effect: 40
+
+// Display all items of a player
+charitemlist: 40
+
+// Display all items of a player's storage
+charstoragelist: 40
+
+// Display all items of a player's cart
+charcartlist: 40
+
+// drop all your items
+dropall: 40
+
+// store all your items
+storeall: 40
+
+// allow other players to hit you out of pvp
+killable: 40
+
+// look up a skill by name
+skillid: 40
+
+// use a skill by id
+useskill: 40
+
+// make another player killable
+charkillable: 40
+
+//---------------------
+// 50: Sub-GM+ commands
+
+// Changes character's model
+charmodel: 50
+
+guild: 50
+
+// Brings up your guild storage wherever you are.
+gstorage: 50
+
+// Spawns a monster, and a certain amount (3 same commands + /monster).
+spawn: 50
+monster: 50
+summon: 50
+
+// Spawns a monster with parameters not in same order of @spawn.
+monster2: 50
+
+// To get a peco to (un)ride for another player.
+charmountpeco: 50
+
+// Enables to give possibility to a player to rename his/her pet.
+charpetrename: 50
+
+
+//----------------
+// 60: GM commands
+
+// Starts Guild Wars
+agitstart: 60
+
+// Ends Guild Wars
+agitend: 60
+
+// Resurects yourself.
+alive: 60
+
+// Levels your character to specified level (adds to your level) (3 same commands).
+lvup: 60
+baselvlup: 60
+blevel: 60
+
+// Raises your job level (3 same commands).
+joblvup: 60
+joblvlup: 60
+jlevel: 60
+
+// Sets another persons base level.
+charbaselvl: 60
+
+// Changes the sex of an online player (all characters on the account)
+charchangesex: 60
+
+// Remove items from a character
+chardelitem: 60
+
+// Sets another persons job level.
+charjlvl: 60
+
+// Sets the job of another character (2 same commands).
+charjob: 60
+charjobchange: 60
+
+// Set options on another character.
+charoption: 60
+
+// Gives another character status points
+charstpoint: 60
+
+// Gives another character skill points
+charskpoint: 60
+
+// Resets another character's stats
+charreset: 60
+
+// Resets another character's status, skills
+charstreset: 60
+charskreset: 60
+
+// Saves the respawn point of another character.
+charsave: 60
+
+// Changes another character's zenny
+charzeny: 60
+
+// Levels your guild to specified level (2 same commands).
+guildlvup: 60
+guildlvlup: 60
+
+idsearch: 60
+
+// Creates an item of your choosing, either Item ID or Name (1 command + /item).
+item: 60
+
+// Creates a complet item (card, etc...) of your choosing, either Item ID or Name.
+item2: 60
+
+// ??
+itemcheck: 60
+
+// Kill another character without hitting them.
+kill: 60
+
+// Kill all monsters in map (with drops)
+killmonster: 60
+
+// Creates yourself a pet egg, have to use Pet ID.
+makeegg: 60
+
+// Instantly kills player whose name is entered and deals insane damage to everything around.
+// Disabled for now
+//nuke: 60
+
+// Enable hitting a player even when not in pvp
+killer: 60
+
+// Creates weapon of desired element.
+produce: 60
+
+// Warps a character to you (1 command + /recall).
+recall: 60
+
+// Refines all weapons in your items list.
+refine: 60
+
+// Will repair all broken items in inventory.
+repairall: 60
+
+// Revives a character, and heals them.
+revive: 60
+
+// Warp another person to a certain map, at (x,y) coordinates (2 same commands).
+rura+: 60
+charwarp: 60
+
+// Change Status of your character
+str: 60
+agi: 60
+vit: 60
+int: 60
+dex: 60
+luk: 60
+
+// Gets all skills (4 same commands)
+allskill: 60
+allskills: 60
+skillall: 60
+skillsall: 60
+
+// sets GM stats to maximum (4 same commands)
+statall: 60
+statsall: 60
+allstats: 60
+allstat: 60
+
+// Gives you job points.
+stpoint: 60
+
+// Gives you skill points of desired amount.
+skpoint: 60
+
+// Warps all online character of a guild to you. (at least one member of that guild must be on.)
+guildrecall: 60
+
+// Warps all online character of a party to you. (at least one party member must be online.)
+partyrecall: 60
+
+// Allows you to spy on any Guilds Guild chat. (at least one member of that guild must be on.)
+guildspy: 60
+
+//Allows you to spy on any party's party chat. (at least one party member must be online.)
+partyspy: 60
+
+// Gives you money (zeny) of desired amount.
+zeny: 60
+
+// To block definitively a player (only administrator can unblock the account) (2 same commands)
+block: 60
+charblock: 60
+
+// To unblock a player (2 same commands)
+unblock: 60
+charunblock: 60
+
+// To ban a player for a limited time (only administrator can unban the account) (4 same commands)
+ban: 60
+banish: 60
+charban: 60
+charbanish: 60
+
+// To unban a player (4 same commands)
+unban: 60
+unbanish: 60
+charunban: 60
+charunbanish: 60
+
+// To send specified character in jails
+jail: 60
+
+// To discharge a prisoner (2 same commands)
+unjail: 60
+discharge: 60
+
+// To change disguise of another player/GM
+chardisguise: 60
+charundisguise: 60
+
+// Enables platinum skills of another player.
+charquestskill: 60
+
+// Enables lost skills of another player.
+charlostskill: 60
+
+// turn on and off skills on a map
+skillon: 60
+skilloff: 60
+
+// Create a static warp portal that lasts until the next reboot
+addwarp: 60
+
+// drop a players possessions on the gruond
+chardropall: 60
+
+// put a players possessions in storage
+charstoreall: 60
+
+//----------------------
+// 80: GM Chief commands
+
+// Set the map you are on to day.
+day: 80
+
+// Kills everyone on the server.
+doom: 80
+
+// Kills everyone on the map you are on.
+doommap: 80
+
+// Set the map you are currently on to night.
+night: 80
+
+// Recalls Everyone To Your Coordinates
+recallall: 80
+
+// Revives all players on the map.
+raisemap: 80
+
+// Revives all players on the server.
+raise: 80
+
+// Enables a NPC.
+enablenpc: 80
+
+// Disables a NPC.
+disablenpc: 80
+
+// Move a NPC
+npcmove: 80
+
+// turn skills on for a map
+skillon: 80
+
+// turn skills off for a map
+skilloff: 80
+
+// Unmute a player
+unmute: 60
+
+//---------------------------
+// 99: Administrator commands
+
+// Disconnect all users from the server
+kickall: 99
+
+// Closes Map-Server
+mapexit: 99
+
+// Give information about terrain/area (debug function)
+gat: 99
+
+// Enables debugging
+packet: 99
+
+// Shows information about the map
+mapinfo: 99
+
+// Re-load item database (admin command)
+reloaditemdb: 99
+
+// Re-load monsters database (admin command)
+reloadmobdb: 99
+
+// Re-load skills database (admin command)
+reloadskilldb: 99
+
+// Re-load scripts (admin command)
+reloadscript: 99
+
+// Re-load GM level (admin command)
+reloadgmdb: 99
+
+// Refresh only status of players - SQL Only
+refreshonline: 99
+
+
+//---------------------------------------------------------------
+// 0: Mail System - SQL Only commands - Must be enabled
+
+// Check # of messages.
+checkmail: 1
+
+// List all messages.
+listmail: 1
+
+// List only new mail.
+listnewmail: 1
+
+// Read a message.
+readmail: 1
+
+// Send mail.
+sendmail: 1
+
+// Send priority mail (tagged with Priority and cannot be deleted until read)
+sendprioritymail: 80
+
+// Delete a message.
+deletemail: 0
+
+
+
+//---------------------
+// OTHER: not a command
+
+//import: conf/import/atcommand_conf.txt
diff --git a/conf/battle_athena.conf b/conf/battle_athena.conf
new file mode 100644
index 00000000..a272a603
--- /dev/null
+++ b/conf/battle_athena.conf
@@ -0,0 +1,711 @@
+
+//--------------------------------------------------------------
+//eAthena Battle Configuration File
+// Made in to plainer english by Ancyker
+//--------------------------------------------------------------
+//Note 1: Directives can be set using on/off, yes/no or 1/0.
+//Note 2: All rates are in percents, 100 would mean 100%, 200
+// would mean 200%, etc
+// Other Information:
+// 1000 miliseconds is 1 second.
+//--------------------------------------------------------------
+
+// Do you want to debug warp points? If set to yes, warp points will appear as flags.(Note 1)
+warp_point_debug: no
+
+// When calculating critical, should we take in to account the enimies luck? (Note 1)
+enemy_critical: yes
+
+// Enemy's Critical Rate (Note 2)
+enemy_critical_rate: 100
+
+// Are enemy attacks effected by their strength? (Note 1)
+enemy_str: yes
+
+// Can enemies have perfect flee? (Note 1)
+enemy_perfect_flee: no
+
+// 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
+
+// Is the delay time is dependent on the caster's DEX? (Note 1)
+delay_dependon_dex: yes
+
+// At what dex does the cast time become zero (instacast)
+castrate_dex_scale: 150
+
+// Is 'Skills add a delay before you can attack' enabled? (Note 1)
+skill_delay_attack_enable: no
+
+// Whether or not cards and attributes in the left hand are enabled (Note 1)
+left_cardfix_to_right: yes
+
+// Increase player's attack range (in cells)
+player_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: no
+
+// Increase Monsters attack range
+monster_skill_add_range: 0
+
+// If a player is attacked, will they have a delay in being able to move? (Note 1)
+// (Setting to no will be like always endure)
+player_damage_delay: yes
+
+// Damaged delay rate (Note 2)
+player_damage_delay_rate: 100
+
+// Is a player's defense NOT dependant on an enemies attack? (Note 1)
+defunit_not_enemy: yes
+
+// Are summoned monsters level greater then your base level? (I think this is for dead branches) (Note 1)
+random_monster_checklv: yes
+
+// The maximum quantity of monsters that can be summoned per GM command (0 denotes an unlimited quantity)
+atcommand_spawn_quantity_limit: 100
+
+// Does HP recover if hit by an attribute that's same as your own? (Note 1)
+attribute_recover: yes
+
+// If an item is droped, does it go stright into the users inventory? (Note 1)
+item_auto_get: no
+
+// How long does it take for an item to disappear from the floor after it is dropped? (in miliseconds)
+flooritem_lifetime: 60000
+
+// How long before the first person who did the most damage to a monster can get the item? (in milliseconds)
+item_first_get_time: 3000
+
+// How long before the second person who did the second most damage to a monster can get the item? (in milliseconds)
+// (It Adds Time From The First Persons Time)
+// So, It Is Like First Person's Time + Second Person's Time = Time Before Second Person Can Get The Items
+item_second_get_time: 1000
+
+// How long before the third person who did the third most/least damage to a monster can get the item? (in milliseconds)
+// (It Adds Time From The First Persons Time And Second Persons Time)
+// So, It Is Like First Person's Time + Second Person's Time + Third Person's Time = Time Before Third Person Can Get The Items
+item_third_get_time: 1000
+
+// How long before the first person who did the most damage to a MVP can get the item? (in milliseconds)
+mvp_item_first_get_time: 10000
+
+// How long before the second person who did the second most damage to a MVP can get the item? (in milliseconds)
+// (It Adds Time From The First Persons Time)
+// So, It Is Like First Person's Time + Second Person's Time = Time Before Second Person Can Get The Items
+mvp_item_second_get_time: 10000
+
+// How long before the third person who did the third most/least damage to a MVP can get the item
+//(Note the Amount is in Milliseconds and It Adds Time From The First Persons Time And Second Persons Time)
+//So It Is Like First Person's Time + Second Person's Time + Third Person's Time = Time Before Third Person Can Get The Items
+mvp_item_third_get_time: 2000
+
+// Item drop rates (Note 2)
+
+// The rate the common items are droped (Items that are in the ETC tab, besides card)
+item_rate_common: 100
+item_drop_common_min: 1
+item_drop_common_max: 10000
+
+// The rate healing items are droped (items that restore HP or SP)
+item_rate_heal: 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 droped.
+item_rate_use: 100
+item_drop_use_min: 1
+item_drop_use_max: 10000
+
+// The rate at which equipment is droped.
+item_rate_equip: 100
+item_drop_equip_min: 1
+item_drop_equip_max: 10000
+
+// The rate at which cards are droped
+item_rate_card: 100
+item_drop_card_min: 1
+item_drop_card_max: 10000
+
+item_drop_mvp_min: 1
+item_drop_mvp_max: 10000
+
+// Can the monster's drop rate become 0? (Note 1)
+drop_rate0item: no
+
+// 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
+
+// PVP exp. Do players get exp during pvp
+pvp_exp: yes
+
+// When a player dies, how should we penalize them?
+// 0 = No penalty.
+// 1 = Lose % of current level when killed.
+// 2 = Lose % of total experience when killed.
+death_penalty_type: 1
+
+// Base exp. penalty rate (Each 100 is 1% of their exp)
+death_penalty_base: 100
+
+// Job exp. penalty rate (Each 100 is 1% of their exp)
+death_penalty_job: 100
+
+// When a player dies, how much zeny should we penalize them with?
+zeny_penalty: 0
+
+// The amount of HP a player will respawn with, 0 is default.
+// (Unit is in percentage of total HP, 100 is full heal of HP, 0 is respawn with 1HP total.)
+restart_hp_rate: 0
+
+// The amount of SP a player will respawn with, 0 is default.
+// (Unit is in percentage of total SP, 100 is full heal of SP, 0 is respawn with 1SP total.)
+restart_sp_rate: 0
+
+// [MVP] Summoned monsters HP rate, that is, monsters summoned by an MVP will have this much HP. (Note 2)
+mvp_hp_rate: 100
+
+// [MVP] Item drop rate, that is, the overall drop rate for items droped by an MVP. (Note 2)
+mvp_item_rate: 100
+
+// [MVP] Exp. rate. (Note 2)
+mvp_exp_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
+
+// (@) GM Commands available only to GM's? (Note 1)
+// set to 'No', Normal players (gm level 0) can use GM commands _IF_ you set the command level to 0.
+// set to 'Yes', Normal players (gm level 0) can never use a GM command even if you set the command level to 0.
+atcommand_gm_only: no
+
+// [GM] Can use all skills? (No or mimimum GM level)
+gm_all_skill: no
+
+// [GM] Can use all abracadabra skills? (No minimum GM level)
+gm_all_skill_add_abra: no
+
+// [GM] Can equip anything? (No or minimum GM level, can cause client errors.)
+gm_all_equipment: no
+
+// [GM] Raise skills unconditionally, that is, put points in to a skill not in thier jobs skill tree? (no or minimum gm level)
+gm_skill_unconditional: no
+
+// Can a normal player by-pass the skill tree? (Note 1)
+player_skillfree: no
+
+// When doing a skill reset, whether the skill's restriction is to be ignored or not. (Note 1)
+player_skillup_limit: yes
+
+// Forging success rate. (Note 2)
+weapon_produce_rate: 100
+
+// Prepare Potion succsss rate. (Note 2)
+potion_produce_rate: 100
+
+// Allow monsters to be aggresive and attack first? (Note 1)
+monster_active_enable: yes
+
+// Monster damage delay rate (Note 1)
+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
+
+// Enable monster skills? (Note 1)
+mob_skill_use: yes
+
+// Rate of monsters on a map, 200 would be twice as many as normal. (Note 2)
+mob_count_rate: 100
+
+// Quest skills can be learned? (Note 1)
+// Setting this to yes can open an exploit on your server!
+quest_skill_learn: no
+
+// When skills are reset, quest skills are reset as well? (Note 1)
+// Setting this to yes can open an exploit on your server!
+quest_skill_reset: no
+
+// You must have basic skills to be able to sit, trade, form a party or create a chatroom? (Note 1)
+basic_skill_check: yes
+
+// When making a guild, an Emperium is consumed? (Note 1)
+guild_emperium_check: yes
+
+// Maximum tax limit on a guild member.
+guild_exp_limit: 50
+
+// Maximum castles one guild can own (0 - unlimited)
+guild_max_castles: 0
+
+// 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.
+// If you attack a monster, it will attack you back regaurdless of this setting. (I think)
+player_invincible_time: 5000
+
+// [PET] Rate for catching pets (Note 2)
+pet_catch_rate: 100
+
+// [PET] Can you name a pet more then once? (Note 1)
+pet_rename: no
+
+// [PET] The rate a pet will get friendly by feeding it. (Note 2)
+pet_friendly_rate: 100
+
+// [PET] The rate at which a pet will become hungry. (Note 2)
+pet_hungry_delay_rate: 100
+
+// [PET] 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
+
+// [PET] Does Pet's Attack Damage Based On Str (Note 1)
+pet_str: yes
+
+// [PET] Whether or not the pet's will use skills. (Note 1)
+pet_status_support: yes
+
+// [PET] Does the pet need its equipment before it does its skill? (Note 1)
+pet_equip_required: yes
+
+// [PET] Will all pets attack? (Note 1)
+// Do NOT use this with pet skills!
+pet_attack_support: no
+
+// [PET] When the master receives damage from the monster, whether or not the pet attacks back.
+pet_damage_support: no
+
+// [PET] Rate at which a pet will support it's owner in battle. (Note 2)
+pet_support_rate: 100
+
+// [PET] Does the pets owner receive exp from the pets damage?
+pet_attack_exp_to_master: no
+
+// [PET] The rate exp. is gained from the pet attacking monsters
+pet_attack_exp_rate: 100
+
+// Will there be a minimum skill dmg even if there is a miss?
+skill_min_damage: no
+
+// Which finger offensive style can be used?
+// 0 = Aegis style
+// 1 = Athena style
+finger_offensive_type: 0
+
+// 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 (100 is normal, 200 is double.)
+// The way it is calculated is (money recieved * skill lv) * shop_exp / 100.
+shop_exp: 0
+
+// The delay rate of monk's combo (Note 2)
+combo_delay_rate: 100
+
+// Item check? (Note 1)
+// When logged in or moving in map if the item the player is holding isn't correct there will be a check.
+item_check: no
+
+// Will tuxedo and wedding dresses be shown when worn? (Note 1)
+wedding_modifydisplay: yes
+
+// 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
+
+// Override item names from GRF file? (Note 1)
+item_name_override_grffile: yes
+
+// Are arrows are consumed when used on a bow? (Note 1)
+arrow_decrement: yes
+
+// Maximum atk speed. (Default is 190)
+max_aspd: 190
+
+// Maximum HP. (Default is 32500)
+max_hp: 32500
+
+// Maximum SP. (Default is 32500)
+max_sp: 32500
+
+// Maximum user LV to send to client
+// (Default is 99.. Never go above 127)
+//
+// this is only useful if you have adjusted your client
+// to expect levels higher then 99
+max_lv: 99
+
+// Max limit of char stats. (agi, str, etc.)
+max_parameter: 99
+
+// Max weight carts can hold.
+max_cart_weight: 8000
+
+// Display player skill errors in console? (for debug only) (default: off) (Note 1)
+player_skill_log: off
+
+// Display monster skill errors in console? (for debug only) (default: off) (Note 1)
+monster_skill_log: off
+
+// Display battle log? (for debug only) (default: off) (Note 1)
+battle_log: off
+
+// Display save log? (for debug only) (default: off) (Note 1)
+save_log: off
+
+// Display errors? (for debug only) (default: off) (Note 1)
+error_log: off
+
+// Display other stuff? (for debug only) (default: off) (Note 1)
+etc_log: off
+
+// Save Clothes color. (This will degrade performance [in txt?]) (Note 1)
+save_clothcolor: yes
+
+// Undead type differeniate.
+// 0 = element undead
+// 1 = race undead
+// 2 = both
+undead_detect_type: 2
+
+// Operational mode of automatic counter.
+// 0 = disregard DEF and HIT+20 . CRI*2, 1 = 100% critical
+// Players
+player_auto_counter_type: 0
+// Monsters
+monster_auto_counter_type: 0
+
+// Type of penalty that is applied to FLEE when more than agi_penaly_count monsters are targetting player
+// 0 = no penalty is applied
+// 1 = agi_penaly_num is reduced from FLEE as a %
+// 2 = agi_penaly_num is reduced from FLEE as an exact amount
+agi_penaly_type: 1
+
+// Amount of enemies required to be targetting player before FLEE begins to be penalized
+agi_penaly_count: 3
+
+// Amount of FLEE penalized per each attacking monster more than agi_penaly_count
+agi_penaly_num: 10
+
+// Type of penalty that is applied to VIT defense when more than vit_penaly_count monsters are targetting player
+// 0 = no penalty is applied
+// 1 = vit_penaly_num is reduced from FLEE as a %
+// 2 = vit_penaly_num is reduced from FLEE as an exact amount
+vit_penaly_type: 1
+
+// Amount of enemies required to be targetting player before VIT defense begins to be penalized
+vit_penaly_count: 3
+
+// Amount of VIT defense penalized per each attacking monster more than vit_penaly_count
+vit_penaly_num: 5
+
+// When the player attacks an object, the calculation method of DEF.
+// With 0 this will be ignored specification, at 1 or more def = subtraction of (DEF* value).
+player_defense_type: 0
+
+// When the monster attacks an object, the calculation method of DEF.
+// With 0 this will be ignored, at 1 or more def = subtraction of (DEF* value).
+monster_defense_type: 0
+
+// When the pet attacks an object, the calculation method of DEF.
+// With 0 this will be ignored specification, at 1 or more def = subtraction of (DEF* value).
+pet_defense_type: 0
+
+//MDEF‚same as above....(MDEF*value)
+magic_defense_type: 0
+
+// Whether or not, ground skills of the players' will stack. (Note 1)
+player_skill_reiteration: no
+
+//Whether or not, ground skills of the monsters' will pile up. (Note 1)
+monster_skill_reiteration: no
+
+//Whether or not ground based skills of a certain type such as traps can be cast straight onto other players. (Note 1)
+player_skill_nofootset: yes
+
+//Whether or not ground based skills of a certain type such as traps can be cast straight onto monsters. (Note 1)
+monster_skill_nofootset: yes
+
+// When a player is cloaking, Whether the wall is checked or not. (Note 1)
+// Note: Gravity announced that they were changing cloaking so it would
+// not need a wall, but this was never implemented. I set to no, for fun.
+player_cloak_check_type: no
+
+// When a monster is cloaking, Whether the wall is checked or not. (Note 1)
+monster_cloak_check_type: no
+
+// Melee damage adjustments for WoE battles (Guild Vs Guild) (Note 2)
+gvg_short_attack_damage_rate: 100
+
+// Ranged damage adjustments for WoE battles (Guild Vs Guild) (Note 2)
+gvg_long_attack_damage_rate: 100
+
+// Magic damage adjustments for WoE battles (Guild Vs Guild) (Note 2)
+gvg_magic_attack_damage_rate: 100
+
+// Misc damage adjustments for WoE battles (Guild Vs Guild) (Note 2)
+gvg_misc_attack_damage_rate: 100
+
+// When the empelium is broken with WoE mode on, How Long Before The Declaration Of Castle Owner
+// and Removal of Monsters/Players from Castle. (in milliseconds)
+gvg_eliminate_time: 7000
+
+// Whether or not skill is used vis-a-vis the user at the time of MOB skill motion of condition skillused. (Note 1)
+// Not sure what this means, something about monsters changing target?
+mob_changetarget_byskill: no
+
+// Player's Direction Changed When Attacking? (Note 1)
+player_attack_direction_change: yes
+
+// Monsters's Direction Changed When Attacking? (Note 1)
+monster_attack_direction_change: yes
+
+// If the player has Undead Elemental Equipment, should they be frozen or not. (Note 1)
+player_undead_nofreeze: no
+
+// Will Player Skills Stay Within Land Limit or not? (Note 1)
+player_land_skill_limit: yes
+
+// Will Monster Skills Stay Within Land Limit or not? (Note 1)
+monster_land_skill_limit: yes
+
+// If a party uses a skill with penalties do they apply? (Note 1)
+party_skill_penaly: yes
+
+// If monster's class is changed will it fully recover HP and SP and Ailments? (Note 1)
+monster_class_change_full_recover: no
+
+// Do produced items have the maker's name on them? (Note 1)
+produce_item_name_input: yes
+
+// Do produced potions have the maker's name on them? (Note 1)
+produce_potion_name_input: yes
+
+// Do crafted arrows have the maker's name on them? (Note 1)
+making_arrow_name_input: yes
+
+// Does created holy water have the maker's name on it? (Note 1)
+holywater_name_input: yes
+
+// Stop logout for 10 seconds after a hit? (Note 1)
+prevent_logout: yes
+
+// If skill fails by delay, should it display or not. (Note 1)
+display_delay_skill_fail: yes
+
+// Can a player in chat room (in-game), be warped by a warp portal? (Note 1)
+chat_warpportal: no
+
+// Can a monster be warped by a warp portal? (Note 1)
+mob_warpportal: no
+
+// Is a monster summoned via dead branch aggresive? (Note 1)
+dead_branch_active: yes
+
+// The highest value at which an item can be sold via the merchant vend skill. (in zeny)
+vending_max_value: 10000000
+
+// If someone loots, show name in party? (Note 1)
+show_steal_in_same_party: no
+
+// Allow upper class (Advanced 2nd Class)? (Note 1)
+// Just leave this at yes
+enable_upper_class: yes
+
+// Is a usual attack of a pet delivered withOUT an attribute? (Note 1)
+pet_attack_attr_none: no
+
+// Is a usual attack of a player delivered withOUT an attribute? (Note 1)
+pc_attack_attr_none: no
+
+// Is a usual attack of a monster delivered withOUT an attribute? (Note 1)
+mob_attack_attr_none: no
+
+// mob attacks againsts players wearing ghostring armor do full damage
+mob_ghostring_fix: no
+
+// Does the Golden Thief Bug card only work during pvp?
+// no or 0 - gtb works all the time
+// 1 - 100 - percentage of magic damage reduced only during pvp (or gvg)
+gtb_pvp_only: no
+
+// How to count the number of the enemies who do an agi penalty...
+// 1 or less: It is a count altogether.
+// 2: Full evasion exclusion
+// 3: Full evasion and evasion exclusion
+// 4 or more: Except all.
+agi_penaly_count_lv: 2
+
+// How to count the number of the enemies who do a vit penalty
+// 1 or less: It is a count altogether.
+// 2: Full evasion exclusion
+// 3: Full evasion and evasion exclusion
+// Four or more: Except all.
+vit_penaly_count_lv: 3
+
+// Grandcross Settings (Dont mess with these)
+// Even if MOB (PC) has overlapped, it HIT(s) compulsion 3. (Default no)
+gx_allhit: no
+// The effect of the arms card of a damage %UP system is set also to GX at -L effect. (default no)
+gx_cardfix: no
+// The attribute affinity of GX is calculated doubly. (Default yes)
+gx_dupele: yes
+// Grandcross display type (Default 1)
+// 0: Yellow character
+// 1: White character
+gx_disptype: 1
+
+// If no than you can use the ensemble skills alone. (Note 1)
+player_skill_partner_check: yes
+
+// Is the character of a GM account set as the object of a display by @ command etc. or not?
+hide_GM_session: no
+
+// ƒ†ƒjƒbƒgˆÚ“®ˆ-•û-@B0‚Å-{ŽIŽd-l(‰ñü•‰‰×¨dAŽIˆ-¨Œy)A1‚ÅAthenaŽd-l(‰ñü•‰‰×¨ŒyAŽIˆ-¨d)
+// translation (babelfish):
+// Unit portable place - ? @.
+// With 0 - {mackerel SI -l (circuit load -> heavily, the mackerel place - the ? ? lightly),
+// With 1 - Athena SI -l (circuit load -> lightly, the mackerel place - the ? ? it is heavy)
+unit_movement_type: 0
+
+// Are other requests accepted during [various things[party,guild]] a request or not?
+// It does not accept by no accepted by yes.
+invite_request_check: yes
+
+// ƒŠƒ€[ƒuƒgƒ‰ƒbƒv‚ÌŽd-l 0:-{ŽIŽd-lAã©1ŒÂ 1:AthenaŽd-lAŽg‚Á‚½ƒAƒCƒeƒ€‚ðŽg‚Á‚½ŒÂ”
+// translation (babelfish):
+// SI of ???????? -l
+// 0: - {Mackerel SI -l, trap 1
+// 1:Athena SI -l, the quantity which used the item which was used
+skill_removetrap_type: 0
+
+// Will display experience gained from killing a monster. (Note 1)
+disp_experience: no
+
+// Whether or not Marine Spheres and Floras summoned by Alchemist will drop items and give experience? (Note 1)
+alchemist_summon_reward: no
+
+// Maximum level (default 255). Requires that you have an experience table that supports more than 99 levels to go
+// any higher. It is left at 255 for default as to not cause problems for people who already have players at higher levels.
+// @lvup command will not go higher than this value, and therefor will not loop back around 0.
+maximum_level: 255
+
+// Leave at 0 to use normal drop system. Anything higher than 0 will allow luk to affect drop rates, based on a percentage.
+// Example 1: Setting of 10 with 50 luk would add 5 to the drop rate. So say a card has a drop rate of 2, it would become 7.
+// Example 2 : Setting 100 with 99 luk would add 99 to the drop rate.
+drops_by_luk: 0
+
+// Do all monsters ignore GMs unless attacked? (Note 1)
+monsters_ignore_gm: no
+
+// Turn equipment breaking on. (Note 1)
+// Turning this one will allow equipment to break in battles,
+// as well as some skills that have chance to break equipmen.
+equipment_breaking: no
+
+// Overall rate of which equipment can break. (Note 2) [100 = .01% chance to break equipment before penalties.]
+// Critical attacks will double chance to break equipment, and other skills (such as Power Thrust) will increase weapon breaking chance as well.
+// This does not effect Sage weapon enchantment failure chance.
+equipment_break_rate: 100
+
+// 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.
+pk_mode: no
+
+// Turn this on to allow a player to level up more than once from a kill. (Note 1)
+multi_level_up: no
+
+// Does using bow to do a backstab give a 50% damage penalty? (Note 1)
+backstab_bow_penalty: yes
+
+// Choose if server begin with night (yes) or day (no)
+night_at_start: no
+
+// Define duration in msec of the day (default: 7,200,000 = 2 hours)
+// Set to 0 to disable day cycle (but not @day GM command).
+// Except 0, minimum is 60000 (1 minute).
+day_duration: 7200000
+
+// Define duration in msec of the night (default: 1,800,000 = 30 min)
+// Set to 0 to disable night cycle (but not @night GM command).
+// Except 0, minimum is 60000 (1 minute).
+night_duration: 1800000
+
+// Will display a mob's hp/maxhp when the mouse cursor is over them. (Note 1)
+// Will not display guardian or emperium hp.
+//
+// Still under testing (works but doesn't update)
+show_mob_hp: no
+
+// Ban people that try to use an other name of its name (spoof name).
+// Duration of the ban, in minutes (default: 5). Value from 0 to 32767
+// to disable the ban, set 0
+ban_spoof_namer: 5
+
+// Set here minimum level of a (online) GM that can receive all informations about any player that try to hack, spoof a name, etc.
+// Values are from 0 to 100.
+// 100: disable information
+// 0: send to any people, including normal players
+// default: 60, according to GM definition in atcommand_athena.conf
+hack_info_GM_level: 60
+
+// Set here the minimum GM level to disable the nowarp (from) and nowarpto (to) flags.
+// This option is mainly used in AT_commands (@memo, @warp, @charwarp, @go, etc...). All GM commands used to move or set a new map check nowarp and nowarpto flags.
+// default: 20 (first level after normal player or super'normal' player)
+any_warp_GM_min_level: 20
+
+// Set here which client version do you accept. Add all values of clients:
+// 1: Clients before 2004-07-06 (old clients)
+// 2: 2004-07-06 kRO client
+// 4: 2004-07-13 kRO client
+// 8: 2004-07-26 kRO client
+// 16: 2004-08-09 kRO / 2004-08-16aSakray / 2004-08-17aSakray client
+// 32: 2004-09-06aSakray client
+// default value: 63 (all clients)
+packet_ver_flag: 63
+
+// Allow GMs to mute players or not?
+muting_players: no
+
+// Mail system - Only function in sql version
+mail_system: no
+
+// valid range of dye's and styles on the client
+min_hair_style: 0
+max_hair_style: 20
+min_hair_color: 0
+max_hair_color: 9
+min_cloth_color: 0
+max_cloth_color: 4
+
+// Visible area size (how many squares away from a player can they see)
+area_size: 14
+
+import: conf/import/battle_conf.txt
+
diff --git a/conf/gm_account.txt b/conf/gm_account.txt
new file mode 100644
index 00000000..912e1a09
--- /dev/null
+++ b/conf/gm_account.txt
@@ -0,0 +1 @@
+// <account ID> <level>
diff --git a/conf/grf-files.txt b/conf/grf-files.txt
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/conf/grf-files.txt
diff --git a/conf/help.txt b/conf/help.txt
new file mode 100644
index 00000000..fa8de1f6
--- /dev/null
+++ b/conf/help.txt
@@ -0,0 +1,225 @@
+// put at first, the minimum level to display the line
+ 0:To use one command, type it inside the message window where you usually type to chat.
+ 20:@h/@help - display this help.
+ 40:
+ 40:--- MESSAGE CMD ---
+ 40:/b/@broadcast <message> - Broadcasts a GM message with name of the GM (in yellow)
+ 40:/nb <message>/@kami <message> - Broadcasts a GM message without name of the GM (in yellow)
+ 40:@kamib <message> - Broadcasts a GM message without name of the GM (in blue)
+ 40:/lb/@localbroadcast <message> - Broadcasts a GM message with name of the GM (in yellow) ONLY on your map
+ 40:/nlb <message> - Broadcasts a GM message without name of the GM (in yellow) ONLY on your map
+ 0:
+ 0:--- INFORMATION CMD ---
+ 20:@who/@whois [match_text] - Display a listing of who is online and where
+ 20:@who2 [match_text] - Display a listing of who is online and their job
+ 20:@who3 [match_text] - Display a listing of who is online and their party/guild
+ 20:@whomap/@whomap2/@whomap3 [map] - like @who/@who2/@who3 but only for specifical map
+ 20:@whogm [match_text] - Like @who+@who2+who3, but only for GM.
+ 1:@where [char name] - Tells you the location of a character
+ 40:@charstatsall - Displays stats of all characters.
+ 40:@charitemlist <char name> - Displays all items of a player.
+ 40:@charstoragelist <char name> - Displays all items of a player's storage.
+ 40:@charcartlist <char name> - Displays all items of a player's cart.
+ 0:@ignorelist - Displays your ignore list
+ 99:@mapinfo [<0-3> [map]] - Give information about a map (general info +: 0: no more, 1: players, 2: NPC, 3: shops/chat).
+ 0:@time/@date/@server_date/@serverdate/@server_time/@servertime - Display the date/time of the server
+ 60:
+ 60:@guildspy <guild_name/id> - You will receive all messages of the guild channel
+ 60:@partyspy <party_name/id> - You will receive all messages of the party channel
+ 1:
+ 1:--- CHANGE GM STATE CMD ---
+ 40:/hide/@hide - Makes you character invisible (GM invisibility). Type @hide again become visible.
+ 40:@save - Sets respawn point to current spot
+ 40:@load/@return - Warps you to your save point
+ 40:/mm//mapmove/@warp/@rura/@mapmove <mapname> <x> <y> - Warps you to the selected position
+ 40:@jump [x [y]]- Randomly warps you like a flywing.
+ 20:/shift/@jumpto/@warpto/@goto <char name> - Warps you to selected character
+ 20:@follow <char_name> - follow a player
+ 10:@go <number/city_name> - Warps you to a city.
+ 10: -3: (Memo point 2) 1: morocc 5: izlude 9: yuno 13: niflheim
+ 10: -2: (Memo point 1) 2: geffen 6: aldebaran 10: amatsu 14: louyang
+ 10: -1: (Memo point 0) 3: payon 7: xmas (lutie) 11: gonryun 15: start point
+ 10: 0: prontera 4: alberta 8: comodo 12: umbala 16: prison/jail
+ 10:
+ 1:@die ---- suicide
+ 60:@alive - Revives yourself from death
+ 40:@heal [<HP> <SP>] - Heals the desired amount of HP and SP. No value specified will do a full heal.
+ 20:
+ 40:@job/@jobchange <job ID> - Changes your job
+ 40: 0 Novice 7 Knight 14 Crusader 22 Formal
+ 40: 1 Swordman 8 Priest 15 Monk 23 Super Novice
+ 40: 2 Mage 9 Wizard 16 Sage
+ 40: 3 Archer 10 Blacksmith 17 Rogue
+ 40: 4 Acolyte 11 Hunter 18 Alchem
+ 40: 5 Merchant 12 Assassin 19 Bard
+ 40: 6 Thief 13 Peco-Knight 20 Dancer 21 Peco-Crusader
+ 40: 24 Novice High 31 Lord Knight 38 Paladin
+ 40: 25 Swordman High 32 High Priest 39 Monk
+ 40: 26 Mage High 33 High Wizard 40 Professor
+ 40: 27 Archer High 34 Whitesmith 41 Stalker
+ 40: 28 Acolyte High 35 Sniper 42 Creator
+ 40: 29 Merchant High 36 Assassin Cross 43 Clown
+ 40: 30 Thief High 37 Peco Knight 44 Gypsy 45 Peco-Paladin
+ 60:@lvup/@blevel/@baselvlup <number of levels> - Raises your base level the desired number of levels. The max is 255 (User Defined).
+ 60:@joblvup/@jlevel/@joblvlup <number of levels> -Raises your job level the desired number of levels. The max is 50 For Basic Classes. For Super Novice and Advanced Classes it is 70.
+ 60:@allskill/@allskills/@skillall/@skillsall - Give you all skills.
+ 40:@option <param1> <param2> <param3> - Adds different visual effects on or around your character
+ 40: <param1> <param2> <p3>(stackable) <param3> <param3>
+ 40: 1 Petrified (stackable) 01 Sight 32 Peco Peco riding 2048 Orc Head
+ 40: 2 Frozen 01 Poison 02 Hide 64 GM Perfect Hide 4096 Wedding Sprites
+ 40: 3 Stunned 02 Cursed 04 Cloak 128 Level 2 Cart 8192 Ruwach
+ 40: 4 Sleeping 04 Silenced 08 Level 1 Cart 256 Level 3 Cart
+ 40: 6 darkness 08 ??? 16 Falcon 512 Level 4 Cart
+ 40: 16 darkness 1024 Level 5 Cart
+ 20:@mountpeco - Give/remove you a peco (Class is required, but not skill)
+ 20:@disguise <monster_name_or_monster_ID> - Change your appearence to other players to a mob.
+ 20:@undisguise - Restore your normal appearance.
+ 20:@model <hair ID: 0-17> <hair color: 0-8> <clothes color: 0-4> - Changes your characters appearence.
+ 40:@dye/@ccolor <clothes color: 0-4> - Changes your characters appearence (only clothes color).
+ 40:@hairstyle/@hstyle <hair ID: 0-17> - Changes your characters appearence (only hair style).
+ 40:@haircolor/@hcolor <hair color: 0-8> - Changes your characters appearence (only hair color).
+ 40:@speed <1-1000> - Changes you walking speed. 1 being the fastest and 1000 the slowest. Default 150.
+ 40:@effect <effect_id> [flag] - Give an efect to your character.
+ 40:@dropall - throws all your possession on the ground
+ 40:@storeall - puts all your possessions in storage
+ 40:@killable - make your character killable
+ 60:@stpoint <number of points> - Gives you the desired number of stat points.
+ 60:@skpoint <number of points> - Gives you the desired number of skill points.
+ 60:@zeny <amount> - Gives you desired amount of Zeny.
+ 60:@str,@agi,@vit,@int,@dex,@luk <amount> - Adds desired amount to any stat. For example "@str 10" raises your str by 10
+ 60:@statall/@statsall/@allstats/@allstat [value] - Adds value in all stats (maximum if no value).
+ 40:@memo [memo_position] - set/change a memo location (no position: display memo points).
+ 40:@spiritball <number: 1-1000> - Gives you "spirit spheres" like from the skill "Call Spirits"
+ 40: (If the number you use is > 1000, your server may become instable or crash)
+ 40:@questskill <#> - Gives you the specified quest skill
+ 40:@lostskill <#> - Takes away the specified quest skill from you
+ 40:@skillid <name> - look up a skill by name
+ 40:@useskill <skillid> <skillv> <target> - use a skill on target
+ 40: Novice Swordsman Thief Merchant
+ 40: 142 = Emergency Care 144 = Moving HP Recovery 149 = Throw Sand 153 = Cart Revolution
+ 40: 143 = Act dead 145 = Attack Weak Point 150 = Back Sliding 154 = Change Cart
+ 40: Archer 146 = Auto Berserk 151 = Take Stone 155 = Crazy Uproar/Loud Voice
+ 40: 147 = Arrow Creation Acolyte 152 = Stone Throw Magician
+ 40: 148 = Charge Arrows 156 = Holy Light 157 = Energy Coat
+ 60: @addwarp <map name> <x coord> <y coord>
+ 40:
+ 40:--- MONSTERS CMD ---
+ 50:/monster <monster_name> - Spawns 1 of the desired monster.
+ 50:@spawn/@monster/@summon <monster_name_or_monster_ID> [<number to spawn> [<desired_monster_name> [<x coord> [<y coord>]]]]
+ 50:@monster2 <desired_monster_name> <monster_name_or_monster_ID> [<number to spawn> [<x coord> [<y coord>]]]
+ 50:@spawn/@monster/@summon/@monster2 "desired monster name" <monster_name_or_monster_ID> [<number to spawn> [<x coord> [<y coord>]]]
+ 50:@spawn/@monster/@summon/@monster2 <monster_name_or_monster_ID> "desired monster name" [<number to spawn> [<x coord> [<y coord>]]]
+ 50: Spawns the desired monster with any desired name.
+ 60:@killmonster [map] - kill all monsters of the map (they drop)
+ 40:@killmonster2 - kill all monsters of your map (without drops)
+ 1:
+ 1:--- ITEMS CMD ---
+ 1:@storage - Opens storage
+ 50:@gstorage - Opens guild storage
+ 60:/item <item_name> - Gives you 1 of the desired item.
+ 60:@item <item name or ID> <quantity> - Gives you the desired item.
+ 60:@item2 <item name or ID> <quantity> <Identify_flag> <refine> <attribut> <Card1> <Card2> <Card3> <Card4> = Gives you the desired item.
+ 40:@itemreset - Remove all your items.
+ 60:@itemcheck - Check your items with authorised items.
+ 60:@idsearch <part_of_item_name> - Search all items that name have part_of_item_name
+ 60:@refine <equip position> <+/- amount>
+ 60:@produce <equip name or equip ID> <element> <# of very's>
+ 60: Element: 0=None 1=Ice 2=Earth 3=Fire 4=Wind
+ 60: It has separately with fragment 3 of the attribute + stars, you can apply.
+ 60:@repairall - Repair all items of your inventory
+ 40:
+ 40:--- PVP CMD ---
+ 40:@pvpon - Turns pvp on on the current map
+ 40:@pvpoff - Turns pvp off on the current map
+ 40:@gvgon/@gpvpon - Turns gvg on on the current map
+ 40:@gvgoff/@gpvpoff - Turns gvg off on the current map
+ 60:@agitstart - Starts War of Emperium
+ 60:@agitend - End War of Emperium
+ 1:
+ 1:--- GROUPS CMD ---
+ 1:@party <party_name> - Create a party.
+ 50:@guild <guild_name> - Create a guild.
+ 60:@guildlvup/@guildlvlup <# of levels> - Raise Guild by desired number of levels
+ 60:@guildrecall <guild_name/id> - Warps all online characters of a guild to you.
+ 60:@partyrecall <party_name/id> - Warps all online characters of a party to you.
+ 1:
+ 1:--- PETS CMD ---
+ 60:@hatch - Create a pet from your inventory eggs list.
+ 60:@makeegg <pet_id> - Gives pet egg for monster number in pet DB
+ 40:@petfriendly <#> - Set pet friendly amount (0-1000) 1000 = Max
+ 40:@pethungry <#> - Set pet hungry amount (0-100) 100 = Max
+ 1:@petrename - Re-enable pet rename
+ 20:
+ 20:--- REMOTE CHAR CMD ---
+ 60:@kill <char name> - Kills specified character.
+ 40:@charkillable <char name> - make another character killable
+ 60:@nuke <char name> - Kills specified character (nuclear effect).
+ 60:@chardropall <char name> - throws all a chars possession on the ground
+ 60:@charstoreall <char name> - puts all of anothers charactes possessions in storage
+ 60:/recall/@recall <char name> - Warps target character to you.
+ 80:@recallall - Warps every character online to you.
+ 60:@charwarp/@rura+ <mapname> <x> <y> <char name> - Warps character to location of choice
+ 60:@revive <char name> - Revives target character.
+ 40:@charstats <char name> - Displays a characters stats.
+ 20:@charignorelist <char name> - Displays ignore list of the player
+ 20:@inall <char name> - Allows all wispers for the player
+ 20:@exall <char name> - Blocks all wispers for the player
+ 60:@charoption <param1> <param2> <param3> <charname> - Like @option command but only to target character.
+ 50:@charmountpeco <charname> - Give/remove to a player a peco (Class is required, but not skill).
+ 50:@charpetrename <charname> - Re-enable pet rename to a player.
+ 60:@charsave <map> <x> <y> <charname> - Changes the target players respawn point.
+ 60:@charbaselvl <#> <nickname> - Change a characters base level.
+ 60:@charjlvl <#> <nickname> - Change a characters job level.
+ 60:@charjob/@charjobchange <job ID> <char name> - Changes target characters job.
+ 60:@charzeny <amount> <name> - Give/take a players Zeny
+ 60:@charstpoint <amount> <name> - Give/take a players stat points
+ 60:@charskpoint <amount> <name> - give/take a players skill points
+ 60:@charskreset <charname> - Reset skills of a character.
+ 60:@charstreset <charname> - Reset stats of a character.
+ 60:@charreset <charname> - Reset stats AND skills of a character.
+ 60:@charquestskill <#> <charname> - Gives to a player the specified quest skill.
+ 60:@charlostskill <#> <charname> - Takes away the specified quest skill from the player.
+ 60:@chardelitem <item_name_or_ID> <quantity> <player> - Remove items from a character
+ 50:@charmodel <hair type> <hair color> <clothes color> <name> - Changes a player's model
+ 60:@chardisguise <monster_name_or_monster_ID> <char name> - Changes disguise of a player
+ 60:@charundisguise <char name> - Cancels disguise of a player
+ 60:@charchangesex <name> - Changes sex of a player (all characters of the account)
+ 60:@charblock/@block <name> - Blocks definitively a account
+ 60:@charunblock/@unblock <name> - Unblocks a account
+ 60:@charban/@ban/@banish/@charbanish <time> <name> - Ban temporarily a account
+ 60: time usage: adjustement (+/- value) and element (y/a, m, d/j, h, mn, s)
+ 60: Example: @ban +1m-2mn1s-6y testplayer
+ 60:@charunban/@unban/@unbanish/@charunbanish <name> - Unban a account
+ 60:@jail <char_name> - Sends specified character in jails
+ 60:@trade <char_name> - Open a trade window with a another player
+ 20:@kick <charname> - Kicks specified character off the server
+ 99:@kickall - Kick all characters off the server
+ 99:@mapexit - Kick all players and shut down map-server.
+ 80:@doom - Kills all NON GM chars on the server.
+ 80:@doommap - Kills all non GM characters on the map.
+ 80:@raise - Resurrects all characters on the server.
+ 80:@raisemap - Resurrects all characters on the map.
+ 60:@unjail/@discharge <char_name> - Discharges specified character/prisoner
+ 80:
+ 80:--- ENVIRONMENT CMD ---
+ 80:@night - Uses @option 00 16 00 on all characters. All characters are in darkness.
+ 80:@day - Uses @option 00 00 00 on all characters.
+ 80:@skillon - turn skills on for a map
+ 80:@skilloff - turn skills on for a map
+ 0:
+ 0:--- ADMIN CMD ---
+ 99:@reloaditemdb - Reload item database (admin command)
+ 99:@reloadmobdb - Reload monster database (admin command)
+ 99:@reloadskilldb - Reload skills definition database (admin command)
+ 99:@reloadscript - Reload all scripts (admin command)
+ 99:@reloadgmdb - Reload GM levels (admin command)
+ 99:@adjgmlvl - Do a temporary adjustment of the GM level of a player (admin command)
+ 99:@adjcmdlvl - Do a temporary adjustment of the GM level of a command (admin command)
+ 80:@enablenpc <NPC_name> - Enable a NPC (admin command)
+ 80:@disablenpc <NPC_name> - Disable a NPC (admin command)
+ 80:
+ 99:@gat - For debugging (you inspect around gat)
+ 99:@packet - For debugging (packet variety)
+ 99:
+100:@GM <password> - it becomes GM!
+ 0:@email <actual@email> <new@email> - to change your e-mail (characters protection)
diff --git a/conf/inter_athena.conf b/conf/inter_athena.conf
new file mode 100644
index 00000000..72a88bd9
--- /dev/null
+++ b/conf/inter_athena.conf
@@ -0,0 +1,31 @@
+// Athena InterServer configuration.
+
+// Storage flatfile database, used for Karfa storage.
+storage_txt: save/storage.txt
+
+// Party flatfile database, for party names, members and other party info.
+party_txt: save/party.txt
+
+// Guild flatfile database, for guild names, members, and other guild info.
+guild_txt: save/guild.txt
+
+// Pet flatfile database, for pet names, and other pet info.
+pet_txt: save/pet.txt
+
+// Castle flatfile database, for emperium war castles, etc.
+castle_txt: save/castle.txt
+
+// Inter Log Filename
+inter_log_filename: log/inter.log
+
+// Level range for sharing within a party
+party_share_level: 10
+
+// The lowest GM level on your server
+lowest_gm_level: 1
+
+// How often the GM accounts will be reloaded by the map-server in minutes
+read_gm_interval: 10
+
+
+
diff --git a/conf/ladmin_athena.conf b/conf/ladmin_athena.conf
new file mode 100644
index 00000000..4f9ce8b6
--- /dev/null
+++ b/conf/ladmin_athena.conf
@@ -0,0 +1,34 @@
+// Athena Ladmin configuration file.
+
+// Login Server IP
+login_ip:217.172.177.27
+// Login Server Port
+login_port: 6900
+
+// Administrative password, used to connect remotely to server.
+// NOTICE: If you enable remote administration, you should change its value for security
+admin_pass: admin
+
+// Encoding type of the password
+// 0: not encoded
+// 1: key+password
+// 2: password+key
+passenc: 2
+
+// Language of ladmin
+// F: Français
+// E: English (default)
+defaultlanguage: E
+
+// Log Filename. All operations done by the software are logged in this file.
+ladmin_log_filename: log/ladmin.log
+
+// Indicate how to display date in logs, to players, etc.
+// 0: 31-12-2004 23:59:59
+// 1: 12-31-2004 23:59:59
+// 2: 2004-31-12 23:59:59
+// 3: 2004-12-31 23:59:59 (default)
+date_format: 3
+
+// If you want use an additional configuration file, uncomment and use this parameter
+//import: path/additional_configuration_file
diff --git a/conf/lan_support.conf b/conf/lan_support.conf
new file mode 100644
index 00000000..bfaec696
--- /dev/null
+++ b/conf/lan_support.conf
@@ -0,0 +1,41 @@
+// Athena TXT version LAN configure file.
+// Support Client Connect to Local Area Network (LAN) IP Address Server.
+// put this fle into conf/ directory
+//
+// HOWTO:
+// To use this file, the login-server, char-server and map-server must be on the same subnetwork
+// (not necessary on the same computer). You can not use eAthena if you want to install the servers on 2 or more different LAN.
+//
+// First of all: you must configure your router to forward your WAN IP (one or more) and port (default: 6900, 6121 and 5121)
+// to the right concerned computer(s) (if default port, forward 6900 port to the (LAN IP) login-server, 6121 port to the (LAN IP) char-server, etc.).
+// After, set in char_athena.conf and map_athena.conf files the WAN IP and the right ports that you use.
+// Give to WAN people (client that are not on your LAN) your WAN IP to have an access to your server.
+// At this point, all players outside your LAN can access to your server(s).
+//
+// Now, you must parameter your LAN for the servers.
+// Set the LAN IP of the char-server and the map-server in this file (lan_char_ip and lan_map_ip).
+// Set the definition of your LAN in this file (subnet and subnetmask).
+// When you load/start login-server and char-server, read what the server displays, and specially the section ---LAN CONFIGURATION---.
+// If you see a warning or something not good, correct it.
+// Now LAN client can access to your server.
+//
+// NB: if you want that nobody of your LAN can access to your server, put 127.0.0.1 in IP and 255.255.255.255 for the mask.
+// So only the localhost computer would access to your server.
+// NB2: you can use LAN name if you have some instead of IP and/or mask.
+// NB3: if you want set your server only for LAN people, set your LAN IP instead of the WAN IP, and set 127.0.0.1/255.255.255.255 for the LAN IP.
+//
+// HOW THAT WORKS:
+// When someone tries to connect to your server(s), the login-server/char-server checks its IP with the LAN subnet (subnet and subnetmask parameters).
+// If it matches, the login-server sends the LAN IP of the char-server (lan_char_ip); and char-server do same for map-server (lan_map_ip).
+// If not, the login-server sends the WAN IP of the char-server that it have received (char_ip in char_athena.conf)
+// and the char-server sends the WAN IP of the map-server that it have received (map_ip in map_athena.conf)
+
+// put here the LAN IP of your char-server
+lan_char_ip: 127.0.0.1
+
+// put here the LAN IP of your map-server
+lan_map_ip: 127.0.0.1
+
+// put here the Subnet mask of your LAN
+subnet: 127.0.0.1
+subnetmask: 255.255.255.255
diff --git a/conf/login_athena.conf b/conf/login_athena.conf
new file mode 100644
index 00000000..275a736b
--- /dev/null
+++ b/conf/login_athena.conf
@@ -0,0 +1,135 @@
+// Athena Login Server configuration file.
+// Translated by Peter Kieser <pfak@telus.net>
+
+// Port to bind Login Server to (always binds to all IP addresses)
+login_port: 6901
+
+// Whether remote administration is enabled or disabled (1 for enabled, 0 for disabled)
+admin_state: 1
+
+// Administrative password, used by ladmin (perl software) to connect remotely to server.
+// NOTICE: If you enable remote administration, you should change its value for security
+admin_pass: p1
+
+// Indicate the IP that the server accepts for remote administration.
+// put: 'all', or 'xxx.xxx.' (begin of an ip finished by '.' or a complete ip),
+// or a network and its mask (example: '123.456.789.012/24' or '123.456.789.012/255.255.255.0')
+// or 'clear' to suppress previous parameter (use it in import file mainly)
+// Add as many IP's as you wish.
+ladminallowip: all
+
+// Gamemaster password, used with the @gm command to obtain GM commands (level of gm set with level_new_gm parameter).
+// NOTICE: You should also change this one.
+gm_pass: Anikedam.18
+
+// Level of new GM created with @gm command. (default: 60)
+// If you set to 0, you disable creation of new GM with @gm.
+// To be able to create a gm with @gm, you must:
+// - give a level to this value (not 0)
+// - enable to level 0 the @gm command (atcommand_athena.conf) (default 100)
+// - enable gm commands to normal player (battle_athena.conf, atcommand_gm_only parameter)
+// - and normal player must give correct password when he use the @gm command
+level_new_gm: 60
+
+// Can you make new accounts on the server? (1 for Yes, 0 for no)
+new_account: 1
+
+// Account flatfile database, stores account information.
+account_filename: save/account.txt
+
+// What account AIDs have GM privs, and what level?
+gm_account_filename: conf/gm_account.txt
+
+// Timer to check if GM_account file has been changed and reload GM account automaticaly
+// (in seconds; default: 15; value: 0 (disabled), or 2 or more)
+gm_account_filename_check_timer: 15
+
+// Log Filename. All operations received by the server are logged in this file.
+login_log_filename: log/login.log
+
+// Name of the file of that logs the unknown packets (for debug or hack check)
+login_log_unknown_packets_filename: log/login_unknown_packets.log
+
+// Indicate if the unknown packets are saved or not
+//(the unknown packets coming from the char-server or ladministration does not relate to, which is always saved)
+// Be careful: if you receive an attack, your hard disk can cause lag...
+// So, active this option with a speed hard disk or for debug only.
+save_unknown_packets: 0
+
+// Indicate if you want display the parse of the packets received in a normal connection
+// It's useful for debug. Possible values: 0: no (default), 1: yes
+display_parse_login: 0
+
+// Indicate if you want display the parse of the packets received in administration connection
+// It's useful for debug. Possible values: 0: no (default), 1: yes
+display_parse_admin: 0
+
+// Indicate if you want display the parse of the packets received from a char-server
+// It's useful for debug. Possible values: 0: no (default), 1: yes (without packet 0x2714), 2: all packets
+display_parse_fromchar: 0
+
+// Indicate how to display date in logs, to players, etc.
+// 0: 31-12-2004 23:59:59
+// 1: 12-31-2004 23:59:59
+// 2: 2004-31-12 23:59:59
+// 3: 2004-12-31 23:59:59 (default)
+date_format: 3
+
+// Indicate the minimum GM level of player that the server accepts to connection.
+// 0: all players (normal player are 0. it's default), 1-99: GM level at least with level x
+min_level_to_connect: 0
+
+// Give possibility to adjust (ladmin command: timeadd) the time of an unlimited account.
+// If set to on/1/yes..., the adjustment is be done from actual time to set the final time of the account.
+// If set to no/0/no..., the adjustment can not be done on an unlimited account. You must set (ladmin command: timeset) a final time before to adjust (ladmin command: timeadd)
+add_to_unlimited_account: off
+
+// 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
+
+// It's to check IP of a player between login-server and char-server (part of anti-hacking system)
+// If player doesn't have same IP, connection is refused.
+// Set to 0/off/no to not check IP of player.
+// Set to 1/on/yes if you want to check (default)
+// Note: if you enable this option, be sure that your (local/lan/wan) players use correct ip (in xml file) to contact servers,
+// and that your LAN is correctly configured (!), and that LAN configuration of eathena is right.
+// if not correct, you can read list of char-servers, but not look slots of characters (rejected by server).
+check_ip_flag: no
+
+// Specify order of IP control if necessary (option: 'deny,allow', 'allow,deny', or 'mutual-failture')
+// (how to use 'allow' and 'deny' information)
+//order: allow,deny
+
+// Indicate the IP that the server accept.
+// put: 'all', or 'xxx.xxx.' (begin of an ip finished by '.' or a complete ip),
+// or a network and its mask (example: '123.456.789.012/24' or '123.456.789.012/255.255.255.0')
+// or 'clear' to suppress previous parameter (use it in import file mainly)
+// Add as many IP's as you wish.
+//allow: all
+
+// Indicate the IP that the server refuse.
+// Add as many IP's as you wish, as long as you put deny: before it.
+//deny: 123.123.123.123
+//deny: 234.234.234.234
+
+// If you want use an additional configuration file, uncomment and use this parameter
+//import: path/additional_configuration_file
+
+//Passwords in Login DB are MD5 - <passwordencrypt> cannot b used on client with this on
+use_MD5_passwords: no
+
+//Ban features: read readme for more info if you dont know this.
+ipban: 1
+dynamic_pass_failure_ban: 1
+dynamic_pass_failure_ban_time: 5
+dynamic_pass_failure_ban_how_many: 3
+dynamic_pass_failure_ban_how_long: 60
+dynamic_account_ban: 1
+dynamic_account_ban_class: 0
+
+// Anti-freeze system enable
+anti_freeze_enable: 0
+// Anti-freeze system interval (in seconds)
+anti_freeze_interval: 15
diff --git a/conf/msg_athena.conf b/conf/msg_athena.conf
new file mode 100644
index 00000000..1aacf66b
--- /dev/null
+++ b/conf/msg_athena.conf
@@ -0,0 +1,511 @@
+// eAthena msg_athena.conf
+// Message Configuration
+// For translation, just change msg here (second line), no need to modify source code.
+// Format:
+// // English message
+// msg_number: translated message
+
+// 0-499: reserved for GM commands
+// 500-999 reserved for others
+
+// Messages of GM commands
+// -----------------------
+
+//0: Warped.
+0: Warped.
+//1: Map not found.
+1: Map not found.
+//2: Coordinates out of range.
+2: Coordinates out of range.
+//3: Character not found.
+3: Character not found.
+//4: Jump to %s
+4: Jump to %s
+//5: Jump to %d %d
+5: Jump to %d %d
+//6: Character data respawn point saved.
+6: Character data respawn point saved.
+//7: Warping to respawn point.
+7: Warping to respawn point.
+//8: Speed changed.
+8: Speed changed.
+//9: Options changed.
+9: Options changed.
+//10: Invisible: Off
+10: Invisible: Off
+//11: Invisible: On
+11: Invisible: On
+//12: Your job has been changed.
+12: Your job has been changed.
+//13: A pity! You've died.
+13: A pity! You've died.
+//14: Character killed.
+14: Character killed.
+//15: Player warped (message sends to player too).
+15: Player warped (message sends to player too).
+//16: You've been revived! It's a miracle!
+16: You've been revived! It's a miracle!
+//17: HP, SP recovered.
+17: HP, SP recovered.
+//18: Item created.
+18: Item created.
+//19: Invalid item ID or name.
+19: Invalid item ID or name.
+//20: All of your items have been removed.
+20: All of your items have been removed.
+//21: Base level raised.
+21: Base level raised.
+//22: Base level lowered.
+22: Base level lowered.
+//23: Job level can't go any higher.
+23: Job level can't go any higher.
+//24: Job level raised.
+24: Job level raised.
+//25: Job level lowered.
+25: Job level lowered.
+//26: Help commands:
+26: Help commands:
+//27: File help.txt not found.
+27: File help.txt not found.
+//28: No player found.
+28: No player found.
+//29: 1 player found.
+29: 1 player found.
+//30: %d players found.
+30: %d players found.
+//31: PvP: Off.
+31: PvP: Off.
+//32: PvP: On.
+32: PvP: On.
+//33: GvG: Off.
+33: GvG: Off.
+//34: GvG: On.
+34: GvG: On.
+//35: You can't use this command with this class.
+35: You can't use this command with this class.
+//36: Appearence changed.
+36: Appearence changed.
+//37: An invalid number was specified.
+37: An invalid number was specified.
+//38: Invalid location number or name.
+38: Invalid location number or name.
+//39: All monster summoned!
+39: All monster summoned!
+//40: Invalid monster ID or name.
+40: Invalid monster ID or name.
+//41: Impossible to decrease the number/value.
+41: Impossible to decrease the number/value.
+//42: Stat changed.
+42: Stat changed.
+//43: You're not in a guild.
+43: You're not in a guild.
+//44: You're not the master of your guild.
+44: You're not the master of your guild.
+//45: Guild level change failed.
+45: Guild level change failed.
+//46: %s recalled!
+46: %s recalled!
+//47: Base level can't go any higher.
+47: Base level can't go any higher.
+//48: Character's job changed.
+48: Character's job changed.
+//49: Invalid job ID.
+49: Invalid job ID.
+//50: You already have some GM powers.
+50: You already have some GM powers.
+//51: Character revived.
+51: Character revived.
+//52: This option cannot be used in PK Mode.
+52: This option cannot be used in PK Mode.
+//53: '%s' stats:
+53: '%s' stats:
+//54: No player found in map '%s'.
+54: No player found in map '%s'.
+//55: 1 player found in map '%s'.
+55: 1 player found in map '%s'.
+//56: %d players found in map '%s'.
+56: %d players found in map '%s'.
+//57: Character's respawn point changed.
+57: Character's respawn point changed.
+//58: Character's options changed.
+58: Character's options changed.
+//59: Night has fallen.
+59: Night has fallen.
+//60: Day has arrived.
+60: Day has arrived.
+//61: The holy messenger has given judgement.
+61: The holy messenger has given judgement.
+//62: Judgement was made.
+62: Judgement was made.
+//63: Mercy has been shown.
+63: Mercy has been shown.
+//64: Mercy has been granted.
+64: Mercy has been granted.
+//65: Character's base level raised.
+65: Character's base level raised.
+//66: Character's base level lowered.
+66: Character's base level lowered.
+//67: Character's job level can't go any higher.
+67: Character's job level can't go any higher.
+//68: character's job level raised.
+68: character's job level raised.
+//69: Character's job level lowered.
+69: Character's job level lowered.
+//70: You have learned the skill.
+70: You have learned the skill.
+//71: You have forgotten the skill.
+71: You have forgotten the skill.
+//72: Guild siege warfare start!
+72: Guild siege warfare start!
+//73: Already it has started siege warfare.
+73: Already it has started siege warfare.
+//74: Guild siege warfare end!
+74: Guild siege warfare end!
+//75: Siege warfare hasn't started yet.
+75: Siege warfare hasn't started yet.
+//76: You have received all skills.
+76: You have received all skills.
+//77: The reference result of '%s' (name: id):
+77: The reference result of '%s' (name: id):
+//78: %s: %d
+78: %s: %d
+//79: It is %d affair above.
+79: It is %d affair above.
+//80: Give a display name and monster name/id please.
+80: Give a display name and monster name/id please.
+//81: Your GM level don't authorise you to do this action on this player.
+81: Your GM level don't authorise you to do this action on this player.
+//82: Please, use one of this number/name:
+82: Please, use one of this number/name:
+//83: Cannot spawn emperium.
+83: Cannot spawn emperium.
+//84: All stats changed!
+84: All stats changed!
+//85: Invalid time for ban command.
+85: Invalid time for ban command.
+//86: Sorry, but a player name have at least 4 characters.
+86: Sorry, but a player name have at least 4 characters.
+//87: Sorry, but a player name have 23 characters maximum.
+87: Sorry, but a player name have 23 characters maximum.
+//88: Character name sends to char-server to ask it.
+88: Character name sends to char-server to ask it.
+//89: Sorry, it's already the night. Impossible to execute the command.
+89: Sorry, it's already the night. Impossible to execute the command.
+//90: Sorry, it's already the day. Impossible to execute the command.
+90: Sorry, it's already the day. Impossible to execute the command.
+//91: Character's base level can't go any higher.
+91: Character's base level can't go any higher.
+//92: All characters recalled!
+92: All characters recalled!
+//93: All online characters of the %s guild are near you.
+93: All online characters of the %s guild are near you.
+//94: Incorrect name/ID, or no one from the guild is online.
+94: Incorrect name/ID, or no one from the guild is online.
+//95: All online characters of the %s party are near you.
+95: All online characters of the %s party are near you.
+//96: Incorrect name or ID, or no one from the party is online.
+96: Incorrect name or ID, or no one from the party is online.
+//97: Item database reloaded.
+97: Item database reloaded.
+//98: Monster database reloaded.
+98: Monster database reloaded.
+//99: Skill database reloaded.
+99: Skill database reloaded.
+//100: Scripts reloaded.
+100: Scripts reloaded.
+//101: Login-server asked to reload GM accounts and their level.
+101: Login-server asked to reload GM accounts and their level.
+//102: Mounted Peco.
+102: Mounted Peco.
+//103: No longer spying on the %s guild.
+103: No longer spying on the %s guild.
+//104: Spying on the %s guild.
+104: Spying on the %s guild.
+//105: No longer spying on the %s party.
+105: No longer spying on the %s party.
+//106: Spying on the %s party.
+106: Spying on the %s party.
+//107: All items have been repaired.
+107: All items have been repaired.
+//108: No item need to be repaired.
+108: No item need to be repaired.
+//109: Player has been nuked!
+109: Player has been nuked!
+//110: Npc Enabled.
+110: Npc Enabled.
+//111: This NPC doesn't exist.
+111: This NPC doesn't exist.
+//112: Npc Disabled.
+112: Npc Disabled.
+//113: %d item(s) removed by a GM.
+113: %d item(s) removed by a GM.
+//114: %d item(s) removed from the player.
+114: %d item(s) removed from the player.
+//115: %d item(s) removed. Player had only %d on %d items.
+115: %d item(s) removed. Player had only %d on %d items.
+//116: Character does not have the item.
+116: Character does not have the item.
+//117: GM has send you in jails.
+117: GM has send you in jails.
+//118: Player warped in jails.
+118: Player warped in jails.
+//119: This player is not in jails.
+119: This player is not in jails.
+//120: GM has discharge you.
+120: GM has discharge you.
+//121: Player warped to Prontera.
+121: Player warped to Prontera.
+//122: Disguise applied.
+122: Disguise applied.
+//123: Monster/NPC name/id hasn't been found.
+123: Monster/NPC name/id hasn't been found.
+//124: Undisguise applied.
+124: Undisguise applied.
+//125: You're not disguised.
+125: You're not disguised.
+//126: You accept any wisp (no wisper is refused).
+126: You accept any wisp (no wisper is refused).
+//127: You accept any wisp, except thoses from %d player(s):
+127: You accept any wisp, except thoses from %d player(s):
+//128: You refuse all wisps (no specifical wisper is refused).
+128: You refuse all wisps (no specifical wisper is refused).
+//129: You refuse all wisps, AND refuse wisps from %d player(s):
+129: You refuse all wisps, AND refuse wisps from %d player(s):
+//130: '%s' accept any wisp (no wisper is refused).
+130: '%s' accept any wisp (no wisper is refused).
+//131: '%s' accept any wisp, except thoses from %d player(s):
+131: '%s' accept any wisp, except thoses from %d player(s):
+//132: '%s' refuse all wisps (no specifical wisper is refused).
+132: '%s' refuse all wisps (no specifical wisper is refused).
+//133: '%s' refuse all wisps, AND refuse wisps from %d player(s):
+133: '%s' refuse all wisps, AND refuse wisps from %d player(s):
+//134: '%s' already accepts all wispers.
+134: '%s' already accepts all wispers.
+//135: '%s' now accepts all wispers.
+135: '%s' now accepts all wispers.
+//136: A GM has authorised all wispers for you.
+136: A GM has authorised all wispers for you.
+//137: '%s' already blocks all wispers.
+137: '%s' already blocks all wispers.
+//138: '%s' blocks now all wispers.
+138: '%s' blocks now all wispers.
+//139: A GM has blocked all wispers for you.
+139: A GM has blocked all wispers for you.
+//140: Character's disguise applied.
+140: Character's disguise applied.
+//141: Character's undisguise applied.
+141: Character's undisguise applied.
+//142: Character is not disguised.
+142: Character is not disguised.
+//143: Give a monster name/id please.
+143: Give a monster name/id please.
+//144: Invalid actual email. If you have default e-mail, type a@a.com.
+144: Invalid actual email. If you have default e-mail, type a@a.com.
+//145: Invalid new email. Please enter a real e-mail.
+145: Invalid new email. Please enter a real e-mail.
+//146: New email must be a real e-mail.
+146: New email must be a real e-mail.
+//147: New email must be different of the actual e-mail.
+147: New email must be different of the actual e-mail.
+//148: Information sended to login-server via char-server.
+148: Information sended to login-server via char-server.
+//149: Impossible to increase the number/value.
+149: Impossible to increase the number/value.
+//150: No GM found.
+150: No GM found.
+//151: 1 GM found.
+151: 1 GM found.
+//152: %d GMs found.
+152: %d GMs found.
+//153: %s is Unknown Command.
+153: %s is Unknown Command.
+//154: %s failed.
+154: %s failed.
+//155: Impossible to change your job.
+155: Impossible to change your job.
+//156: HP or/and SP modified.
+156: HP or/and SP modified.
+//157: HP and SP are already with the good value.
+157: HP and SP are already with the good value.
+//158: Base level can't go any lower.
+158: Base level can't go any lower.
+//159: Job level can't go any lower.
+159: Job level can't go any lower.
+//160: PvP is already Off.
+160: PvP is already Off.
+//161: PvP is already On.
+161: PvP is already On.
+//162: GvG is already Off.
+162: GvG is already Off.
+//163: GvG is already On.
+163: GvG is already On.
+//164: Your memo point #%d doesn't exist.
+164: Your memo point #%d doesn't exist.
+//165: All monsters killed!
+165: All monsters killed!
+//166: No item has been refined!
+166: No item has been refined!
+//167: 1 item has been refined!
+167: 1 item has been refined!
+//168: %d items have been refined!
+168: %d items have been refined!
+//169: This item (%d: '%s') is not an equipment.
+169: This item (%d: '%s') is not an equipment.
+//170: This item is not an equipment.
+170: This item is not an equipment.
+//171: %d - void
+171: %d - void
+//172: You replace previous memo position %d - %s (%d,%d).
+172: You replace previous memo position %d - %s (%d,%d).
+//173: Note: you don't have the 'Warp' skill level to use it.
+173: Note: you don't have the 'Warp' skill level to use it.
+//174: Number of status points changed!
+174: Number of status points changed!
+//175: Number of skill points changed!
+175: Number of skill points changed!
+//176: Number of zenys changed!
+176: Number of zenys changed!
+//177: Impossible to decrease a stat.
+177: Impossible to decrease a stat.
+//178: Impossible to increase a stat.
+178: Impossible to increase a stat.
+//179: Guild level changed.
+179: Guild level changed.
+//180: The monter/egg name/id doesn't exist.
+180: The monter/egg name/id doesn't exist.
+//181: You already have a pet.
+181: You already have a pet.
+//182: Pet friendly value changed!
+182: Pet friendly value changed!
+//183: Pet friendly is already the good value.
+183: Pet friendly is already the good value.
+//184: Sorry, but you have no pet.
+184: Sorry, but you have no pet.
+//185: Pet hungry value changed!
+185: Pet hungry value changed!
+//186: Pet hungry is already the good value.
+186: Pet hungry is already the good value.
+//187: You can now rename your pet.
+187: You can now rename your pet.
+//188: You can already rename your pet.
+188: You can already rename your pet.
+//189: This player can now rename his/her pet.
+189: This player can now rename his/her pet.
+//190: This player can already rename his/her pet.
+190: This player can already rename his/her pet.
+//191: Sorry, but this player has no pet.
+191: Sorry, but this player has no pet.
+//192: Impossible to change the character's job.
+192: Impossible to change the character's job.
+//193: Character's base level can't go any lower.
+193: Character's base level can't go any lower.
+//194: Character's job level can't go any lower.
+194: Character's job level can't go any lower.
+//195: All players have been kicked!
+195: All players have been kicked!
+//196: You already have this quest skill.
+196: You already have this quest skill.
+//197: This skill number doesn't exist or isn't a quest skill.
+197: This skill number doesn't exist or isn't a quest skill.
+//198: This skill number doesn't exist.
+198: This skill number doesn't exist.
+//199: This player has learned the skill.
+199: This player has learned the skill.
+//200: This player already has this quest skill.
+200: This player already has this quest skill.
+//201: You don't have this quest skill.
+201: You don't have this quest skill.
+//202: This player has forgotten the skill.
+202: This player has forgotten the skill.
+//203: This player doesn't have this quest skill.
+203: This player doesn't have this quest skill.
+//204: WARNING: more than 1000 spiritballs can CRASH your server and/or client!
+204: WARNING: more than 1000 spiritballs can CRASH your server and/or client!
+//205: You already have this number of spiritballs.
+205: You already have this number of spiritballs.
+//206: '%s' skill points reseted!
+206: '%s' skill points reseted!
+//207: '%s' stats points reseted!
+207: '%s' stats points reseted!
+//208: '%s' skill and stats points reseted!
+208: '%s' skill and stats points reseted!
+//209: Character's number of skill points changed!
+209: Character's number of skill points changed!
+//210: Character's number of status points changed!
+210: Character's number of status points changed!
+//211: Character's number of zenys changed!
+211: Character's number of zenys changed!
+//212: Cannot mount a Peco while in disguise.
+212: Cannot mount a Peco while in disguise.
+//213: You can not mount a peco with your job.
+213: You can not mount a peco with your job.
+//214: Unmounted Peco.
+214: Unmounted Peco.
+//215: This player cannot mount a Peco while in disguise.
+215: This player cannot mount a Peco while in disguise.
+//216: Now, this player mounts a peco.
+216: Now, this player mounts a peco.
+//217: This player can not mount a peco with his/her job.
+217: This player can not mount a peco with his/her job.
+//218: Now, this player has not more peco.
+218: Now, this player has not more peco.
+//219: %d day
+219: %d day
+//220: %d days
+220: %d days
+//221: %s %d hour
+221: %s %d hour
+//222: %s %d hours
+222: %s %d hours
+//223: %s %d minute
+223: %s %d minute
+//224: %s %d minutes
+224: %s %d minutes
+//225: %s and %d second
+225: %s and %d second
+//226: %s and %d seconds
+226: %s and %d seconds
+//227: Cannot wear disguise while riding a Peco.
+227: Cannot wear disguise while riding a Peco.
+//228: Character cannot wear disguise while riding a Peco.
+228: Character cannot wear disguise while riding a Peco.
+//229: Your Effect Has Changed.
+229: Your Effect Has Changed.
+//230: Server time (normal time): %A, %B %d %Y %X.
+230: Server time (normal time): %A, %B %d %Y %X.
+//231: Game time: The game is in permanent daylight.
+231: Game time: The game is in permanent daylight.
+//232: Game time: The game is in permanent night.
+232: Game time: The game is in permanent night.
+//233: Game time: The game is actualy in night for %s.
+233: Game time: The game is actualy in night for %s.
+//234: Game time: After, the game will be in permanent daylight.
+234: Game time: After, the game will be in permanent daylight.
+//235: Game time: The game is actualy in daylight for %s.
+235: Game time: The game is actualy in daylight for %s.
+//236: Game time: After, the game will be in permanent night.
+236: Game time: After, the game will be in permanent night.
+//237: Game time: After, the game will be in night for %s.
+237: Game time: After, the game will be in night for %s.
+//238: Game time: A day cycle has a normal duration of %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.
+239: Game time: After, the game will be in daylight for %s.
+//240: %d monster(s) summoned!
+240: %d monster(s) summoned!
+241: you be a killa..
+242: you gonna be own3d..
+243: Map skills are off
+244: Map skills are on
+
+// Messages of others (not for GM commands)
+// ----------------------------------------
+
+//500: Actually, it's the night...
+500: Actually, it's the night...
+//501: Your account time limit is: %d-%m-%Y %H:%M:%S.
+501: Your account time limit is: %d-%m-%Y %H:%M:%S.
+//502: The day has arrived!
+502: The day has arrived!
+//503: The night has fallen...
+503: The night has fallen...
diff --git a/conf/script_athena.conf b/conf/script_athena.conf
new file mode 100644
index 00000000..21d4a6f4
--- /dev/null
+++ b/conf/script_athena.conf
@@ -0,0 +1,2 @@
+// When choosing those which it refines setting the letter which is indicated. (Those for word use other than Japanese?)
+refine_posword: Head,Body,Left hand,Right hand,Robe,Shoes,Accessory 1,Accessory 2,Head 2,Head 3,Not Equipped
diff --git a/conf/water.txt b/conf/water.txt
new file mode 100644
index 00000000..71f98470
--- /dev/null
+++ b/conf/water.txt
@@ -0,0 +1,54 @@
+// …‚ÌÝ’èB
+// water‚Í…‚ ‚è‚Åall_water‚Í‘S‚Ä…‚¾‚Æ”»’f‚·‚éƒ}ƒbƒvB
+
+mjolnir_12.gat mapflag water
+mjolnir_02.gat mapflag water
+glast_01.gat mapflag water
+gef_fild04.gat mapflag water
+prt_fild02.gat mapflag water
+prt_fild01.gat mapflag water
+prt_fild00.gat mapflag water
+gef_fild00.gat mapflag water
+gef_fild07.gat mapflag water
+gef_fild13.gat mapflag water
+gef_fild09.gat mapflag water
+gef_fild01.gat mapflag water
+prt_fild05.gat mapflag water
+gef_fild03.gat mapflag water
+gef_fild10.gat mapflag water
+prt_fild10.gat mapflag water
+pay_arche.gat mapflag water
+moc_ruins.gat mapflag water
+comodo.gat mapflag water
+cmd_fild01.gat mapflag water
+cmd_fild02.gat mapflag water
+cmd_fild03.gat mapflag water
+cmd_fild04.gat mapflag water
+cmd_fild05.gat mapflag water
+moc_fild11.gat mapflag water
+ama_fild01.gat mapflag water
+
+iz_dun00.gat mapflag water
+iz_dun01.gat mapflag water
+iz_dun02.gat mapflag water
+//iz_dun03.gat mapflag all_water
+//iz_dun04.gat mapflag all_water
+treasure01.gat mapflag water
+treasure02.gat mapflag water
+mjo_dun01.gat mapflag water
+orcsdun02.gat mapflag water
+pay_dun01.gat mapflag water
+pay_dun02.gat mapflag water
+pay_dun03.gat mapflag water
+prt_sewb2.gat mapflag water
+prt_sewb3.gat mapflag water
+gl_prison1.gat mapflag water
+alde_dun03.gat mapflag water
+alde_dun04.gat mapflag water
+beach_dun.gat mapflag water
+beach_dun2.gat mapflag water
+beach_dun3.gat mapflag water
+tur_dun01.gat mapflag water
+gld_dun02.gat mapflag water
+gld_dun03.gat mapflag water
+gld_dun04.gat mapflag water
diff --git a/conf/water_height.txt b/conf/water_height.txt
new file mode 100644
index 00000000..9a89e29c
--- /dev/null
+++ b/conf/water_height.txt
@@ -0,0 +1,68 @@
+// …ê‚Ì‚‚³‚ðÝ’è
+//water_height.txt—AthenaDBŒv‰æ 2004/03/31 18:52:09 +0900 (JST)
+
+xmas.gat 3
+mjolnir_01.gat 0
+mjolnir_02.gat -19
+mjolnir_12.gat 15
+prt_fild00.gat 11
+prt_fild01.gat 25
+prt_fild02.gat 42
+prt_fild04.gat 14
+prt_fild05.gat 14
+prt_fild10.gat 40
+gef_fild00.gat 10
+gef_fild01.gat 14
+gef_fild03.gat 82
+gef_fild04.gat 14
+gef_fild07.gat 19
+gef_fild09.gat 11
+gef_fild10.gat 24
+moc_fild01.gat 26
+moc_fild11.gat 9
+iz_dun00.gat 5
+iz_dun01.gat 5
+iz_dun02.gat -58
+mjo_dun01.gat 7
+orcsdun02.gat 3
+pay_dun01.gat 8
+pay_dun02.gat 5
+pay_dun03.gat 10
+prt_sewb2.gat 5
+prt_sewb3.gat 5
+treasure01.gat -4
+treasure02.gat -1
+moc_ruins.gat 6
+pay_arche.gat 8
+glast_01.gat 8
+alde_dun03.gat 2
+alde_dun04.gat 0
+gl_prison1.gat 35
+gl_sew01.gat 56
+gl_sew02.gat 12
+gl_sew03.gat 15
+gl_sew04.gat 70
+comodo.gat 14
+cmd_fild01.gat 46
+cmd_fild02.gat 4
+cmd_fild03.gat 0
+cmd_fild04.gat 4
+cmd_fild05.gat 46
+beach_dun2.gat 6
+beach_dun3.gat 0
+beach_dun.gat 9
+gef_fild13.gat 19
+gld_dun02.gat 5
+gld_dun03.gat 14
+gld_dun04.gat 3
+aldeg_cas01.gat 40
+aldeg_cas02.gat 35
+aldeg_cas03.gat 16
+aldeg_cas04.gat 31
+aldeg_cas05.gat 25
+gefg_cas02.gat 8
+gefg_cas04.gat 15
+gefg_cas05.gat 5
+prtg_cas05.gat 13
+tur_dun01.gat -65
+ama_fild01.gat 5
diff --git a/db/attr_fix.txt b/db/attr_fix.txt
new file mode 100644
index 00000000..2bdbbd9d
--- /dev/null
+++ b/db/attr_fix.txt
@@ -0,0 +1,53 @@
+// ‘®«C³
+// ‰¡:ƒ‚ƒ“ƒXƒ^[‚Ì‘®« // c:UŒ‚‚Ì‘®«
+1,10 // lv1‘®«ƒe[ƒuƒ‹
+// –³ … ’n ‰Î •— “Å ¹ ˆÃ ”O •sŽ€
+ 100, 100, 100, 100, 100, 100, 100, 100, 25, 100, // –³
+ 100, 25, 100, 150, 50, 100, 75, 100, 100, 100, // …
+ 100, 100, 100, 50, 150, 100, 75, 100, 100, 100, // ’n
+ 100, 50, 150, 25, 100, 100, 75, 100, 100, 125, // ‰Î
+ 100, 175, 50, 100, 25, 100, 75, 100, 100, 100, // •—
+ 100, 100, 125, 125, 125, 0, 75, 50, 100, -25, // “Å
+ 100, 100, 100, 100, 100, 100, 0, 125, 100, 150, // ¹
+ 100, 100, 100, 100, 100, 50, 125, 0, 100, -25, // ˆÃ
+ 25, 100, 100, 100, 100, 100, 75, 75, 125, 100, // ”O
+ 100, 100, 100, 100, 100, 50, 100, 0, 100, 0, // •sŽ€
+// ‰¡:ƒ‚ƒ“ƒXƒ^[‚Ì‘®« // c:UŒ‚‚Ì‘®«
+2,10 // lv2‘®«ƒe[ƒuƒ‹
+//–³ … ’n ‰Î •— “Å ¹ ˆÃ ”O •sŽ€
+ 100, 100, 100, 100, 100, 100, 100, 100, 25, 100, // –³
+ 100, 0, 100, 175, 25, 100, 50, 75, 100, 100, // …
+ 100, 100, 50, 25, 175, 100, 50, 75, 100, 100, // ’n
+ 100, 25, 175, 0, 100, 100, 50, 75, 100, 150, // ‰Î
+ 100, 175, 25, 100, 0, 100, 50, 75, 100, 100, // •—
+ 100, 75, 125, 125, 125, 0, 50, 25, 75, -50, // “Å
+ 100, 100, 100, 100, 100, 100, -25, 150, 100, 175, // ¹
+ 100, 100, 100, 100, 100, 25, 150, -25, 100, -50, // ˆÃ
+ 0, 75, 75, 75, 75, 75, 50, 50, 150, 125, // ”O
+ 100, 75, 75, 75, 75, 25, 125, 0, 100, 0, // •sŽ€
+// ‰¡:ƒ‚ƒ“ƒXƒ^[‚Ì‘®« // c:UŒ‚‚Ì‘®«
+3,10 // lv3‘®«ƒe[ƒuƒ‹
+// –³ … ’n ‰Î •— “Å ¹ ˆÃ ”O •sŽ€
+ 100, 100, 100, 100, 100, 100, 100, 100, 0, 100, // –³
+ 100, -25, 100, 200, 0, 100, 25, 50, 100, 125, // …
+ 100, 100, 0, 0, 200, 100, 25, 50, 100, 75, // ’n
+ 100, 0, 200, -25, 100, 100, 25, 50, 100, 175, // ‰Î
+ 100, 200, 0, 100, -25, 100, 25, 50, 100, 100, // •—
+ 100, 50, 100, 100, 100, 0, 25, 0, 50, -75, // “Å
+ 100, 100, 100, 100, 100, 125, -50, 175, 100, 200, // ¹
+ 100, 100, 100, 100, 100, 0, 175, -50, 100, -75, // ˆÃ
+ 0, 50, 50, 50, 50, 50, 25, 25, 175, 150, // ”O
+ 100, 50, 50, 50, 50, 0, 150, 0, 100, 0, // •sŽ€
+// ‰¡:ƒ‚ƒ“ƒXƒ^[‚Ì‘®« // c:UŒ‚‚Ì‘®«
+4,10 // lv4‘®«ƒe[ƒuƒ‹
+// –³ … ’n ‰Î •— “Å ¹ ˆÃ ”O •sŽ€
+ 100, 100, 100, 100, 100, 100, 100, 100, 0, 100, // –³
+ 100, -50, 100, 200, 0, 75, 0, 25, 100, 150, // …
+ 100, 100, -25, 0, 200, 75, 0, 25, 100, 50, // ’n
+ 100, 0, 200, -50, 100, 75, 0, 25, 100, 200, // ‰Î
+ 100, 200, 0, 100, -50, 75, 0, 25, 100, 100, // •—
+ 100, 25, 75, 75, 75, 0, 0, -25, 25,-100, // “Å
+ 100, 75, 75, 75, 75, 125,-100, 200, 100, 200, // ¹
+ 100, 75, 75, 75, 75, -25, 200,-100, 100,-100, // ˆÃ
+ 0, 25, 25, 25, 25, 25, 0, 0, 200, 175, // ”O
+ 100, 25, 25, 25, 25, -25, 175, 0, 100, 0, // •sŽ€
diff --git a/db/card_labels.txt b/db/card_labels.txt
new file mode 100644
index 00000000..361572c7
--- /dev/null
+++ b/db/card_labels.txt
@@ -0,0 +1 @@
+// File created using Spamrat's Athena Database Editor v1.4.4
diff --git a/db/const.txt b/db/const.txt
new file mode 100644
index 00000000..76095b9c
--- /dev/null
+++ b/db/const.txt
@@ -0,0 +1,231 @@
+Job_Novice 0
+Job_Swordman 1
+Job_Mage 2
+Job_Archer 3
+Job_Acolyte 4
+Job_Merchant 5
+Job_Thief 6
+Job_Knight 7
+Job_Priest 8
+Job_Wizard 9
+Job_Blacksmith 10
+Job_Hunter 11
+Job_Assassin 12
+Job_Knight2 13
+Job_Crusader 14
+Job_Monk 15
+Job_Sage 16
+Job_Rogue 17
+Job_Alchem 18
+Job_Bard 19
+Job_Dancer 20
+Job_Crusader2 21
+Job_SuperNovice 23
+Job_Novice_High 24
+Job_Swordman_High 25
+Job_Mage_High 26
+Job_Archer_High 27
+Job_Acolyte_High 28
+Job_Merchant_High 29
+Job_Thief_High 30
+Job_Lord_Knight 31
+Job_High_Priest 32
+Job_High_Wizard 33
+Job_Whitesmith 34
+Job_Sniper 35
+Job_Assassin_Cross 36
+Job_Lord_Knight2 37
+Job_Paladin 38
+Job_Champion 39
+Job_Professor 40
+Job_Stalker 41
+Job_Creator 42
+Job_Clown 43
+Job_Gypsy 44
+Job_Paladin2 45
+Job_Baby 46
+Job_Baby_Swordman 47
+Job_Baby_Mage 48
+Job_Baby_Archer 49
+Job_Baby_Acolyte 50
+Job_Baby_Merchant 51
+Job_Baby_Thief 52
+Job_Baby_Knight 53
+Job_Baby_Priest 54
+Job_Baby_Wizard 55
+Job_Baby_Blacksmith 56
+Job_Baby_Hunter 57
+Job_Baby_Assassin 58
+Job_Baby_Knight2 59
+Job_Baby_Crusader 60
+Job_Baby_Monk 61
+Job_Baby_Sage 62
+Job_Baby_Rogue 63
+Job_Baby_Alchem 64
+Job_Baby_Bard 65
+Job_Baby_Dancer 66
+Job_Baby_Crusader2 67
+Job_Super_Baby 68
+
+
+
+mf_nomemo 0
+mf_noteleport 1
+mf_nosave 2
+mf_nobranch 3
+mf_nopenalty 4
+mf_pvp 5
+mf_pvp_noparty 6
+mf_pvp_noguild 7
+mf_gvg 8
+mf_gvg_noparty 9
+mf_nozenypenalty 10
+
+StatusPoint 9 1
+BaseLevel 11 1
+SkillPoint 12 1
+Class 19 1
+Upper 56 1
+Zeny 20 1
+Sex 21 1
+Weight 24 1
+MaxWeight 25 1
+JobLevel 55 1
+BaseExp 1 1
+JobExp 2 1
+NextBaseExp 22 1
+NextJobExp 23 1
+Hp 5 1
+MaxHp 6 1
+Sp 7 1
+MaxSp 8 1
+
+bMaxHP 6
+bMaxSP 8
+bStr 13
+bAgi 14
+bVit 15
+bInt 16
+bDex 17
+bLuk 18
+bAtk 41
+bAtk2 42
+bMatk1 43
+bMatk2 44
+bDef 45
+bMdef 47
+bMdef2 48
+bHit 49
+bFlee 50
+bFlee2 51
+bCritical 52
+bAspd 53
+
+bAtkRange 1000
+bAtkEle 1001
+bDefEle 1002
+bCastrate 1003
+bMaxHPrate 1004
+bMaxSPrate 1005
+bUseSPrate 1006
+bAddEle 1007
+bAddRace 1008
+bAddSize 1009
+bSubEle 1010
+bSubRace 1011
+bAddEff 1012
+bResEff 1013
+bBaseAtk 1014
+bAspdRate 1015
+bHPrecovRate 1016
+bSPrecovRate 1017
+bSpeedRate 1018
+bCriticalDef 1019
+bNearAtkDef 1020
+bLongAtkDef 1021
+bDoubleRate 1022
+bDoubleAddRate 1023
+bMatk 1024
+bMatkRate 1025
+bIgnoreDefEle 1026
+bIgnoreDefRace 1027
+bAtkRate 1028
+bSpeedAddRate 1029
+bAspdAddRate 1030
+bMagicAtkDef 1031
+bMiscAtkDef 1032
+bIgnoreMdefEle 1033
+bIgnoreMdefRace 1034
+bMagicAddEle 1035
+bMagicAddRace 1036
+bMagicSubRace 1037
+bPerfectHitRate 1038
+bPerfectHitAddRate 1039
+bCriticalRate 1040
+bGetZenyNum 1041
+bAddGetZenyNum 1042
+bAddDamageClass 1043
+bAddMagicDamageClass 1044
+bAddDefClass 1045
+bAddMdefClass 1046
+bAddMonsterDropItem 1047
+bDefRatioAtkEle 1048
+bDefRatioAtkRace 1049
+bAddSpeed 1050
+bHitRate 1051
+bFleeRate 1052
+bFlee2Rate 1053
+bDefRate 1054
+bDef2Rate 1055
+bMdefRate 1056
+bMdef2Rate 1057
+bSplashRange 1058
+bSplashAddRange 1059
+bAutoSpell 1060
+bHPDrainRate 1061
+bSPDrainRate 1062
+bShortWeaponDamageReturn 1063
+bLongWeaponDamageReturn 1064
+bWeaponComaEle 1065
+bWeaponComaRace 1066
+bAddEff2 1067
+bMagicDamageReturn 1068
+bRandomAttackIncrease 1069
+bAllStats 1070
+bAgiVit 1071
+bAgiDexStr 1072
+bPerfectHide 1073
+
+bRestartFullRecover 2000
+bNoCastCancel 2001
+bNoSizeFix 2002
+bNoMagicDamage 2003
+bNoWeaponDamage 2004
+bNoGemStone 2005
+bNoCastCancel2 2006
+bInfiniteEndure 2007
+
+Eff_Stone 0
+Eff_Freeze 1
+Eff_Stan 2
+Eff_Sleep 3
+Eff_Poison 4
+Eff_Curse 5
+Eff_Silence 6
+Eff_Confusion 7
+Eff_Blind 8
+
+SC_Stone 128
+SC_Freeze 129
+SC_Stan 130
+SC_Sleep 131
+SC_Poison 132
+SC_Curse 133
+SC_Silence 134
+SC_Confusion 135
+SC_Blind 136
+SC_SpeedPot0 37
+SC_SpeedPot1 38
+SC_SpeedPot2 39
+SC_ATKPot 185
+SC_MATKPot 186
diff --git a/db/exp.txt b/db/exp.txt
new file mode 100644
index 00000000..d07c46b6
--- /dev/null
+++ b/db/exp.txt
@@ -0,0 +1,99 @@
+9,9,9,9,10,10,10,10,30,144,30,11,60,288
+16,16,16,16,18,18,18,18,43,184,43,20,86,368
+25,25,25,25,28,28,28,28,58,284,58,31,116,568
+36,36,36,36,40,40,40,40,76,348,76,44,152,696
+77,77,77,77,85,85,85,91,116,603,116,100,232,1206
+112,112,112,112,123,123,123,151,180,887,180,166,360,1774
+153,153,153,153,168,168,168,205,220,1096,220,226,440,2192
+200,200,200,200,220,220,220,268,272,1598,272,295,544,3196
+253,253,253,253,278,278,278,340,336,2540,336,374,672,5080
+320,320,320,320,400,400,400,0,520,3676,520,0,1040,7352
+385,385,385,385,41,41,41,0,604,4290,604,0,1208,8580
+490,490,490,490,613,613,613,0,699,4946,699,0,1398,9892
+585,585,585,585,731,731,731,0,802,6679,802,0,1604,13358
+700,700,700,700,875,875,875,0,948,9492,948,0,1896,18984
+830,830,830,830,1038,1038,1038,0,1125,12770,1125,0,2250,31925
+970,970,970,970,1213,1213,1213,0,1668,14344,1668,0,3336,35860
+1120,1120,1120,1120,1400,1400,1400,0,1937,16005,1937,0,3874,40013
+1260,1260,1260,1260,1575,1575,1575,0,2226,20642,2226,0,4452,51605
+1420,1420,1420,1420,1775,1775,1775,0,3040,27434,3040,0,6080,68585
+1620,1620,1620,1620,2268,2268,2268,0,3988,35108,3988,0,7976,87770
+1860,1860,1860,1860,2604,2604,2604,0,5564,38577,5564,0,11128,96443
+1990,1990,1990,1990,2786,2786,2786,0,6272,42206,6272,0,12544,105515
+2240,2240,2240,2240,3136,3136,3136,0,7021,52708,7021,0,14042,131770
+2504,2504,2504,2504,3506,3506,3506,0,9114,66971,9114,0,18228,167428
+2950,2950,2950,2950,4130,4130,4130,0,11473,82688,11473,0,28683,206720
+3426,3426,3426,3426,4796,4796,4796,0,15290,89544,15290,0,38225,223860
+3934,3934,3934,3934,5508,5508,5508,0,16891,96669,16891,0,42228,241673
+4474,4474,4474,4474,6264,6264,6264,0,18570,117821,18570,0,46425,294553
+6889,6889,6889,6889,9645,9645,9645,0,23229,144921,23229,0,58073,362303
+7995,7995,7995,7995,12392,12392,12392,0,28359,174201,28359,0,70898,479053
+9174,9174,9174,9174,14220,14220,14220,0,36478,186677,36478,0,91195,513362
+10425,10425,10425,10425,16159,16159,16159,0,39716,199584,39716,0,99290,548856
+11748,11748,11748,11748,18209,18209,18209,0,43088,238617,43088,0,107720,656197
+13967,13967,13967,13967,21649,21649,21649,0,52417,286366,52417,0,131043,787507
+15775,15775,15775,15775,24451,24451,24451,0,62495,337147,62495,0,156238,927154
+17678,17678,17678,17678,27401,27401,27401,0,78160,358435,78160,0,195408,985696
+19677,19677,19677,19677,30499,30499,30499,0,84175,380376,84175,0,210430,1046034
+21773,21773,21773,21773,33748,33748,33748,0,90404,447685,90404,0,226010,1231134
+30543,30543,30543,30543,47342,47342,47342,0,107611,526989,107611,0,269028,1449220
+34212,34212,34212,34212,58160,58160,58160,0,125915,610246,125915,0,314788,1678177
+38065,38065,38065,38065,64711,64711,64711,0,153941,644736,153941,0,384853,1773024
+42102,42102,42102,42102,71573,71573,71573,0,191781,793535,191781,0,479453,2182221
+46323,46323,46323,46323,78749,78749,78749,0,204351,921810,204351,0,510878,2534978
+53026,53026,53026,53026,90144,90144,90144,0,248352,1106758,248352,0,620880,3043585
+58419,58419,58419,58419,99312,99312,99312,0,286212,1260955,286212,0,715530,3782865
+64041,64041,64041,64041,108870,108870,108870,0,386371,1487304,386371,0,965928,4461912
+69892,69892,69892,69892,118816,118816,118816,0,409795,1557657,409795,0,1024488,4672971
+75973,75973,75973,75973,129154,129154,129154,0,482092,1990632,482092,0,1205230,5971896
+102468,102468,102468,102468,174196,174196,174196,0,509596,2083386,509596,0,1273990,6250158
+115254,115254,115254,115254,213220,213220,213220,0,0,0,982092,0,0,6875174
+128692,128692,128692,128692,238080,238080,238080,0,0,0,992092,0,0,7562691
+142784,142784,142784,142784,264150,264150,264150,0,0,0,1002092,0,0,8318960
+157528,157528,157528,157528,291427,291427,291427,0,0,0,1012092,0,0,9150856
+178184,178184,178184,178184,329640,329640,329640,0,0,0,1022092,0,0,10065942
+196300,196300,196300,196300,363155,363155,363155,0,0,0,1032092,0,0,11877812
+215198,215198,215198,215198,398116,398116,398116,0,0,0,1042092,0,0,14015818
+234879,234879,234879,234879,434526,434526,434526,0,0,0,1052092,0,0,16538655
+255341,255341,255341,255341,472381,472381,472381,0,0,0,1062092,0,0,19515624
+330188,330188,330188,330188,610848,610848,610848,0,0,0,1072092,0,0,23028437
+365914,365914,365914,365914,731828,731828,731828,0,0,0,1082092,0,0,28094693
+403224,403224,403224,403224,806448,806448,806448,0,0,0,1092092,0,0,34275525
+442116,442116,442116,442116,884232,884232,884232,0,0,0,1102092,0,0,41816141
+482590,482590,482590,482590,965180,965180,965180,0,0,0,1112092,0,0,51015692
+536948,536948,536948,536948,1073896,1073896,1073896,0,0,0,1122092,0,0,62239144
+585191,585191,585191,585191,1170382,1170382,1170382,0,0,0,1132092,0,0,79666104
+635278,635278,635278,635278,1270556,1270556,1270556,0,0,0,1142092,0,0,101972614
+687211,687211,687211,687211,1374422,1374422,1374422,0,0,0,1152092,0,0,130524946
+740988,740988,740988,740988,1481976,1481976,1481976,0,0,0,1162092,0,0,167071930
+925400,925400,925400,925400,1850800,1850800,1850800,0,0,0,1172092,0,0,213852071
+1473746,1473746,1473746,1473746,3389616,3389616,3389616,0,0,0,0,0,0,0
+1594058,1594058,1594058,1594058,3666333,3666333,3666333,0,0,0,0,0,0,0
+1718928,1718928,1718928,1718928,3953534,3953534,3953534,0,0,0,0,0,0,0
+1848355,1848355,1848355,1848355,4251217,4251217,4251217,0,0,0,0,0,0,0
+1982340,1982340,1982340,1982340,4559382,4559382,4559382,0,0,0,0,0,0,0
+2230113,2230113,2230113,2230113,5129260,5129260,5129260,0,0,0,0,0,0,0
+2386162,2386162,2386162,2386162,5488173,5488173,5488173,0,0,0,0,0,0,0
+2547417,2547417,2547417,2547417,5859059,5859059,5859059,0,0,0,0,0,0,0
+2713878,2713878,2713878,2713878,6241919,6241919,6241919,0,0,0,0,0,0,0
+3206160,3206160,3206160,3206160,7374168,7374168,7374168,0,0,0,0,0,0,0
+3681024,3681024,3681024,3681024,9570662,9570662,9570662,0,0,0,0,0,0,0
+4022472,4022472,4022472,4022472,10458427,10458427,10458427,0,0,0,0,0,0,0
+4377024,4377024,4377024,4377024,11380262,11380262,11380262,0,0,0,0,0,0,0
+4744680,4744680,4744680,4744680,12336168,12336168,12336168,0,0,0,0,0,0,0
+5125440,5125440,5125440,5125440,13326144,13326144,13326144,0,0,0,0,0,0,0
+5767272,5767272,5767272,5767272,14994907,14994907,14994907,0,0,0,0,0,0,0
+6204000,6204000,6204000,6204000,16130400,16130400,16130400,0,0,0,0,0,0,0
+6655464,6655464,6655464,6655464,17304200,17304200,17304200,0,0,0,0,0,0,0
+7121664,7121664,7121664,7121664,18516326,18516326,18516326,0,0,0,0,0,0,0
+7602600,7602600,7602600,7602600,19766760,19766760,19766760,0,0,0,0,0,0,0
+9738720,9738720,9738720,9738720,29216160,29216160,29216160,0,0,0,0,0,0,0
+11649960,11649960,11649960,11649960,34949880,34949880,34949880,0,0,0,0,0,0,0
+13643520,13643520,13643520,13643520,40930560,40930560,40930560,0,0,0,0,0,0,0
+18339300,18339300,18339300,18339300,55017900,55017900,55017900,0,0,0,0,0,0,0
+23836800,23836800,23836800,23836800,71510400,71510400,71510400,0,0,0,0,0,0,0
+35658000,35658000,35658000,35658000,106974000,106974000,106974000,0,0,0,0,0,0,0
+48687000,48687000,48687000,48687000,146061000,146061000,146061000,0,0,0,0,0,0,0
+58135000,58135000,58135000,58135000,174405000,174405000,174405000,0,0,0,0,0,0,0
+99999999,99999999,99999999,99999999,200000000,200000000,200000000,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0
diff --git a/db/exp2.txt b/db/exp2.txt
new file mode 100644
index 00000000..b9cbfeb3
--- /dev/null
+++ b/db/exp2.txt
@@ -0,0 +1,99 @@
+10,9,9,11,60,288,144
+18,16,16,20,86,368,184
+28,25,25,31,116,568,284
+40,36,36,44,152,696,348
+85,77,77,100,232,1206,603
+123,112,112,166,360,1774,887
+168,153,153,226,440,2192,1096
+220,200,200,295,544,3196,1598
+278,253,253,374,672,5080,2540
+400,320,320,0,1040,7352,3676
+481,385,385,0,1208,8580,4290
+613,490,490,0,1398,9892,4946
+731,585,585,0,1604,13358,6679
+875,700,700,0,1896,18984,9492
+1038,830,830,0,2250,31925,12770
+1213,970,970,0,3336,35860,14344
+1400,1120,1120,0,3874,40013,16005
+1575,1260,1260,0,4452,51605,20642
+1775,1420,1420,0,6080,68585,27434
+2268,1620,1620,0,7976,87770,35108
+2604,1860,1860,0,11128,96443,38577
+2786,1990,1990,0,12544,105515,42206
+3136,2240,2240,0,14042,131770,52708
+3506,2504,2504,0,18228,167428,66971
+4136,2950,2950,0,28683,206720,82688
+4796,3426,3426,0,38225,223860,89544
+5508,3934,3934,0,42228,241673,96669
+6264,4474,4474,0,46425,294553,117821
+9645,6889,6889,0,58073,362303,144921
+12392,7995,7995,0,70898,479053,174201
+14220,9174,9174,0,91195,548856,186677
+16159,10425,10425,0,99290,656197,199584
+18209,11748,11748,0,107720,787507,238617
+21649,13967,13967,0,131043,927154,286366
+24451,15775,15775,0,156238,985696,337147
+27401,17678,17678,0,195400,1046034,358435
+30499,19677,19677,0,210438,1231134,380376
+33748,21773,21773,0,226010,1449220,447685
+47342,30543,30543,0,269028,1678177,526989
+58160,34212,34212,0,314788,1773024,610246
+64711,38065,38065,0,384853,2182221,644736
+71573,42102,42102,0,479453,2534978,793535
+78749,46323,46323,0,510878,3043585,921810
+90144,53026,53026,0,620880,3782865,1106758
+99312,58419,58419,0,715530,4461912,1260955
+108870,64041,64041,0,965928,4672971,1487304
+118816,69892,69892,0,1024488,5971896,1557657
+129154,75973,75973,0,1205230,6250158,1990632
+174196,102468,102468,0,1273990,6875174,2083386
+213220,115254,115254,0,0,7562691,0
+238080,128692,128692,0,0,8318960,0
+264150,142784,142784,0,0,9150856,0
+291427,157528,157528,0,0,10065942,0
+329640,178184,178184,0,0,11877812,0
+363155,196300,196300,0,0,14015818,0
+398116,215198,215198,0,0,16538665,0
+434526,234879,234879,0,0,19515624,0
+472381,255341,255341,0,0,23028437,0
+610848,330188,330188,0,0,28094693,0
+741828,365914,365914,0,0,34275525,0
+806448,403224,403224,0,0,41816141,0
+884232,442116,442116,0,0,51015692,0
+965180,482590,482590,0,0,62239144,0
+1073896,536948,536948,0,0,79666104,0
+1170382,585191,585191,0,0,101972614,0
+1270556,635278,635278,0,0,130624946,0
+1374422,687211,687211,0,0,167071930,0
+1481976,740988,740988,0,0,213852071,0
+1850800,925400,925400,0,0,213852071,0
+3389616,1473746,1473746,0,0,0,0
+3666333,1594058,1594058,0,0,0,0
+3953534,1718928,1718928,0,0,0,0
+4251217,1848355,1848355,0,0,0,0
+4559382,1982340,1982340,0,0,0,0
+5129260,2230113,2230113,0,0,0,0
+5488173,2386162,2386162,0,0,0,0
+5859059,2547417,2547417,0,0,0,0
+6241919,2713878,2713878,0,0,0,0
+7374168,3206160,3206160,0,0,0,0
+9570622,3681024,3681024,0,0,0,0
+10458427,4022472,4022472,0,0,0,0
+11380262,4377024,4377024,0,0,0,0
+12336168,4744680,4744680,0,0,0,0
+13326144,5125440,5125440,0,0,0,0
+14994907,5767272,5767272,0,0,0,0
+16130400,6204000,6204000,0,0,0,0
+17304206,6655464,6655464,0,0,0,0
+18586326,7121664,7121664,0,0,0,0
+19766760,7602600,7602600,0,0,0,0
+29216160,9738720,9738720,0,0,0,0
+34949880,11649960,11649960,0,0,0,0
+40930560,13643520,13643520,0,0,0,0
+55017900,18339300,18339300,0,0,0,0
+71510400,23836800,23836800,0,0,0,0
+106974000,35658000,35658000,0,0,0,0
+146061000,48687000,48687000,0,0,0,0
+174405000,58135000,58135000,0,0,0,0
+299999999,99999999,99999999,0,0,0,0
+0,0,0,0,0,0,0,0
diff --git a/db/item_bluebox.txt b/db/item_bluebox.txt
new file mode 100644
index 00000000..0932696e
--- /dev/null
+++ b/db/item_bluebox.txt
@@ -0,0 +1,7 @@
+// File created using Spamrat's Athena Database Editor v1.4.4
+//
+// ŒÃ‚­Â‚¢” ‚©‚瓾‚ç‚ê‚éƒAƒCƒeƒ€‚ðÝ’èB
+// ItemID, ItemName(Dummy), Rate
+// ƒAƒCƒeƒ€IDAƒAƒCƒeƒ€‚Ì–¼‘O(ƒ_ƒ~[)AŠm—¦(*10000)‚ð‚µ‚½•¨‚Å‚·B500000‚È‚ç50%‚Å1000000‚È‚ç100%‚Å‚·B)
+// ƒAƒCƒeƒ€ID‚ª0‚Ìꇊm—¦‚ðƒAƒCƒeƒ€‚Ì‘I‘ð‚ÉŽ¸”s‚µ‚½Žž‚É“¾‚ç‚ê‚éƒfƒtƒHƒ‹ƒgƒAƒCƒeƒ€‚ÌID‚Æ‚µ‚Ä”FŽ¯‚µ‚Ü‚·B(•¡”‚Å‚ ‚éê‡ÅŒã‚Ì•¨‚¾‚¯—LŒø‚Å‚·B)
+//
diff --git a/db/item_cardalbum.txt b/db/item_cardalbum.txt
new file mode 100644
index 00000000..4472147b
--- /dev/null
+++ b/db/item_cardalbum.txt
@@ -0,0 +1,7 @@
+// File created using Spamrat's Athena Database Editor v1.4.4
+//
+// ŒÃ‚¢ƒJ[ƒh’Ÿ‚©‚瓾‚ç‚ê‚éƒAƒCƒeƒ€‚ðÝ’èB
+// ItemID, ItemName(Dummy), Rate
+// ƒAƒCƒeƒ€IDAƒAƒCƒeƒ€‚Ì–¼‘O(ƒ_ƒ~[)AŠm—¦(*10000)‚ð‚µ‚½•¨‚Å‚·B500000‚È‚ç50%‚Å1000000‚È‚ç100%‚Å‚·B)
+// ƒAƒCƒeƒ€ID‚ª0‚Ìꇊm—¦‚ðƒAƒCƒeƒ€‚Ì‘I‘ð‚ÉŽ¸”s‚µ‚½Žž‚É“¾‚ç‚ê‚éƒfƒtƒHƒ‹ƒgƒAƒCƒeƒ€‚ÌID‚Æ‚µ‚Ä”FŽ¯‚µ‚Ü‚·B(•¡”‚Å‚ ‚éê‡ÅŒã‚Ì•¨‚¾‚¯—LŒø‚Å‚·B)
+//
diff --git a/db/item_descriptions.txt b/db/item_descriptions.txt
new file mode 100644
index 00000000..14d2ed25
--- /dev/null
+++ b/db/item_descriptions.txt
@@ -0,0 +1,105 @@
+// File created using Spamrat's Athena Database Editor v1.4.4
+501#»
+502#»
+503#»
+504#»
+505#»
+506#»
+507#»
+508#»
+509#»
+510#»
+511#»
+512#»
+513#»
+514#»
+515#»
+516#»
+
+517#»
+
+
+518#»
+
+
+
+519#»
+
+520#»
+
+
+521#»
+
+
+522#»
+
+523#»
+
+524#»A fancy hat
+525#»A miner hat
+526#»
+
+527#»
+
+
+
+528#»Boots
+529#»
+
+530#»
+
+531#»
+Boots
+532#»
+
+Boots
+533#»
+534#»
+535#»
+536#»
+
+
+
+537#»
+
+
+538#»
+539#»
+540#»
+541#»
+542#»
+543#»
+544#»
+545#»
+546#»
+547#» A spear
+548#» A pickaxe
+549#»An axe
+550#»An axe usually used by blacksmiths
+551#»An hint
+552#»An hint
+553#»An hint
+554#»An hint
+555#»An hint
+556#»An hint
+557#»An hint
+558#»An hint
+559#»An hint
+560#»An hint
+561#»Sabre sword
+562#»A chicken leg
+563#»
+
+Boots
+564#»
+
+565#»
+A chicken leg
+566#»
+567#»
+
+568#»»
+1199#»
+1200#»
+1201#»
+1202#»
diff --git a/db/item_giftbox.txt b/db/item_giftbox.txt
new file mode 100644
index 00000000..92ed47f5
--- /dev/null
+++ b/db/item_giftbox.txt
@@ -0,0 +1,7 @@
+// File created using Spamrat's Athena Database Editor v1.4.4
+//
+// ƒvƒŒƒ[ƒ“ƒgƒ{ƒbƒNƒX‚©‚瓾‚ç‚ê‚éƒAƒCƒeƒ€‚ðÝ’èB
+// ItemID, ItemName(Dummy), Rate
+// ƒAƒCƒeƒ€IDAƒAƒCƒeƒ€‚Ì–¼‘O(ƒ_ƒ~[)AŠm—¦(*10000)‚ð‚µ‚½•¨‚Å‚·B500000‚È‚ç50%‚Å1000000‚È‚ç100%‚Å‚·B)
+// ƒAƒCƒeƒ€ID‚ª0‚Ìꇊm—¦‚ðƒAƒCƒeƒ€‚Ì‘I‘ð‚ÉŽ¸”s‚µ‚½Žž‚É“¾‚ç‚ê‚éƒfƒtƒHƒ‹ƒgƒAƒCƒeƒ€‚ÌID‚Æ‚µ‚Ä”FŽ¯‚µ‚Ü‚·B(•¡”‚Å‚ ‚éê‡ÅŒã‚Ì•¨‚¾‚¯—LŒø‚Å‚·B)
+//
diff --git a/db/item_noequip.txt b/db/item_noequip.txt
new file mode 100644
index 00000000..5eb36973
--- /dev/null
+++ b/db/item_noequip.txt
@@ -0,0 +1,4 @@
+// The equipment restriction file
+// here equipment at PvP and GvG
+// where it is possible to restrict, the prescribed form: < ItemID> < Mode>
+// mode = 1- So with PvP restriction, 2- GvG restriction, 3- PvP and GvG which restriction
diff --git a/db/item_scroll.txt b/db/item_scroll.txt
new file mode 100644
index 00000000..00b50386
--- /dev/null
+++ b/db/item_scroll.txt
@@ -0,0 +1,5 @@
+// ŒÃ‚¢Šª•¨‚©‚瓾‚ç‚ê‚éƒAƒCƒeƒ€‚ðÝ’èB
+// nameid, item_name(dummy), rate
+// ƒAƒCƒeƒ€IDAƒAƒCƒeƒ€‚Ì–¼‘O(ƒ_ƒ~[)AŠm—¦(*10000)‚ð‚µ‚½•¨‚Å‚·B500000‚È‚ç50%‚Å1000000‚È‚ç100%‚Å‚·B)
+// ƒAƒCƒeƒ€ID‚ª0‚Ìꇊm—¦‚ðƒAƒCƒeƒ€‚Ì‘I‘ð‚ÉŽ¸”s‚µ‚½Žž‚É“¾‚ç‚ê‚éƒfƒtƒHƒ‹ƒgƒAƒCƒeƒ€‚ÌID‚Æ‚µ‚Ä”FŽ¯‚µ‚Ü‚·B(•¡”‚Å‚ ‚éê‡ÅŒã‚Ì•¨‚¾‚¯—LŒø‚Å‚·B)
+0,Jellopy,909
diff --git a/db/item_violetbox.txt b/db/item_violetbox.txt
new file mode 100644
index 00000000..88bde984
--- /dev/null
+++ b/db/item_violetbox.txt
@@ -0,0 +1,7 @@
+// File created using Spamrat's Athena Database Editor v1.4.4
+//
+// ŒÃ‚¢Ž‡F‚Ì” ‚©‚瓾‚ç‚ê‚éƒAƒCƒeƒ€‚ðÝ’èB
+// ItemID, ItemName(Dummy), Rate
+// ƒAƒCƒeƒ€IDAƒAƒCƒeƒ€‚Ì–¼‘O(ƒ_ƒ~[)AŠm—¦(*10000)‚ð‚µ‚½•¨‚Å‚·B500000‚È‚ç50%‚Å1000000‚È‚ç100%‚Å‚·B)
+// ƒAƒCƒeƒ€ID‚ª0‚Ìꇊm—¦‚ðƒAƒCƒeƒ€‚Ì‘I‘ð‚ÉŽ¸”s‚µ‚½Žž‚É“¾‚ç‚ê‚éƒfƒtƒHƒ‹ƒgƒAƒCƒeƒ€‚ÌID‚Æ‚µ‚Ä”FŽ¯‚µ‚Ü‚·B(•¡”‚Å‚ ‚éê‡ÅŒã‚Ì•¨‚¾‚¯—LŒø‚Å‚·B)
+//
diff --git a/db/job_db1.txt b/db/job_db1.txt
new file mode 100644
index 00000000..060d7f31
--- /dev/null
+++ b/db/job_db1.txt
@@ -0,0 +1,70 @@
+//weight,hp,hp2,sp,aspd*17(‘fŽè,’ZŒ•,•ÐŽèŒ•,—¼ŽèŒ•,•ÐŽè‘„,—¼Žè‘„,•ÐŽè•€,—¼Žè•€,•ÐŽè“ÝŠí,—¼Žè“ÝŠí,ñ,‹|,’Ü,ŠyŠí,•Ú,–{,ƒJƒ^[ƒ‹)
+//x NOV,SWO,MAG,ARC,ACO,MER,THI,KNI,PRI,WIZ,BLA,HUN,ASS,KNIp,CRU,MON,SAG,ROG,ALC,BAR,DAN,CRUp,WED,SNV
+20000, 0,500,100, 500, 650, 700,2000,2000,2000, 800,2000, 700, 700, 650,2000,2000,2000,2000,2000,2000
+28000, 70,500,200, 400, 500, 550, 600, 650, 700, 700, 750, 650, 700,2000,2000,2000,2000,2000,2000,2000
+22000, 30,500,600, 500, 600,2000,2000,2000,2000,2000,2000,2000,2000, 700,2000,2000,2000,2000,2000,2000
+26000, 50,500,200, 400, 600,2000,2000,2000,2000,2000,2000,2000,2000,2000, 700,2000,2000,2000,2000,2000
+24000, 40,500,500, 400,2000,2000,2000,2000,2000,2000,2000, 600, 600, 600,2000,2000,2000,2000,2000,2000
+28000, 40,500,300, 400, 600, 700,2000,2000,2000, 700, 750, 700, 700,2000,2000,2000,2000,2000,2000,2000
+24000, 50,500,200, 400, 500, 650,2000,2000,2000, 800,2000,2000,2000,2000, 800,2000,2000,2000,2000,2000
+28000,150,500,300, 400, 500, 500, 550, 600, 600, 700, 700, 650, 700,2000,2000,2000,2000,2000,2000,2000
+26000, 75,500,800, 400,2000,2000,2000,2000,2000,2000,2000, 600, 600, 600,2000,2000,2000,2000, 600,2000
+24000, 55,500,900, 500, 575,2000,2000,2000,2000,2000,2000,2000,2000, 625,2000,2000,2000,2000,2000,2000
+30000, 90,500,400, 400, 600, 650,2000,2000,2000, 650, 650, 675, 675,2000,2000,2000,2000,2000,2000,2000
+27000, 85,500,400, 400, 600,2000,2000,2000,2000,2000,2000,2000,2000,2000, 600,2000,2000,2000,2000,2000
+24000,110,500,400, 400, 500, 650,2000,2000,2000, 800,2000,2000,2000,2000,2000,2000,2000,2000,2000, 500
+28000,150,500,300, 400, 500, 500, 550, 600, 600, 700, 700, 650, 700,2000,2000,2000,2000,2000,2000,2000
+28000,110,700,470, 400, 500, 500, 550, 600, 600, 700, 700, 650, 700,2000,2000,2000,2000,2000,2000,2000
+26000, 90,650,470, 400,2000,2000,2000,2000,2000,2000,2000, 575, 575, 575,2000, 475,2000,2000,2000,2000
+24000, 75,500,700, 450, 525,2000,2000,2000,2000,2000,2000,2000,2000, 625,2000,2000,2000,2000, 550,2000
+24000, 85,500,500, 400, 500, 550,2000,2000,2000,2000,2000,2000,2000,2000, 650,2000,2000,2000,2000,2000
+30000, 90,500,400, 400, 550, 575,2000,2000,2000, 675, 700, 650, 650,2000,2000,2000,2000,2000,2000,2000
+27000, 75,300,600, 400, 550,2000,2000,2000,2000,2000,2000,2000,2000,2000, 650,2000, 575,2000,2000,2000
+27000, 75,300,600, 400, 550,2000,2000,2000,2000,2000,2000,2000,2000,2000, 650,2000,2000, 575,2000,2000
+28000,110,700,470, 400, 500, 500, 550, 600, 600, 700, 700, 650, 700,2000,2000,2000,2000,2000,2000,2000
+20000, 0,500,100,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000
+20000, 0,500,100, 500, 650, 700,2000,2000,2000, 800,2000, 700, 700, 650,2000,2000,2000,2000,2000,2000
+20000, 0,500,100, 500, 650, 700,2000,2000,2000, 800,2000, 700, 700, 650,2000,2000,2000,2000,2000,2000
+28000, 70,500,200, 400, 500, 550, 600, 650, 700, 700, 750, 650, 700,2000,2000,2000,2000,2000,2000,2000
+22000, 30,500,600, 500, 600,2000,2000,2000,2000,2000,2000,2000,2000, 700,2000,2000,2000,2000,2000,2000
+26000, 50,500,200, 400, 600,2000,2000,2000,2000,2000,2000,2000,2000,2000, 700,2000,2000,2000,2000,2000
+24000, 40,500,500, 400,2000,2000,2000,2000,2000,2000,2000, 600, 600, 600,2000,2000,2000,2000,2000,2000
+28000, 40,500,300, 400, 600, 700,2000,2000,2000, 700, 750, 700, 700,2000,2000,2000,2000,2000,2000,2000
+24000, 50,500,200, 400, 500, 650,2000,2000,2000, 800,2000,2000,2000,2000, 800,2000,2000,2000,2000,2000
+28000,195,500,390, 400, 500, 500, 550, 600, 600, 700, 700, 650, 700,2000,2000,2000,2000,2000,2000,2000
+26000,97.5,500,1040, 400,2000,2000,2000,2000,2000,2000,2000, 600, 600, 600,2000,2000,2000,2000, 600,2000
+24000,71.5,500,1170, 500, 575,2000,2000,2000,2000,2000,2000,2000,2000, 625,2000,2000,2000,2000,2000,2000
+30000,117,500,520, 400, 600, 650,2000,2000,2000, 650, 650, 675, 675,2000,2000,2000,2000,2000,2000,2000
+27000,110.5,500,520, 400, 600,2000,2000,2000,2000,2000,2000,2000,2000,2000, 600,2000,2000,2000,2000,2000
+24000,143,500,520, 400, 500, 650,2000,2000,2000, 800,2000,2000,2000,2000,2000,2000,2000,2000,2000, 500
+28000,195,500,390, 400, 500, 500, 550, 600, 600, 700, 700, 650, 700,2000,2000,2000,2000,2000,2000,2000
+28000,143,700,611, 400, 500, 500, 550, 600, 600, 700, 700, 650, 700,2000,2000,2000,2000,2000,2000,2000
+26000,117,650,611, 400,2000,2000,2000,2000,2000,2000,2000, 575, 575, 575,2000, 475,2000,2000,2000,2000
+24000,97.5,500,910, 450, 525,2000,2000,2000,2000,2000,2000,2000,2000, 625,2000,2000,2000,2000, 550,2000
+24000,110.5,500,650, 400, 500, 550,2000,2000,2000,2000,2000,2000,2000,2000, 650,2000,2000,2000,2000,2000
+30000,117,500,520, 400, 550, 575,2000,2000,2000, 675, 700, 650, 650,2000,2000,2000,2000,2000,2000,2000
+27000,97.5,300,780, 400, 550,2000,2000,2000,2000,2000,2000,2000,2000,2000, 650,2000, 575,2000,2000,2000
+27000,97.5,300,780, 400, 550,2000,2000,2000,2000,2000,2000,2000,2000,2000, 650,2000,2000, 575,2000,2000
+28000,143,700,611, 400, 500, 500, 550, 600, 600, 700, 700, 650, 700,2000,2000,2000,2000,2000,2000,2000
+20000, 0,500,100, 500, 650, 700,2000,2000,2000, 800,2000, 700, 700, 650,2000,2000,2000,2000,2000,2000
+28000, 70,500,200, 400, 500, 550, 600, 650, 700, 700, 750, 650, 700,2000,2000,2000,2000,2000,2000,2000
+22000, 30,500,600, 500, 600,2000,2000,2000,2000,2000,2000,2000,2000, 700,2000,2000,2000,2000,2000,2000
+26000, 50,500,200, 400, 600,2000,2000,2000,2000,2000,2000,2000,2000,2000, 700,2000,2000,2000,2000,2000
+24000, 40,500,500, 400,2000,2000,2000,2000,2000,2000,2000, 600, 600, 600,2000,2000,2000,2000,2000,2000
+28000, 40,500,300, 400, 600, 700,2000,2000,2000, 700, 750, 700, 700,2000,2000,2000,2000,2000,2000,2000
+24000, 50,500,200, 400, 500, 650,2000,2000,2000, 800,2000,2000,2000,2000, 800,2000,2000,2000,2000,2000
+28000,150,500,300, 400, 500, 500, 550, 600, 600, 700, 700, 650, 700,2000,2000,2000,2000,2000,2000,2000
+26000, 75,500,800, 400,2000,2000,2000,2000,2000,2000,2000, 600, 600, 600,2000,2000,2000,2000, 600,2000
+24000, 55,500,900, 500, 575,2000,2000,2000,2000,2000,2000,2000,2000, 625,2000,2000,2000,2000,2000,2000
+30000, 90,500,400, 400, 600, 650,2000,2000,2000, 650, 650, 675, 675,2000,2000,2000,2000,2000,2000,2000
+27000, 85,500,400, 400, 600,2000,2000,2000,2000,2000,2000,2000,2000,2000, 600,2000,2000,2000,2000,2000
+24000,110,500,400, 400, 500, 650,2000,2000,2000, 800,2000,2000,2000,2000,2000,2000,2000,2000,2000, 500
+28000,150,500,300, 400, 500, 500, 550, 600, 600, 700, 700, 650, 700,2000,2000,2000,2000,2000,2000,2000
+28000,110,700,470, 400, 500, 500, 550, 600, 600, 700, 700, 650, 700,2000,2000,2000,2000,2000,2000,2000
+26000, 90,650,470, 400,2000,2000,2000,2000,2000,2000,2000, 575, 575, 575,2000, 475,2000,2000,2000,2000
+24000, 75,500,700, 450, 525,2000,2000,2000,2000,2000,2000,2000,2000, 625,2000,2000,2000,2000, 550,2000
+24000, 85,500,500, 400, 500, 550,2000,2000,2000,2000,2000,2000,2000,2000, 650,2000,2000,2000,2000,2000
+30000, 90,500,400, 400, 550, 575,2000,2000,2000, 675, 700, 650, 650,2000,2000,2000,2000,2000,2000,2000
+27000, 75,300,600, 400, 550,2000,2000,2000,2000,2000,2000,2000,2000,2000, 650,2000, 575,2000,2000,2000
+27000, 75,300,600, 400, 550,2000,2000,2000,2000,2000,2000,2000,2000,2000, 650,2000,2000, 575,2000,2000
+28000,110,700,470, 400, 500, 500, 550, 600, 600, 700, 700, 650, 700,2000,2000,2000,2000,2000,2000,2000 \ No newline at end of file
diff --git a/db/job_db2-2.txt b/db/job_db2-2.txt
new file mode 100644
index 00000000..629e4e2d
--- /dev/null
+++ b/db/job_db2-2.txt
@@ -0,0 +1,26 @@
+// job_bonus 0-non 1-str 2-agi 3-vit 4-int 5-dex 6-luk
+//x NV,SW,MG,AC,AL,MC,TF,KN,PR,WZ,BS,HT,AS,KNp,CR,MO,SA,RG,AM,BA,DC,CRp
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,1,0,0,0,3,0,0,0,5,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,2,0,0,1,0,0,5,0,3,0,1,0,3,0,6,0,2,1,0,1,1
+0,4,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,2,0,0,0,6,0,0,4,0,0,5,0,4,0,2,0,6,0,4,0,4,2,0,6,4
+0,5,0,0,0,1,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,5,0,0,2,0,0,5,0,1,0,1,0,5,0,6,0,3,4,0,2,5
+0,6,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,1,0,0,0,3,0,0,4,0,0,5,0,6,0,2,0,1,0,3,0,4,5,0,1,6
+0,3,0,0,0,5,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,3,0,0,2,0,0,6,0,5,0,1,0,5,0,1,0,6,3,0,1,5
+0,2,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,1,0,0,2,0,0,2,0,1,0,6,0,5,0,3,0,6,1,0,5,2
+1,2,6,5,3,1,1,1,0,2,5,3,4,2,0,5,2,0,1,0,0,3,0,0,1,0,6,5,3,0,5,0,1,0,0,5,2,6,0,3,1,0,3,5,0,1,1,0,5,0,0,1,2,0,0,1,1,3,0,2,0,5,0,1,2,0,4,3,0,1
+4,0,2,3,1,0,4,2,0,0,4,1,5,0,0,5,0,0,2,4,1,3,4,4,0,5,0,5,2,3,1,0,0,4,0,0,5,1,0,6,0,2,5,0,1,5,4,0,6,3,3,0,0,0,2,5,4,3,0,1,4,5,0,0,2,4,3,2,0,4
+4,5,3,0,4,0,0,2,5,4,0,6,0,4,0,0,5,2,4,1,0,5,5,4,0,2,0,4,3,0,5,4,0,2,0,0,4,4,4,1,6,0,5,0,0,4,3,0,4,2,0,0,3,0,4,2,6,0,4,1,5,4,0,0,2,3,5,0,2,4
+5,1,1,4,0,5,2,6,3,0,0,5,3,0,4,6,1,0,2,2,0,4,5,0,0,1,0,6,3,0,2,0,1,4,0,2,0,5,6,0,5,0,0,6,6,0,5,3,0,4,0,1,0,0,0,5,5,2,0,3,4,5,0,2,3,6,6,0,0,5
+5,2,5,5,4,2,0,1,0,2,2,3,0,6,0,5,5,0,0,4,2,5,0,1,6,5,0,2,0,5,6,3,2,0,5,6,0,2,0,5,0,4,2,0,1,5,0,2,0,6,5,0,0,4,3,0,6,2,0,5,1,6,0,0,4,0,0,0,5,6
+2,1,6,2,2,0,1,6,3,5,0,1,0,0,2,6,0,6,0,2,1,0,5,2,2,6,0,0,1,0,2,2,2,6,0,0,5,1,5,0,0,2,5,0,0,2,3,6,0,1,2,0,5,1,0,2,5,0,0,0,5,2,0,5,6,1,0,0,3,5
+1,2,6,5,3,1,1,1,0,2,5,3,4,3,0,5,2,0,1,0,0,3,0,0,1,0,6,5,3,0,5,0,1,0,0,5,2,6,0,3,1,0,3,5,0,1,1,0,5,0,0,1,2,0,0,1,1,3,0,2,0,5,0,1,2,0,4,3,0,1
+3,1,2,0,0,5,4,2,3,1,0,5,0,4,3,2,5,1,0,0,3,0,5,2,0,1,0,0,4,3,0,0,1,0,0,5,2,0,6,1,0,3,4,0,5,0,0,1,3,0,0,2,3,4,1,0,5,0,6,2,4,0,3,1,4,0,6,5,4,2
+1,4,3,2,0,5,0,0,1,0,4,2,6,0,3,5,1,0,0,2,2,5,0,3,0,0,1,0,2,5,0,0,4,6,0,0,1,5,3,0,0,3,0,5,2,6,4,1,0,5,0,2,5,0,0,4,0,3,1,5,0,2,0,4,1,1,5,3,4,2
+4,4,2,0,1,0,3,5,0,0,4,2,0,4,0,5,0,1,0,5,6,4,2,3,0,5,1,0,5,4,0,2,0,5,0,1,5,4,3,0,4,0,2,0,1,5,0,0,4,2,0,5,0,2,5,1,4,0,0,2,0,5,3,4,0,6,0,4,2,4
+1,2,0,6,4,3,0,0,2,5,1,2,0,0,3,5,5,0,0,6,2,1,0,6,0,5,2,0,5,0,6,1,0,2,0,0,5,5,0,0,2,3,1,4,2,0,1,0,5,6,0,5,1,0,0,5,4,2,6,5,0,1,3,2,0,5,1,0,0,2
+5,0,6,0,2,1,4,6,3,5,0,0,4,0,5,0,0,2,0,6,0,4,5,0,6,0,2,0,0,4,1,0,3,6,5,0,0,2,0,0,5,5,5,0,6,4,5,0,5,0,6,6,1,2,0,5,5,0,4,6,3,0,5,6,0,1,2,4,6,5
+2,5,0,2,1,0,5,4,2,1,6,0,2,0,5,3,0,6,1,0,4,0,5,2,0,6,0,4,0,5,0,2,1,0,0,2,0,0,5,5,4,0,5,0,1,0,6,0,2,5,0,0,2,1,0,5,5,2,3,0,5,1,5,0,2,5,0,2,4,1
+5,1,0,2,0,1,0,4,5,0,2,2,2,5,5,0,3,5,0,1,0,5,5,0,2,4,6,5,0,0,2,0,5,0,1,0,0,2,4,0,5,0,5,0,5,0,2,0,5,1,0,2,4,3,0,0,2,5,0,4,2,2,6,0,5,1,2,0,5,2
+3,1,2,0,0,5,4,2,3,1,0,5,0,4,3,2,5,1,0,0,3,0,5,2,0,1,0,0,4,3,0,0,1,0,0,5,2,0,6,1,0,3,4,0,5,0,0,1,3,0,0,2,3,4,1,0,5,0,6,2,4,0,3,1,4,0,6,5,4,2
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
diff --git a/db/job_db2.txt b/db/job_db2.txt
new file mode 100644
index 00000000..f7e7d802
--- /dev/null
+++ b/db/job_db2.txt
@@ -0,0 +1,71 @@
+// job_bonus 0-non 1-str 2-agi 3-vit 4-int 5-dex 6-luk
+//x NV,SW,MG,AC,AL,MC,TF,KN,PR,WZ,BS,HT,AS,KNp,CR,MO,SA,RG,AM,BA,DC,CRp
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,1,0,0,0,3,0,0,0,5,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,2,0,0,1,0,0,5,0,3,0,1,0,3,0,6,0,2,1,0,1,1
+0,4,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,2,0,0,0,6,0,0,4,0,0,5,0,4,0,2,0,6,0,4,0,4,2,0,6,4
+0,5,0,0,0,1,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,5,0,0,2,0,0,5,0,1,0,1,0,5,0,6,0,3,4,0,2,5
+0,6,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,1,0,0,0,3,0,0,4,0,0,5,0,6,0,2,0,1,0,3,0,4,5,0,1,6
+0,3,0,0,0,5,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,3,0,0,2,0,0,6,0,5,0,1,0,5,0,1,0,6,3,0,1,5
+0,2,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,1,0,0,2,0,0,2,0,1,0,6,0,5,0,3,0,6,1,0,5,2
+3,0,3,1,6,0,0,3,0,1,5,3,2,0,1,0,3,3,5,6,1,0,3,0,0,0,1,6,3,0,5,0,1,0,0,3,6,2,0,5,0,0,3,0,0,1,1,5,5,0
+6,0,6,1,0,2,3,4,4,6,1,0,0,3,0,5,1,0,0,5,6,4,0,0,5,0,1,0,2,0,6,5,0,3,1,3,2,0,6,0,0,4,4,0,3,0,0,2,0,6
+4,5,0,4,5,2,0,0,4,2,0,1,5,0,6,0,0,4,0,0,0,4,0,2,0,5,0,0,4,0,4,5,4,2,0,6,0,3,5,4,2,0,2,0,4,2,2,4,0,4
+5,0,1,5,5,0,3,1,5,0,6,5,3,0,0,1,0,0,5,3,4,0,1,0,0,5,0,5,2,0,1,3,0,4,0,5,3,2,5,5,0,0,0,1,0,6,5,0,3,0
+5,0,4,5,6,1,0,5,0,1,1,2,0,5,6,0,3,0,2,2,5,0,3,0,0,0,5,0,6,0,2,0,5,4,0,0,0,5,2,0,4,6,5,1,0,4,2,0,5,0
+2,2,2,4,0,3,0,3,5,0,1,0,0,4,2,2,2,2,2,2,2,0,0,5,1,0,1,0,0,5,5,1,0,0,0,0,0,4,0,5,5,4,0,0,1,5,0,1,0,5
+3,0,3,1,6,0,0,3,0,1,5,3,2,0,1,0,3,3,5,6,1,0,3,0,0,0,1,6,3,0,5,0,1,0,0,3,6,2,0,5,0,0,3,0,0,1,1,5,5,0
+6,6,6,6,6,0,1,0,4,0,1,3,0,5,3,0,1,0,0,4,4,3,1,0,1,0,0,5,0,2,0,1,0,5,0,2,0,4,0,3,3,0,0,4,0,3,0,1,0,3
+1,1,0,5,0,2,3,0,0,2,0,1,1,6,0,4,0,2,0,3,0,5,2,0,3,1,1,0,0,5,0,6,3,0,2,0,0,4,0,6,3,0,5,2,0,3,0,0,1,1
+4,0,2,3,0,2,0,4,0,0,3,0,2,0,4,0,6,3,0,5,0,2,0,4,5,0,5,0,0,4,0,5,2,0,6,0,4,0,5,6,0,1,0,1,4,1,1,1,0,4
+2,3,5,0,1,3,2,0,3,0,5,0,0,3,3,2,0,5,0,5,0,0,2,0,1,0,1,0,2,1,0,0,5,5,0,1,0,4,2,0,0,1,4,0,2,0,4,0,4,5
+4,5,5,0,0,1,0,5,4,0,2,0,5,2,1,0,4,0,5,3,5,0,4,4,5,1,0,5,4,0,3,0,0,1,0,3,0,4,0,2,0,0,1,0,2,0,0,0,2,2
+5,2,1,0,4,6,5,0,6,2,2,0,4,0,5,0,3,0,5,6,4,0,0,2,0,0,0,1,0,2,0,5,3,0,2,0,0,5,0,4,6,0,3,0,0,5,4,2,0,5
+6,2,1,0,4,5,6,0,5,2,2,0,4,0,6,0,3,0,6,5,4,0,0,2,0,0,0,1,0,2,0,6,3,0,2,0,0,6,0,4,5,0,3,0,0,6,4,2,0,6
+6,6,6,6,6,0,1,0,4,0,1,3,0,5,3,0,1,0,0,4,4,3,1,0,1,0,0,5,0,2,0,1,0,5,0,2,0,4,0,3,3,0,0,4,0,3,0,1,0,3
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,6,5,0,2,3,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,1,0,0,0,3,0,0,0,5,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,2,0,0,1,0,0,5,0,3,0,1,0,3,0,6,0,2,1,0,1,1
+0,4,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,2,0,0,0,6,0,0,4,0,0,5,0,4,0,2,0,6,0,4,0,4,2,0,6,4
+0,5,0,0,0,1,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,5,0,0,2,0,0,5,0,1,0,1,0,5,0,6,0,3,4,0,2,5
+0,6,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,1,0,0,0,3,0,0,4,0,0,5,0,6,0,2,0,1,0,3,0,4,5,0,1,6
+0,3,0,0,0,5,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,3,0,0,2,0,0,6,0,5,0,1,0,5,0,1,0,6,3,0,1,5
+0,2,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,1,0,0,2,0,0,2,0,1,0,6,0,5,0,3,0,6,1,0,5,2
+1,2,6,5,3,1,1,1,0,2,5,3,4,2,0,5,2,0,1,0,0,3,0,0,1,0,6,5,3,0,5,0,1,0,0,5,2,6,0,3,1,0,3,5,0,1,1,0,5,0,0,1,2,0,0,1,1,3,0,2,0,5,0,1,2,0,4,3,0,1
+4,0,2,3,1,0,4,2,0,0,1,5,0,0,5,0,0,2,4,1,3,4,4,0,5,0,5,5,2,3,1,0,0,4,0,0,5,1,0,6,0,2,5,0,1,5,4,0,6,3,3,0,0,0,2,5,4,3,0,1,4,5,0,0,2,4,3,2,0,4
+4,5,3,0,4,0,0,2,5,4,0,6,0,4,0,0,5,2,4,1,0,5,5,4,0,2,0,4,3,0,5,4,0,2,0,0,4,4,4,1,6,0,5,0,0,,4,3,0,4,2,0,0,3,0,4,2,6,0,4,1,5,4,0,0,2,3,5,0,2,4
+5,1,1,4,0,5,2,6,3,0,0,5,3,0,4,6,1,0,2,2,0,4,5,0,0,1,0,6,3,0,2,5,1,4,0,2,0,5,6,0,5,0,0,6,6,0,5,3,0,4,0,1,0,0,0,5,0,0,0,3,4,5,0,2,0,6,6,0,0,5
+5,2,5,5,4,2,0,1,0,2,2,3,0,6,0,5,5,0,0,4,2,5,0,1,6,5,0,2,0,5,6,3,2,0,5,6,0,2,0,5,0,4,2,0,1,5,0,2,0,5,4,0,0,4,3,0,6,2,0,5,1,6,0,0,4,0,0,0,5,6
+2,1,6,2,2,0,1,6,3,5,0,1,0,0,2,6,0,6,0,2,1,0,5,2,2,6,0,0,5,0,2,2,2,6,0,0,5,1,5,0,0,2,5,0,0,2,3,6,0,1,2,0,5,1,0,2,5,0,0,0,5,2,0,5,6,1,0,0,3,6
+1,2,6,5,3,1,1,1,0,2,5,3,4,2,0,5,2,0,1,0,0,3,0,0,1,0,6,5,3,0,5,0,1,0,0,5,2,6,0,3,1,0,3,5,0,1,1,0,5,0,0,1,2,0,0,1,1,3,0,2,0,5,0,1,2,0,4,3,0,1
+3,1,2,0,0,5,4,2,3,1,0,5,0,4,3,2,6,1,0,0,3,0,6,2,0,1,0,0,5,4,0,0,1,0,0,6,2,0,6,1,0,3,4,0,5,0,0,1,3,0,0,2,3,4,1,0,5,0,6,2,4,0,3,1,4,0,6,5,3,2
+1,4,3,2,0,5,0,0,1,0,4,2,6,0,3,5,1,0,0,2,2,5,0,3,0,0,1,0,2,5,0,0,4,6,0,0,1,5,3,0,0,3,0,4,2,6,4,1,0,5,0,2,5,0,0,4,0,3,1,5,0,2,0,4,1,1,5,3,4,2
+4,4,2,0,1,0,3,5,0,0,4,2,0,4,0,5,0,1,0,5,6,4,2,3,0,5,1,0,5,4,0,2,0,5,0,1,5,4,3,0,4,0,2,0,1,5,0,0,4,2,0,5,0,2,5,1,4,0,0,2,0,5,3,4,0,6,0,4,2,4
+1,2,0,6,4,3,0,0,2,5,1,2,0,0,3,5,5,0,0,6,2,1,0,6,0,5,2,0,5,0,6,1,0,2,0,0,5,5,0,0,2,3,1,4,2,0,1,0,5,6,0,5,1,0,0,5,4,2,6,5,0,1,3,2,0,5,1,0,0,2
+5,0,6,0,2,1,4,6,3,5,0,0,4,0,5,0,0,2,0,6,0,4,5,0,6,0,2,0,0,4,1,0,3,6,5,0,0,2,0,0,5,5,5,0,6,4,5,0,5,0,6,6,1,2,0,5,5,0,4,6,3,0,5,6,0,1,2,4,6,5
+2,5,0,2,1,0,5,4,2,1,6,0,2,0,5,3,0,6,1,0,4,0,5,2,0,6,0,4,0,5,0,2,1,0,0,2,0,0,5,5,4,0,5,0,1,0,6,0,2,5,0,0,2,1,0,5,5,2,3,0,5,1,5,0,2,4,0,2,4,1
+5,1,0,2,0,1,0,4,5,0,2,2,2,5,5,0,3,5,0,1,0,5,5,0,2,4,6,5,0,0,2,0,5,0,1,0,0,2,4,0,5,0,5,0,5,0,2,0,5,1,0,2,4,3,0,0,2,5,0,4,2,2,6,0,5,1,2,0,5,2
+3,1,2,0,0,5,4,2,3,1,0,5,0,4,3,2,6,1,0,0,3,0,6,2,0,1,0,0,5,4,0,0,1,0,0,6,2,0,6,1,0,3,4,0,5,0,0,1,3,0,0,2,3,4,1,0,5,0,6,2,4,0,3,1,4,0,6,5,3,2
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,1,0,0,0,3,0,0,0,5,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,2,0,0,1,0,0,5,0,3,0,1,0,3,0,6,0,2,1,0,1,1
+0,4,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,2,0,0,0,6,0,0,4,0,0,5,0,4,0,2,0,6,0,4,0,4,2,0,6,4
+0,5,0,0,0,1,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,5,0,0,2,0,0,5,0,1,0,1,0,5,0,6,0,3,4,0,2,5
+0,6,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,1,0,0,0,3,0,0,4,0,0,5,0,6,0,2,0,1,0,3,0,4,5,0,1,6
+0,3,0,0,0,5,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,3,0,0,2,0,0,6,0,5,0,1,0,5,0,1,0,6,3,0,1,5
+0,2,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,1,0,0,2,0,0,2,0,1,0,6,0,5,0,3,0,6,1,0,5,2
+3,0,3,1,6,0,0,3,0,1,5,3,2,0,1,0,3,3,5,6,1,0,3,0,0,0,1,6,3,0,5,0,1,0,0,3,6,2,0,5,0,0,3,0,0,1,1,5,5,0
+6,0,6,1,0,2,3,4,4,6,1,0,0,3,0,5,1,0,0,5,6,4,0,0,5,0,1,0,2,0,6,5,0,3,1,3,2,0,6,0,0,4,4,0,3,0,0,2,0,6
+4,5,0,4,5,2,0,0,4,2,0,1,5,0,6,0,0,4,0,0,0,4,0,2,0,5,0,0,4,0,4,5,4,2,0,6,0,3,5,4,2,0,2,0,4,2,2,4,0,4
+5,0,1,5,5,0,3,1,5,0,6,5,3,0,0,1,0,0,5,3,4,0,1,0,0,5,0,5,2,0,1,3,0,4,0,5,3,2,5,5,0,0,0,1,0,6,5,0,3,0
+5,0,4,5,6,1,0,5,0,1,1,2,0,5,6,0,3,0,2,2,5,0,3,0,0,0,5,0,6,0,2,0,5,4,0,0,0,5,2,0,4,6,5,1,0,4,2,0,5,0
+2,2,2,4,0,3,0,3,5,0,1,0,0,4,2,2,2,2,2,2,2,0,0,5,1,0,1,0,0,5,5,1,0,0,0,0,0,4,0,5,5,4,0,0,1,5,0,1,0,5
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+6,6,6,6,6,0,1,0,4,0,1,3,0,5,3,0,1,0,0,4,4,3,1,0,1,0,0,5,0,2,0,1,0,5,0,2,0,4,0,3,3,0,0,4,0,3,0,1,0,3
+1,1,0,5,0,2,3,0,0,2,0,1,1,6,0,4,0,2,0,3,0,5,2,0,3,1,1,0,0,5,0,6,3,0,2,0,0,4,0,6,3,0,5,2,0,3,0,0,1,1
+4,0,2,3,0,2,0,4,0,0,3,0,2,0,4,0,6,3,0,5,0,2,0,4,5,0,5,0,0,4,0,5,2,0,6,0,4,0,5,6,0,1,0,1,4,1,1,1,0,4
+2,3,5,0,1,3,2,0,3,0,5,0,0,3,3,2,0,5,0,5,0,0,2,0,1,0,1,0,2,1,0,0,5,5,0,1,0,4,2,0,0,1,4,0,2,0,4,0,4,5
+4,5,5,0,0,1,0,5,4,0,2,0,5,2,1,0,4,0,5,3,5,0,4,4,5,1,0,5,4,0,3,0,0,1,0,3,0,4,0,2,0,0,1,0,2,0,0,0,2,2
+5,2,1,0,4,6,5,0,6,2,2,0,4,0,5,0,3,0,5,6,4,0,0,2,0,0,0,1,0,2,0,5,3,0,2,0,0,5,0,4,6,0,3,0,0,5,4,2,0,5
+6,2,1,0,4,5,6,0,5,2,2,0,4,0,6,0,3,0,6,5,4,0,0,2,0,0,0,1,0,2,0,6,3,0,2,0,0,6,0,4,5,0,3,0,0,6,4,2,0,6
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
diff --git a/db/mob_branch.txt b/db/mob_branch.txt
new file mode 100644
index 00000000..8a24428c
--- /dev/null
+++ b/db/mob_branch.txt
@@ -0,0 +1,9 @@
+// File created using Spamrat's Athena Database Editor v1.4.4
+//
+// ŒÃ–Ø‚ÌŽ}‚Å¢Š«‚Å‚«‚郂ƒ“ƒXƒ^[‚ðÝ’è
+// MobID, MobName(Dummy), Rate
+// ƒ‚ƒ“ƒXƒ^[IDAƒ‚ƒ“ƒXƒ^[‚Ì–¼‘O(ƒ_ƒ~[)AŠm—¦(*10000)‚ð‚µ‚½•¨‚Å‚·B500000‚È‚ç50%‚Å1000000‚È‚ç100%‚Å‚·B)
+// ƒ‚ƒ“ƒXƒ^[ID‚ª0‚Ìꇊm—¦‚ðƒ‚ƒ“ƒXƒ^[‚Ì‘I‘ð‚ÉŽ¸”s‚µ‚½Žž‚É¢ŠÒ‚³‚ê‚郂ƒ“ƒXƒ^[‚ÌID‚Æ‚µ‚Ä”FŽ¯‚µ‚Ü‚·B(•¡”‚Å‚ ‚éê‡ÅŒã‚Ì•¨‚¾‚¯—LŒø‚Å‚·B)
+// ƒNƒ‰ƒCƒAƒ“ƒg‘¤‚Å–¢ŽÀ‘•‚Ì‚à‚Ì‚ð‘‚­‚ƃNƒ‰ƒCƒAƒ“ƒg‚ªd—̓Gƒ‰[
+// ‚»‚µ‚Ä‚»‚Ì“G‚ªƒLƒƒƒ‰ƒNƒ^[‚Ì•t‹ß‚É‚¢‚éŠÔƒƒOƒCƒ“‚Å‚«‚È‚¢‚Ì‚Å’ˆÓB
+//
diff --git a/db/statpoint.txt b/db/statpoint.txt
new file mode 100644
index 00000000..1b3f3d89
--- /dev/null
+++ b/db/statpoint.txt
@@ -0,0 +1,255 @@
+48
+51
+54
+57
+60
+64
+68
+72
+76
+80
+85
+90
+95
+100
+105
+111
+117
+123
+129
+135
+142
+149
+156
+163
+170
+178
+186
+194
+202
+210
+219
+228
+237
+246
+255
+265
+275
+285
+295
+305
+316
+327
+338
+349
+360
+372
+384
+396
+408
+420
+433
+446
+459
+472
+485
+499
+513
+527
+541
+555
+570
+585
+600
+615
+630
+646
+662
+678
+694
+710
+727
+744
+761
+778
+795
+813
+831
+849
+867
+885
+904
+923
+942
+961
+980
+1000
+1020
+1040
+1060
+1080
+1101
+1122
+1143
+1164
+1185
+1207
+1229
+1251
+1273
+1295
+1318
+1341
+1364
+1387
+1410
+1434
+1458
+1482
+1506
+1530
+1555
+1580
+1605
+1630
+1655
+1681
+1707
+1733
+1759
+1785
+1812
+1839
+1866
+1893
+1920
+1948
+1976
+2004
+2032
+2060
+2089
+2118
+2147
+2176
+2205
+2235
+2265
+2295
+2325
+2355
+2386
+2417
+2448
+2479
+2510
+2542
+2574
+2606
+2638
+2670
+2703
+2736
+2769
+2802
+2835
+2869
+2903
+2937
+2971
+3005
+3040
+3075
+3110
+3145
+3180
+3216
+3252
+3288
+3324
+3360
+3397
+3434
+3471
+3508
+3545
+3583
+3621
+3659
+3697
+3735
+3774
+3813
+3852
+3891
+3930
+3970
+4010
+4050
+4090
+4130
+4171
+4212
+4253
+4294
+4335
+4377
+4419
+4461
+4503
+4545
+4588
+4631
+4674
+4717
+4760
+4804
+4848
+4892
+4936
+4980
+5025
+5070
+5115
+5160
+5205
+5251
+5297
+5343
+5389
+5435
+5482
+5529
+5576
+5623
+5670
+5718
+5766
+5814
+5862
+5910
+5959
+6008
+6057
+6106
+6155
+6205
+6255
+6305
+6355
+6405
+6456
+6507
+6558
+6609
+6660
+6712
+6764
+6816
+6868
+6920
+6973
+7026
+7079
+7132
+7185
diff --git a/npc/cave-small/hermit.txt b/npc/cave-small/hermit.txt
new file mode 100644
index 00000000..671c2eea
--- /dev/null
+++ b/npc/cave-small/hermit.txt
@@ -0,0 +1,14 @@
+new_4-1.gat,30,30,0 script Hermit 116,{
+ mes "[Hermit]";
+ mes "Do you want to go back outside?";
+ next;
+ menu
+ "Yes please",yes,
+ "Not yet",notyet;
+yes:
+ warp "new_9-1.gat",60,95;
+ close;
+notyet:
+ close;
+
+} \ No newline at end of file
diff --git a/npc/cave-small/monsters.txt b/npc/cave-small/monsters.txt
new file mode 100644
index 00000000..feeb5ea9
--- /dev/null
+++ b/npc/cave-small/monsters.txt
@@ -0,0 +1 @@
+new_4-1.gat,0,0,0,0 monster Bat 1017,20,0,0,0 \ No newline at end of file
diff --git a/npc/cave1/miners.txt b/npc/cave1/miners.txt
new file mode 100644
index 00000000..0e6ed68d
--- /dev/null
+++ b/npc/cave1/miners.txt
@@ -0,0 +1,41 @@
+new_2-1.gat,35,35,6 script Miner 109,{
+ mes "[Miner]";
+ mes "It's very dangerous in here";
+ mes "Be careful";
+ close;
+}
+
+new_1-1.gat,19,99,0 shop CaveShop 109,525:800,531:3000,530:8000,1199:2
+
+new_5-1.gat,32,94,6 script Lift 109,{
+ mes "[Miner]";
+ mes "Do you want me to lift you to the upper level?";
+ next;
+ menu
+ "Sure",sure,
+ "Not yet!",notyet;
+
+sure:
+ warp "new_2-1.gat",87,99;
+ close;
+
+notyet:
+ close;
+}
+
+new_2-1.gat,85,97,6 script LiftDown 109,{
+ mes "[Miner]";
+ mes "We discovered an underground palace";
+ mes "Do you want me to let you in?";
+ next;
+ menu
+ "Sure",sure,
+ "Not yet!",notyet;
+
+sure:
+ warp "new_5-1.gat",34,92;
+ close;
+
+notyet:
+ close;
+}
diff --git a/npc/cave1/monsters.txt b/npc/cave1/monsters.txt
new file mode 100644
index 00000000..302bfb1b
--- /dev/null
+++ b/npc/cave1/monsters.txt
@@ -0,0 +1,26 @@
+// Map: new_2-1
+// This is the cave below Tulimshar entrance -- lv1
+//
+// ALWAYS keep a backup file before edit (experience :)
+// The last param is the Event on Mobdeath
+//
+
+new_2-1.gat,0,0,0,0 monster RedSlime 1008,30,2500,0,ConquestMob2::OnRedSlime
+new_2-1.gat,0,0,0,0 monster ScorpionB 1009,15,2500,0,ConquestMob2::OnScorpB
+
+
+new_2-1.gat,0,0,0 script ConquestMob2 -1,{
+// id 1008 = Red Slime
+OnRedSlime:
+ if (MPQUEST == 1) set Mobpt,Mobpt+18;
+ break;
+
+// id 1009 == Black Scorpion
+OnScorpB:
+ if (MPQUEST == 1) set Mobpt,Mobpt+45;
+ break;
+end;
+}
+
+
+
diff --git a/npc/cave1/passages.txt b/npc/cave1/passages.txt
new file mode 100644
index 00000000..ec363db0
--- /dev/null
+++ b/npc/cave1/passages.txt
@@ -0,0 +1,4 @@
+new_2-1.gat,36,30 warp caveexit 3,0,new_1-1.gat,25,95
+new_1-1.gat,19,94 warp caveentrance 1,1,new_2-1.gat,37,31
+new_1-1.gat,111,79 warp eastdesert 2,2,new_7-1.gat,23,40
+new_7-1.gat,18,39 warp westdesert 3,4,new_1-1.gat,106,78 \ No newline at end of file
diff --git a/npc/cave2/chest.txt b/npc/cave2/chest.txt
new file mode 100644
index 00000000..4da805f2
--- /dev/null
+++ b/npc/cave2/chest.txt
@@ -0,0 +1,28 @@
+new_5-1.gat,93,37,0 script Treasure 111,{
+ if( ChestQuest == 1) goto done;
+ mes "[Chest]";
+ mes "Would you try to open it?";
+ next;
+ menu "Yup",L_1,"Nope",L_2;
+
+L_1:
+ if(countitem(537)<3)goto L_3;
+ delitem 537,3;
+ getitem 536,1;
+ mes "[Chest]";
+ mes "You opened it and found a short sword!";
+ set ChestQuest,1;
+ close;
+
+L_2:
+ close;
+
+L_3:
+ mes "It seems that this is not the right key...";
+ close;
+ done:
+ mes "[Chest]";
+ mes "You already opened this chest.";
+ close;
+
+}
diff --git a/npc/cave2/monsters.txt b/npc/cave2/monsters.txt
new file mode 100644
index 00000000..c1d5e28b
--- /dev/null
+++ b/npc/cave2/monsters.txt
@@ -0,0 +1,25 @@
+// Map: new_5-1
+// This is the cave below Tulimshar second level aka "Underground Palace"
+//
+// ALWAYS keep a backup file before edit (experience :)
+// The last param is the Event on Mobdeath
+//
+
+new_5-1.gat,0,0,0,0 monster Spider 1012,10,2500,0,ConquestMob5::OnSpider
+new_5-1.gat,0,0,0,0 monster SlimeY 1007,25,2500,0,ConquestMob5::OnSlimeY
+
+new_5-1.gat,0,0,0 script ConquestMob5 -1,{
+// id 1012 = Spider
+OnSpider:
+ if (MPQUEST == 1) set Mobpt,Mobpt+56;
+ break;
+
+// id 1007 == Yellow Slime
+OnSlimeY:
+ if (MPQUEST == 1) set Mobpt,Mobpt+9;
+ break;
+end;
+}
+
+
+
diff --git a/npc/cave2/passages.txt b/npc/cave2/passages.txt
new file mode 100644
index 00000000..ec363db0
--- /dev/null
+++ b/npc/cave2/passages.txt
@@ -0,0 +1,4 @@
+new_2-1.gat,36,30 warp caveexit 3,0,new_1-1.gat,25,95
+new_1-1.gat,19,94 warp caveentrance 1,1,new_2-1.gat,37,31
+new_1-1.gat,111,79 warp eastdesert 2,2,new_7-1.gat,23,40
+new_7-1.gat,18,39 warp westdesert 3,4,new_1-1.gat,106,78 \ No newline at end of file
diff --git a/npc/eastern-desert/monsters.txt b/npc/eastern-desert/monsters.txt
new file mode 100644
index 00000000..54999fd9
--- /dev/null
+++ b/npc/eastern-desert/monsters.txt
@@ -0,0 +1,2 @@
+new_7-1.gat,0,0,0,0 monster Maggot 1002,20,0,0,0
+new_7-1.gat,0,0,0,0 monster Snake 1010,20,0,0,0 \ No newline at end of file
diff --git a/npc/eastern-desert/passages.txt b/npc/eastern-desert/passages.txt
new file mode 100644
index 00000000..ec363db0
--- /dev/null
+++ b/npc/eastern-desert/passages.txt
@@ -0,0 +1,4 @@
+new_2-1.gat,36,30 warp caveexit 3,0,new_1-1.gat,25,95
+new_1-1.gat,19,94 warp caveentrance 1,1,new_2-1.gat,37,31
+new_1-1.gat,111,79 warp eastdesert 2,2,new_7-1.gat,23,40
+new_7-1.gat,18,39 warp westdesert 3,4,new_1-1.gat,106,78 \ No newline at end of file
diff --git a/npc/tulimshar-casino/casino.txt b/npc/tulimshar-casino/casino.txt
new file mode 100644
index 00000000..dae9324f
--- /dev/null
+++ b/npc/tulimshar-casino/casino.txt
@@ -0,0 +1,360 @@
+// Warps room 1
+new_8-1.gat,45,24 warp upstairs 0,2,new_8-1.gat,65,25
+new_8-1.gat,25,36 warp outside 0,2,new_3-1.gat,33,73
+new_3-1.gat,32,72 warp inside 1,0,new_8-1.gat,25,34
+// Warps room 2
+new_8-1.gat,65,25 warp downstairs 0,1,new_8-1.gat,42,25
+new_8-1.gat,68,22 warp tocasino 2,0,new_8-1.gat,32,72
+new_8-1.gat,67,31 warp tobedroom1 1,1,new_8-1.gat,102,23
+new_8-1.gat,76,31 warp tobedroom2 1,1,new_8-1.gat,130,23
+// Warps room 3
+new_8-1.gat,102,22 warp bedroom1tohall 2,0,new_8-1.gat,67,29
+// Warps room 4
+new_8-1.gat,130,22 warp bedroom2tohall 2,0,new_8-1.gat,76,29
+// Warps room 5
+new_8-1.gat,32,74 warp tohall 1,0,new_8-1.gat,68,23
+
+new_8-1.gat,26,26,0 shop InnKeeper 112,539:175,513:20,519
+
+new_8-1.gat,103,26,0 script Waitress 118,{
+ mes "[Rebecca]";
+ mes "Would you like to rest? It's only 100 gp.";
+ next;
+
+ menu "Yes",-,"No",L_No;
+ mes "Sleep well!";
+ next;
+
+ if (zeny < 100) goto L_NoMoney;
+ set zeny,zeny-100;
+ heal 10000,10000;
+ close;
+
+L_No:
+ mes "See you.";
+ close;
+
+L_NoMoney:
+ mes "Hey! You don't have enough money!";
+ close;
+}
+
+new_8-1.gat,134,23,0 script Worker 117,{
+ mes "[Valdo]";
+ mes "Please let me work, I'm really in a hurry!";
+ close;
+}
+
+new_8-1.gat,37,65,0 script Slot1 127,{
+ mes "Pull the lever...";
+ next;
+
+ if(countitem(503) < 1) goto L_NoCoin;
+ delitem 503,1;
+ set @Temp1,rand(7);
+ set @Temp2,rand(7);
+ set @Temp3,rand(7);
+ mes "Numbers: "+ @Temp1 +"/"+ @Temp2 +"/"+ @Temp3 +"";
+ next;
+
+ if(@Temp1 != @Temp2) goto L_Lost;
+ if(@Temp2 != @Temp3) goto L_Lost;
+ if(@Temp1 != @Temp3) goto L_Lost;
+ mes "Congratulations! You won!";
+ mes "You get 10 casino coins";
+ getitem 503,10;
+ close;
+
+L_Lost:
+ mes "You lost!";
+ close;
+
+L_NoCoin:
+ mes "Insert coin";
+ close;
+}
+
+new_8-1.gat,39,65,0 script Slot2 127,{
+ mes "Pull the lever...";
+ next;
+
+ if(countitem(503) < 1) goto L_NoCoin;
+ delitem 503,1;
+ set @Temp1,rand(7);
+ set @Temp2,rand(7);
+ set @Temp3,rand(7);
+ mes "Numbers: "+ @Temp1 +"/"+ @Temp2 +"/"+ @Temp3 +"";
+ next;
+
+ if(@Temp1 != @Temp2) goto L_Lost;
+ if(@Temp2 != @Temp3) goto L_Lost;
+ if(@Temp1 != @Temp3) goto L_Lost;
+ mes "Congratulations! You won!";
+ mes "You get 10 casino coins";
+ getitem 503,10;
+ close;
+
+L_Lost:
+ mes "You lost!";
+ close;
+
+L_NoCoin:
+ mes "Insert coin";
+ close;
+}
+
+new_8-1.gat,41,65,0 script Slot3 127,{
+ mes "Pull the lever...";
+ next;
+
+ if(countitem(503) < 1) goto L_NoCoin;
+ delitem 503,1;
+ set @Temp1,rand(7);
+ set @Temp2,rand(7);
+ set @Temp3,rand(7);
+ mes "Numbers: "+ @Temp1 +"/"+ @Temp2 +"/"+ @Temp3 +"";
+ next;
+
+ if(@Temp1 != @Temp2) goto L_Lost;
+ if(@Temp2 != @Temp3) goto L_Lost;
+ if(@Temp1 != @Temp3) goto L_Lost;
+ mes "Congratulations! You won!";
+ mes "You get 10 casino coins";
+ getitem 503,10;
+ close;
+
+L_Lost:
+ mes "You lost!";
+ close;
+
+L_NoCoin:
+ mes "Insert coin";
+ close;
+}
+
+new_8-1.gat,32,67,0 shop MoneyChanger 124,503:10
+
+new_8-1.gat,28,63,0 script BlackJack 107,{
+ mes "[Croupier]";
+ mes "Would you like to play Black Jack?";
+ mes "You will need 15 casino coins";
+ next;
+
+ menu "Yes",-,"No",L_No;
+ if(countitem(503) < 15) goto L_NoCoin;
+ delitem 503,15;
+ set @croupier,rand(0, 4);
+ set @croupier,@croupier + 17;
+ set @player,rand(4, 20);
+ mes "You got " + @player + " with your cards.";
+ mes "Do you want another card?";
+ next;
+
+ menu "Yes",L_Another,"No",L_End;
+
+L_Another:
+ set @player,@player+rand(2, 11);
+ if (@player > 21) goto L_Lost;
+ mes "You got " + @player + " with your cards.";
+ mes "Do you want another card?";
+ next;
+
+ menu "Yes",L_Another,"No",L_End;
+L_End:
+ if (@player < @croupier) goto L_Lost;
+ mes "Congratulations, you won!";
+ mes "I had " + @croupier + "";
+ mes "You get 50 casino coins";
+ getitem 503,50;
+ close;
+
+L_No:
+ mes "As you wish";
+ close;
+
+L_NoCoin:
+ mes "You need at least 15 coins";
+ close;
+
+L_Lost:
+ mes "I'm sorry but you lost";
+ mes "You got " + @player + " with your cards.";
+ mes "I had " + @croupier + "";
+ close;
+}
+
+new_8-1.gat,22,69,0 script Roulette 107,{
+ mes "Good evening monsieur...";
+ mes "How much would you like to bet?";
+ next;
+
+ menu "Maybe I'll play later",L_Later,"1 coin",-,"5 coins",L_b5,"10 coins",L_b10,"50 coins",L_b50,"100 coins",L_b100;
+ set @bet,1;
+ goto L_Check;
+L_b5:
+ set @bet,5;
+ goto L_Check;
+L_b10:
+ set @bet,10;
+ goto L_Check;
+L_b50:
+ set @bet,50;
+ goto L_Check;
+L_b100:
+ set @bet,100;
+ goto L_Check;
+
+L_Check:
+ if(countitem(503) < @bet) goto L_NoCoin;
+ delitem 503,@bet;
+ menu "Choose a color",-,"Choose a number",L_Number;
+ menu "Black",-,"Red",-;
+ set @color,rand(2);
+ if(@color == 1) goto L_Lost;
+ mes "You won!";
+ getitem 503,@bet * 2;
+ close;
+
+L_Number:
+ menu "0",-,"00",L00,"1",L1,"2",L2,"3",L3,"4",L4,"5",L5,"6",L6,"7",L7,
+ "8",L8,"9",L9,"10",L10,"11",L11,"12",L12,"13",L13,"14",L14,"15",L15,
+ "16",L16,"17",L17,"18",L18,"19",L19,"20",L20,"21",L21,"22",L22,
+ "23",L23,"24",L24,"25",L25,"26",L26,"27",L27,"28",L28,"29",L29,
+ "30",L30,"31",L31,"32",L32,"33",L33,"34",L34,"35",L35,"36",L36;
+ set @number,0;
+ goto L_CheckNumber;
+L00:
+ set @number,37;
+ goto L_CheckNumber;
+L1:
+ set @number,1;
+ goto L_CheckNumber;
+L2:
+ set @number,2;
+ goto L_CheckNumber;
+L3:
+ set @number,3;
+ goto L_CheckNumber;
+L4:
+ set @number,4;
+ goto L_CheckNumber;
+L5:
+ set @number,5;
+ goto L_CheckNumber;
+L6:
+ set @number,6;
+ goto L_CheckNumber;
+L7:
+ set @number,7;
+ goto L_CheckNumber;
+L8:
+ set @number,8;
+ goto L_CheckNumber;
+L9:
+ set @number,9;
+ goto L_CheckNumber;
+L10:
+ set @number,10;
+ goto L_CheckNumber;
+L11:
+ set @number,11;
+ goto L_CheckNumber;
+L12:
+ set @number,12;
+ goto L_CheckNumber;
+L13:
+ set @number,13;
+ goto L_CheckNumber;
+L14:
+ set @number,14;
+ goto L_CheckNumber;
+L15:
+ set @number,15;
+ goto L_CheckNumber;
+L16:
+ set @number,16;
+ goto L_CheckNumber;
+L17:
+ set @number,17;
+ goto L_CheckNumber;
+L18:
+ set @number,18;
+ goto L_CheckNumber;
+L19:
+ set @number,19;
+ goto L_CheckNumber;
+L20:
+ set @number,20;
+ goto L_CheckNumber;
+L21:
+ set @number,21;
+ goto L_CheckNumber;
+L22:
+ set @number,22;
+ goto L_CheckNumber;
+L23:
+ set @number,23;
+ goto L_CheckNumber;
+L24:
+ set @number,24;
+ goto L_CheckNumber;
+L25:
+ set @number,25;
+ goto L_CheckNumber;
+L26:
+ set @number,26;
+ goto L_CheckNumber;
+L27:
+ set @number,27;
+ goto L_CheckNumber;
+L28:
+ set @number,28;
+ goto L_CheckNumber;
+L29:
+ set @number,29;
+ goto L_CheckNumber;
+L30:
+ set @number,30;
+ goto L_CheckNumber;
+L31:
+ set @number,31;
+ goto L_CheckNumber;
+L32:
+ set @number,32;
+ goto L_CheckNumber;
+L33:
+ set @number,33;
+ goto L_CheckNumber;
+L34:
+ set @number,34;
+ goto L_CheckNumber;
+L35:
+ set @number,35;
+ goto L_CheckNumber;
+L36:
+ set @number,36;
+ goto L_CheckNumber;
+
+L_CheckNumber:
+ set @roulette,rand(38);
+ if (@roulette == 37) mes "We got a 00";
+ if (@roulette < 37) mes "We got a " + @roulette;
+ if (@number != @roulette) goto L_Lost;
+ mes "You won!";
+ getitem 503,@bet * 10;
+ close;
+
+L_Later:
+ mes "Rien ne va plus...";
+ close;
+
+L_NoCoin:
+ mes "You don't have enough coins";
+ close;
+
+L_Lost:
+ mes "I'm sorry, you lost";
+ close;
+}
+
+
diff --git a/npc/tulimshar/banker.txt b/npc/tulimshar/banker.txt
new file mode 100644
index 00000000..7cd4a2b3
--- /dev/null
+++ b/npc/tulimshar/banker.txt
@@ -0,0 +1 @@
+new_3-1.gat,27,73,0 script Banker 107,{mes "[Banker]";mes "Welcome to the bank!";mes "How can I help you?";next;menu "Deposite",L_Dep,"Withdraw",L_With,"Nevermind that",L_Nev;L_Dep: mes "Sorry, but we're still moving inventory!"; close;L_With: mes "Sorry, but we're still moving inventory!"; close;L_Nev: mes "Goodbye then"; close;} \ No newline at end of file
diff --git a/npc/tulimshar/elanore.txt b/npc/tulimshar/elanore.txt
new file mode 100644
index 00000000..6348dd6c
--- /dev/null
+++ b/npc/tulimshar/elanore.txt
@@ -0,0 +1,132 @@
+//Heal NPC costs 100 money
+
+new_3-1.gat,40,66,0 script Elanore 108,{
+
+ if (baselevel > 10) goto L_NoHeal;
+
+ set @TEMP,rand(3);
+
+ if(@TEMP == 0) goto Heal1;
+
+ if(@TEMP == 1) goto Heal2;
+
+ if(@TEMP == 2) goto Heal3;
+
+ if(@TEMP == 3) goto Heal4;
+
+Heal1:
+
+ mes "[Elanore]";
+
+ mes "You don't look too well, let me treat your wounds.";
+
+ next;
+
+ goto Heal_L;
+
+
+
+Heal2:
+
+ mes "[Elanore]";
+
+ mes "I will make quick work of your wounds.";
+
+ next;
+
+ goto Heal_L;
+
+
+
+Heal3:
+
+ mes "[Elanore]";
+
+ mes "Need a healing?.";
+
+ next;
+
+ goto Heal_L;
+
+
+
+Heal4:
+
+ mes "[Elanore]";
+
+ mes "Sometimes you just need to run from battle.";
+
+ next;
+
+ goto Heal_L;
+
+
+
+Heal_L:
+
+ if(@TEMP == 0) goto Heal_1;
+
+ if(@TEMP == 1) goto Heal_2;
+
+ if(@TEMP == 2) goto Heal_3;
+
+ if(@TEMP == 3) goto Heal_4;
+
+Heal_1:
+
+ mes "[Elanore]";
+
+ mes "Here you go!";
+
+ heal 10000,10000;
+
+ close;
+
+
+
+Heal_2:
+
+ mes "[Elanore]";
+
+ mes "Painless wasnt it?";
+
+ mes "Here you go!";
+
+ heal 10000,10000;
+
+ close;
+
+Heal_3:
+
+ mes "[Elanore]";
+
+ mes "You should be more careful.";
+
+ heal 10000,10000;
+
+ close;
+
+Heal_4:
+
+ mes "[Elanore]";
+
+ mes "Much better right?!";
+
+ heal 10000,10000;
+
+ close;
+
+L_NoHeal:
+
+ mes "[Elanore]";
+
+ mes "I'm sorry but I'm here only to help young people.";
+
+ mes "Your level is already higher than 10.";
+
+ mes "You can get some rest in the inn near here.";
+
+ close;
+
+}
+
diff --git a/npc/tulimshar/guide.txt b/npc/tulimshar/guide.txt
new file mode 100644
index 00000000..33f380ad
--- /dev/null
+++ b/npc/tulimshar/guide.txt
@@ -0,0 +1,87 @@
+new_3-1.gat,33,30,0 script Guide 102,{
+ mes "[Guide]";
+ mes "Would you like to know about something?";
+ next;
+ menua:
+ menu "Fighting",L_Fight,"Items",L_Items,"Monsters",L_Monster,"Stylist",L_Style,"Quests",L_Quests,"NPCs",L_NPC,"Commands",L_Comm,"Quick Keys",L_Key,"I know everything!",L_Know;
+L_Fight:
+ mes "[Guide]";
+ mes "People live in this world by living off of monsters";
+ mes "You can fight monsters and even players by hitting the [CTRL] key, or left mouse click.";
+ next;
+ mes "[Guide]";
+ mes "If you get tired of pressing the key too much, you can also type shift+ctrl";
+ mes "This will make your character attack continuously for the time you are inactive.";
+ next;
+ goto menua;
+L_Items:
+ mes "[Guide]";
+ mes "There are three types of items.";
+ mes "They can be Consumables, Equipment, or Miscellaneous";
+ next;
+ mes "[Guide]";
+ mes "Consumable items such as Potions, can be used only once";
+ mes "after use, they will dissapear from your inventory.";
+ next;
+ mes "[Guide]";
+ mes "Equipment items like Armors, Weapons, Accessories";
+ mes "can be equipped for fashionable purposes or to raise your status";
+ next;
+ mes "[Guide]";
+ mes "Miscellaneous items such as maggot slime, are used";
+ mes "in creating other items, or just to trade and sell.";
+ next;
+ goto menua;
+L_Monster:
+ mes "[Guide]";
+ mes "In every world, there are beasts. Monsters can be found almost anywhere!~";
+ mes "To fight them, please read [Fighting] if you do not know how";
+ next;
+ mes "There a several types of monsters, Aggressive, Neutral, Assistants";
+ next;
+ mes "[Guide]";
+ mes "Agressive monsters know that they are always in danger";
+ mes "so therefore they always keep their guard up";
+ mes "Making them attack anybody in sight";
+ next;
+ mes "[Guide]";
+ mes "Neutral monsters tend to just lounge around until attacked";
+ mes "They will leave everything alone unless they are threatened";
+ next;
+ mes "[Guide]";
+ mes "Assistants are monsters who help eachother, there havent been any yet";
+ mes "But there soon will be, These monsters attack in groups if they are threatened";
+ next;
+ goto menua;
+L_Style:
+ mes "[Guide]";
+ mes "The stylist NPC will cut and perm your hair!";
+ mes "they are known for their hair growth formula";
+ next;
+ goto menua;
+L_Quests:
+ mes "[Guide]";
+ mes "There are people in the world in need of help!";
+ mes "Most of these people aren't afraid to give rewards to those who help them";
+ mes "So be nice and help people along the way!";
+ next;
+ goto menua;
+L_NPC:
+ mes "[Guide]";
+ mes "NPC[Non Playable Characters] are people who are always in the game";
+ mes "Tending to many variatys of services from just chatting to helping others.";
+ next;
+ goto menua;
+L_Comm:
+ mes "[Guide]";
+ mes "There are no /Commands available currently";
+ next;
+ goto menua;
+L_Key:
+ mes "[Guide]";
+ mes "There are many key combinations, press F1 for a short list of them!";
+ next;
+ goto menua;
+L_Know:
+ close;
+}
diff --git a/npc/tulimshar/man.txt b/npc/tulimshar/man.txt
new file mode 100644
index 00000000..6fb28fb4
--- /dev/null
+++ b/npc/tulimshar/man.txt
@@ -0,0 +1,18 @@
+new_3-1.gat,114,43,0 script Guard 102,{
+ mes "[Man]";
+ mes "Ouch! It hurts, this wound I got from battle.";
+ next;
+ menu "Tell me about it",L_Exp,"Nevermind",L_Nev;
+
+L_Exp:
+ mes "I was fighting scorpions for experience and I bumped into a RED one. I had NEVER seen it before!";
+ next;
+ mes "Luckily i had a camera with me! Here's a picture of it... Let me find it, I put it in my pocket somewhere...";
+ next;
+ mes "Oh man! My pockets have been ripped clean off!";
+ close;
+
+L_Nev:
+ mes "Hmpf!";
+ close;
+}
diff --git a/npc/tulimshar/merchant.txt b/npc/tulimshar/merchant.txt
new file mode 100644
index 00000000..75070c7d
--- /dev/null
+++ b/npc/tulimshar/merchant.txt
@@ -0,0 +1 @@
+new_3-1.gat,54,45,0 shop Neko 101,501:50,502:60,1201:100,1202:1000,522:300,521:1000,523:8000
diff --git a/npc/tulimshar/passages.txt b/npc/tulimshar/passages.txt
new file mode 100644
index 00000000..afecf42e
--- /dev/null
+++ b/npc/tulimshar/passages.txt
@@ -0,0 +1,2 @@
+new_1-1.gat,56,12 warp totown 5,1,new_3-1.gat,44,80
+new_3-1.gat,42,88 warp tofield 5,2,new_1-1.gat,58,17
diff --git a/npc/tulimshar/rewards_master.txt b/npc/tulimshar/rewards_master.txt
new file mode 100644
index 00000000..7f0c07e0
--- /dev/null
+++ b/npc/tulimshar/rewards_master.txt
@@ -0,0 +1,185 @@
+new_3-1.gat,55,51,0 script Rewards 106,{
+ if (MPQUEST == 0) goto Register;
+
+ mes "[Rewards Master]";
+ mes "Welcome! Would you like to exchange some points for items?";
+ next;
+ menu "Yes",Y1,"No Thanks",LEAVE;
+ next;
+
+Register:
+ mes "[Rewards Master]";
+ mes "Hey, it seems like you didn't register as a quest participant yet! You can sign up at the gate below.";
+ close;
+
+Y1:
+ mes "[Rewards Master]";
+ mes "Ok lets check those points.";
+ if (tvis == 0) set tvis,1;
+ if (Mobpt < tvis) goto NotEnough;
+ set Mobpt,Mobpt-tvis;
+ set tvis,tvis+1;
+ next;
+ set @TEMP,rand(1);
+ if(@TEMP ==0) goto R_1;
+ if(@TEMP ==1) goto R_2;
+R_1:
+ set @TEMP,rand(19);
+ if(@TEMP ==0) goto R1_1;
+ if(@TEMP ==1) goto R1_2;
+ if(@TEMP ==2) goto R1_3;
+ if(@TEMP ==3) goto R1_4;
+ if(@TEMP ==4) goto R1_5;
+ if(@TEMP ==5) goto R1_6;
+ if(@TEMP ==6) goto R1_7;
+ if(@TEMP ==7) goto R1_8;
+ if(@TEMP ==8) goto R1_9;
+ if(@TEMP ==9) goto R1_10;
+ if(@TEMP ==10) goto R1_11;
+ if(@TEMP ==11) goto R1_12;
+ if(@TEMP ==12) goto R1_13;
+ if(@TEMP ==13) goto R1_14;
+ if(@TEMP ==14) goto R1_15;
+ if(@TEMP ==15) goto R1_16;
+ if(@TEMP ==16) goto R1_17;
+ if(@TEMP ==17) goto R1_18;
+ if(@TEMP ==18) goto R1_19;
+ if(@TEMP ==19) goto R1_20;
+
+R1_1:
+ mes "[Rewards Master]";
+ mes "You got Cactus Drink.";
+ getitem 501,1;
+ goto Q;
+R1_2:
+ mes "[Rewards Master]";
+ mes "You got Cactus Potion.";
+ getitem 502,1;
+ goto Q;
+R1_3:
+ mes "[Rewards Master]";
+ mes "You got Casino Coins.";
+ getitem 503,1;
+ goto Q;
+R1_4:
+ mes "[Rewards Master]";
+ mes "You got Decor Candy Cane.";
+ getitem 504,1;
+ goto Q;
+R1_5:
+ mes "[Rewards Master]";
+ mes "You got Maggot Slime.";
+ getitem 505,1;
+ goto Q;
+R1_6:
+ mes "[Rewards Master]";
+ mes "You got Candy Cane.";
+ getitem 506,1;
+ goto Q;
+R1_7:
+ mes "[Rewards Master]";
+ mes "You got Scorpion Stinger.";
+ getitem 507,1;
+ goto Q;
+R1_8:
+ mes "[Rewards Master]";
+ mes "You got Xmas Cake.";
+ getitem 508,1;
+ goto Q;
+R1_9:
+ mes "[Rewards Master]";
+ mes "You got Chocolate Bar.";
+ getitem 509,1;
+ goto Q;
+R1_10:
+ mes "[Rewards Master]";
+ mes "You got Candy.";
+ getitem 510,1;
+ goto Q;
+R1_11:
+ mes "[Rewards Master]";
+ mes "You got Santa Hat.";
+ getitem 511,1;
+ goto Q;
+R1_12:
+ mes "[Rewards Master]";
+ mes "You got Ginger Bread Man.";
+ getitem 512,1;
+ goto Q;
+R1_13:
+ mes "[Rewards Master]";
+ mes "You got Cake.";
+ getitem 513,1;
+ goto Q;
+R1_14:
+ mes "[Rewards Master]";
+ mes "You got Candy Cane.";
+ getitem 514,1;
+ goto Q;
+R1_15:
+ mes "[Rewards Master]";
+ mes "You got Purple Present.";
+ getitem 515,1;
+ goto Q;
+R1_16:
+ mes "[Rewards Master]";
+ mes "You got Blue Present.";
+ getitem 516,1;
+ goto Q;
+R1_17:
+ mes "[Rewards Master]";
+ mes "You got Red Scorpion Stinger.";
+ getitem 517,1;
+ goto Q;
+R1_18:
+ mes "[Rewards Master]";
+ mes "You got Bug Leg.";
+ getitem 518,1;
+ goto Q;
+R1_19:
+ mes "[Rewards Master]";
+ mes "You got Cherry Cake.";
+ getitem 519,1;
+ goto Q;
+R1_20:
+ mes "[Rewards Master]";
+ mes "You got Easter Egg.";
+ getitem 520,1;
+ goto Q;
+
+R_2:
+ set @TEMP,rand(3);
+ if(@TEMP ==0) goto R2_1;
+ if(@TEMP ==1) goto R2_2;
+ if(@TEMP ==2) goto R2_3;
+ if(@TEMP ==3) goto R2_4;
+
+R2_1:
+ mes "[Rewards Master]";
+ mes "You got an Arrow.";
+ getitem 1199,1;
+ goto Q;
+R2_2:
+ mes "[Rewards Master]";
+ mes "You got a Bow.";
+ getitem 1200,1;
+ goto Q;
+R2_3:
+ mes "[Rewards Master]";
+ mes "You got a Knife.";
+ getitem 1201,1;
+ goto Q;
+R2_4:
+ mes "[Rewards Master]";
+ mes "You got an Cotton Shirt.";
+ getitem 1202,1;
+ goto Q;
+
+NotEnough:
+ next;
+ mes "[Rewards Master]";
+ mes "Kill some more monsters first.";
+ close;
+LEAVE:
+ close;
+}
diff --git a/npc/tulimshar/sandra.txt b/npc/tulimshar/sandra.txt
new file mode 100644
index 00000000..6a19ffa7
--- /dev/null
+++ b/npc/tulimshar/sandra.txt
@@ -0,0 +1,81 @@
+new_3-1.gat,72,61,0 script Sandra 114,{
+ if(Scorp == 2) goto done;
+ if(Scorp == 1) goto reas;
+ set @TEMP,rand(3);
+ if(@TEMP == 1) goto L_1;
+ if(@TEMP == 2) goto L_2;
+ if(@TEMP == 3) goto L_3;
+ if(@TEMP == 0) goto L_4;
+L_1:
+ mes "[Sandra]";
+ mes "In the outskirts of Tulimshar, there wanders a red scorpion. I need a favor, please help me.";
+ next;
+ goto red;
+L_2:
+ mes "[Sandra]";
+ mes "When you venture in the outskirts of Tulimshar, you can spot a red scorpion. Will you help me kill one?";
+ next;
+ goto red;
+L_3:
+ mes "[Sandra]";
+ mes "The red scorpion stinger carries many properties used in potions.";
+ next;
+ goto red;
+L_4:
+ mes "[Sandra]";
+ mes "You look sturdy enough, will you help me get something?";
+ next;
+ goto red;
+red:
+ menu "Yes",L_kl,"No",L_N;
+L_kl:
+ if(@TEMP == 1) goto K_1;
+ if(@TEMP == 2) goto K_2;
+ if(@TEMP == 3) goto K_3;
+ if(@TEMP == 0) goto K_1;
+K_1:
+ mes "[Sandra]";
+ mes "I need you to slaughter the red scorpion found outside of Tulimshar and bring me 5 [Red Stingers]";
+ next;
+ goto set1;
+K_2:
+ mes "[Sandra]";
+ mes "I heard a while ago that the stinger of a red scorpion can be used for medical purposes. I need you to help me get 5 [Red Stingers]";
+ next;
+ goto set1;
+K_3:
+ mes "[Sandra]";
+ mes "Bring me 5 [Red Stingers] and i will reward you greatly";
+ next;
+ goto set1;
+set1:
+ set Scorp,1;
+ mes "[Sandra]";
+ mes "Please bring me them!";
+ close;
+reas:
+ if(countitem(517) >= 5) goto have;
+ mes "[Sandra]";
+ mes "Please hurry and bring me 5 [Red Stingers]";
+ close;
+have:
+ mes "[Sandra]";
+ mes "Excelent!";
+ mes "You brought me 5 [Red Stingers]!";
+ delitem 517,5;
+ next;
+ mes "[Sandra]";
+ mes "Here you go, your reward!";
+ mes "+Got Bow";
+ mes "+Got Arrows 100";
+ getitem 1200,1;
+ getitem 1199,100;
+ set Scorp,2;
+ close;
+done:
+ mes "[Sandra]";
+ mes "Thank you for all your help!";
+ close;
+L_N:
+ close;
+}
diff --git a/npc/tulimshar/vincent.txt b/npc/tulimshar/vincent.txt
new file mode 100644
index 00000000..c485db32
--- /dev/null
+++ b/npc/tulimshar/vincent.txt
@@ -0,0 +1,90 @@
+new_3-1.gat,137,34,0 script Vincent 113,{
+ if(Bugleg == 1) goto reas;
+ if(Bugleg == 2) goto done;
+ set @TEMP,rand(3);
+ if(@TEMP == 1) goto L_1;
+ if(@TEMP == 2) goto L_2;
+ if(@TEMP == 3) goto L_3;
+ if(@TEMP == 0) goto L_4;
+
+L_1:
+ mes "[Vincent]";
+ mes "I just need 30 more [Bug Legs] to finish my action figure!";
+ next;
+ goto main1;
+L_2:
+ mes "[Vincent]";
+ mes "This maggot action figure is awesome! I just need to attach [30 Part A{Bug Leg}]";
+ next;
+ goto main1;
+L_3:
+ mes "[Vincent]";
+ mes "This is a great action figure! A must have! All i need is a few parts...";
+ goto main1;
+L_4:
+ mes "[Vincent]";
+ mes "Can you get me 30 [Bug Legs]? I need them to replace the action figure parts.";
+ next;
+ goto main1;
+
+main1:
+ mes "[Vincent]";
+ mes "Will you help me find 30 [Bug Legs]?";
+ next;
+ menu "Yes",B_1,"No",B_2;
+B_1:
+ set Bugleg,1;
+ set @TEMP,rand(3);
+ if(@TEMP == 1) goto J_1;
+ if(@TEMP == 2) goto J_2;
+ if(@TEMP == 3) goto J_3;
+ if(@TEMP == 0) goto J_4;
+J_1:
+ mes "[Vincent]";
+ mes "Thank you!";
+ next;
+ goto main2;
+J_2:
+ mes "[Vincent]";
+ mes "I don't know how to thank you enough!";
+ next;
+ goto main2;
+J_3:
+ mes "[Vincent]";
+ mes "I will thank you when I get them!";
+ next;
+ goto main2;
+J_4:
+ mes "[Vincent]";
+ mes "I'm sure I will give a small reward. :D";
+ next;
+ goto main2;
+main2:
+ mes "[Vincent]";
+ mes "Now please go get me 30 [Bug Legs]";
+ close;
+reas:
+ if(countitem(518) >= 30) goto have;
+ mes "[Vincent]";
+ mes "Please help me collect 30 [Bug Legs]!";
+ close;
+have:
+ mes "[Vincent]";
+ mes "Excellent! Finally I can complete the model!!";
+ delitem 518,30;
+ next;
+ mes "[Vincent]";
+ mes "Here you go, a little of my appreciation!";
+ next;
+ mes "Got 1000 GP";
+ set zeny,zeny+1000;
+ set Bugleg,2;
+ close;
+done:
+ mes "[Vincent]";
+ mes "Thanks for your help!";
+ close;
+B_2:
+ close;
+}
+
diff --git a/npc/western-desert/dark_mage.txt b/npc/western-desert/dark_mage.txt
new file mode 100644
index 00000000..06d9b35b
--- /dev/null
+++ b/npc/western-desert/dark_mage.txt
@@ -0,0 +1,37 @@
+new_1-1.gat,24,24,0 script SoulThief 103,{
+
+ if (class == 1) goto L_Soul;
+ mes "[Dark Mage]";
+ mes "Psss hey would you like to have more power?";
+ next;
+
+ menu "You fool, that's not possible",-,"I'm listening...",L_Go;
+ close;
+
+L_Go:
+ mes "I can give you ancient powers that will let you become the greatest warrior in The Mana World, or the best merchant.";
+ mes "But everything has got his price...";
+ next;
+
+ mes "Oh nothing important nor expensive.";
+ mes "Just your soul!";
+ next;
+
+ menu "My soul? Here it is",L_Soul,"I need a better explanation!",-;
+
+ mes "Well there's a very small possibility that your player will be translated into the new server.";
+ mes "I said a very, very small possibility.";
+ mes "Players without a soul instead will be lost forever...";
+ mes "Come on, you won't loose that much!";
+ next;
+
+ menu "Hmmm ok, I guess you can take it.",L_Soul,"Maybe I'll think about it a bit more",-;
+ mes "I know you'll come here again when you'll get killed by a maggot, begging me to help you";
+ close;
+
+L_Soul:
+ mes "[Dark Mage]";
+ mes "Hrhrhr, your soul is finally mine!";
+ jobchange 1;
+ close;
+} \ No newline at end of file
diff --git a/npc/western-desert/merchant.txt b/npc/western-desert/merchant.txt
new file mode 100644
index 00000000..77f63d49
--- /dev/null
+++ b/npc/western-desert/merchant.txt
@@ -0,0 +1 @@
+new_1-1.gat,19,99,0 shop CaveShop 109,525:800,531:3000,530:8000,1199:5
diff --git a/npc/western-desert/monsters.txt b/npc/western-desert/monsters.txt
new file mode 100644
index 00000000..2b159894
--- /dev/null
+++ b/npc/western-desert/monsters.txt
@@ -0,0 +1,3 @@
+new_1-1.gat,0,0,0,0 monster GreenSlime 1005,50,0,0,0
+new_1-1.gat,0,0,0,0 monster GiantMaggot 1006,30,0,0,0
+new_1-1.gat,0,0,0,0 monster RedScorpion 1004,1,0,0,0
diff --git a/npc/western-desert/nomads.txt b/npc/western-desert/nomads.txt
new file mode 100644
index 00000000..1c747c5f
--- /dev/null
+++ b/npc/western-desert/nomads.txt
@@ -0,0 +1,23 @@
+new_1-1.gat,15,67,0 script Nomad1 132,{
+ mes "[Nomad]";
+ mes "This is really a nice place.";
+
+ mes "Don't you think so?";
+ close;
+}
+
+new_1-1.gat,18,68,0 script Nomad2 128,{
+ mes "[Nomad]";
+ mes "I found a passage to a green land through the mountains west of here";
+
+ mes "Do you want me to show you the way?";
+ next;
+ menu
+ "Sure",sure,
+ "No thank you",no;
+sure:
+ warp "new_9-1.gat",38,95; mes "I'll be awaiting you here."; mes "Tell me when you want to go back.";
+ close;
+no:
+ close;
+} \ No newline at end of file
diff --git a/npc/western-desert/passages.txt b/npc/western-desert/passages.txt
new file mode 100644
index 00000000..ec363db0
--- /dev/null
+++ b/npc/western-desert/passages.txt
@@ -0,0 +1,4 @@
+new_2-1.gat,36,30 warp caveexit 3,0,new_1-1.gat,25,95
+new_1-1.gat,19,94 warp caveentrance 1,1,new_2-1.gat,37,31
+new_1-1.gat,111,79 warp eastdesert 2,2,new_7-1.gat,23,40
+new_7-1.gat,18,39 warp westdesert 3,4,new_1-1.gat,106,78 \ No newline at end of file
diff --git a/npc/woodland/alchemist.txt b/npc/woodland/alchemist.txt
new file mode 100644
index 00000000..e065af34
--- /dev/null
+++ b/npc/woodland/alchemist.txt
@@ -0,0 +1,39 @@
+new_9-1.gat,117,77,0 script Alchemist 103,{
+ mes "[Alchemist]";
+ mes "I'm learning the ancient science of the alchemy.";
+ mes "I already know how to create a couple of potions!!";
+ next;
+
+ mes "[Alchemist]";
+ mes "Do you want me to create one for you?";
+ next;
+
+ menu "Iron potion",L_iron,"Concentration potion",L_concentration,"No thanks.",L_no;
+L_iron:
+ if(countitem(566) < 20) goto L_no_iron;
+ mes "[Alchemist]";
+ mes "Great! You brought me exactly what I need!";
+ mes "Here it is your Iron potion.";
+ delitem 566,20;
+ getitem 567,1;
+ close;
+
+L_concentration:
+ if(countitem(565) < 20) goto L_no_concentration;
+ mes "[Alchemist]";
+ mes "Great! You brought me exactly what I need!";
+ mes "Here it is your Concentration potion.";
+ delitem 565,20;
+ getitem 568,1;
+ close;
+
+L_no_iron:
+ mes "[Alchemist]";
+ mes "You have to bring me 20 small mushrooms.";
+ close;
+
+L_no_concentration:
+ mes "[Alchemist]";
+ mes "You have to bring me 20 petals.";
+ close;
+} \ No newline at end of file
diff --git a/npc/woodland/monsters.txt b/npc/woodland/monsters.txt
new file mode 100644
index 00000000..a25b251b
--- /dev/null
+++ b/npc/woodland/monsters.txt
@@ -0,0 +1,2 @@
+new_9-1.gat,0,0,0,0 monster EvilMushroom 1013,25,0,0,0
+new_9-1.gat,0,0,0,0 monster SleepFlower 1014,40,0,0,0
diff --git a/npc/woodland/passages.txt b/npc/woodland/passages.txt
new file mode 100644
index 00000000..ae94482f
--- /dev/null
+++ b/npc/woodland/passages.txt
@@ -0,0 +1,54 @@
+new_9-1.gat,58,91 warp tofield 1,1,new_4-1.gat,15,15
+new_9-1.gat,41,92,0 script Nomad3 131,{
+
+ mes "[Nomad]";
+
+ mes "Do you want to go back?";
+
+ next;
+
+ menu
+
+ "Yes please",yes,
+
+ "Not yet",notyet;
+
+yes:
+
+ warp "new_1-1.gat",18,70;
+
+ close;
+
+notyet:
+
+ close;
+
+}
+
+new_9-1.gat,73,29,0 script Child 114,{
+
+ mes "[Taro]";
+
+ mes "I saw Santa Claus going up this road.";
+
+ mes "Will you help me following him?";
+
+ next;
+
+ menu
+
+ "Of course, I'll help you!",yes,
+
+ "No, it's probably dangerous out there.",no;
+
+yes:
+
+ warp "new_10-1.gat",56,61;
+
+ close;
+
+no:
+
+ close;
+
+} \ No newline at end of file
diff --git a/npc/xmas/monsters.txt b/npc/xmas/monsters.txt
new file mode 100644
index 00000000..df7ad8a9
--- /dev/null
+++ b/npc/xmas/monsters.txt
@@ -0,0 +1,2 @@
+new_10-1.gat,0,0,0,0 monster SantaSlime 1015,10,0,0,0
+new_10-1.gat,0,0,0,0 monster RudolphSlime 1016,25,0,0,0 \ No newline at end of file
diff --git a/npc/xmas/santa.txt b/npc/xmas/santa.txt
new file mode 100644
index 00000000..a69afd81
--- /dev/null
+++ b/npc/xmas/santa.txt
@@ -0,0 +1,50 @@
+new_10-1.gat,74,75,0 script Santa 105,{
+if (ChristmasQuest2 == 1) goto done;
+mes "[Santa]";
+mes "Ho ho ho.";
+mes "Hello my young friend.";
+mes "Would you like to help me?";
+next;
+mes "Those monsters stolen my presents.";
+mes "If you help me, I'll give you something very nice";
+next;
+set ChristmasQuest2,1;
+L_M:
+menu "I have some present boxes",L_Y,"Hmm, see you later",L_N,"What you need exactly?",L_R;
+ L_Y:
+ mes "[Santa]";
+ mes "Hmm, let me check what you have.";
+ next;
+ if(countitem(515)<25) goto NoItem;
+ if(countitem(516)<20) goto NoItem;
+ if(countitem(538)<5) goto NoItem;
+ mes "Great! Here is something for you";
+ delitem 515,25;
+ delitem 516,20;
+ delitem 538,5;
+ getitem 563+rand(2),1;
+ close;
+ L_R:
+ mes "[Santa]";
+ mes "I need:";
+ mes "25 purple present boxes";
+ mes "20 blue present boxes";
+ mes "5 green present boxes";
+ next;
+ goto L_M;
+ L_N:
+ mes "[Santa]";
+ mes "Enjoy your holidays and I wish you an happy Christmas!";
+ close;
+ NoItem:
+ mes "[Santa]";
+ mes "You dont seem to have enough presents.";
+ close;
+ done:
+ mes "[Santa]";
+ mes "All the children got their Christmas presents.";
+ mes "Thank you for your help.";
+ close;
+
+}
+
diff --git a/npc/xmas/snowman.txt b/npc/xmas/snowman.txt
new file mode 100644
index 00000000..23404c9f
--- /dev/null
+++ b/npc/xmas/snowman.txt
@@ -0,0 +1,44 @@
+new_10-1.gat,77,44,0 script Santa 129,{
+if( ChristmasQuest == 1) goto done;
+mes "[Snowman]";
+mes "Hello there young man.";
+mes "Would you like a Christmas hat?";
+next;
+L_M:
+menu "Yes",L_Y,"No",L_N,"What do you need?",L_R;
+ L_Y:
+ mes "[Snowman]";
+ mes "Hmm, let me see what you have.";
+ next;
+ if(countitem(510)<15) goto NoItem;
+ if(countitem(509)<20) goto NoItem;
+ if(countitem(502)<5) goto NoItem;
+ mes "Here you go, enjoy your new hat!";
+ delitem 510,15;
+ delitem 509,10;
+ delitem 502,5;
+ getitem 511,1;
+ set ChristmasQuest,1;
+ close;
+ L_R:
+ mes "[Snowman]";
+ mes "For this special hat, I need a pint of magic and a little help.";
+ mes "Just kidding. I would like to get some food;";
+ mes "15 Candies";
+ mes "10 Chocolate bars";
+ mes "5 Cactus potions";
+ next;
+ goto L_M;
+ L_N:
+ mes "[Snowman]";
+ mes "Well, thats too bad, but make sure to have the holiday spirit!";
+ close;
+ NoItem:
+ mes "[Snowman]";
+ mes "Well, I am interested in some food and you don't have enought to get a hat.";
+ close;
+ done:
+ mes "[Snowman]";
+ mes "Thank you for help!";
+ close;
+} \ No newline at end of file
diff --git a/npc/xmas/taro.txt b/npc/xmas/taro.txt
new file mode 100644
index 00000000..6950d957
--- /dev/null
+++ b/npc/xmas/taro.txt
@@ -0,0 +1,13 @@
+new_10-1.gat,57,61,0 script Child 114,{
+ mes "[Taro]";
+ mes "I'm scared!!!";
+ mes "Bring me back, pleeeease!!!";
+ next;
+ menu
+ "Ok",yes,
+ "Just give me one more minute.",no;
+yes:
+ warp "new_9-1.gat",73,31; close;
+no:
+ close;
+} \ No newline at end of file
diff --git a/save/account.txt b/save/account.txt
new file mode 100644
index 00000000..a842f60c
--- /dev/null
+++ b/save/account.txt
@@ -0,0 +1,17 @@
+// Accounts file: here are saved all information about the accounts.
+// Structure: ID, account name, password, last login time, sex, # of logins, state, email, error message for state 7, validity time, last (accepted) login ip, memo field, ban timestamp, repeated(register text, register value)
+// Some explanations:
+// account name : between 4 to 23 char for a normal account (standard client can't send less than 4 char).
+// account password: between 4 to 23 char
+// sex : M or F for normal accounts, S for server accounts
+// state : 0: account is ok, 1 to 256: error code of packet 0x006a + 1
+// email : between 3 to 39 char (a@a.com is like no email)
+// error message : text for the state 7: 'Your are Prohibited to login until <text>'. Max 19 char
+// valitidy time : 0: unlimited account, <other value>: date calculated by addition of 1/1/1970 + value (number of seconds since the 1/1/1970)
+// memo field : max 254 char
+// ban time : 0: no ban, <other value>: banned until the date: date calculated by addition of 1/1/1970 + value (number of seconds since the 1/1/1970)
+0 s1 p1 - S 694 0 a@a.com - 0 - - 0
+1 s2 p2 - S 1 0 a@a.com - 0 - - 0
+2 s3 p3 - S 1 0 a@a.com - 0 - - 0
+3 s4 p4 - S 0 0 a@a.com - 0 - - 0
+4 s5 p5 - S 0 0 a@a.com - 0 - - 0