Jump to content
  • 0

SQL, access denied for user "root@localhost" and incorrect client version


ByCreator

Question


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  7
  • Reputation:   0
  • Joined:  11/22/16
  • Last Seen:  

Hey I use RAGNAROK OFFLINE EPISODE 14.2 WITH KAGEROU OBORO JOBS

In MySQL I dont use password

and I have this error when runserver

 

SQL, access denied for user  "root@localhost"

 

this is map_athena.conf

//--------------------------------------------------------------
//rAthena Map-Server Configuration File
//--------------------------------------------------------------

// Note: "Comments" are all text on the right side of a double slash "//"
// Whatever text is commented will not be parsed by the servers, and serves
// only as information/reference.

//--------------------------------------------------------------
//                     Configuration Info
//--------------------------------------------------------------
// Interserver communication passwords, set in account.txt (or equiv.)
userid: username
passwd: password

// Character Server IP
// The map server connects to the character server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
// a machine with multiple interfaces.
//char_ip: 127.0.0.1

// The map server listens on the interface with this IP address.
// NOTE: This allows you to run multiple servers on multiple interfaces
// while using the same ports for each server.
//bind_ip: 127.0.0.1

// Character Server Port
char_port: 6121

// Map Server IP
// The IP address which clients will use to connect.
// Set this to what your server's public IP address is.
//map_ip: 127.0.0.1

// Map Server Port
map_port: 5121

//Time-stamp format which will be printed before all messages.
//Can at most be 20 characters long.
//Common formats:
// %I:%M:%S %p (hour:minute:second 12 hour, AM/PM format)
// %H:%M:%S (hour:minute:second, 24 hour format)
// %d/%b/%Y (day/Month/year)
//For full format information, consult the strftime() manual.
//timestamp_format: [%d/%b %H:%M]

//If redirected output contains escape sequences (color codes)
stdout_with_ansisequence: no

//Makes server log selected message types to a file in the /log/ folder
//1: Log Warning Messages
//2: Log Error and SQL Error messages.
//4: Log Debug Messages
//Example: "console_msg_log: 7" logs all 3 kinds
//Messages logged by this overrides console_silent setting
console_msg_log: 0

// File path to store the console messages above
console_log_filepath: ./log/map-msg_log.log

//Makes server output more silent by omitting certain types of messages:
//1: Hide Information messages
//2: Hide Status messages
//4: Hide Notice Messages
//8: Hide Warning Messages
//16: Hide Error and SQL Error messages.
//32: Hide Debug Messages
//Example: "console_silent: 7" Hides information, status and notice messages (1+2+4)
console_silent: 0

//Where should all database data be read from?
db_path: db

// Enable the @guildspy and @partyspy at commands?
// Note that enabling them decreases packet sending performance.
enable_spy: no

// Read map data from GATs and RSWs in GRF files or a data directory
// as referenced by grf-files.txt rather than from the mapcache?
use_grf: no

// Console Commands
// Allow for console commands to be used on/off
// This prevents usage of >& log.file
console: off

// Database autosave time
// All characters are saved on this time in seconds (example:
// autosave of 60 secs with 60 characters online -> one char is saved every 
// second)
autosave_time: 300

// Min database save intervals (in ms)
// Prevent saving characters faster than at this rate (prevents char-server 
// save-load getting too high as character-count increases)
minsave_time: 100

// Apart from the autosave_time, players will also get saved when involved
// in the following (add as needed):
// 1: after every successful trade
// 2: after opening vending/every vending transaction
// 4: after closing storage/guild storage.
// 8: After hatching/returning to egg a pet.
// 16: After successfully sending a mail with attachment
// 32: After successfully submitting an item for auction
// 64: After successfully get/delete/complete a quest
// 128: After every bank transaction (deposit/withdraw)
// NOTE: These settings decrease the chance of dupes/lost items when there's a
// server crash at the expense of increasing the map/char server lag. If your 
// server rarely crashes, but experiences interserver lag, you may want to set
// these off.
save_settings: 255

// Message of the day file, when a character logs on, this message is displayed.
motd_txt: conf/motd.txt

// When @help or @h is typed when you are a gm, this is displayed for helping new gms understand gm commands.
help_txt: conf/help.txt
help2_txt: conf/help2.txt
charhelp_txt: conf/charhelp.txt

// Maps:
import: conf/maps_athena.conf

import: conf/import/map_conf.txt

 

this is char_athena.conf

 

// Athena Character configuration file.

// Note: "Comments" are all text on the right side of a double slash "//"
// Whatever text is commented will not be parsed by the servers, and serves
// only as information/reference.

// Server Communication username and password.
userid: username
passwd: password

// Server name, use alternative character such as ASCII 160 for spaces.
// NOTE: Do not use spaces or any of these characters which are not allowed in
//       Windows filenames \/:*?"<>|
//       ... or else guild emblems won't work client-side!
server_name: rAthena

// Wisp name for server: used to send wisp from server to players (between 4 to 23 characters)
wisp_server_name: Server

// Login Server IP
// The character server connects to the login server using this IP address.
// NOTE: This is useful when you are running behind a firewall or are on
// a machine with multiple interfaces.
//login_ip: 127.0.0.1

// The character server listens on the interface with this IP address.
// NOTE: This allows you to run multiple servers on multiple interfaces
// while using the same ports for each server.
//bind_ip: 127.0.0.1

// Login Server Port
login_port: 6900

// Character Server IP
// The IP address which clients will use to connect.
// Set this to what your server's public IP address is.
//char_ip: 127.0.0.1

// Character Server Port
char_port: 6121

//Time-stamp format which will be printed before all messages.
//Can at most be 20 characters long.
//Common formats:
// %I:%M:%S %p (hour:minute:second 12 hour, AM/PM format)
// %H:%M:%S (hour:minute:second, 24 hour format)
// %d/%b/%Y (day/Month/year)
//For full format information, consult the strftime() manual.
//timestamp_format: [%d/%b %H:%M]

//If redirected output contains escape sequences (color codes)
stdout_with_ansisequence: no

//Makes server log selected message types to a file in the /log/ folder
//1: Log Warning Messages
//2: Log Error and SQL Error messages.
//4: Log Debug Messages
//Example: "console_msg_log: 7" logs all 3 kinds
//Messages logged by this overrides console_silent setting
console_msg_log: 0

// File path to store the console messages above
console_log_filepath: ./log/char-msg_log.log

//Makes server output more silent by ommitting certain types of messages:
//1: Hide Information messages
//2: Hide Status messages
//4: Hide Notice Messages
//8: Hide Warning Messages
//16: Hide Error and SQL Error messages.
//32: Hide Debug Messages
//Example: "console_silent: 7" Hides information, status and notice messages (1+2+4)
console_silent: 0

// Console Commands
// Allow for console commands to be used on/off
// This prevents usage of >& log.file
console: off

// Type of server.
// No functional side effects at the moment.
// Displayed next to the server name in the client.
// 0=normal, 1=maintenance, 2=over 18, 3=paying, 4=P2P
char_maintenance: 0

// Enable or disable creation of new characters.
// Now it is actually supported [Kevin]
char_new: 1

// Display (New) in the server list.
char_new_display: 0

// Maximum users able to connect to the server.
// Set to 0 to disable users to log-in. (-1 means unlimited)
max_connect_user: -1

// Group ID that is allowed to bypass the server limit of users.
// Or to connect when the char is in maintenance mode (groupid >= allow)
// Default: -1 = nobody (there are no groups with ID < 0)
// See: conf/groups.conf
gm_allow_group: 99

// How often should the server save guild infos? (In seconds)
// (character save interval is defined on the map config (autosave_time))
autosave_time: 60

// Display information on the console whenever characters/guilds/parties/pets are loaded/saved?
save_log: yes

// Starting point for new characters
// Format: <map_name>,<x>,<y>{:<map_name>,<x>,<y>...}
// Max number of start points is MAX_STARTPOINT in char.h (default 5)
// Location is randomly picked on character creation.
// NOTE: For Doram, this requires client 20151001 or newer.
start_point: iz_int,97,90:iz_int01,97,90:iz_int02,97,90:iz_int03,97,90:iz_int04,97,90
start_point_pre: new_1-1,53,111:new_2-1,53,111:new_3-1,53,111:new_4-1,53,111:new_5-1,53,111
start_point_doram: lasa_fild01,48,297

// Starting items for new characters
// Max number of items is MAX_STARTITEM in char.c (default 32)
// Format: <id>,<amount>,<position>{:<id>,<amount>,<position>...}
// To auto-equip an item, include the position where it will be equipped; otherwise, use zero.
// NOTE: For Doram, this requires client 20151001 or newer.
start_items: 1201,1,2:2301,1,16
start_items_doram: 1681,1,2:2301,1,16

// Starting zeny for new characters
start_zeny: 0

// Size for the fame-lists
fame_list_alchemist: 10
fame_list_blacksmith: 10
fame_list_taekwon: 10

// Guild earned exp modifier.
// Adjusts taxed exp before adding it to the guild's exp. For example, if set
// to 200, the guild receives double the player's taxed exp.
guild_exp_rate: 100

// Name used for unknown characters
unknown_char_name: Unknown

// To log the character server?
log_char: 1

// Allow or not identical name for characters but with a different case (upper/lower):
// example: Test-test-TEST-TesT; Value: 0 not allowed (default), 1 allowed
name_ignoring_case: no

// Manage possible letters/symbol in the name of charater. Control character (0x00-0x1f) are never accepted. Possible values are:
// NOTE: Applies to character, party and guild names.
// 0: no restriction (default)
// 1: only letters/symbols in 'char_name_letters' option.
// 2: Letters/symbols in 'char_name_letters' option are forbidden. All others are possibles.
char_name_option: 1

// Set the letters/symbols that you want use with the 'char_name_option' option.
// Note: Don't add spaces unless you mean to add 'space' to the list.
char_name_letters: abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890

// Restrict character deletion by BaseLevel
// 0: no restriction (players can delete characters of any level)
// -X: you can't delete chars with BaseLevel <= X
// Y: you can't delete chars with BaseLevel >= Y
// e.g. char_del_level: 80 (players can't delete characters with 80+ BaseLevel)
char_del_level: 0

// Amount of time in seconds by which the character deletion is delayed.
// Default: 86400 (24 hours)
// NOTE: Requires client 2010-08-03aragexeRE or newer.
char_del_delay: 86400

// Restrict character deletion by email address or birthdate.
// This restricts players from changing the langtype and deleting characters.
// Defaults based on client date.
// 1: Email address
// 2: Birthdate
// 3: Email address or Birthdate
// IMPORTANT!
// - This config only works for clients that send 0x0068 or 0x01fb for delete request.
// - Use langtype 1 for newer clients (2013+), to use 0x01fb.
// - Clients that are not using 0x0068 or 0x01fb, only use birthdate (YYMMDD) as default.
char_del_option: 2

// Restrict character deletion as long as he is still in a party or guild
// 0: No restriction is applied
// 1: Character cannot be deleted as long as he remains in a party
// 2: Character cannot be deleted as long as he remains in a guild
// 3: Character cannot be deleted as long as he remains in a party or guild(default)
char_del_restriction: 3

// What folder the DB files are in (item_db.txt, etc.)
db_path: db

//===================================
// Pincode system
//===================================
// NOTE: Requires client 2011-03-09aragexeRE or newer.
// A window is opened before you can select your character and you will have to enter a pincode by using only your mouse.
// Default: yes
pincode_enabled: no

// How often does a user have to change his pincode?
// 0: never (default)
// X: every X days
pincode_changetime: 0

// How often can a user enter the wrong pincode?
// Default: 3 (client maximum)
pincode_maxtry: 3

// Are users forced to use a pincode when the system is enabled?
// Default: yes
pincode_force: yes

// Are repeated numbers allowed?
// Default: no
pincode_allow_repeated: no

// Are sequential numbers allowed?
// Default: no
pincode_allow_sequential: no

//===================================
// Addon system
//===================================
// Character moving
// NOTE: Requires client 2011-09-28aragexeRE or newer.
// Allows users to move their characters between slots.
// Default: yes
char_move_enabled: yes

// Allow users to move a character to a used slot?
// If enabled the characters are exchanged.
// Default: yes
char_movetoused: yes

// Allow users to move characters as often as they like?
char_moves_unlimited: no

// Should we check if sql-tables are correct on server startup ?
char_checkdb: yes

// Default map if character is in not-existing map when loaded.
default_map: prontera
default_map_x: 156
default_map_y: 191

import: conf/import/char_conf.txt

 

 

this is inter_athena.conf

 

// Athena InterServer configuration.
// Contains settings shared/used by more than 1 server.

// Options for both versions

// Log Inter Connections, etc.?
log_inter: 1

// Inter Log Filename
inter_log_filename: log/inter.log

// Level range for sharing within a party
party_share_level: 15

// You can specify the codepage to use in your MySQL tables here.
// (Note that this feature requires MySQL 4.1+)
//default_codepage:

// For IPs, ideally under linux, you want to use localhost instead of 127.0.0.1
// Under windows, you want to use 127.0.0.1.  If you see a message like
// "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"
// and you have localhost, switch it to 127.0.0.1

// Global SQL settings
// overridden by local settings when the hostname is defined there
// (currently only the login-server reads/obeys these settings)

// MySQL Login server
login_server_ip: 127.0.0.1
login_server_port: 3306
login_server_id: root
login_server_pw: 
login_server_db: ragnarok
login_codepage:
login_case_sensitive: no

ipban_db_ip: 127.0.0.1
ipban_db_port: 3306
ipban_db_id: root
ipban_db_pw: 
ipban_db_db: ragnarok
ipban_codepage:

// MySQL Character server
char_server_ip: 127.0.0.1
char_server_port: 3306
char_server_id: root
char_server_pw: 
char_server_db: ragnarok

// MySQL Map Server
map_server_ip: 127.0.0.1
map_server_port: 3306
map_server_id: root
map_server_pw: 
map_server_db: ragnarok_logs

// MySQL Log Database
log_db_ip: 127.0.0.1
log_db_port: 3306
log_db_id: root
log_db_pw: 
log_db_db: ragnarok_logs
log_codepage:
log_login_db: loginlog

// MySQL Reconnect Settings
// - mysql_reconnect_type:
//   1: When MySQL disconnects during runtime, the server tries to reconnect
//      mysql_reconnect_count times and shuts down if unsuccessful.
//   2: When mysql disconnects during runtime, it tries to reconnect indefinitely.
mysql_reconnect_type: 2
mysql_reconnect_count: 1

// DO NOT CHANGE ANYTHING BEYOND THIS LINE UNLESS YOU KNOW YOUR DATABASE DAMN WELL
// this is meant for people who KNOW their stuff, and for some reason want to change their
// database layout. [CLOWNISIUS]

// ALL MySQL Database Table names

// Login Database Tables
login_server_account_db: login
ipban_table: ipbanlist

// Shared
global_acc_reg_num_table: global_acc_reg_num
global_acc_reg_str_table: global_acc_reg_str

// Char Database Tables
char_db: char
hotkey_db: hotkey
scdata_db: sc_data
cart_db: cart_inventory
inventory_db: inventory
charlog_db: charlog
skill_db: skill
interlog_db: interlog
memo_db: memo
guild_db: guild
guild_alliance_db: guild_alliance
guild_castle_db: guild_castle
guild_expulsion_db: guild_expulsion
guild_member_db: guild_member
guild_skill_db: guild_skill
guild_position_db: guild_position
guild_storage_db: guild_storage
party_db: party
pet_db: pet
friend_db: friends
mail_db: mail
auction_db: auction
quest_db: quest
homunculus_db: homunculus
skill_homunculus_db: skill_homunculus
mercenary_db: mercenary
mercenary_owner_db: mercenary_owner
elemental_db: elemental
ragsrvinfo_db: ragsrvinfo
skillcooldown_db: skillcooldown
bonus_script_db: bonus_script
acc_reg_num_table: acc_reg_num
acc_reg_str_table: acc_reg_str
char_reg_str_table: char_reg_str
char_reg_num_table: char_reg_num
clan_table: clan
clan_alliance_table: clan_alliance

// Map Database Tables
buyingstore_db: buyingstores
buyingstore_items_db: buyingstore_items
item_db_db: item_db
item_db_re_db: item_db_re
item_db2_db: item_db2
//item_db2_db: item_db2_re
item_cash_db_db: item_cash_db
item_cash_db2_db: item_cash_db2
mob_db_db: mob_db
mob_db_re_db: mob_db_re
mob_db2_db: mob_db2
//mob_db2_db: mob_db2_re
mob_skill_db_db: mob_skill_db
mob_skill_db_re_db: mob_skill_db_re
mob_skill_db2_db: mob_skill_db2
//mob_skill_db2_db: mob_skill_db2_re
mapreg_table: mapreg
vending_db: vendings
vending_items_db: vending_items
market_table: market
db_roulette_table: db_roulette

// Use SQL item_db, mob_db and mob_skill_db for the map server? (yes/no)
use_sql_db: no

inter_server_conf: conf/inter_server.conf

import: conf/import/inter_conf.txt

 

Used help from there and didnt helped me

and from there too, nothing helps me .

Screenshot_1.png

Screenshot_2.png

Screenshot_3.png

Screenshot_4.png

 

 

 

 

More Errors


[Status]: Memory manager initialised: log/map-server.exe.leaks


                   rAthena Development Team presents
                      ___   __  __
                _____/   | / /_/ /_  ___  ____  ____ _
               / ___/ /| |/ __/ __ \/ _ \/ __ \/ __ `/
              / /  / ___ / /_/ / / /  __/ / / / /_/ /
             /_/  /_/  |_\__/_/ /_/\___/_/ /_/\__,_/

                     http://rathena.org/board/

[Info]: Server supports up to '4096' concurrent connections.
[Warning]: Not all IP addresses in map_athena.conf configured, autodetecting...
[Info]: Defaulting to 10.0.0.2 as our IP address
[Info]: Map Server IP Address : '10.0.0.2' -> '10.0.0.2'.
[Info]: Char Server IP Address : '10.0.0.2' -> '10.0.0.2'.
[Warning]: conf/battle/feature.conf:feature.auction is enabled but it is not ava
ilable for clients from 2014-11-12 on, disabling...
[Warning]: conf/battle/feature.conf:feature.auction change value to '2' to silen
ce this warning and maintain it enabled
[Status]: Using SQL dbs: no
[Info]: Logging item transactions to table 'picklog'.
[Info]: Logging commands to table 'atcommandlog'.
[Info]: Logging 'logmes' messages to table 'npclog'.
[Info]: Logging Cash transactions to table 'cashlog'.
[Info]: Logging Feeding items to table 'feedinglog'.
[Info]: Connecting to the Map DB Server....
[Status]: Connect success! (Map Server Connection)
[Info]: [SQL]: Connecting to the Log Database ragnarok_logs At 127.0.0.1...
[SQL]: Access denied for user 'root'@'localhost' (using password: YES)
[Error]: Couldn't connect with uname='root',passwd='ragnarok',host='127.0.0.1',p
ort='3306',database='ragnarok_logs'
[Debug]: at d:\codding ragnarok\ragnarok\server\rathena-master\src\map\map.c:411
4

Map-Server has terminated abnormally.
Restarting in 15 seconds, press Ctrl+C to cancel.



[Status]: Memory manager initialised: log/login-server.exe.leaks


                   rAthena Development Team presents
                      ___   __  __
                _____/   | / /_/ /_  ___  ____  ____ _
               / ___/ /| |/ __/ __ \/ _ \/ __ \/ __ `/
              / /  / ___ / /_/ / / /  __/ / / / /_/ /
             /_/  /_/  |_\__/_/ /_/\___/_/ /_/\__,_/

                     http://rathena.org/board/

[Info]: Server supports up to '4096' concurrent connections.
[Info]: loginconfig: client_version_to_connect = 53
[Info]: Finished reading conf/import/inter_conf.txt.
[Info]: Finished reading conf/inter_athena.conf.
[Info]: Finished reading conf/import/login_conf.txt.
[Info]: Finished reading conf/login_athena.conf.
[Info]: Done reading '23' messages in 'conf/msg_conf/login_msg.conf'.
[Info]: Ipban connection made.
[SQL]: Access denied for user 'root'@'localhost' (using password: YES)
[Error]: Couldn't connect with uname='root',passwd='ragnarok',host='127.0.0.1',p
ort='3306',database='ragnarok'
[Debug]: at d:\codding ragnarok\ragnarok\server\rathena-master\src\login\account
.c:130
[Fatal Error]: do_init: Failed to initialize account engine.

Login-Server has terminated abnormally.
Restarting in 15 seconds, press Ctrl+C to cancel.







[Status]: Memory manager initialised: log/char-server.exe.leaks


                   rAthena Development Team presents
                      ___   __  __
                _____/   | / /_/ /_  ___  ____  ____ _
               / ___/ /| |/ __/ __ \/ _ \/ __ \/ __ `/
              / /  / ___ / /_/ / / /  __/ / / / /_/ /
             /_/  /_/  |_\__/_/ /_/\___/_/ /_/\__,_/

                     http://rathena.org/board/

[Info]: Server supports up to '4096' concurrent connections.
[Info]: Done reading conf/import/char_conf.txt.
[Info]: Done reading conf/char_athena.conf.
[Info]: Done reading conf/import/inter_conf.txt.
[Info]: Done reading conf/inter_athena.conf.
[Info]: Done reading '135' messages in 'conf/msg_conf/char_msg.conf'.
[Info]: Done reading conf/import/inter_conf.txt.
[Info]: Done reading conf/inter_athena.conf.
[Info]: Connect Character DB server.... (Character Server)
[Status]: Done reading '1' storage informations in 'conf/inter_server.conf'
[Status]: Done reading '50' entries in 'db/re/exp_guild.txt'.
[Status]: Done reading '0' entries in 'db/import/exp_guild.txt'.
[Info]: Clan loaded (1 - Swordman Clan)
[Info]: Clan loaded (2 - Arcwand Clan)
[Info]: Clan loaded (3 - Golden Mace Clan)
[Info]: Clan loaded (4 - Crossbow Clan)
[Status]: Finished Reading GeoIP Database.
[Status]: Characters per Account: '0'.
[Status]: Defaulting to 10.0.0.2 as our IP address
[Info]: Start checking DB integrity
[Info]: DB integrity check finished with success
[Info]: Default map: 'prontera 156,191'
[Status]: The char-server is ready (Server is listening on the port 6121).

[Info]: Attempt to connect to login-server...
[Status]: Connecting to 10.0.0.2:6900
[Error]: make_connection: connect failed (socket #2, error 10061: No connection
could be made because the target machine actively refused it.
)!

 

and used 

username: root

password: ragnarok

Still dont work

Edited by ByCreator
incorrect client version
Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10013
  • Reputation:   2346
  • Joined:  10/28/11
  • Last Seen:  

user name should be

ragnarok

not root.

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  5
  • Reputation:   2
  • Joined:  06/20/14
  • Last Seen:  

Okay! Your problem is that while you set the password fields in inter_athen.conf to blank... the server does not read those lines when the password is blank. So it's trying to use the default password of "ragnarok".

I would suggest going into Workbench as root and creating a new user for your server with a username and password.

 

You could run these commands in workbench to setup a user using the default rA username and password.

CREATE USER 'ragnarok'@'localhost' IDENTIFIED BY 'ragnarok';
GRANT SELECT,INSERT,UPDATE,DELETE ON ragnarok.* TO 'ragnarok'@'localhost';

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  7
  • Reputation:   0
  • Joined:  11/22/16
  • Last Seen:  

3 hours ago, Asela said:

Okay! Your problem is that while you set the password fields in inter_athen.conf to blank... the server does not read those lines when the password is blank. So it's trying to use the default password of "ragnarok".

I would suggest going into Workbench as root and creating a new user for your server with a username and password.

 

You could run these commands in workbench to setup a user using the default rA username and password.


CREATE USER 'ragnarok'@'localhost' IDENTIFIED BY 'ragnarok';
GRANT SELECT,INSERT,UPDATE,DELETE ON ragnarok.* TO 'ragnarok'@'localhost';

 

do you have TeamViewer? because I can't make it to work and cant create new user with password

Screenshot_1.png

Screenshot_1.png

Edited by ByCreator
errors
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  7
  • Reputation:   0
  • Joined:  11/22/16
  • Last Seen:  

11 hours ago, Emistry said:

user name should be


ragnarok

not root.

thanks now its work

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  7
  • Reputation:   0
  • Joined:  11/22/16
  • Last Seen:  

Now This Errors

packet_db

// Client<->Map Packet Database
//
// Structure of Database:
// PacketType,PacketLength[,Name,FieldIndex1:FieldIndex2:FieldIndex3:...]
//
// 01. PacketType       ID of the packet.
// 02. PacketLength     Length of the packet. If 0, packet is disabled in current packet version. If -1, packet has variable size.
// 03. Name             Name of the packet parser function (optional, for incoming packets only).
// 04. FieldIndex       Specifies the offset of a packet field in bytes from the begin of the packet (only specified when Name is given).
//                      Can be 0, when the layout is not known.
// ...
//
// NOTE: Up to MAX_PACKET_POS (typically 20) field indexes may be used.
//
// The packet database allows you to add support for new clients,
// because packets change every release.
//
// Note: Every packet version needs a wanttoconnection specification, since
// that is the packet used to identify a client's version.
// If multiple versions have the same connection packet, the higher version
// will be used (unless the lower one is specified as the default)
//
// Incoming packets have their parser function and layout specified, which enables
// them for the current and all higher versions, unless explicitely disabled.
//
// Outgoing packets must be specified in order to enable them for the current
// and all higher versions, unless explicitely disabled. Packets that are not
// enabled for a packet version are silently discarded when sent as multicast.
//
// Every packet version inherits packet definitions from the previous (lower)
// packet version.
//
// Main packet version of the DB to use (default = max available version)
// Client detection is faster when all clients use this version.
// Version 23 is the latest Sakexe (above versions are for Renewal clients)
//
// packet_keys values are default value for each packet version, if no value
// or value is 'default' in packet_keys_use, server will uses default keys
// according to used packet_db_ver. packet_keys_use is user-defined keys.
// Maximum key value is 0x7FFFFFFF.
// NOTE: Keys won't be reloaded, initialized on first load only.
//
//packet_db_ver: 46
packet_db_ver: default
packet_keys_use: default

packet_ver: 5
0x0064,55
0x0065,17
0x0066,6
0x0067,37
0x0068,46
0x0069,-1
0x006a,23
0x006b,-1
0x006c,3
0x006d,108
0x006e,3
0x006f,2
0x0070,6
0x0071,28
0x0072,19,wanttoconnection,2:6:10:14:18
0x0073,11
0x0074,3
0x0075,-1
0x0076,9
0x0077,5
0x0078,54
0x0079,53
0x007a,58
0x007b,60
0x007c,41
0x007d,2,loadendack,0
0x007e,6,ticksend,2
0x007f,6
0x0080,7
0x0081,3
0x0082,2
0x0083,2
0x0084,2
0x0085,5,walktoxy,2
0x0086,16
0x0087,12
0x0088,10
0x0089,7,actionrequest,2:6
0x008a,29
0x008b,2
0x008c,-1,globalmessage,2:4
0x008d,-1
0x008e,-1
//0x008f,-1
0x0090,7,npcclicked,2:6
0x0091,22
0x0092,28
0x0093,2
0x0094,6,getcharnamerequest,2
0x0095,30
0x0096,-1,wis,2:4:28
0x0097,-1
0x0098,3
0x0099,-1,broadcast,2:4
0x009a,-1
0x009b,5,changedir,2:4
0x009c,9
0x009d,17
0x009e,17
0x009f,6,takeitem,2
0x00a0,23
0x00a1,6
0x00a2,6,dropitem,2:4
0x00a3,-1
0x00a4,-1
0x00a5,-1
0x00a6,-1
0x00a7,8,useitem,2:4
0x00a8,7
0x00a9,6,equipitem,2:4
0x00aa,7,ZC_WEAR_EQUIP_ACK,2:4:6
0x00ab,4,unequipitem,2
0x00ac,7
//0x00ad,-1
0x00ae,-1
0x00af,6
0x00b0,8
0x00b1,8
0x00b2,3,restart,2
0x00b3,3
0x00b4,-1
0x00b5,6
0x00b6,6
0x00b7,-1
0x00b8,7,npcselectmenu,2:6
0x00b9,6,npcnextclicked,2
0x00ba,2
0x00bb,5,statusup,2:4
0x00bc,6
0x00bd,44
0x00be,5
0x00bf,3,emotion,2
0x00c0,7
0x00c1,2,howmanyconnections,0
0x00c2,6
0x00c3,8
0x00c4,6
0x00c5,7,npcbuysellselected,2:6
0x00c6,-1
0x00c7,-1
0x00c8,-1,npcbuylistsend,2:4
0x00c9,-1,npcselllistsend,2:4
0x00ca,3
0x00cb,3
0x00cc,6,gmkick,2
0x00cd,3
0x00ce,2,killall,0
0x00cf,27,wisexin,2:26
0x00d0,3,wisall,2
0x00d1,4
0x00d2,4
0x00d3,2,wisexlist,0
0x00d4,-1
0x00d5,-1,createchatroom,2:4:6:7:15
0x00d6,3
0x00d7,-1
0x00d8,6
0x00d9,14,chataddmember,2:6
0x00da,3
0x00db,-1
0x00dc,28
0x00dd,29
0x00de,-1,chatroomstatuschange,2:4:6:7:15
0x00df,-1
0x00e0,30,changechatowner,2:6
0x00e1,30
0x00e2,26,kickfromchat,2
0x00e3,2,chatleave,0
0x00e4,6,traderequest,2
0x00e5,26
0x00e6,3,tradeack,2
0x00e7,3
0x00e8,8,tradeadditem,2:4
0x00e9,19
0x00ea,5
0x00eb,2,tradeok,0
0x00ec,3
0x00ed,2,tradecancel,0
0x00ee,2
0x00ef,2,tradecommit,0
0x00f0,3
0x00f1,2
0x00f2,6
0x00f3,8,movetokafra,2:4
0x00f4,21
0x00f5,8,movefromkafra,2:4
0x00f6,8
0x00f7,2,closekafra,0
0x00f8,2
0x00f9,26,createparty,2
0x00fa,3
0x00fb,-1
0x00fc,6,partyinvite,2
0x00fd,27
0x00fe,30
0x00ff,10,replypartyinvite,2:6
0x0100,2,leaveparty,0
0x0101,6
0x0102,6,partychangeoption,2
0x0103,30,removepartymember,2:6
0x0104,79
0x0105,31
0x0106,10
0x0107,10
0x0108,-1,partymessage,2:4
0x0109,-1
0x010a,4
0x010b,6
0x010c,6
0x010d,2
0x010e,11
0x010f,-1
0x0110,10
0x0111,39
0x0112,4,skillup,2
0x0113,10,useskilltoid,2:4:6
0x0114,31
0x0115,35
0x0116,10,useskilltopos,2:4:6:8
0x0117,18
0x0118,2,stopattack,0
0x0119,13
0x011a,15
0x011b,20,useskillmap,2:4
0x011c,68
0x011d,2,requestmemo,0
0x011e,3
0x011f,16
0x0120,6
0x0121,14
0x0122,-1
0x0123,-1
0x0124,21
0x0125,8
0x0126,8,putitemtocart,2:4
0x0127,8,getitemfromcart,2:4
0x0128,8,movefromkafratocart,2:4
0x0129,8,movetokafrafromcart,2:4
0x012a,2,removeoption,0
0x012b,2
0x012c,3
0x012d,4
0x012e,2,closevending,0
0x012f,-1,openvending,2:4:0:84
0x0130,6,vendinglistreq,2
0x0131,86
0x0132,6
0x0133,-1
0x0134,-1,purchasereq,2:4:8
0x0135,7
0x0136,-1
0x0137,6
0x0138,3
0x0139,16
0x013a,4
0x013b,4
0x013c,4
0x013d,6
0x013e,24
0x013f,26,itemmonster,2
0x0140,22,mapmove,2:18:20
0x0141,14
0x0142,6
0x0143,10,npcamountinput,2:6
0x0144,23
0x0145,19
0x0146,6,npccloseclicked,2
0x0147,39
0x0148,8
0x0149,9,gmreqnochat,2:6:7
0x014a,6
0x014b,27
0x014c,-1
0x014d,2,guildcheckmaster,0
0x014e,6
0x014f,6,guildrequestinfo,2
0x0150,110
0x0151,6,guildrequestemblem,2
0x0152,-1
0x0153,-1,guildchangeemblem,2:4
0x0154,-1
0x0155,-1,guildchangememberposition,2:4
0x0156,-1
0x0157,6
0x0158,-1
0x0159,54,guildleave,2:6:10:14
0x015a,66
0x015b,54,guildexpulsion,2:6:10:14
0x015c,90
0x015d,42,guildbreak,2
0x015e,6
0x015f,42
0x0160,-1
0x0161,-1,guildchangepositioninfo,2:4
0x0162,-1
0x0163,-1
0x0164,-1
0x0165,30,createguild,2:6
0x0166,-1
0x0167,3
0x0168,14,guildinvite,2:6:10
0x0169,3
0x016a,30
0x016b,10,guildreplyinvite,2:6
0x016c,43
0x016d,14
0x016e,186,guildchangenotice,2:6:66
0x016f,182
0x0170,14,guildrequestalliance,2:6:10
0x0171,30
0x0172,10,guildreplyalliance,2:6
0x0173,3
0x0174,-1
0x0175,6
0x0176,106
0x0177,-1
0x0178,4,itemidentify,2
0x0179,5
0x017a,4,usecard,2
0x017b,-1
0x017c,6,insertcard,2:4
0x017d,7
0x017e,-1,guildmessage,2:4
0x017f,-1
0x0180,6,guildopposition,2
0x0181,3
0x0182,106
0x0183,10,guilddelalliance,2:6
0x0184,10
0x0185,34
//0x0186,-1
0x0187,6
0x0188,8
0x0189,4
0x018a,4,quitgame,2
0x018b,4
0x018c,29
0x018d,-1
0x018e,10,producemix,2:4:6:8
0x018f,6
0x0190,90,useskilltoposinfo,2:4:6:8:10
0x0191,86
0x0192,24
0x0193,6,solvecharname,2
0x0194,30
0x0195,102
0x0196,9
0x0197,4,resetchar,2
0x0198,8,changemaptype,2:4:6
0x0199,4
0x019a,14
0x019b,10
0x019c,-1,localbroadcast,2:4
0x019d,6,gmhide,2
0x019e,2
0x019f,6,catchpet,2
0x01a0,3
0x01a1,3,petmenu,2
0x01a2,35
0x01a3,5
0x01a4,11
0x01a5,26,changepetname,2
0x01a6,-1
0x01a7,4,selectegg,2
0x01a8,4
0x01a9,6,sendemotion,2
0x01aa,10
0x01ab,12
0x01ac,6
0x01ad,-1
0x01ae,4,selectarrow,2
0x01af,4,changecart,2
0x01b0,11
0x01b1,7
0x01b2,-1,openvending,2:4:84:85
0x01b3,67
0x01b4,12
0x01b5,18
0x01b6,114
0x01b7,6
0x01b8,3
0x01b9,6
0x01ba,26,remove,2
0x01bb,26,shift,2
0x01bc,26,recall,2
0x01bd,26,summon,2
0x01be,2
0x01bf,3
0x01c0,2
0x01c1,14
0x01c2,10
0x01c3,-1
0x01c4,22
0x01c5,22
0x01c6,4
0x01c7,2
0x01c8,13
0x01c9,97
//0x01ca,-1
0x01cb,9
0x01cc,9
0x01cd,30
0x01ce,6,autospell,2
0x01cf,28
0x01d0,8
0x01d1,14
0x01d2,10
0x01d3,35
0x01d4,6
0x01d5,-1,npcstringinput,2:4:8
0x01d6,4
0x01d7,11
0x01d8,54
0x01d9,53
0x01da,60
0x01db,2
0x01dc,-1
0x01dd,47
0x01de,33
0x01df,6,gmreqaccname,2
0x01e0,30
0x01e1,8
0x01e2,34
0x01e3,14
0x01e4,2
0x01e5,6
0x01e6,26
0x01e7,2,sndoridori,0
0x01e8,28,createparty2,2:26:27
0x01e9,81
0x01ea,6
0x01eb,10
0x01ec,26
0x01ed,2,snexplosionspirits,0
0x01ee,-1
0x01ef,-1
0x01f0,-1
0x01f1,-1
0x01f2,20
0x01f3,10
0x01f4,32
0x01f5,9
0x01f6,34
0x01f7,14,adoptreply,2:6:10
0x01f8,2
0x01f9,6,adoptrequest,2
0x01fa,48
0x01fb,56
0x01fc,-1
0x01fd,4,repairitem,2
0x01fe,5
0x01ff,10
0x0200,26
0x0201,-1
0x0202,26,friendslistadd,2
0x0203,10,friendslistremove,2:6
0x0204,18
0x0205,26
0x0206,11
0x0207,34
0x0208,11,friendslistreply,2:6:10
0x0209,36
0x020a,10
//0x020b,-1
//0x020c,-1
0x020d,-1
0x8b3,-1
0x8d6,6,ZC_CLEAR_DIALOG,2

//2004-07-05aSakexe
packet_ver: 6
0x0072,22,wanttoconnection,5:9:13:17:21
0x0085,8,walktoxy,5
0x00a7,13,useitem,5:9
0x0113,15,useskilltoid,4:9:11
0x0116,15,useskilltopos,4:9:11:13
0x0190,95,useskilltoposinfo,4:9:11:13:15
0x0208,14,friendslistreply,2:6:10
0x020e,24

//2004-07-13aSakexe
packet_ver: 7
0x0072,39,wanttoconnection,12:22:30:34:38
0x0085,9,walktoxy,6
0x009b,13,changedir,5:12
0x009f,10,takeitem,6
0x00a7,17,useitem,6:13
0x0113,19,useskilltoid,7:9:15
0x0116,19,useskilltopos,7:9:15:17
0x0190,99,useskilltoposinfo,7:9:15:17:19

//2004-07-26aSakexe
packet_ver: 8
0x0072,14,dropitem,5:12
0x007e,33,wanttoconnection,12:18:24:28:32
0x0085,20,useskilltoid,7:12:16
0x0089,15,getcharnamerequest,11
0x008c,23,useskilltopos,3:6:17:21
0x0094,10,takeitem,6
0x009b,6,walktoxy,3
0x009f,13,changedir,5:12
0x00a2,103,useskilltoposinfo,3:6:17:21:23
0x00a7,12,solvecharname,8
0x00f3,-1,globalmessage,2:4
0x00f5,17,useitem,6:12
0x00f7,10,ticksend,6
0x0113,16,movetokafra,5:12
0x0116,2,closekafra,0
0x0190,26,movefromkafra,10:22
0x0193,9,actionrequest,3:8

//2004-08-09aSakexe
packet_ver: 9
0x0072,17,dropitem,8:15
0x007e,37,wanttoconnection,9:21:28:32:36
0x0085,26,useskilltoid,11:18:22
0x0089,12,getcharnamerequest,8
0x008c,40,useskilltopos,5:15:29:38
0x0094,13,takeitem,9
0x009b,15,walktoxy,12
0x009f,12,changedir,7:11
0x00a2,120,useskilltoposinfo,5:15:29:38:40
0x00a7,11,solvecharname,7
0x00f5,24,useitem,9:20
0x00f7,13,ticksend,9
0x0113,23,movetokafra,5:19
0x0190,26,movefromkafra,11:22
0x0193,18,actionrequest,7:17

//2004-08-16aSakexe
0x0212,26,rc,2
0x0213,26,check,2
0x0214,42

//2004-08-17aSakexe
0x020f,10,pvpinfo,2:6
0x0210,22

//2004-09-06aSakexe
packet_ver: 10
0x0072,20,useitem,9:20
0x007e,19,movetokafra,3:15
0x0085,23,actionrequest,9:22
0x0089,9,walktoxy,6
0x008c,105,useskilltoposinfo,10:14:18:23:25
0x0094,17,dropitem,6:15
0x009b,14,getcharnamerequest,10
0x009f,-1,globalmessage,2:4
0x00a2,14,solvecharname,10
0x00a7,25,useskilltopos,10:14:18:23
0x00f3,10,changedir,4:9
0x00f5,34,wanttoconnection,7:15:25:29:33
0x00f7,2,closekafra,0
0x0113,11,takeitem,7
0x0116,11,ticksend,7
0x0190,22,useskilltoid,9:15:18
0x0193,17,movefromkafra,3:13

//2004-09-20aSakexe
packet_ver: 11
0x0072,18,useitem,10:14
0x007e,25,movetokafra,6:21
0x0085,9,actionrequest,3:8
0x0089,14,walktoxy,11
0x008c,109,useskilltoposinfo,16:20:23:27:29
0x0094,19,dropitem,12:17
0x009b,10,getcharnamerequest,6
0x00a2,10,solvecharname,6
0x00a7,29,useskilltopos,6:20:23:27
0x00f3,18,changedir,8:17
0x00f5,32,wanttoconnection,10:17:23:27:31
0x0113,14,takeitem,10
0x0116,14,ticksend,10
0x0190,14,useskilltoid,4:7:10
0x0193,12,movefromkafra,4:8

//2004-10-05aSakexe
packet_ver: 12
0x0072,17,useitem,6:13
0x007e,16,movetokafra,5:12
0x0089,6,walktoxy,3
0x008c,103,useskilltoposinfo,2:6:17:21:23
0x0094,14,dropitem,5:12
0x009b,15,getcharnamerequest,11
0x00a2,12,solvecharname,8
0x00a7,23,useskilltopos,3:6:17:21
0x00f3,13,changedir,5:12
0x00f5,33,wanttoconnection,12:18:24:28:32
0x0113,10,takeitem,6
0x0116,10,ticksend,6
0x0190,20,useskilltoid,7:12:16
0x0193,26,movefromkafra,10:22

//2004-10-25aSakexe
packet_ver: 13
0x0072,13,useitem,5:9
0x007e,13,movetokafra,6:9
0x0085,15,actionrequest,4:14
0x008c,108,useskilltoposinfo,6:9:23:26:28
0x0094,12,dropitem,6:10
0x009b,10,getcharnamerequest,6
0x00a2,16,solvecharname,12
0x00a7,28,useskilltopos,6:9:23:26
0x00f3,15,changedir,6:14
0x00f5,29,wanttoconnection,5:14:20:24:28
0x0113,9,takeitem,5
0x0116,9,ticksend,5
0x0190,26,useskilltoid,4:10:22
0x0193,22,movefromkafra,12:18

//2004-11-01aSakexe
0x0084,-1
0x0215,6

//2004-11-08aSakexe
0x0084,2
0x0216,6
0x0217,2,blacksmith,0
0x0218,2,alchemist,0
0x0219,282
0x021a,282
0x021b,10
0x021c,10

//2004-11-15aSakexe
0x021d,6,lesseffect,2

//2004-11-29aSakexe
packet_ver: 14
0x0072,22,useskilltoid,8:12:18
0x007e,30,useskilltopos,4:9:22:28
0x0085,-1,globalmessage,2:4
0x0089,7,ticksend,3
0x008c,13,getcharnamerequest,9
0x0094,14,movetokafra,4:10
0x009b,2,closekafra,0
0x009f,18,actionrequest,6:17
0x00a2,7,takeitem,3
0x00a7,7,walktoxy,4
0x00f3,8,changedir,3:7
0x00f5,29,wanttoconnection,3:10:20:24:28
0x00f7,14,solvecharname,10
0x0113,110,useskilltoposinfo,4:9:22:28:30
0x0116,12,dropitem,4:10
0x0190,15,useitem,3:11
0x0193,21,movefromkafra,4:17
0x0221,-1
0x0222,6,weaponrefine,2
0x0223,8

//2004-12-13aSakexe
//skipped: many packets being set to -1
0x0066,3
0x0070,3
0x01ca,3
0x021e,6
0x021f,66
0x0220,10

//2005-01-10bSakexe
packet_ver: 15
0x0072,26,useskilltoid,8:16:22
0x007e,114,useskilltoposinfo,10:18:22:32:34
0x0085,23,changedir,12:22
0x0089,9,ticksend,5
0x008c,8,getcharnamerequest,4
0x0094,20,movetokafra,10:16
0x009b,32,wanttoconnection,3:12:23:27:31
0x009f,17,useitem,5:13
0x00a2,11,solvecharname,7
0x00a7,13,walktoxy,10
0x00f3,-1,globalmessage,2:4
0x00f5,9,takeitem,5
0x00f7,21,movefromkafra,11:17
0x0113,34,useskilltopos,10:18:22:32
0x0116,20,dropitem,15:18
0x0190,20,actionrequest,9:19
0x0193,2,closekafra,0

//2005-03-28aSakexe
0x0224,10
0x0225,2,taekwon,0
0x0226,282

//2005-04-04aSakexe
0x0227,18
0x0228,18

//2005-04-11aSakexe
0x0229,15
0x022a,58
0x022b,57
0x022c,64

//2005-04-25aSakexe
0x022d,5,hommenu,2:4
0x0232,9,hommoveto,2:6
0x0233,11,homattack,2:6:10
0x0234,6,hommovetomaster,2

//2005-05-09aSakexe
packet_ver: 16
0x0072,25,useskilltoid,6:10:21
0x007e,102,useskilltoposinfo,5:9:12:20:22
0x0085,11,changedir,7:10
0x0089,8,ticksend,4
0x008c,11,getcharnamerequest,7
0x0094,14,movetokafra,7:10
0x009b,26,wanttoconnection,4:9:17:21:25
0x009f,14,useitem,4:10
0x00a2,15,solvecharname,11
0x00a7,8,walktoxy,5
0x00f5,8,takeitem,4
0x00f7,22,movefromkafra,14:18
0x0113,22,useskilltopos,5:9:12:20
0x0116,10,dropitem,5:8
0x0190,19,actionrequest,5:18

//2005-05-23aSakexe
0x022e,69
0x0230,12

//2005-05-30aSakexe
0x022e,71
0x0235,-1
0x0236,10
0x0237,2,rankingpk,0
0x0238,282

//2005-05-31aSakexe
0x0216,2
0x0239,11

//2005-06-08aSakexe
0x0216,6
0x0217,2,blacksmith,0
0x022f,5
0x0231,26,changehomunculusname,2
0x023a,4
0x023b,36,storagepassword,2:4:20
0x023c,6

//2005-06-22aSakexe
0x022e,71

//2005-06-28aSakexe
packet_ver: 17
0x0072,34,useskilltoid,6:17:30
0x007e,113,useskilltoposinfo,12:15:18:31:33
0x0085,17,changedir,8:16
0x0089,13,ticksend,9
0x008c,8,getcharnamerequest,4
0x0094,31,movetokafra,16:27
0x009b,32,wanttoconnection,9:15:23:27:31
0x009f,19,useitem,9:15
0x00a2,9,solvecharname,5
0x00a7,11,walktoxy,8
0x00f5,13,takeitem,9
0x00f7,18,movefromkafra,11:14
0x0113,33,useskilltopos,12:15:18:31
0x0116,12,dropitem,3:10
0x0190,24,actionrequest,11:23
0x0216,-1
0x023d,-1
0x023e,4

//2005-07-18aSakexe
packet_ver: 18
0x0072,19,useskilltoid,5:11:15
0x007e,110,useskilltoposinfo,9:15:23:28:30
0x0085,11,changedir,6:10
0x0089,7,ticksend,3
0x008c,11,getcharnamerequest,7
0x0094,21,movetokafra,12:17
0x009b,31,wanttoconnection,3:13:22:26:30
0x009f,12,useitem,3:8
0x00a2,18,solvecharname,14
0x00a7,15,walktoxy,12
0x00f5,7,takeitem,3
0x00f7,13,movefromkafra,5:9
0x0113,30,useskilltopos,9:15:23:28
0x0116,12,dropitem,6:10
0x0190,21,actionrequest,5:20
0x0216,6
0x023f,2,mailrefresh,0
0x0240,8
0x0241,6,mailread,2
0x0242,-1
0x0243,6,maildelete,2
0x0244,6,mailgetattach,2
0x0245,7
0x0246,4,mailwinopen,2
0x0247,8,mailsetattach,2:4
0x0248,68
0x0249,3
0x024a,70
0x024b,4,auctioncancelreg,2
0x024c,8,auctionsetitem,2:4
0x024d,14
0x024e,6,auctioncancel,2
0x024f,10,auctionbid,2:6
0x0250,3
0x0251,2
0x0252,-1

//2005-07-19bSakexe
packet_ver: 19
0x0072,34,useskilltoid,6:17:30
0x007e,113,useskilltoposinfo,12:15:18:31:33
0x0085,17,changedir,8:16
0x0089,13,ticksend,9
0x008c,8,getcharnamerequest,4
0x0094,31,movetokafra,16:27
0x009b,32,wanttoconnection,9:15:23:27:31
0x009f,19,useitem,9:15
0x00a2,9,solvecharname,5
0x00a7,11,walktoxy,8
0x00f5,13,takeitem,9
0x00f7,18,movefromkafra,11:14
0x0113,33,useskilltopos,12:15:18:31
0x0116,12,dropitem,3:10
0x0190,24,actionrequest,11:23

//2005-08-01aSakexe
0x0245,3
0x0251,4

//2005-08-08aSakexe
0x024d,12,auctionregister,2:6:10
0x024e,4

//2005-08-17aSakexe
0x0253,3
0x0254,3,feelsaveok,2

//2005-08-29aSakexe
0x0240,-1
0x0248,-1,mailsend,2:4:28:68:69
0x0255,5
0x0256,-1
0x0257,8

//2005-09-12bSakexe
0x0256,5
0x0258,2
0x0259,3

//2005-10-10aSakexe
0x020e,32
0x025a,-1
0x025b,6,cooking,2:4

//2005-10-13aSakexe
0x007a,6
0x0251,32
0x025c,4,auctionbuysell,2

//2005-10-17aSakexe
0x007a,58
0x025d,6,auctionclose,2
0x025e,4

//2005-10-24aSakexe
0x025f,6
0x0260,6

//2005-11-07aSakexe
0x024e,6,auctioncancel,2
0x0251,34,auctionsearch,2:4:8:32

//2006-01-09aSakexe
0x0261,11
0x0262,11
0x0263,11
0x0264,20
0x0265,20
0x0266,30
0x0267,4
0x0268,4
0x0269,4
0x026a,4
0x026b,4
0x026c,4
0x026d,4
0x026f,2
0x0270,2
0x0271,38
0x0272,44

//2006-01-26aSakexe
0x0271,40

//2006-03-06aSakexe
0x0273,6
0x0274,8

//2006-03-13aSakexe
0x0273,30,mailreturn,2:6

//2006-03-27aSakexe
packet_ver: 20
0x0072,26,useskilltoid,11:18:22
0x007e,120,useskilltoposinfo,5:15:29:38:40
0x0085,12,changedir,7:11
//0x0089,13,ticksend,9
0x008c,12,getcharnamerequest,8
0x0094,23,movetokafra,5:19
0x009b,37,wanttoconnection,9:21:28:32:36
0x009f,24,useitem,9:20
0x00a2,11,solvecharname,7
0x00a7,15,walktoxy,12
0x00f5,13,takeitem,9
0x00f7,26,movefromkafra,11:22
0x0113,40,useskilltopos,5:15:29:38
0x0116,17,dropitem,8:15
0x0190,18,actionrequest,7:17

//2006-10-23aSakexe
0x006d,110

//2006-04-24aSakexe to 2007-01-02aSakexe
0x023e,8
0x0277,84
0x0278,2
0x0279,2
0x027a,-1
0x027b,14
0x027c,60
0x027d,62
0x027e,-1
0x027f,8
0x0280,12
0x0281,4
0x0282,284
0x0283,6
0x0284,14
0x0285,6
0x0286,4
0x0287,-1
0x0288,6
0x0289,8
0x028a,18
0x028b,-1
0x028c,46
0x028d,34
0x028e,4
0x028f,6
0x0290,4
0x0291,4
0x0292,2,autorevive,0
0x0293,70
0x0294,10
0x0295,-1
0x0296,-1
0x0297,-1
0x0298,8
0x0299,6
0x029a,27
0x029c,66
0x029d,-1
0x029e,11
0x029f,3,mermenu,2
0x02a0,-1
0x02a1,-1
0x02a2,8

//2007-01-08aSakexe
packet_ver: 21
0x0072,30,useskilltoid,10:14:26
0x007e,120,useskilltoposinfo,10:19:23:38:40
0x0085,14,changedir,10:13
0x0089,11,ticksend,7
0x008c,17,getcharnamerequest,13
0x0094,17,movetokafra,4:13
0x009b,35,wanttoconnection,7:21:26:30:34
0x009f,21,useitem,7:17
0x00a2,10,solvecharname,6
0x00a7,8,walktoxy,5
0x00f5,11,takeitem,7
0x00f7,15,movefromkafra,3:11
0x0113,40,useskilltopos,10:19:23:38
0x0116,19,dropitem,11:17
0x0190,10,actionrequest,4:9

//2007-01-22aSakexe
0x02a3,18
0x02a4,2

//2007-01-29aSakexe
0x029b,72
0x02a3,-1
0x02a4,-1
0x02a5,8

// 2007-02-05aSakexe
0x02aa,4
0x02ab,36
0x02ac,6

//2007-02-12aSakexe
packet_ver: 22
0x0072,25,useskilltoid,6:10:21
0x007e,102,useskilltoposinfo,5:9:12:20:22
0x0085,11,changedir,7:10
0x0089,8,ticksend,4
0x008c,11,getcharnamerequest,7
0x0094,14,movetokafra,7:10
0x009b,26,wanttoconnection,4:9:17:21:25
0x009f,14,useitem,4:10
0x00a2,15,solvecharname,11
//0x00a7,8,walktoxy,5
0x00f5,8,takeitem,4
0x00f7,22,movefromkafra,14:18
0x0113,22,useskilltopos,5:9:12:20
0x0116,10,dropitem,5:8
0x0190,19,actionrequest,5:18

//2007-05-07aSakexe
0x01fd,15,repairitem,2:4:6:7:9:11:13

//2007-02-27aSakexe to 2007-10-02aSakexe
0x0288,10,cashshopbuy,2:4:6
0x0289,12
0x02a6,22
0x02a7,22
0x02a8,162
0x02a9,58
0x02ad,8
0x02b0,85
0x02b1,-1
0x02b2,-1
0x02b3,107
0x02b4,6
0x02b5,-1
0x02b6,7,queststate,2:6
0x02b7,7
0x02b8,22
0x02b9,191
0x02ba,11,hotkey,2:4:5:9
0x02bb,8
0x02bc,6
0x02bf,10
0x02c0,2
0x02c1,-1
0x02c2,-1
0x02c4,26,partyinvite2,2
0x02c5,30
0x02c6,30
0x02c7,7,replypartyinvite2,2:6
0x02c8,3,partytick,2
0x02c9,3
0x02ca,3
0x02cb,20
0x02cc,4
0x02cd,26
0x02ce,10
0x02cf,6
0x02d0,-1
0x02d1,-1
0x02d2,-1
0x02d3,4,ZC_NOTIFY_BIND_ON_EQUIP,2
0x02d4,29
0x02d5,2
0x02d6,6,viewplayerequip,2
0x02d7,-1
0x02d8,10,equiptickbox,2:6
0x02d9,10
0x02da,3
0x02db,-1,battlechat,2:4
0x02dc,-1
0x02dd,32
0x02de,6
0x02df,36
0x02e0,34

//2007-10-23aSakexe
0x02cb,65
0x02cd,71

//2007-11-06aSakexe
0x0078,55
0x007c,42
0x022c,65
0x029b,80

//2007-11-13aSakexe
0x02e1,33

//2007-11-20aSakexe
//0x01df,10 <- ???
0x02e2,14
0x02e3,25
0x02e4,8
0x02e5,8
0x02e6,6

//2007-11-27aSakexe
0x02e7,-1

//2008-01-02aSakexe
0x01df,6,gmreqaccname,2
0x02e8,-1
0x02e9,-1
0x02ea,-1
0x02eb,13
0x02ec,67
0x02ed,59
0x02ee,60
0x02ef,8

//2008-03-18aSakexe
0x02bf,-1
0x02c0,-1
0x02f0,10
0x02f1,2,progressbar,0
0x02f2,2

//2008-03-25bSakexe
0x02f3,-1
0x02f4,-1
0x02f5,-1
0x02f6,-1
0x02f7,-1
0x02f8,-1
0x02f9,-1
0x02fa,-1
0x02fb,-1
0x02fc,-1
0x02fd,-1
0x02fe,-1
0x02ff,-1
0x0300,-1

//2008-04-01aSakexe
0x0301,-1
0x0302,-1
0x0303,-1
0x0304,-1
0x0305,-1
0x0306,-1
0x0307,-1
0x0308,-1
0x0309,-1
0x030a,-1
0x030b,-1
0x030c,-1
0x030d,-1
0x030e,-1
0x030f,-1
0x0310,-1
0x0311,-1
0x0312,-1
0x0313,-1
0x0314,-1
0x0315,-1
0x0316,-1
0x0317,-1
0x0318,-1
0x0319,-1
0x031a,-1
0x031b,-1
0x031c,-1
0x031d,-1
0x031e,-1
0x031f,-1
0x0320,-1
0x0321,-1
0x0322,-1
0x0323,-1
0x0324,-1
0x0325,-1
0x0326,-1
0x0327,-1
0x0328,-1
0x0329,-1
0x032a,-1
0x032b,-1
0x032c,-1
0x032d,-1
0x032e,-1
0x032f,-1
0x0330,-1
0x0331,-1
0x0332,-1
0x0333,-1
0x0334,-1
0x0335,-1
0x0336,-1
0x0337,-1
0x0338,-1
0x0339,-1
0x033a,-1
0x033b,-1
0x033c,-1
0x033d,-1
0x033e,-1
0x033f,-1
0x0340,-1
0x0341,-1
0x0342,-1
0x0343,-1
0x0344,-1
0x0345,-1
0x0346,-1
0x0347,-1
0x0348,-1
0x0349,-1
0x034a,-1
0x034b,-1
0x034c,-1
0x034d,-1
0x034e,-1
0x034f,-1
0x0350,-1
0x0351,-1
0x0352,-1
0x0353,-1
0x0354,-1
0x0355,-1
0x0356,-1
0x0357,-1
0x0358,-1
0x0359,-1
0x035a,-1

//2008-05-27aSakexe
0x035b,-1
0x035c,2
0x035d,-1
0x035e,2
0x035f,-1
0x0389,-1

//2008-08-20aSakexe
0x040c,-1
0x040d,-1
0x040e,-1
0x040f,-1
0x0410,-1
0x0411,-1
0x0412,-1
0x0413,-1
0x0414,-1
0x0415,-1
0x0416,-1
0x0417,-1
0x0418,-1
0x0419,-1
0x041a,-1
0x041b,-1
0x041c,-1
0x041d,-1
0x041e,-1
0x041f,-1
0x0420,-1
0x0421,-1
0x0422,-1
0x0423,-1
0x0424,-1
0x0425,-1
0x0426,-1
0x0427,-1
0x0428,-1
0x0429,-1
0x042a,-1
0x042b,-1
0x042c,-1
0x042d,-1
0x042e,-1
0x042f,-1
0x0430,-1
0x0431,-1
0x0432,-1
0x0433,-1
0x0434,-1
0x0435,-1

//2008-09-10aSakexe
packet_ver: 23
0x0436,19,wanttoconnection,2:6:10:14:18
0x0437,7,actionrequest,2:6
0x0438,10,useskilltoid,2:4:6
0x0439,8,useitem,2:4

//2008-11-13aSakexe
0x043d,8
0x043e,-1
0x043f,8

//2008-11-26aSakexe
0x01a2,37
0x0440,10
0x0441,4

//2008-12-10aSakexe
0x0442,-1
0x0443,8,skillselectmenu,2:6

//2009-01-14aSakexe
0x043f,25
0x0444,-1
0x0445,10

//2009-02-18aSakexe
0x0446,14

//2009-02-25aSakexe
0x0448,-1

//2009-03-30aSakexe
0x0449,4

//2009-04-08aSakexe
0x02a6,-1
0x02a7,-1
0x044a,6,clientversion,2

//Renewal Clients
//2008-08-27aRagexeRE
packet_ver: 24
0x0072,22,useskilltoid,9:15:18
0x007c,44
0x007e,105,useskilltoposinfo,10:14:18:23:25
0x0085,10,changedir,4:9
0x0089,11,ticksend,7
0x008c,14,getcharnamerequest,10
0x0094,19,movetokafra,3:15
0x009b,34,wanttoconnection,7:15:25:29:33
0x009f,20,useitem,7:20
0x00a2,14,solvecharname,10
0x00a7,9,walktoxy,6
0x00f5,11,takeitem,7
0x00f7,17,movefromkafra,3:13
0x0113,25,useskilltopos,10:14:18:23
0x0116,17,dropitem,6:15
0x0190,23,actionrequest,9:22
0x02e2,20
0x02e3,22
0x02e4,11
0x02e5,9

//2008-09-10aRagexeRE
packet_ver: 25
0x0436,19,wanttoconnection,2:6:10:14:18
0x0437,7,actionrequest,2:6
0x0438,10,useskilltoid,2:4:6
0x0439,8,useitem,2:4

//2008-11-12aRagexeRE
0x043d,8
//0x043e,-1
0x043f,8

//2008-12-17aRagexeRE
0x01a2,37
//0x0440,10
//0x0441,4
//0x0442,8
//0x0443,8

//2008-12-17bRagexeRE
0x006d,114

//2009-01-21aRagexeRE
0x043f,25
//0x0444,-1
//0x0445,10

//2009-02-18aRagexeRE
//0x0446,14

//2009-02-26cRagexeRE
//0x0448,-1

//2009-04-01aRagexeRE
//0x0449,4

//2009-05-14aRagexeRE
//0x044b,2

//2009-05-20aRagexeRE
//0x07d0,6
//0x07d1,2
//0x07d2,-1
//0x07d3,4
//0x07d4,4
//0x07d5,4
//0x07d6,4
//0x0447,2

//2009-06-03aRagexeRE
0x07d7,8,partychangeoption,2:6:7
0x07d8,8
0x07d9,254
0x07da,6,partychangeleader,2

//2009-06-10aRagexeRE
//0x07db,8

//2009-06-17aRagexeRE
0x07d9,268
//0x07dc,6
//0x07dd,54
//0x07de,30
//0x07df,54

//2009-07-01aRagexeRE
//0x0275,37
//0x0276,-1

//2009-07-08aRagexeRE
//0x07e0,58

//2009-07-15aRagexeRE
0x07e1,15

//2009-08-05aRagexeRE
0x07e2,8

//2009-08-18aRagexeRE
0x07e3,6
0x07e4,-1,itemlistwindowselected,2:4:8:12
0x07e6,8

//2009-08-25aRagexeRE
//0x07e6,28
0x07e7,5

//2009-09-22aRagexeRE
0x07e5,8
0x07e6,8
0x07e7,32
0x07e8,-1
0x07e9,5

//2009-09-29aRagexeRE
//0x07ea,2
//0x07eb,-1
//0x07ec,6
//0x07ed,8
//0x07ee,6
//0x07ef,8
//0x07f0,4
//0x07f2,4
//0x07f3,3

//2009-10-06aRagexeRE
//0x07ec,8
//0x07ed,10
//0x07f0,8
//0x07f1,15
//0x07f2,6
//0x07f3,4
//0x07f4,3

//2009-10-27aRagexeRE
0x07f5,6,gmfullstrip,2
0x07f6,14

//2009-11-03aRagexeRE
0x07f7,-1
0x07f8,-1
0x07f9,-1

//2009-11-17aRagexeRE
0x07fa,8

//2009-11-24aRagexeRE
0x07fb,25

//2009-12-01aRagexeRE
0x07fc,10
0x07fd,-1,ZC_BROADCASTING_SPECIAL_ITEM_OBTAIN,0
0x07fe,26
//0x07ff,-1

//2009-12-15aRagexeRE
0x0800,-1
//0x0801,-1

//2009-12-22aRagexeRE
0x0802,18,bookingregreq,2:4:6		// Booking System
0x0803,4
0x0804,8		// Booking System
0x0805,-1
0x0806,4,bookingdelreq,2		// Booking System
//0x0807,2
0x0808,4		// Booking System
//0x0809,14
//0x080A,50
//0x080B,18
//0x080C,6

//2009-12-29aRagexeRE
0x0804,14,bookingsearchreq,2:4:6:8:12		// Booking System
0x0806,2,bookingdelreq,0		// Booking System
0x0807,4
0x0808,14,bookingupdatereq,2		// Booking System
0x0809,50
0x080A,18
0x080B,6		// Booking System

//2010-01-05aRagexeRE
0x0801,-1,purchasereq2,2:4:8:12

//2010-01-26aRagexeRE
//0x080C,2
//0x080D,3
0x080E,14

//2010-02-09aRagexeRE
//0x07F0,6

//2010-02-23aRagexeRE
0x080F,20

//2010-03-03aRagexeRE
0x0810,3
0x0811,-1,reqopenbuyingstore,2:4:8:9:89
//0x0812,86
//0x0813,6
//0x0814,6
//0x0815,-1
//0x0817,-1
//0x0818,6
//0x0819,4

//2010-03-09aRagexeRE
0x0813,-1
//0x0814,2
//0x0815,6
0x0816,6
0x0818,-1
//0x0819,10
//0x081A,4
//0x081B,4
//0x081C,6
0x081d,22
0x081e,8

//2010-03-23aRagexeRE
//0x081F,-1

//2010-04-06aRagexeRE
//0x081A,6

//2010-04-13aRagexeRE
//0x081A,10
0x0820,11
//0x0821,2
//0x0822,9
//0x0823,-1

//2010-04-14dRagexeRE
//0x081B,8

//2010-04-20aRagexeRE
0x0812,8
0x0814,86
0x0815,2,reqclosebuyingstore,0
0x0817,6,reqclickbuyingstore,2
0x0819,-1,reqtradebuyingstore,2:4:8:12
0x081a,4
0x081b,10
0x081c,10
0x0824,6

//2010-06-01aRagexeRE
//0x0825,-1
//0x0826,4
0x0835,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0836,-1
0x0837,3
//0x0838,3

//2010-06-08aRagexeRE
0x0838,2,searchstoreinfonextpage,0
0x083A,4 	// Search Stalls Feature
0x083B,2,closesearchstoreinfo,0
0x083C,12,searchstoreinfolistitemclick,2:6:10
0x083D,6

//2010-06-15aRagexeRE
//0x083E,26

//2010-06-22aRagexeRE
//0x083F,22

//2010-06-29aRagexeRE
0x00AA,9,ZC_WEAR_EQUIP_ACK,2:4:6:8
//0x07F1,18
//0x07F2,8
//0x07F3,6

//2010-07-01aRagexeRE
0x083A,5 	// Search Stalls Feature

//2010-07-13aRagexeRE
//0x0827,6
//0x0828,14
//0x0829,6
//0x082A,10
//0x082B,6
//0x082C,14
//0x0840,-1
//0x0841,19

//2010-07-14aRagexeRE
//0x0841,4

//2010-08-03aRagexeRE
0x0839,66
0x0842,6,recall2,2
0x0843,6,remove2,2

//2010-11-24aRagexeRE
packet_ver: 26
0x0288,-1,cashshopbuy,2:4:8:10
0x0436,19,wanttoconnection,2:6:10:14:18
0x035f,5,walktoxy,2
0x0360,6,ticksend,2
0x0361,5,changedir,2:4
0x0362,6,takeitem,2
0x0363,6,dropitem,2:4
0x0364,8,movetokafra,2:4
0x0365,8,movefromkafra,2:4
0x0366,10,useskilltopos,2:4:6:8
0x0367,90,useskilltoposinfo,2:4:6:8:10
0x0368,6,getcharnamerequest,2
0x0369,6,solvecharname,2
0x0856,-1
0x0857,-1
0x0858,-1
0x0859,-1
0x08d0,9,ZC_WEAR_EQUIP_ACK,2:4:6:8

//2011-10-05aRagexeRE
packet_ver: 27
packet_keys: 0x291E6762,0x77CD391A,0x60AC2F16 // [Shakto]
0x0364,5,walktoxy,2
0x0817,6,ticksend,2
0x0366,5,changedir,2:4
0x0815,6,takeitem,2
0x0885,6,dropitem,2:4
0x0893,8,movetokafra,2:4
0x0897,8,movefromkafra,2:4
0x0369,10,useskilltopos,2:4:6:8
0x08ad,90,useskilltoposinfo,2:4:6:8:10
0x088a,6,getcharnamerequest,2
0x0838,6,solvecharname,2
0x0439,8,useitem,2:4
0x08d2,10
0x08d1,7
0x0846,4,cashshopreqtab,2 //2011-07-18

// 2011-11-02aRagexe
packet_ver: 28
packet_keys: 0x5324329D,0x5D545D52,0x06137269 // [Shakto]
0x0436,26,friendslistadd,2
0x0898,5,hommenu,2:4
0x0281,36,storagepassword,2:4:20
0x088d,26,partyinvite2,2
0x083c,19,wanttoconnection,2:6:10:14:18
0x08aa,7,actionrequest,2:6
0x02c4,10,useskilltoid,2:4:6
0x0811,-1,itemlistwindowselected,2:4:8:12
0x0890,8
0x08a5,18,bookingregreq,2:4:6
0x0835,-1,reqopenbuyingstore,2:4:8:9:89
0x089b,2,reqclosebuyingstore,0
0x08a1,6,reqclickbuyingstore,2
0x089e,-1,reqtradebuyingstore,2:4:8:12
0x08ab,-1,searchstoreinfo,2:4:5:9:13:14:15
0x088b,2,searchstoreinfonextpage,0
0x08a2,12,searchstoreinfolistitemclick,2:6:10
0x08cf,10 //Amulet spirits

//2012-03-07fRagexeRE
packet_ver:29
packet_keys: 0x382A6DEF,0x5CBE7202,0x61F46637 // [Shakto]
0x086A,19,wanttoconnection,2:6:10:14:18
0x0437,5,walktoxy,2
0x0887,6,ticksend,2
0x0890,5,changedir,2:4
0x0865,6,takeitem,2
0x02C4,6,dropitem,2:4
0x093B,8,movetokafra,2:4
0x0963,8,movefromkafra,2:4
0x0438,10,useskilltopos,2:4:6:8
0x0366,90,useskilltoposinfo,2:4:6:8:10
0x096A,6,getcharnamerequest,2
0x0368,6,solvecharname,2
0x0369,26,friendslistadd,2
0x0863,5,hommenu,2:4
0x0861,36,storagepassword,2:4:20
0x0929,26,partyinvite2,2
0x0885,7,actionrequest,2:6
0x0889,10,useskilltoid,2:4:6
0x0870,-1,itemlistwindowselected,2:4:8:12
//0x0926,41,bookingregreq,2:4:6
0x0815,-1,reqopenbuyingstore,2:4:8:9:89
0x0817,2,reqclosebuyingstore,0
0x0360,6,reqclickbuyingstore,2
0x0811,-1,reqtradebuyingstore,2:4:8:12
0x0884,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0835,2,searchstoreinfonextpage,0
0x0838,12,searchstoreinfolistitemclick,2:6:10
0x0439,8,useitem,2:4
0x0365,41,bookingregreq,2:4:6

// New Packet
0x090F,-1		// ZC_NOTIFY_NEWENTRY7
0x0914,-1		// ZC_NOTIFY_MOVEENTRY8
0x0915,-1		// ZC_NOTIFY_STANDENTRY9

//2012-04-10aRagexeRE
packet_ver: 30
packet_keys: 0x01581359,0x452D6FFA,0x6AFB6E2E // [Shakto]
0x01fd,15,repairitem,2:4:6:7:9:11:13
0x089c,26,friendslistadd,2
0x0885,5,hommenu,2:4
0x0961,36,storagepassword,2:4:20
0x0288,-1,cashshopbuy,2:4:8:10
0x091c,26,partyinvite2,2
0x094b,19,wanttoconnection,2:6:10:14:18
0x0369,7,actionrequest,2:6
0x083c,10,useskilltoid,2:4:6
0x0439,8,useitem,2:4
0x0945,-1,itemlistwindowselected,2:4:8:12
0x0815,-1,reqopenbuyingstore,2:4:8:9:89
0x0817,2,reqclosebuyingstore,0
0x0360,6,reqclickbuyingstore,2
0x0811,-1,reqtradebuyingstore,2:4:8:12
0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0835,2,searchstoreinfonextpage,0
0x0838,12,searchstoreinfolistitemclick,2:6:10
0x0437,5,walktoxy,2
0x0886,6,ticksend,2
0x0871,5,changedir,2:4
0x0938,6,takeitem,2
0x0891,6,dropitem,2:4
0x086c,8,movetokafra,2:4
0x08a6,8,movefromkafra,2:4
0x0438,10,useskilltopos,2:4:6:8
0x0366,90,useskilltoposinfo,2:4:6:8:10
0x0889,6,getcharnamerequest,2
0x0884,6,solvecharname,2
0x08e6,4
0x08e7,10,bookingsearchreq,2:4:6:8:12
0x08e8,-1
0x08e9,2,bookingdelreq,0
0x08ea,4
0x08eb,39,bookingupdatereq,2
0x08ec,73
0x08ed,43
0x08ee,6
0x08ef,6,bookingignorereq,2
0x08f0,6
0x08f1,6,bookingjoinpartyreq,2
0x08f2,36
0x08f3,-1
0x08f4,6
0x08f5,-1,bookingsummonmember,2:4
0x08f6,22
0x08f7,3
0x08f8,7
0x08f9,6
0x08fa,6
0x08fb,6,bookingcanceljoinparty,2
0x0907,5,moveitem,2:4
0x0908,5
0x08d7,28,battlegroundreg,2:4
0x0977,14 //Monster HP Bar
0x0916,26,guildinvite2,2
0x091d,41,bookingregreq,2:4:6
0x08cb,10,ZC_PERSONAL_INFOMATION,2:4:6:8:10:11:13:15 //Still need further information
// Merge Item
0x096D,-1,ZC_MERGE_ITEM_OPEN,2:4 // ZC_MERGE_ITEM_OPEN
0x096E,-1,mergeitem_req,2:4 // CZ_REQ_MERGE_ITEM
0x096F,7,ZC_ACK_MERGE_ITEM,2:4:6 // ZC_ACK_MERGE_ITEM
0x0974,2,mergeitem_cancel,0 // CZ_CANCEL_MERGE_ITEM

//2012-04-18aRagexeRE [Special Thanks to Judas!]
packet_ver: 31
packet_keys: 0x01540E48,0x13041224,0x31247924 // [Shakto]
0x023B,26,friendslistadd,2
0x0361,5,hommenu,2:4
0x08A8,36,storagepassword,2:4:20
0x0802,26,partyinvite2,2
0x022D,19,wanttoconnection,2:6:10:14:18
0x0281,-1,itemlistwindowselected,2:4:8:12
0x035F,6,ticksend,2
0x0202,5,changedir,2:4
0x07E4,6,takeitem,2
0x0362,6,dropitem,2:4
0x07EC,8,movetokafra,2:4
0x0364,8,movefromkafra,2:4
0x096A,6,getcharnamerequest,2
0x0368,6,solvecharname,2
0x08E5,41,bookingregreq,2:4:6    //Added to prevent disconnections
0x08d2,10

//2012-06-18
packet_ver: 32
packet_keys: 0x261F261F,0x261F261F,0x261F261F // [Shakto]
0x0983,29 // ZC_MSG_STATE_CHANGE3
0x0861,41,bookingregreq,2:4:6 //actually 12-05-03

//2012-07-02aRagexeRE (unstable)
packet_ver: 33
packet_keys: 0x25733B31,0x53486CFD,0x398649BD // [Shakto]
0x0363,19,wanttoconnection,2:6:10:14:18
0x0364,6,ticksend,2
0x085a,7,actionrequest,2:6
0x0861,8,movefromkafra,2:4
0x0862,10,useskilltoid,2:4:6
0x0863,10,useskilltopos,2:4:6:8
0x0886,6,solvecharname,2
0x0889,90,useskilltoposinfo,2:4:6:8:10
0x089e,6,dropitem,2:4
0x089f,6,takeitem,2
0x08a0,8,movetokafra,2:4
0x094a,6,getcharnamerequest,2
0x0953,5,walktoxy,2
0x0960,5,changedir,2:4
0x0879,41,bookingregreq,2:4:6

//2013-03-20Ragexe (Judas)
packet_ver: 34
packet_keys: 0x3F094C49,0x55F86C1E,0x58AA359A // [Shakto]
0x014f,6,guildrequestinfo,2
0x01fd,15,repairitem,2:4:6:7:9:11:13
//0x0281,-1,itemlistwindowselected,2:4:8:12
0x035f,6,reqclickbuyingstore,2
0x0363,6,ticksend,2
0x0365,12,searchstoreinfolistitemclick,2:6:10
0x0438,6,dropitem,2:4
0x0447,2,booking_playcancel,0 // CZ_BLOCKING_PLAY_CANCEL
0x044A,6,clientversion,2
0x0844,2,cashshopopen,0
0x0849,16 //clif_cashshop_result
0x0848,-1,cashshopbuy,2:6:4:10
0x084a,2,cashshopclose,0
0x084b,19 //fallitem4
0x085a,90,useskilltoposinfo,2:4:6:8:10
0x085d,18,bookingregreq,2:4:6
0x0868,-1,itemlistwindowselected,2:4:8:12
0x086d,26,partyinvite2,2
0x086f,26,friendslistadd,2
0x0874,8,movefromkafra,2:4
0x0881,5,walktoxy,2
0x0886,2,reqclosebuyingstore,0
0x0888,19,wanttoconnection,2:6:10:14:18
0x088e,7,actionrequest,2:6
0x0897,5,changedir,2:4
0x0898,6,getcharnamerequest,2
0x089b,10,useskilltoid,2:4:6
0x08ac,8,movetokafra,2:4
0x08c9,2,cashshopitemlist,0
0x08cf,10 //Amulet spirits
0x08d2,10
0x0907,5,moveitem,2:4
0x0908,5
0x0922,-1,reqtradebuyingstore,2:4:8:12
//0x092e,2,searchstoreinfonextpage,0
0x0933,6,takeitem,2
0x0938,-1,reqopenbuyingstore,2:4:8:9:89
0x093f,5,hommenu,2:4
0x0947,36,storagepassword,2:4:20
0x094c,6,solvecharname,2
0x094e,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0959,10,useskilltopos,2:4:6:8
//0x095a,8,mailsetattach,2:4
0x0977,14 //Monster HP Bar
0x0978,6,reqworldinfo,2
0x0979,50 //ackworldinfo
0x097b,16,ZC_PERSONAL_INFOMATION,2:4:8:12:16:17:21:25 //Still need further information
//0x0981,12,ZC_PERSONAL_INFOMATION_CHN,2:4:6:8:12:13:15:17:10 // Disabled until further information is found.
0x0990,31 //additem
0x0991,-1 //inv itemlist normal
0x0992,-1 //inv itemlist equip
0x0993,-1 //cart itemlist normal
0x0994,-1 //cart itemlist equip
0x0995,-1 //store itemlist normal
0x0996,-1 //store itemlist equip
0x0997,-1 //ZC_EQUIPWIN_MICROSCOPE_V5
0x0998,8,equipitem,2:4 // CZ_REQ_WEAR_EQUIP_V5
0x0999,11,ZC_WEAR_EQUIP_ACK,2:4:8:10 // cz_wear_equipv5
0x099a,9 // take_off_equipv5
0x099b,8 //maptypeproperty2

// New Packets
0x08C8,34	// ZC_NOTIFY_ACT3
0x08ff,24 	// ZC_EFST_SET_ENTER
0x0984,28 	// ZC_EFST_SET_ENTER2
0x099f,22 	// ZC_SKILL_ENTRY4

//2013-05-15aRagexe (Yommy)
packet_ver: 35
packet_keys: 0x75794A38,0x58A96BC1,0x296E6FB8 // [Shakto]
0x0369,7,actionrequest,2:6
0x083C,10,useskilltoid,2:4:6
0x0437,5,walktoxy,2
0x035F,6,ticksend,2
0x0362,5,changedir,2:4
0x08A1,6,takeitem,2
0x0944,6,dropitem,2:4
0x0887,8,movetokafra,2:4
0x08AC,8,movefromkafra,2:4
0x0438,10,useskilltopos,2:4:6:8
0x0366,90,useskilltoposinfo,2:4:6:8:10
0x096A,6,getcharnamerequest,2
0x0368,6,solvecharname,2
0x0838,12,searchstoreinfolistitemclick,2:6:10
0x0835,2,searchstoreinfonextpage,0
0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0811,-1,reqtradebuyingstore,2:4:8:12
0x0360,6,reqclickbuyingstore,2
0x0817,2,reqclosebuyingstore,0
0x0815,-1,reqopenbuyingstore,2:4:8:9:89
0x092D,18,bookingregreq,2:4:6
//0x08AA,8 CZ_JOIN_BATTLE_FIELD
0x0963,-1,itemlistwindowselected,2:4:8:12
0x0943,19,wanttoconnection,2:6:10:14:18
0x0947,26,partyinvite2,2
//0x0862,4 CZ_GANGSI_RANK
0x0962,26,friendslistadd,2
0x0931,5,hommenu,2:4
0x093e,36,storagepassword,2:4:20

//2013-05-22Ragexe (Yommy)
packet_ver: 36
packet_keys: 0x6948050B,0x06511D9D,0x725D4DF1 // [Shakto]
0x08A2,7,actionrequest,2:6
0x095C,10,useskilltoid,2:4:6
0x0360,5,walktoxy,2
0x07EC,6,ticksend,2
0x0925,5,changedir,2:4
0x095E,6,takeitem,2
0x089C,6,dropitem,2:4
0x08a3,8,movetokafra,2:4
0x087E,8,movefromkafra,2:4
0x0811,10,useskilltopos,2:4:6:8
0x0964,90,useskilltoposinfo,2:4:6:8:10
0x08a6,6,getcharnamerequest,2
0x0369,6,solvecharname,2
0x093e,12,searchstoreinfolistitemclick,2:6:10
0x08aa,2,searchstoreinfonextpage,0
0x095b,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0952,-1,reqtradebuyingstore,2:4:8:12
0x0368,6,reqclickbuyingstore,2
0x086E,2,reqclosebuyingstore,0
0x0874,-1,reqopenbuyingstore,2:4:8:9:89
0x089B,18,bookingregreq,2:4:6
//0x0965,8 CZ_JOIN_BATTLE_FIELD
0x086A,-1,itemlistwindowselected,2:4:8:12
0x08A9,19,wanttoconnection,2:6:10:14:18
0x0950,26,partyinvite2,2
//0x08AC,4 CZ_GANGSI_RANK
0x0362,26,friendslistadd,2
0x0926,5,hommenu,2:4
0x088e,36,storagepassword,2:4:20

//2013-05-29Ragexe (Shakto)
packet_ver: 37
packet_keys: 0x023A6C87,0x14BF1F1E,0x5CC70CC9 // [Shakto]
0x0890,7,actionrequest,2:6
0x0438,10,useskilltoid,2:4:6
0x0876,5,walktoxy,2
0x0897,6,ticksend,2
0x0951,5,changedir,2:4
0x0895,6,takeitem,2
0x08A7,6,dropitem,2:4
0x0938,8,movetokafra,2:4
0x0957,8,movefromkafra,2:4
0x0917,10,useskilltopos,2:4:6:8
0x085E,90,useskilltoposinfo,2:4:6:8:10
0x0863,6,getcharnamerequest,2
0x0937,6,solvecharname,2
0x085A,12,searchstoreinfolistitemclick,2:6:10
0x0941,2,searchstoreinfonextpage,0
0x0918,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0936,-1,reqtradebuyingstore,2:4:8:12
0x0892,6,reqclickbuyingstore,2
0x0964,2,reqclosebuyingstore,0
0x0869,-1,reqopenbuyingstore,2:4:8:9:89
0x0874,18,bookingregreq,2,4:6
//0x088E,8 // CZ_JOIN_BATTLE_FIELD
0x0958,-1,itemlistwindowselected,2:4:8:12
0x0919,19,wanttoconnection,2:6:10:14:18
0x08A8,26,partyinvite2,2
//0x0888,4 // CZ_GANGSI_RANK
0x0877,26,friendslistadd,2
0x023B,5,hommenu,2:4
0x0956,36,storagepassword,2:4:20

//2013-06-05Ragexe (Shakto)
packet_ver: 38
packet_keys: 0x646E08D9,0x5F153AB5,0x61B509B5 // [Shakto]
0x0369,7,actionrequest,2:6
0x083C,10,useskilltoid,2:4:6
0x0437,5,walktoxy,2
0x035F,6,ticksend,2
0x0202,5,changedir,2:4
0x07E4,6,takeitem,2
0x0362,6,dropitem,2:4
0x07EC,8,movetokafra,2:4
0x0364,8,movefromkafra,2:4
0x0438,10,useskilltopos,2:4:6:8
0x0366,90,useskilltoposinfo,2:4:6:8:10
0x096A,6,getcharnamerequest,2
0x0368,6,solvecharname,2
0x0838,12,searchstoreinfolistitemclick,2:6:10
0x0835,2,searchstoreinfonextpage,0
0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0811,-1,reqtradebuyingstore,2:4:8:12
0x0360,6,reqclickbuyingstore,2
0x0817,2,reqclosebuyingstore,0
0x0815,-1,reqopenbuyingstore,2:4:8:9:89
0x0365,18,bookingregreq,2:4:6
//0x0363,8 // CZ_JOIN_BATTLE_FIELD
0x0281,-1,itemlistwindowselected,2:4:8:12
0x022D,19,wanttoconnection,2:6:10:14:18
0x0802,26,partyinvite2,2
//0x0436,4 // CZ_GANGSI_RANK
0x023B,26,friendslistadd,2
0x0361,5,hommenu,2,4
0x0883,36,storagepassword,2:4:20
0x097C,4,ranklist,2

//2013-06-12Ragexe (Shakto)
packet_ver: 39
packet_keys: 0x6D166F66,0x3C000FCF,0x295B0FCB // [Shakto]
0x0369,7,actionrequest,2:6
0x083C,10,useskilltoid,2:4:6
0x0437,5,walktoxy,2
0x035F,6,ticksend,2
0x087E,5,changedir,2:4
0x07E4,6,takeitem,2
0x0362,6,dropitem,2:4
0x07EC,8,movetokafra,2:4
0x0364,8,movefromkafra,2:4
0x0438,10,useskilltopos,2:4:6:8
0x0366,90,useskilltoposinfo,2:4:6:8:10
0x096A,6,getcharnamerequest,2
0x0368,6,solvecharname,2
0x0838,12,searchstoreinfolistitemclick,2:6:10
0x0835,2,searchstoreinfonextpage,0
0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0811,-1,reqtradebuyingstore,2:4:8:12
0x0360,6,reqclickbuyingstore,2
0x0817,2,reqclosebuyingstore,0
0x0815,-1,reqopenbuyingstore,2:4:8:9:89
0x0365,18,bookingregreq,2:4:6
//0x0363,8 // CZ_JOIN_BATTLE_FIELD
0x0281,-1,itemlistwindowselected,2:4:8:12
0x0919,19,wanttoconnection,2:6:10:14:18
0x0802,26,partyinvite2,2
//0x0436,4 // CZ_GANGSI_RANK
0x0940,26,friendslistadd,2
0x093A,5,hommenu,2:4
0x0964,36,storagepassword,2:4:20

//2013-06-18Ragexe (Shakto)
packet_ver: 40
packet_keys: 0x434115DE,0x34A10FE9,0x6791428E // [Shakto]
0x0889,7,actionrequest,2:6
0x0951,10,useskilltoid,2:4:6
0x088E,5,walktoxy,2
0x0930,6,ticksend,2
0x08A6,5,changedir,2:4
0x0962,6,takeitem,2
0x0917,6,dropitem,2:4
0x0885,8,movetokafra,2:4
0x0936,8,movefromkafra,2:4
0x096A,10,useskilltopos,2:4:6:8
0x094F,90,useskilltoposinfo,2:4:6:8:10
0x0944,6,getcharnamerequest,2
0x0945,6,solvecharname,2
0x0890,12,searchstoreinfolistitemclick,2:6:10
0x0363,2,searchstoreinfonextpage,0
0x0281,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0891,-1,reqtradebuyingstore,2:4:8:12
0x0862,6,reqclickbuyingstore,2
0x085A,2,reqclosebuyingstore,0
0x0932,-1,reqopenbuyingstore,2:4:8:9:89
0x08A7,18,bookingregreq,2:4:6
//0x087A,8 // CZ_JOIN_BATTLE_FIELD
0x0942,-1,itemlistwindowselected,2:4:8:12
0x095B,19,wanttoconnection,2:6:10:14:18
0x0887,26,partyinvite2,2
//0x0878,4 // CZ_GANGSI_RANK
0x0953,26,friendslistadd,2
0x02C4,5,hommenu,2:4
0x0864,36,storagepassword,2:4:20

//2013-06-26Ragexe
packet_ver: 41
packet_keys: 0x38F453EF,0x6A040FD8,0X65BD6668 // [Shakto]
0x0369,7,actionrequest,2:6
0x083C,10,useskilltoid,2:4:6
0x0437,5,walktoxy,2
0x035F,6,ticksend,2
0x094D,5,changedir,2:4
0x088B,6,takeitem,2
0x0952,6,dropitem,2:4
0x0921,8,movetokafra,2:4
0x0817,8,movefromkafra,2:4
0x0438,10,useskilltopos,2:4:6:8
0x0366,90,useskilltoposinfo,2:4:6:8:10
0x096A,6,getcharnamerequest,2
0x0368,6,solvecharname,2
0x0838,12,searchstoreinfolistitemclick,2:6:10
0x0835,2,searchstoreinfonextpage,0
0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0811,-1,reqtradebuyingstore,2:4:8:12
0x0360,6,reqclickbuyingstore,2
0x0365,2,reqclosebuyingstore,0
0x0815,-1,reqopenbuyingstore,2:4:8:9:89
0x0894,18,bookingregreq,2:4:6
//0x0860,8 // CZ_JOIN_BATTLE_FIELD
0x08A5,-1,itemlistwindowselected,2:4:8:12
0x088C,19,wanttoconnection,2:6:10:14:18
0x0895,26,partyinvite2,2
//0x088F,4 // CZ_GANGSI_RANK
0x08AB,26,friendslistadd,2
0x0960,5,hommenu,2:4
0x0930,36,storagepassword,2:4:20

//2013-07-03Ragexe
packet_ver: 42
packet_keys: 0x4FF90E23,0x0F1432F2,0x4CFA1EDA // [Shakto]
0x0369,7,actionrequest,2:6
0x083C,10,useskilltoid,2:4:6
0x0437,5,walktoxy,2
0x035F,6,ticksend,2
0x0930,5,changedir,2:4
0x07E4,6,takeitem,2
0x0362,6,dropitem,2:4
0x07EC,8,movetokafra,2:4
0x0364,8,movefromkafra,2:4
0x0438,10,useskilltopos,2:4:6:8
0x0366,90,useskilltoposinfo,2:4:6:8:10
0x096A,6,getcharnamerequest,2
0x0368,6,solvecharname,2
0x0838,12,searchstoreinfolistitemclick,2:6:10
0x0835,2,searchstoreinfonextpage,0
0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0811,-1,reqtradebuyingstore,2:4:8:12
0x0202,6,reqclickbuyingstore,2
0x0817,2,reqclosebuyingstore,0
0x0815,-1,reqopenbuyingstore,2:4:8:9:89
0x0365,18,bookingregreq,2:4:6
//0x0363,8 // CZ_JOIN_BATTLE_FIELD
0x0281,-1,itemlistwindowselected,2:4:8:12
0x022D,19,wanttoconnection,2:6:10:14:18
0x0802,26,partyinvite2,2
//0x0436,4 // CZ_GANGSI_RANK
0x0360,26,friendslistadd,2
0x094A,5,hommenu,2:4
0x0873,36,storagepassword,2:4:20

//2013-07-10Ragexe
packet_ver: 43
packet_keys: 0x458F758F,0x4CCF3F8F,0x4A9C4237
0x0369,7,actionrequest,2:6
0x083C,10,useskilltoid,2:4:6
0x0437,5,walktoxy,2
0x035F,6,ticksend,2
0x0202,5,changedir,2:4
0x07E4,6,takeitem,2
0x0362,6,dropitem,2:4
0x07EC,8,movetokafra,2:4
0x0364,8,movefromkafra,2:4
0x0438,10,useskilltopos,2:4:6:8
0x0366,90,useskilltoposinfo,2:4:6:8:10
0x096A,6,getcharnamerequest,2
0x0368,6,solvecharname,2
0x0838,12,searchstoreinfolistitemclick,2:6:10
0x0835,2,searchstoreinfonextpage,0
0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0811,-1,reqtradebuyingstore,2:4:8:12
0x0360,6,reqclickbuyingstore,2
0x0817,2,reqclosebuyingstore,0
0x0815,-1,reqopenbuyingstore,2:4:8:9:89
0x0365,18,bookingregreq,2:4:6
//0x0363,8 // CZ_JOIN_BATTLE_FIELD
0x0281,-1,itemlistwindowselected,2:4:8:12
0x022D,19,wanttoconnection,2:6:10:14:18
0x0802,26,partyinvite2,2
//0x0436,4 // CZ_GANGSI_RANK
0x023B,26,friendslistadd,2
0x0361,5,hommenu,2:4
0x0880,36,storagepassword,2:4:20
0x0848,-1,cashshopbuy,2:6:4:10
0x097D,288 //ZC_ACK_RANKING

//2013-07-17Ragexe
packet_ver: 44
packet_keys: 0x2BED4F91,0x5F9E00CF,0x5EE5520C
0x0918,7,actionrequest,2:6
0x091E,10,useskilltoid,2:4:6
0x083C,5,walktoxy,2
0x02C4,6,ticksend,2
0x088C,5,changedir,2:4
0x08A9,6,takeitem,2
0x0917,6,dropitem,2:4
0x089B,8,movetokafra,2:4
0x0956,8,movefromkafra,2:4
0x0882,10,useskilltopos,2:4:6:8
0x0952,90,useskilltoposinfo,2:4:6:8:10
0x0958,6,getcharnamerequest,2
0x0967,6,solvecharname,2
0x0960,12,searchstoreinfolistitemclick,2:6:10
0x0819,2,searchstoreinfonextpage,0
0x086B,-1,searchstoreinfo,2:4:5:9:13:14:15
0x093B,-1,reqtradebuyingstore,2:4:8:12
0x0898,6,reqclickbuyingstore,2
0x096A,2,reqclosebuyingstore,0
0x08AA,-1,reqopenbuyingstore,2:4:8:9:89
0x0862,18,bookingregreq,2:4:6
//0x08A6,8 // CZ_JOIN_BATTLE_FIELD
0x0897,-1,itemlistwindowselected,2:4:8:12
0x091D,19,wanttoconnection,2:6:10:14:18
0x092F,26,partyinvite2,2
//0x086C,4 // CZ_GANGSI_RANK
0x0863,26,friendslistadd,2
0x088A,5,hommenu,2:4
0x095B,36,storagepassword,2:4:20
0x09A6,12,ZC_BANKING_CHECK,2:10
0x09A7,10,bankdeposit,2:6
0x09A8,16,ZC_ACK_BANKING_DEPOSIT,2:4:12
0x09A9,10,bankwithdrawal,2:6
0x09AA,16,ZC_ACK_BANKING_WITHDRAW,2:4:12
0x09AB,6,bankcheck,2
0x09B6,6,bankopen,2
0x09B7,4,ZC_ACK_OPEN_BANKING,2
0x09B8,6,bankclose,2
0x09B9,4,ZC_ACK_CLOSE_BANKING,2

//2013-07-31cRagexe
0x09ca,23 // ZC_SKILL_ENTRY5
0x09cb,17	// ZC_USE_SKILL2

//2013-08-07Ragexe
packet_ver: 45
packet_keys: 0x7E241DE0,0x5E805580,0x3D807D80 // [Shakto]
0x0369,7,actionrequest,2:6
0x083C,10,useskilltoid,2:4:6
0x0437,5,walktoxy,2
0x035F,6,ticksend,2
0x0202,5,changedir,2:4
0x07E4,6,takeitem,2
0x0362,6,dropitem,2:4
0x07EC,8,movetokafra,2:4
0x0364,8,movefromkafra,2:4
0x0438,10,useskilltopos,2:4:6:8
0x0366,90,useskilltoposinfo,2:4:6:8:10
0x096A,6,getcharnamerequest,2
0x0368,6,solvecharname,2
0x0838,12,searchstoreinfolistitemclick,2:6:10
0x0835,2,searchstoreinfonextpage,0
0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0811,-1,reqtradebuyingstore,2:4:8:12
0x0360,6,reqclickbuyingstore,2
0x0817,2,reqclosebuyingstore,0
0x0815,-1,reqopenbuyingstore,2:4:8:9:89
0x0365,18,bookingregreq,2:4:6
//0x363,8 // CZ_JOIN_BATTLE_FIELD
0x0281,-1,itemlistwindowselected,2:4:8:12
0x022D,19,wanttoconnection,2:6:10:14:18
0x0802,26,partyinvite2,2
//0x436,4 // CZ_GANGSI_RANK
0x023B,26,friendslistadd,2
0x0361,5,hommenu,2:4
0x0887,36,storagepassword,2:4:20
0x09C1,10,ZC_C_MARKERINFO,2:6:8
// Merge Item
0x096D,-1,ZC_MERGE_ITEM_OPEN,2:4 // ZC_MERGE_ITEM_OPEN
0x096E,-1,mergeitem_req,2:4 // CZ_REQ_MERGE_ITEM
0x096F,7,ZC_ACK_MERGE_ITEM,2:4:6:7 // ZC_ACK_MERGE_ITEM
0x0974,2,mergeitem_cancel,0 // CZ_CANCEL_MERGE_ITEM

//2013-12-23Ragexe
packet_ver: 46
packet_keys: 0x631C511C,0x111C111C,0x111C111C // [Shakto]
0x0369,7,actionrequest,2:6
0x083C,10,useskilltoid,2:4:6
0x0437,5,walktoxy,2
0x035F,6,ticksend,2
0x0202,5,changedir,2:4
0x07E4,6,takeitem,2
0x0362,6,dropitem,2:4
0x07EC,8,movetokafra,2:4
0x0364,8,movefromkafra,2:4
0x0438,10,useskilltopos,2:4:6:8
0x0366,90,useskilltoposinfo,2:4:6:8:10
0x096A,6,getcharnamerequest,2
0x0368,6,solvecharname,2
0x0838,12,searchstoreinfolistitemclick,2:6:10
0x0835,2,searchstoreinfonextpage,0
0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0811,-1,reqtradebuyingstore,2:4:8:12
0x0360,6,reqclickbuyingstore,2
0x0817,2,reqclosebuyingstore,0
0x0815,-1,reqopenbuyingstore,2:4:8:9:89
0x0365,18,bookingregreq,2:4:6
//0x363,8 // CZ_JOIN_BATTLE_FIELD
0x0281,-1,itemlistwindowselected,2:4:8:12
0x022D,19,wanttoconnection,2:6:10:14:18
0x0802,26,partyinvite2,2
//0x436,4 // CZ_GANGSI_RANK
0x023B,26,friendslistadd,2
0x0361,5,hommenu,2:4
0x08A4,36,storagepassword,2:4:20
//New Packets
//0x097E,12 //ZC_UPDATE_RANKING_POINT
0x09B4,6,dull,0 //Cash Shop - Special Tab
0x09CE,102,itemmonster,2
0x09D4,2,npcshopclosed,0
//NPC Market
0x09D5,-1
0x09D6,-1,npcmarketpurchase,2:4:6
0x09D7,-1
0x09D8,2,npcmarketclosed,0
// Clan System
0x0988,6
0x0989,2
0x098A,-1
0x098D,-1,clanchat,2:4
0x098E,-1

// New Packet
0x097A,-1		// ZC_ALL_QUEST_LIST2
0x09DB,-1		// ZC_NOTIFY_MOVEENTRY10
0x09DC,-1		// ZC_NOTIFY_NEWENTRY10
0x09DD,-1	// ZC_NOTIFY_STANDENTRY10
0x09DF,7		// ZC_ACK_WHISPER02

//2014-10-16Ragexe
packet_ver: 50
packet_keys: 0x2DFF467C,0x444B37EE,0x2C1B634F // [YomRawr]
0x0369,7,actionrequest,2:6
0x083C,10,useskilltoid,2:4:6
0x0437,5,walktoxy,2
0x035F,6,ticksend,2
0x0967,5,changedir,2:4
0x07E4,6,takeitem,2
0x0362,6,dropitem,2:4
0x07EC,8,movetokafra,2:4
0x022D,8,movefromkafra,2:4
0x0438,10,useskilltopos,2:4:6:8
0x0366,90,useskilltoposinfo,2:4:6:8:10
0x096A,6,getcharnamerequest,2
0x0368,6,solvecharname,2
0x0838,12,searchstoreinfolistitemclick,2:6:10
0x0835,2,searchstoreinfonextpage,0
0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0811,-1,reqtradebuyingstore,2:4:8:12
0x0360,6,reqclickbuyingstore,2
0x0817,2,reqclosebuyingstore,0
0x0815,-1,reqopenbuyingstore,2:4:8:9:89
0x0365,18,bookingregreq,2:4
// 0x0363,8 // CZ_JOIN_BATTLE_FIELD
0x0281,-1,itemlistwindowselected,2:4:8
0x086E,19,wanttoconnection,2:6:10:14:18
0x0802,26,partyinvite,2
// 0x0922,4 // CZ_GANGSI_RANK
0x094B,26,friendslistadd,2
0x0364,5,hommenu,2:4
0x0936,36,storagepassword,0
0x09DF,7

// New packet
0x0A00,269		// ZC_SHORTCUT_KEY_LIST_V3
0x0A01,3,hotkeyrowshift,2	// CZ_SHORTCUTKEYBAR_ROTATE
0x0A02,4			// ZC_DRESSROOM_OPEN
0x09F7,75		// ZC_PROPERTY_HOMUN_2
0x09E5,18		// ZC_DELETEITEM_FROM_MCSTORE2
0x09E6,22		// ZC_UPDATE_ITEM_FROM_BUYING_STORE2

// Roulette System [Yommy]
0x0A19,2,rouletteopen,0	// CZ_REQ_OPEN_ROULETTE
0x0A1A,23 		// ZC_ACK_OPEN_ROULETTE
0x0A1B,2,rouletteinfo,0 	// CZ_REQ_ROULETTE_INFO
0x0A1C,-1 		// ZC_ACK_ROULETTE_INFO
0x0A1D,2,rouletteclose,0 	// CZ_REQ_CLOSE_ROULETTE
0x0A1E,3 			// ZC_ACK_CLOSE_ROULETTE
0x0A1F,2,roulettegenerate,0 	// CZ_REQ_GENERATE_ROULETTE
0x0A20,21 		// ZC_ACK_GENERATE_ROULETTE
0x0A21,3,rouletterecvitem,2 	// CZ_RECV_ROULETTE_ITEM
0x0A22,5 			// ZC_RECV_ROULETTE_ITEM

//2014-10-22bRagexe
packet_ver: 51
packet_keys: 0x290551EA,0x2B952C75,0x2D67669B // [YomRawr]
0x006d,149
0x023b,10,useskilltopos,2:4:6:8
0x0281,-1,itemlistwindowselected,2:4:8:12
0x035f,6,ticksend,2
0x0360,6,reqclickbuyingstore,2
0x0366,90,useskilltoposinfo,2:4:6:8:10
0x0368,6,solvecharname,2
0x0369,7,actionrequest,2:6
0x0437,5,walktoxy,2
0x0438,36,storagepassword,2:4:20
0x0811,-1,reqtradebuyingstore,2:4:8:12
0x0815,-1,reqopenbuyingstore,2:4:8:9:89
0x0817,2,reqclosebuyingstore,0
0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0835,12,searchstoreinfolistitemclick,2:6:10
0x083c,10,useskilltoid,2:4:6
0x0878,8,movetokafra,2:4
0x087d,6,dropitem,2:4
0x0896,26,partyinvite2,2
0x0899,5,hommenu,2:4
0x08aa,8,movefromkafra,2:4
//0x08ab,4	// CZ_GANGSI_RANK
0x08ad,5,changedir,2:4
0x08e3,149
0x091a,26,friendslistadd,2
//0x092b,8	// CZ_JOIN_BATTLE_FIELD
0x093b,19,wanttoconnection,2:6:10:14:18
0x0940,2,searchstoreinfonextpage,0
0x094e,6,takeitem,2
0x0955,18,bookingregreq,2:4:6
0x096a,6,getcharnamerequest,2

// New Packet
0x0A18,14		// ZC_ACCEPT_ENTER3
0x0A28,3		// ZC_ACK_OPENSTORE2
0x09FD,-1		// ZC_NOTIFY_MOVEENTRY11
0x09FE,-1		// ZC_NOTIFY_NEWENTRY11
0x09FF,-1		// ZC_NOTIFY_STANDENTRY11
//0x09F8,-1		// ZC_ALL_QUEST_LIST3

//2015-05-13aRagexe
packet_ver: 52
packet_keys: 0x62C86D09,0x75944F17,0x112C133D // [YomRawr]
0x0369,7,actionrequest,2:6
0x083C,10,useskilltoid,2:4:6
0x0437,5,walktoxy,2
0x035F,6,ticksend,2
0x0924,5,changedir,2:4
0x0958,6,takeitem,2
0x0885,6,dropitem,2:4
0x0879,8,movetokafra,2:4
0x0864,8,movefromkafra,2:4
0x0438,10,useskilltopos,2:4:6:8
0x0366,90,useskilltoposinfo,2:4:6:8:10
0x096A,6,getcharnamerequest,2
0x0368,6,solvecharname,2
0x0838,12,searchstoreinfolistitemclick,2:6:10
0x0835,2,searchstoreinfonextpage,0
0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0811,-1,reqtradebuyingstore,2:4:8:12
0x0360,6,reqclickbuyingstore,2
0x022D,2,reqclosebuyingstore,0
0x0815,-1,reqopenbuyingstore,2:4:8:9:89
0x0883,18,bookingregreq,2:4:6
// 0x02C4,8 CZ_JOIN_BATTLE_FIELD
0x0960,-1,itemlistwindowselected,2:4:8:12
0x0363,19,wanttoconnection,2:6:10:14:18
0x094A,26,partyinvite2,2
// 0x0927,4 CZ_GANGSI_RANK
0x08A8,26,friendslistadd,2
0x0817,5,hommenu,2:4
0x0923,36,storagepassword,2:4:20

// New Packets
0xA3B,-1		// ZC_HAT_EFFECT

// RODEX Mail system
0x09E7,3		// ZC_NOTIFY_UNREADMAIL
0x09E8,11,dull,0	// CZ_OPEN_MAILBOX
0x09E9,2,dull,0 	// CZ_CLOSE_MAILBOX
0x09EA,11,dull,0	// CZ_REQ_READ_MAIL
0x09EB,-1		// ZC_ACK_READ_MAIL
0x09EC,-1,dull,0	// CZ_REQ_WRITE_MAIL
0x09ED,3		// ZC_ACK_WRITE_MAIL
0x09EE,11,dull,0	// CZ_REQ_NEXT_MAIL_LIST
0x09EF,11,dull,0 	// CZ_REQ_REFRESH_MAIL_LIST
0x09F0,-1		// ZC_ACK_MAIL_LIST
0x09F1,11,dull,0	// CZ_REQ_ZENY_FROM_MAIL
0x09F2,12	// ZC_ACK_ZENY_FROM_MAIL
0x09F3,11,dull,0	// CZ_REQ_ITEM_FROM_MAIL
0x09F4,12	// ZC_ACK_ITEM_FROM_MAIL
0x09F5,11,dull,0	// CZ_REQ_DELETE_MAIL
0x09F6,11		// ZC_ACK_DELETE_MAIL
0x0A03,2,dull,0	// CZ_REQ_CANCEL_WRITE_MAIL
0x0A04,6,dull,0	// CZ_REQ_ADD_ITEM_TO_MAIL
0x0A05,53	// ZC_ACK_ADD_ITEM_TO_MAIL
0x0A06,6,dull,0	// CZ_REQ_REMOVE_ITEM_MAIL
0x0A07,9		// ZC_ACK_REMOVE_ITEM_MAIL
0x0A08,26,dull,0	// CZ_REQ_OPEN_WRITE_MAIL
0x0A12,27	// ZC_ACK_OPEN_WRITE_MAIL
0x0A32,2		// ZC_OPEN_RODEX_THROUGH_NPC_ONLY
0x0A13,26,dull,0	// CZ_CHECK_RECEIVE_CHARACTER_NAME
0x0A14,10		// ZC_CHECK_RECEIVE_CHARACTER_NAME

// New EquipPackets Support
0x0A09,45	// ZC_ADD_EXCHANGE_ITEM3
0x0A0A,47	// ZC_ADD_ITEM_TO_STORE3
0x0A0B,47	// ZC_ADD_ITEM_TO_CART3
0x0A0C,56	// ZC_ITEM_PICKUP_ACK_V6
0x0A0D,-1	// ZC_INVENTORY_ITEMLIST_EQUIP_V6
0x0A0F,-1		// ZC_CART_ITEMLIST_EQUIP_V6
0x0A10,-1		// ZC_STORE_ITEMLIST_EQUIP_V6
0x0A2D,-1	// ZC_EQUIPWIN_MICROSCOPE_V6

// OneClick Itemidentify
0x0A35,4,oneclick_itemidentify,2	// CZ_REQ_ONECLICK_ITEMIDENTIFY

// Achievement System
0x0A23,-1		// ZC_ALL_ACH_LIST
0x0A24,66	// ZC_ACH_UPDATE
0x0A25,6,dull,0	// CZ_REQ_ACH_REWARD
0x0A26,7		// ZC_REQ_ACH_REWARD_ACK

// Title System
0x0A2E,6,dull,0	// CZ_REQ_CHANGE_TITLE
0x0A2F,7		// ZC_ACK_CHANGE_TITLE
0x0A30,106	// ZC_ACK_REQNAMEALL2

// Pet Evolution System
0x09FB,-1,dull,0	// CZ_PET_EVOLUTION
0x09FC,6		// ZC_PET_EVOLUTION_RESULT

//2015-09-16Ragexe
packet_ver: 53
packet_keys: 0x17F83A19,0x116944F4,0x1CC541E9 // [Napster]
0x0869,7,actionrequest,2:6
0x093E,10,useskilltoid,2:4:6
0x0877,5,walktoxy,2
0x08AC,6,ticksend,2
0x0936,5,changedir,2:4
0x089C,6,takeitem,2
0x092F,6,dropitem,2:4
0x0934,8,movetokafra,2:4
0x085E,8,movefromkafra,2:4
0x022D,10,useskilltopos,2:4:6:8
0x0873,90,useskilltoposinfo,2:4:6:8:10
0x095A,6,getcharnamerequest,2
0x0942,6,solvecharname,2
0x087F,12,searchstoreinfolistitemclick,2:6:10
0x0817,2,searchstoreinfonextpage,0
0x0920,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0881,-1,reqtradebuyingstore,2:4:8:12
0x0835,6,reqclickbuyingstore,2
0x092E,2,reqclosebuyingstore,0
0x0948,-1,reqopenbuyingstore,2:4:8:9:89
0x089B,18,bookingregreq,2:4:6
// 0x094F,8 CZ_JOIN_BATTLE_FIELD
0x0961,-1,itemlistwindowselected,2:4:8:12
0x0969,19,wanttoconnection,2:6:10:14:18
0x0924,26,partyinvite2,2
// 0x0938,4 CZ_GANGSI_RANK
0x089E,26,friendslistadd,2
0x0960,5,hommenu,2:4
0x0941,36,storagepassword,2:4:20

// New Packet
0x097F,-1		// ZC_SELECTCART
0x0980,7,selectcart,2:6	// CZ_SELECTCART

//2015-10-01bRagexeRE
packet_ver: 54
packet_keys: 0x45B945B9,0x45B945B9,0x45B945B9	// [Dastgir]
0x0369,7,actionrequest,2:6
0x083c,10,useskilltoid,2:4:6
0x0437,5,walktoxy,2
0x035f,6,ticksend,2
0x0202,5,changedir,2:4
0x07e4,6,takeitem,2
0x0362,6,dropitem,2:4
0x07ec,8,movetokafra,2:4
0x0364,8,movefromkafra,2:4
0x0438,10,useskilltopos,2:4:6:8
0x0366,90,useskilltoposmoreinfo,2:4:6:8:10
0x096a,6,getcharnamerequest,2
0x0368,6,solvecharname,2
0x0838,12,searchstoreinfolistitemclick,2:6:10
0x0835,2,searchstoreinfonextpage,0
0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0811,-1,reqtradebuyingstore,2:4:8:12
0x0360,6,reqclickbuyingstore,2
0x0817,2,reqclosebuyingstore,0
0x0815,-1,reqopenbuyingstore,2:4:8:9:89
0x0365,18,partybookingregisterreq,2:4:6
//0x0363,8 // CZ_JOIN_BATTLE_FIELD
0x0281,-1,itemlistwindowselected,2:4:8:12
0x022d,19,wanttoconnection,2:6:10:14:18
0x0802,26,partyinvite2,2
//0x0436,4 // CZ_GANGSI_RANK
0x023b,26,friendslistadd,2
0x0361,5,hommenu,2:4
0x0860,36,storagepassword,2:4:20

//2015-11-04aRagexe
packet_ver: 55
packet_keys: 0x4C17382A,0x7ED174C9,0x29961E4F // [Winnie]
0x0369,7,actionrequest,2:6
0x083C,10,useskilltoid,2:4:6
0x0363,5,walktoxy,2
0x0886,6,ticksend,2
0x0928,5,changedir,2:4
0x0964,6,takeitem,2
0x0437,6,dropitem,2:4
0x088B,8,movetokafra,2:4
0x0364,8,movefromkafra,2:4
0x0438,10,useskilltopos,2:4:6:8
0x0366,90,useskilltoposinfo,2:4:6:8:10
0x0887,6,getcharnamerequest,2
0x0368,6,solvecharname,2
0x0838,12,searchstoreinfolistitemclick,2:6:10
0x0835,2,searchstoreinfonextpage,0
0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0815,-1,reqtradebuyingstore,2:4:8:12
0x0436,6,reqclickbuyingstore,2
0x0817,2,reqclosebuyingstore,0
0x023B,-1,reqopenbuyingstore,2:4:8:9:89
0x0811,18,bookingregreq,2:4:6
//0x0939,8 CZ_JOIN_BATTLE_FIELD
0x093A,-1,itemlistwindowselected,2:4:8:12
0x0360,19,wanttoconnection,2:6:10:14:18
0x08A5,26,partyinvite2,2
//0x08A3,4 CZ_GANGSI_RANK
0x07EC,26,friendslistadd,2
0x088D,5,hommenu,2:4
0x0940,36,storagepassword,2:4:20

//Add new packets here
//packet_ver: 56

core.c

// Copyright (c) Athena Dev Teams - Licensed under GNU GPL
// For more information, see LICENCE in the main folder

#include "mmo.h"
#include "showmsg.h"
#include "malloc.h"
#include "core.h"
#include "strlib.h"
#ifndef MINICORE
#include "ers.h"
#include "socket.h"
#include "timer.h"
#include "thread.h"
#include "mempool.h"
#include "sql.h"
#endif
#include <stdlib.h>
#include <signal.h>
#ifndef _WIN32
#include <unistd.h>
#else
#include "winapi.h" // Console close event handling
#include <direct.h> // _chdir
#endif


/// Called when a terminate signal is received.
void (*shutdown_callback)(void) = NULL;

#if defined(BUILDBOT)
	int buildbotflag = 0;
#endif

int runflag = CORE_ST_RUN;
char db_path[12] = "db"; /// relative path for db from server

char *SERVER_NAME = NULL;
char SERVER_TYPE = ATHENA_SERVER_NONE;

#ifndef MINICORE	// minimalist Core
// Added by Gabuzomeu
//
// This is an implementation of signal() using sigaction() for portability.
// (sigaction() is POSIX; signal() is not.)  Taken from Stevens' _Advanced
// Programming in the UNIX Environment_.
//
#ifdef WIN32	// windows don't have SIGPIPE
#define SIGPIPE SIGINT
#endif

#ifndef POSIX
#define compat_signal(signo, func) signal(signo, func)
#else
sigfunc *compat_signal(int signo, sigfunc *func) {
	struct sigaction sact, oact;

	sact.sa_handler = func;
	sigemptyset(&sact.sa_mask);
	sact.sa_flags = 0;
#ifdef SA_INTERRUPT
	sact.sa_flags |= SA_INTERRUPT;	/* SunOS */
#endif

	if (sigaction(signo, &sact, &oact) < 0)
		return (SIG_ERR);

	return (oact.sa_handler);
}
#endif

/*======================================
 *	CORE : Console events for Windows
 *--------------------------------------*/
#ifdef _WIN32
static BOOL WINAPI console_handler(DWORD c_event) {
    switch(c_event) {
    case CTRL_CLOSE_EVENT:
    case CTRL_LOGOFF_EVENT:
    case CTRL_SHUTDOWN_EVENT:
		if( shutdown_callback != NULL )
			shutdown_callback();
		else
			runflag = CORE_ST_STOP;// auto-shutdown
        break;
	default:
		return FALSE;
    }
    return TRUE;
}

static void cevents_init() {
	if (SetConsoleCtrlHandler(console_handler,TRUE)==FALSE)
		ShowWarning ("Unable to install the console handler!\n");
}
#endif

/*======================================
 *	CORE : Signal Sub Function
 *--------------------------------------*/
static void sig_proc(int sn) {
	static int is_called = 0;

	switch (sn) {
	case SIGINT:
	case SIGTERM:
		if (++is_called > 3)
			exit(EXIT_SUCCESS);
		if( shutdown_callback != NULL )
			shutdown_callback();
		else
			runflag = CORE_ST_STOP;// auto-shutdown
		break;
	case SIGSEGV:
	case SIGFPE:
		do_abort();
		// Pass the signal to the system's default handler
		compat_signal(sn, SIG_DFL);
		raise(sn);
		break;
#ifndef _WIN32
	case SIGXFSZ:
		// ignore and allow it to set errno to EFBIG
		ShowWarning ("Max file size reached!\n");
		//run_flag = 0;	// should we quit?
		break;
	case SIGPIPE:
		//ShowInfo ("Broken pipe found... closing socket\n");	// set to eof in socket.c
		break;	// does nothing here
#endif
	}
}

void signals_init (void) {
	compat_signal(SIGTERM, sig_proc);
	compat_signal(SIGINT, sig_proc);
#ifndef _DEBUG // need unhandled exceptions to debug on Windows
	compat_signal(SIGSEGV, sig_proc);
	compat_signal(SIGFPE, sig_proc);
#endif
#ifndef _WIN32
	compat_signal(SIGILL, SIG_DFL);
	compat_signal(SIGXFSZ, sig_proc);
	compat_signal(SIGPIPE, sig_proc);
	compat_signal(SIGBUS, SIG_DFL);
	compat_signal(SIGTRAP, SIG_DFL);
#endif
}
#endif

#ifdef SVNVERSION
const char *get_svn_revision(void) {
		return EXPAND_AND_QUOTE(SVNVERSION);
	}
#else// not SVNVERSION
const char* get_svn_revision(void) {
	static char svn_version_buffer[16] = "";
	FILE *fp;

	if( svn_version_buffer[0] != '\0' )
		return svn_version_buffer;

	// subversion 1.7 uses a sqlite3 database
	// FIXME this is hackish at best...
	// - ignores database file structure
	// - assumes the data in NODES.dav_cache column ends with "!svn/ver/<revision>/<path>)"
	// - since it's a cache column, the data might not even exist
	if( (fp = fopen(".svn"PATHSEP_STR"wc.db", "rb")) != NULL || (fp = fopen(".."PATHSEP_STR".svn"PATHSEP_STR"wc.db", "rb")) != NULL )
	{
	#ifndef SVNNODEPATH
		//not sure how to handle branches, so i'll leave this overridable define until a better solution comes up
		#define SVNNODEPATH trunk
	#endif
		const char* prefix = "!svn/ver/";
		const char* postfix = "/"EXPAND_AND_QUOTE(SVNNODEPATH)")"; // there should exist only 1 entry like this
		size_t prefix_len = strlen(prefix);
		size_t postfix_len = strlen(postfix);
		size_t i,j,len;
		char* buffer;

		// read file to buffer
		fseek(fp, 0, SEEK_END);
		len = ftell(fp);
		buffer = (char*)aMalloc(len + 1);
		fseek(fp, 0, SEEK_SET);
		len = fread(buffer, 1, len, fp);
		buffer[len] = '\0';
		fclose(fp);

		// parse buffer
		for( i = prefix_len + 1; i + postfix_len <= len; ++i ) {
			if( buffer[i] != postfix[0] || memcmp(buffer + i, postfix, postfix_len) != 0 )
				continue; // postfix missmatch
			for( j = i; j > 0; --j ) {// skip digits
				if( !ISDIGIT(buffer[j - 1]) )
					break;
			}
			if( memcmp(buffer + j - prefix_len, prefix, prefix_len) != 0 )
				continue; // prefix missmatch
			// done
			snprintf(svn_version_buffer, sizeof(svn_version_buffer), "%d", atoi(buffer + j));
			break;
		}
		aFree(buffer);

		if( svn_version_buffer[0] != '\0' )
			return svn_version_buffer;
	}

	// subversion 1.6 and older?
	if ((fp = fopen(".svn/entries", "r")) != NULL)
	{
		char line[1024];
		int rev;
		// Check the version
		if (fgets(line, sizeof(line), fp))
		{
			if(!ISDIGIT(line[0]))
			{
				// XML File format
				while (fgets(line,sizeof(line),fp))
					if (strstr(line,"revision=")) break;
				if (sscanf(line," %*[^\"]\"%11d%*[^\n]", &rev) == 1) {
					snprintf(svn_version_buffer, sizeof(svn_version_buffer), "%d", rev);
				}
			}
			else
			{
				// Bin File format
				if ( fgets(line, sizeof(line), fp) == NULL ) { printf("Can't get bin name\n"); } // Get the name
				if ( fgets(line, sizeof(line), fp) == NULL ) { printf("Can't get entries kind\n"); } // Get the entries kind
				if(fgets(line, sizeof(line), fp)) // Get the rev numver
				{
					snprintf(svn_version_buffer, sizeof(svn_version_buffer), "%d", atoi(line));
				}
			}
		}
		fclose(fp);

		if( svn_version_buffer[0] != '\0' )
			return svn_version_buffer;
	}

	// fallback
	svn_version_buffer[0] = UNKNOWN_VERSION;
	return svn_version_buffer;
}
#endif

// GIT path
#define GIT_ORIGIN "refs/remotes/origin/master"

// Grabs the hash from the last time the user updated their working copy (last pull)
const char *get_git_hash (void) {
	static char GitHash[41] = ""; //Sha(40) + 1
	FILE *fp;

	if( GitHash[0] != '\0' )
		return GitHash;

	if( (fp = fopen(".git/"GIT_ORIGIN, "r")) != NULL ) {
		char line[64];
		char *rev = (char*)malloc(sizeof(char) * 50);

		if( fgets(line, sizeof(line), fp) && sscanf(line, "%40s", rev) )
			snprintf(GitHash, sizeof(GitHash), "%s", rev);

		free(rev);
		fclose(fp);
	} else {
		GitHash[0] = UNKNOWN_VERSION;
	}

	if ( !(*GitHash) ) {
		GitHash[0] = UNKNOWN_VERSION;
	}

	return GitHash;
}

/*======================================
 *	CORE : Display title
 *  ASCII By CalciumKid 1/12/2011
 *--------------------------------------*/
static void display_title(void) {
	const char* svn = get_svn_revision();
	const char* git = get_git_hash();

	ShowMessage("\n");
	ShowMessage(""CL_PASS"     "CL_BOLD"                                                                 "CL_PASS""CL_CLL""CL_NORMAL"\n");
	ShowMessage(""CL_PASS"       "CL_BT_WHITE"            rAthena Development Team presents                  "CL_PASS""CL_CLL""CL_NORMAL"\n");
	ShowMessage(""CL_PASS"     "CL_BOLD"                 ___   __  __                                    "CL_PASS""CL_CLL""CL_NORMAL"\n");
	ShowMessage(""CL_PASS"     "CL_BOLD"           _____/   | / /_/ /_  ___  ____  ____ _                "CL_PASS""CL_CLL""CL_NORMAL"\n");
	ShowMessage(""CL_PASS"     "CL_BOLD"          / ___/ /| |/ __/ __ \\/ _ \\/ __ \\/ __ `/                "CL_PASS""CL_CLL""CL_NORMAL"\n");
	ShowMessage(""CL_PASS"     "CL_BOLD"         / /  / ___ / /_/ / / /  __/ / / / /_/ /                 "CL_PASS""CL_CLL""CL_NORMAL"\n");
	ShowMessage(""CL_PASS"     "CL_BOLD"        /_/  /_/  |_\\__/_/ /_/\\___/_/ /_/\\__,_/                  "CL_PASS""CL_CLL""CL_NORMAL"\n");
	ShowMessage(""CL_PASS"     "CL_BOLD"                                                                 "CL_PASS""CL_CLL""CL_NORMAL"\n");
	ShowMessage(""CL_PASS"       "CL_GREEN"              http://rathena.org/board/                        "CL_PASS""CL_CLL""CL_NORMAL"\n");
	ShowMessage(""CL_PASS"     "CL_BOLD"                                                                 "CL_PASS""CL_CLL""CL_NORMAL"\n");

	if( svn[0] != UNKNOWN_VERSION )
		ShowInfo("SVN Revision: '"CL_WHITE"%s"CL_RESET"'\n", svn);
	else if( git[0] != UNKNOWN_VERSION )
		ShowInfo("Git Hash: '"CL_WHITE"%s"CL_RESET"'\n", git);
}

// Warning if executed as superuser (root)
void usercheck(void)
{
#ifndef _WIN32
    if (geteuid() == 0) {
		ShowWarning ("You are running rAthena with root privileges, it is not necessary.\n");
    }
#endif
}

/*======================================
 *	CORE : MAINROUTINE
 *--------------------------------------*/
int main (int argc, char **argv)
{
	{// initialize program arguments
		char *p1;
		if((p1 = strrchr(argv[0], '/')) != NULL ||  (p1 = strrchr(argv[0], '\\')) != NULL ){
			char *pwd = NULL; //path working directory
			int n=0;
			SERVER_NAME = ++p1;
			n = p1-argv[0]; //calc dir name len
			pwd = safestrncpy((char*)malloc(n + 1), argv[0], n);
			if(chdir(pwd) != 0)
				ShowError("Couldn't change working directory to %s for %s, runtime will probably fail",pwd,SERVER_NAME);
			free(pwd);
		}else{
			// On Windows the .bat files have the executeable names as parameters without any path seperator [Lemongrass]
			SERVER_NAME = argv[0];
		}
	}

	malloc_init();// needed for Show* in display_title() [FlavioJS]

#ifdef MINICORE // minimalist Core
	display_title();
	usercheck();
	do_init(argc,argv);
	do_final();
#else// not MINICORE
	set_server_type();
	display_title();
	usercheck();

	Sql_Init();
	rathread_init();
	mempool_init();
	db_init();
	signals_init();

#ifdef _WIN32
	cevents_init();
#endif

	timer_init();
	socket_init();

	do_init(argc,argv);

	// Main runtime cycle
	while (runflag != CORE_ST_STOP) { 
		int next = do_timer(gettick_nocache());
		do_sockets(next);
	}

	do_final();

	timer_final();
	socket_final();
	db_final();
	mempool_final();
	rathread_final();
	ers_final();
#endif

	malloc_final();

	return 0;
}

 

inter_athena.conf

// Athena InterServer configuration.
// Contains settings shared/used by more than 1 server.

// Options for both versions

// Log Inter Connections, etc.?
log_inter: 1

// Inter Log Filename
inter_log_filename: log/inter.log

// Level range for sharing within a party
party_share_level: 15

// You can specify the codepage to use in your MySQL tables here.
// (Note that this feature requires MySQL 4.1+)
//default_codepage:

// For IPs, ideally under linux, you want to use localhost instead of 127.0.0.1
// Under windows, you want to use 127.0.0.1.  If you see a message like
// "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"
// and you have localhost, switch it to 127.0.0.1

// Global SQL settings
// overridden by local settings when the hostname is defined there
// (currently only the login-server reads/obeys these settings)

// MySQL Login server
login_server_ip: 127.0.0.1
login_server_port: 3306
login_server_id: ragnarok
login_server_pw: ragnarok
login_server_db: test
login_codepage:
login_case_sensitive: no

ipban_db_ip: 127.0.0.1
ipban_db_port: 3306
ipban_db_id: ragnarok
ipban_db_pw: ragnarok
ipban_db_db: test
ipban_codepage:

// MySQL Character server
char_server_ip: 127.0.0.1
char_server_port: 3306
char_server_id: ragnarok
char_server_pw: ragnarok
char_server_db: test

// MySQL Map Server
map_server_ip: 127.0.0.1
map_server_port: 3306
map_server_id: ragnarok
map_server_pw: ragnarok
map_server_db: test

// MySQL Log Database
log_db_ip: 127.0.0.1
log_db_port: 3306
log_db_id: ragnarok
log_db_pw: ragnarok
log_db_db: test_logs
log_codepage:
log_login_db: loginlog

// MySQL Reconnect Settings
// - mysql_reconnect_type:
//   1: When MySQL disconnects during runtime, the server tries to reconnect
//      mysql_reconnect_count times and shuts down if unsuccessful.
//   2: When mysql disconnects during runtime, it tries to reconnect indefinitely.
mysql_reconnect_type: 2
mysql_reconnect_count: 1

// DO NOT CHANGE ANYTHING BEYOND THIS LINE UNLESS YOU KNOW YOUR DATABASE DAMN WELL
// this is meant for people who KNOW their stuff, and for some reason want to change their
// database layout. [CLOWNISIUS]

// ALL MySQL Database Table names

// Login Database Tables
login_server_account_db: login
ipban_table: ipbanlist

// Shared
global_acc_reg_num_table: global_acc_reg_num
global_acc_reg_str_table: global_acc_reg_str

// Char Database Tables
char_db: char
hotkey_db: hotkey
scdata_db: sc_data
cart_db: cart_inventory
inventory_db: inventory
charlog_db: charlog
skill_db: skill
interlog_db: interlog
memo_db: memo
guild_db: guild
guild_alliance_db: guild_alliance
guild_castle_db: guild_castle
guild_expulsion_db: guild_expulsion
guild_member_db: guild_member
guild_skill_db: guild_skill
guild_position_db: guild_position
guild_storage_db: guild_storage
party_db: party
pet_db: pet
friend_db: friends
mail_db: mail
auction_db: auction
quest_db: quest
homunculus_db: homunculus
skill_homunculus_db: skill_homunculus
mercenary_db: mercenary
mercenary_owner_db: mercenary_owner
elemental_db: elemental
ragsrvinfo_db: ragsrvinfo
skillcooldown_db: skillcooldown
bonus_script_db: bonus_script
acc_reg_num_table: acc_reg_num
acc_reg_str_table: acc_reg_str
char_reg_str_table: char_reg_str
char_reg_num_table: char_reg_num
clan_table: clan
clan_alliance_table: clan_alliance

// Map Database Tables
buyingstore_db: buyingstores
buyingstore_items_db: buyingstore_items
item_db_db: item_db
item_db_re_db: item_db_re
item_db2_db: item_db2
//item_db2_db: item_db2_re
item_cash_db_db: item_cash_db
item_cash_db2_db: item_cash_db2
mob_db_db: mob_db
mob_db_re_db: mob_db_re
mob_db2_db: mob_db2
//mob_db2_db: mob_db2_re
mob_skill_db_db: mob_skill_db
mob_skill_db_re_db: mob_skill_db_re
mob_skill_db2_db: mob_skill_db2
//mob_skill_db2_db: mob_skill_db2_re
mapreg_table: mapreg
vending_db: vendings
vending_items_db: vending_items
market_table: market
db_roulette_table: db_roulette

// Use SQL item_db, mob_db and mob_skill_db for the map server? (yes/no)
use_sql_db: no

inter_server_conf: conf/inter_server.conf

import: conf/import/inter_conf.txt

 

mmo.h

// Copyright (c) Athena Dev Teams - Licensed under GNU GPL
// For more information, see LICENCE in the main folder

#ifndef	_MMO_H_
#define	_MMO_H_

#include "cbasetypes.h"
#include "../config/core.h"
#include "db.h"
#include <time.h>

// server->client protocol version
//        0 - pre-?
//        1 - ?                    - 0x196
//        2 - ?                    - 0x78, 0x79
//        3 - ?                    - 0x1c8, 0x1c9, 0x1de
//        4 - ?                    - 0x1d7, 0x1d8, 0x1d9, 0x1da
//        5 - 2003-12-18aSakexe+   - 0x1ee, 0x1ef, 0x1f0, ?0x1c4, 0x1c5?
//        6 - 2004-03-02aSakexe+   - 0x1f4, 0x1f5
//        7 - 2005-04-11aSakexe+   - 0x229, 0x22a, 0x22b, 0x22c
// see conf/battle/client.conf for other version

#ifndef PACKETVER
	#define PACKETVER 20150916
	//#define PACKETVER 20120410
#endif

// Check if the specified packetversion supports the pincode system
#define PACKETVER_SUPPORTS_PINCODE PACKETVER>=20110309

/// Check if the client needs delete_date as remaining time and not the actual delete_date (actually it was tested for clients since 2013)
#define PACKETVER_CHAR_DELETEDATE (PACKETVER > 20130000 && PACKETVER < 20141016) || PACKETVER >= 20150826

///Remove/Comment this line to disable sc_data saving. [Skotlex]
#define ENABLE_SC_SAVING
/** Remove/Comment this line to disable server-side hot-key saving support [Skotlex]
* Note that newer clients no longer save hotkeys in the registry! */
#define HOTKEY_SAVING

#if PACKETVER < 20090603
	// (27 = 9 skills x 3 bars)               (0x02b9,191)
	#define MAX_HOTKEYS 27
#elif PACKETVER < 20090617
	// (36 = 9 skills x 4 bars)               (0x07d9,254)
	#define MAX_HOTKEYS 36
#else
	// (38 = 9 skills x 4 bars & 2 Quickslots)(0x07d9,268)
	#define MAX_HOTKEYS 38
#endif

#define MAX_MAP_PER_SERVER 1500 /// Increased to allow creation of Instance Maps
#define MAX_INVENTORY 100 ///Maximum items in player inventory
/** Max number of characters per account. Note that changing this setting alone is not enough if the client is not hexed to support more characters as well.
* Max value tested was 265 */
#define MAX_CHARS 9 
/** Number of slots carded equipment can have. Never set to less than 4 as they are also used to keep the data of forged items/equipment. [Skotlex]
* Note: The client seems unable to receive data for more than 4 slots due to all related packets having a fixed size. */
#define MAX_SLOTS 4
#define MAX_AMOUNT 30000 ////Max amount of a single stacked item
#define MAX_ZENY 1000000000 ///Max zeny
#define MAX_BANK_ZENY SINT32_MAX ///Max zeny in Bank
#define MAX_FAME 1000000000 ///Max fame points
#define MAX_CART 100 ///Maximum item in cart
#define MAX_SKILL 1200 ///Maximum skill can be hold by Player, Homunculus, & Mercenary (skill list) AND skill_db limit
#define DEFAULT_WALK_SPEED 150 ///Default walk speed
#define MIN_WALK_SPEED 20 ///Min walk speed
#define MAX_WALK_SPEED 1000 ///Max walk speed
#define MAX_STORAGE 600 ///Max number of storage slots a player can have
#define MAX_GUILD_STORAGE 600 ///Max number of storage slots a guild
#define MAX_PARTY 12 ///Max party member
#define MAX_GUILD 16+10*6	///Increased max guild members +6 per 1 extension levels [Lupus]
#define MAX_GUILDPOSITION 20	///Increased max guild positions to accomodate for all members [Valaris] (removed) [PoW]
#define MAX_GUILDEXPULSION 32 ///Max Guild expulsion
#define MAX_GUILDALLIANCE 16 ///Max Guild alliance
#define MAX_GUILDSKILL	15 ///Increased max guild skills because of new skills [Sara-chan]
#define MAX_GUILDLEVEL 50 ///Max Guild level
#define MAX_GUARDIANS 8	///Local max per castle. If this value is increased, need to add more fields on MySQL `guild_castle` table [Skotlex]
#define MAX_QUEST_OBJECTIVES 3 ///Max quest objectives for a quest
#define MAX_QUEST_DROPS 3 ///Max quest drops for a quest
#define MAX_PC_BONUS_SCRIPT 50 ///Max bonus script can be fetched from `bonus_script` table on player load [Cydh]
#define MAX_ITEM_RDM_OPT 5	 /// Max item random option [Napster]
#define DB_NAME_LEN 256 //max len of dbs
#define MAX_CLAN 500
#define MAX_CLANALLIANCE 6

// for produce
#define MIN_ATTRIBUTE 0
#define MAX_ATTRIBUTE 4
#define ATTRIBUTE_NORMAL 0
#define MIN_STAR 0
#define MAX_STAR 3

#define MAX_STATUS_TYPE 5

#define WEDDING_RING_M 2634
#define WEDDING_RING_F 2635

//For character names, title names, guilds, maps, etc.
//Includes null-terminator as it is the length of the array.
#define NAME_LENGTH (23 + 1)
#define PASSWD_LENGTH (32+1)
//NPC names can be longer than it's displayed on client (NAME_LENGTH).
#define NPC_NAME_LENGTH 50
//For item names, which tend to have much longer names.
#define ITEM_NAME_LENGTH 50
//For Map Names, which the client considers to be 16 in length including the .gat extension
#define MAP_NAME_LENGTH (11 + 1)
#define MAP_NAME_LENGTH_EXT (MAP_NAME_LENGTH + 4)
//Pincode Length
#define PINCODE_LENGTH 4

#define MAX_FRIENDS 40
#define MAX_MEMOPOINTS 3
#define MAX_SKILLCOOLDOWN 20

//Size of the fame list arrays.
#define MAX_FAME_LIST 10

//Limits to avoid ID collision with other game objects
#define START_ACCOUNT_NUM 2000000
#define END_ACCOUNT_NUM 100000000
#define START_CHAR_NUM 150000

//Guilds
#define MAX_GUILDMES1 60
#define MAX_GUILDMES2 120

//Base Homun skill.
#define HM_SKILLBASE 8001
#define MAX_HOMUNSKILL 43
#define MAX_HOMUNCULUS_CLASS	52	//[orn], Increased to 60 from 16 to allow new Homun-S.
#define HM_CLASS_BASE 6001
#define HM_CLASS_MAX (HM_CLASS_BASE+MAX_HOMUNCULUS_CLASS-1)

//Mail System
#define MAIL_MAX_INBOX 30
#define MAIL_TITLE_LENGTH 40
#define MAIL_BODY_LENGTH 200

//Mercenary System
#define MC_SKILLBASE 8201
#define MAX_MERCSKILL 40
#define MAX_MERCENARY_CLASS 61

//Elemental System
#define MAX_ELEMENTALSKILL 42
#define EL_SKILLBASE 8401
#define MAX_ELESKILLTREE 3
#define MAX_ELEMENTAL_CLASS 12
#define EL_CLASS_BASE 2114
#define EL_CLASS_MAX (EL_CLASS_BASE+MAX_ELEMENTAL_CLASS-1)

enum item_types {
	IT_HEALING = 0,
	IT_UNKNOWN, //1
	IT_USABLE,  //2
	IT_ETC,     //3
	IT_ARMOR,   //4
	IT_WEAPON,  //5
	IT_CARD,    //6
	IT_PETEGG,  //7
	IT_PETARMOR,//8
	IT_UNKNOWN2,//9
	IT_AMMO,    //10
	IT_DELAYCONSUME,//11
	IT_SHADOWGEAR,  //12
	IT_CASH = 18,
	IT_MAX
};

// Questlog states
enum quest_state {
	Q_INACTIVE, ///< Inactive quest (the user can toggle between active and inactive quests)
	Q_ACTIVE,   ///< Active quest
	Q_COMPLETE, ///< Completed quest
};

/// Questlog entry
struct quest {
	int quest_id;                    ///< Quest ID
	unsigned int time;               ///< Expiration time
	int count[MAX_QUEST_OBJECTIVES]; ///< Kill counters of each quest objective
	enum quest_state state;          ///< Current quest state
};

struct item {
	int id;
	unsigned short nameid;
	short amount;
	unsigned int equip; // location(s) where item is equipped (using enum equip_pos for bitmasking)
	char identify;
	char refine;
	char attribute;
	unsigned short card[MAX_SLOTS];
	struct {
		short id;
		short value;
		char param;
	} option[MAX_ITEM_RDM_OPT];		// max of 5 random options can be supported.
	unsigned int expire_time;
	char favorite, bound;
	uint64 unique_id;
};

//Equip position constants
enum equip_pos {
	EQP_HEAD_LOW         = 0x000001,
	EQP_HEAD_MID         = 0x000200, // 512
	EQP_HEAD_TOP         = 0x000100, // 256
	EQP_HAND_R           = 0x000002, // 2
	EQP_HAND_L           = 0x000020, // 32
	EQP_ARMOR            = 0x000010, // 16
	EQP_SHOES            = 0x000040, // 64
	EQP_GARMENT          = 0x000004, // 4
	EQP_ACC_L            = 0x000008, // 8
	EQP_ACC_R            = 0x000080, // 128
	EQP_COSTUME_HEAD_TOP = 0x000400, // 1024
	EQP_COSTUME_HEAD_MID = 0x000800, // 2048
	EQP_COSTUME_HEAD_LOW = 0x001000, // 4096
	EQP_COSTUME_GARMENT  = 0x002000, // 8192
	//EQP_COSTUME_FLOOR  = 0x004000, // 16384
	EQP_AMMO             = 0x008000, // 32768
	EQP_SHADOW_ARMOR     = 0x010000, // 65536
	EQP_SHADOW_WEAPON    = 0x020000, // 131072
	EQP_SHADOW_SHIELD    = 0x040000, // 262144
	EQP_SHADOW_SHOES     = 0x080000, // 524288
	EQP_SHADOW_ACC_R     = 0x100000, // 1048576
	EQP_SHADOW_ACC_L     = 0x200000, // 2097152

	// Combined
	EQP_ACC_RL			= EQP_ACC_R|EQP_ACC_L,
	EQP_SHADOW_ACC_RL	= EQP_SHADOW_ACC_R|EQP_SHADOW_ACC_L,
};

struct point {
	unsigned short map;
	short x,y;
};

struct startitem {
	unsigned short nameid, amount;
	short pos;
};

enum e_skill_flag
{
	SKILL_FLAG_PERMANENT,
	SKILL_FLAG_TEMPORARY,
	SKILL_FLAG_PLAGIARIZED,
	SKILL_FLAG_PERM_GRANTED, // Permanent, granted through someway e.g. script
	SKILL_FLAG_TMP_COMBO, //@FIXME for homunculus combo atm

	//! NOTE: This flag be the last flag, and don't change the value if not needed!
	SKILL_FLAG_REPLACED_LV_0 = 10, // temporary skill overshadowing permanent skill of level 'N - SKILL_FLAG_REPLACED_LV_0',
};

enum e_mmo_charstatus_opt {
	OPT_NONE        = 0x0,
	OPT_SHOW_EQUIP  = 0x1,
	OPT_ALLOW_PARTY = 0x2,
};

struct s_skill {
	uint16 id;
	uint8 lv;
	uint8 flag; // see enum e_skill_flag
};

struct script_reg_state {
	unsigned int type : 1; // because I'm a memory hoarder and having them in the same struct would be a 8-byte/instance waste while ints outnumber str on a 10000-to-1 ratio.
	unsigned int update : 1; // whether it needs to be sent to char server for insertion/update/delete
};

struct script_reg_num {
	struct script_reg_state flag;
	int value;
};

struct script_reg_str {
	struct script_reg_state flag;
	char *value;
};

//For saving status changes across sessions. [Skotlex]
struct status_change_data {
	unsigned short type; //SC_type
	long val1, val2, val3, val4, tick; //Remaining duration.
};

#define MAX_BONUS_SCRIPT_LENGTH 512
struct bonus_script_data {
	char script_str[MAX_BONUS_SCRIPT_LENGTH]; //< Script string
	uint32 tick; ///< Tick
	uint16 flag; ///< Flags @see enum e_bonus_script_flags
	int16 icon; ///< Icon SI
	uint8 type; ///< 0 - None, 1 - Buff, 2 - Debuff
};

struct skill_cooldown_data {
	unsigned short skill_id;
	long tick;
};

enum storage_type {
	TABLE_INVENTORY = 1,
	TABLE_CART,
	TABLE_STORAGE,
	TABLE_GUILD_STORAGE,
};

enum e_storage_mode {
	STOR_MODE_NONE = 0x0,
	STOR_MODE_GET = 0x1,
	STOR_MODE_PUT = 0x2,
	STOR_MODE_ALL = 0x3,
};

struct s_storage {
	bool dirty; ///< Dirty status, data needs to be saved
	bool status; ///< Current status of storage (opened or closed)
	uint16 amount; ///< Amount of items in storage
	bool lock; ///< If locked, can't use storage when item bound retrieval
	uint32 id; ///< Account ID / Character ID / Guild ID (owner of storage)
	enum storage_type type; ///< Type of storage (inventory, cart, storage, guild storage)
	uint16 max_amount;
	uint8 stor_id; ///< Storage ID
	struct {
		unsigned get : 1;
		unsigned put : 1;
	} state;
	union { // Max for inventory, storage, cart, and guild storage are 1637 each without changing this struct and struct item [2014/10/27]
		struct item items_inventory[MAX_INVENTORY];
		struct item items_storage[MAX_STORAGE];
		struct item items_cart[MAX_CART];
		struct item items_guild[MAX_GUILD_STORAGE];
	} u;
};

struct s_storage_table {
	char name[NAME_LENGTH];
	char table[DB_NAME_LEN];
	uint16 max_num;
	uint8 id;
};

struct s_pet {
	uint32 account_id;
	uint32 char_id;
	int pet_id;
	short class_;
	short level;
	short egg_id;//pet egg id
	short equip;//pet equip name_id
	short intimate;//pet friendly
	short hungry;//pet hungry
	char name[NAME_LENGTH];
	char rename_flag;
	char incubate;
};

struct s_homunculus {	//[orn]
	char name[NAME_LENGTH];
	int hom_id;
	uint32 char_id;
	short class_;
	short prev_class;
	int hp,max_hp,sp,max_sp;
	unsigned int intimacy;	//[orn]
	short hunger;
	struct s_skill hskill[MAX_HOMUNSKILL]; //albator
	short skillpts;
	short level;
	unsigned int exp;
	short rename_flag;
	short vaporize; //albator
	int str;
	int agi;
	int vit;
	int int_;
	int dex;
	int luk;

	int str_value;
	int agi_value;
	int vit_value;
	int int_value;
	int dex_value;
	int luk_value;

	char spiritball; //for homun S [lighta]
};

struct s_mercenary {
	int mercenary_id;
	uint32 char_id;
	short class_;
	int hp, sp;
	unsigned int kill_count;
	unsigned int life_time;
};

struct s_elemental {
	int elemental_id;
	uint32 char_id;
	short class_;
	int mode;
	int hp, sp, max_hp, max_sp, matk, atk, atk2;
	short hit, flee, amotion, def, mdef;
	int life_time;
};

struct s_friend {
	uint32 account_id;
	uint32 char_id;
	char name[NAME_LENGTH];
};

#ifdef HOTKEY_SAVING
struct hotkey {
	unsigned int id;
	unsigned short lv;
	unsigned char type; // 0: item, 1: skill
};
#endif

struct mmo_charstatus {
	uint32 char_id;
	uint32 account_id;
	uint32 partner_id;
	uint32 father;
	uint32 mother;
	uint32 child;

	unsigned int base_exp,job_exp;
	int zeny;

	short class_; ///< Player's JobID
	unsigned int status_point,skill_point;
	int hp,max_hp,sp,max_sp;
	unsigned int option;
	short manner; // Defines how many minutes a char will be muted, each negative point is equivalent to a minute.
	unsigned char karma;
	short hair,hair_color,clothes_color,body;
	int party_id,guild_id,pet_id,hom_id,mer_id,ele_id,clan_id;
	int fame;

	// Mercenary Guilds Rank
	int arch_faith, arch_calls;
	int spear_faith, spear_calls;
	int sword_faith, sword_calls;

	short weapon; // enum weapon_type
	short shield; // view-id
	short head_top,head_mid,head_bottom;
	short robe;

	char name[NAME_LENGTH];
	unsigned int base_level,job_level;
	unsigned short str,agi,vit,int_,dex,luk;
	unsigned char slot,sex;

	uint32 mapip;
	uint16 mapport;

	struct point last_point,save_point,memo_point[MAX_MEMOPOINTS];
	struct s_skill skill[MAX_SKILL];

	struct s_friend friends[MAX_FRIENDS]; //New friend system [Skotlex]
#ifdef HOTKEY_SAVING
	struct hotkey hotkeys[MAX_HOTKEYS];
#endif
	bool show_equip,allow_party;
	short rename;

	time_t delete_date;
	time_t unban_time;

	// Char server addon system
	unsigned int character_moves;

	unsigned char font;

	bool cashshop_sent; // Whether the player has received the CashShop list

	uint32 uniqueitem_counter;

	unsigned char hotkey_rowshift;
};

typedef enum mail_status {
	MAIL_NEW,
	MAIL_UNREAD,
	MAIL_READ,
} mail_status;

struct mail_message {
	int id;
	uint32 send_id;                 //hold char_id of sender
	char send_name[NAME_LENGTH];    //sender nickname
	uint32 dest_id;                 //hold char_id of receiver
	char dest_name[NAME_LENGTH];    //receiver nickname
	char title[MAIL_TITLE_LENGTH];
	char body[MAIL_BODY_LENGTH];

	mail_status status;
	time_t timestamp; // marks when the message was sent

	uint32 zeny;
	struct item item;
};

struct mail_data {
	short amount;
	bool full;
	short unchecked, unread;
	struct mail_message msg[MAIL_MAX_INBOX];
};

struct auction_data {
	unsigned int auction_id;
	int seller_id;
	char seller_name[NAME_LENGTH];
	int buyer_id;
	char buyer_name[NAME_LENGTH];

	struct item item;
	// This data is required for searching, as itemdb is not read by char server
	char item_name[ITEM_NAME_LENGTH];
	short type;

	unsigned short hours;
	int price, buynow;
	time_t timestamp; // auction's end time
	int auction_end_timer;
};

struct party_member {
	uint32 account_id;
	uint32 char_id;
	char name[NAME_LENGTH];
	unsigned short class_;
	unsigned short map;
	unsigned short lv;
	unsigned leader : 1,
	         online : 1;
};

struct party {
	int party_id;
	char name[NAME_LENGTH];
	unsigned char count; //Count of online characters.
	unsigned exp : 1,
				item : 2; //&1: Party-Share (round-robin), &2: pickup style: shared.
	struct party_member member[MAX_PARTY];
};

struct map_session_data;
struct guild_member {
	uint32 account_id, char_id;
	short hair,hair_color,gender,class_,lv;
	uint64 exp;
	int exp_payper;
	short online,position;
	char name[NAME_LENGTH];
	struct map_session_data *sd;
	unsigned char modified;
};

struct guild_position {
	char name[NAME_LENGTH];
	int mode;
	int exp_mode;
	unsigned char modified;
};

struct guild_alliance {
	int opposition;
	int guild_id;
	char name[NAME_LENGTH];
};

struct guild_expulsion {
	char name[NAME_LENGTH];
	char mes[40];
	uint32 account_id;
};

struct guild_skill {
	int id,lv;
};

struct Channel;
struct guild {
	int guild_id;
	short guild_lv, connect_member, max_member, average_lv;
	uint64 exp;
	unsigned int next_exp;
	int skill_point;
	char name[NAME_LENGTH],master[NAME_LENGTH];
	struct guild_member member[MAX_GUILD];
	struct guild_position position[MAX_GUILDPOSITION];
	char mes1[MAX_GUILDMES1],mes2[MAX_GUILDMES2];
	int emblem_len,emblem_id;
	char emblem_data[2048];
	struct guild_alliance alliance[MAX_GUILDALLIANCE];
	struct guild_expulsion expulsion[MAX_GUILDEXPULSION];
	struct guild_skill skill[MAX_GUILDSKILL];
	struct Channel *channel;
	unsigned short instance_id;

	/* Used by char-server to save events for guilds */
	unsigned short save_flag;
};

struct guild_castle {
	int castle_id;
	int mapindex;
	char castle_name[NAME_LENGTH];
	char castle_event[NAME_LENGTH];
	int guild_id;
	int economy;
	int defense;
	int triggerE;
	int triggerD;
	int nextTime;
	int payTime;
	int createTime;
	int visibleC;
	struct {
		unsigned visible : 1;
		int id; // object id
	} guardian[MAX_GUARDIANS];
	int* temp_guardians; // ids of temporary guardians (mobs)
	int temp_guardians_max;
};

struct fame_list {
	int id;
	int fame;
	char name[NAME_LENGTH];
};

enum e_guild_info { //Change Guild Infos
	GBI_EXP	=1,		// Guild Experience (EXP)
	GBI_GUILDLV,		// Guild level
	GBI_SKILLPOINT,		// Guild skillpoints
	GBI_SKILLLV,		// Guild skill_lv ?? seem unused
};

enum e_guild_member_info { //Change Member Infos
	GMI_POSITION	=0,
	GMI_EXP,
	GMI_HAIR,
	GMI_HAIR_COLOR,
	GMI_GENDER,
	GMI_CLASS,
	GMI_LEVEL,
};

enum e_guild_skill {
	GD_SKILLBASE=10000,
	GD_APPROVAL=10000,
	GD_KAFRACONTRACT=10001,
	GD_GUARDRESEARCH=10002,
	GD_GUARDUP=10003,
	GD_EXTENSION=10004,
	GD_GLORYGUILD=10005,
	GD_LEADERSHIP=10006,
	GD_GLORYWOUNDS=10007,
	GD_SOULCOLD=10008,
	GD_HAWKEYES=10009,
	GD_BATTLEORDER=10010,
	GD_REGENERATION=10011,
	GD_RESTORE=10012,
	GD_EMERGENCYCALL=10013,
	GD_DEVELOPMENT=10014,
	GD_ITEMEMERGENCYCALL=10015,
	GD_MAX,
};

#define MAX_SKILL_ID GD_MAX

//These mark the ID of the jobs, as expected by the client. [Skotlex]
enum e_job {
	JOB_NOVICE,
	JOB_SWORDMAN,
	JOB_MAGE,
	JOB_ARCHER,
	JOB_ACOLYTE,
	JOB_MERCHANT,
	JOB_THIEF,
	JOB_KNIGHT,
	JOB_PRIEST,
	JOB_WIZARD,
	JOB_BLACKSMITH,
	JOB_HUNTER,
	JOB_ASSASSIN,
	JOB_KNIGHT2,
	JOB_CRUSADER,
	JOB_MONK,
	JOB_SAGE,
	JOB_ROGUE,
	JOB_ALCHEMIST,
	JOB_BARD,
	JOB_DANCER,
	JOB_CRUSADER2,
	JOB_WEDDING,
	JOB_SUPER_NOVICE,
	JOB_GUNSLINGER,
	JOB_NINJA,
	JOB_XMAS,
	JOB_SUMMER,
	JOB_HANBOK,
	JOB_OKTOBERFEST,
	JOB_MAX_BASIC,

	JOB_NOVICE_HIGH = 4001,
	JOB_SWORDMAN_HIGH,
	JOB_MAGE_HIGH,
	JOB_ARCHER_HIGH,
	JOB_ACOLYTE_HIGH,
	JOB_MERCHANT_HIGH,
	JOB_THIEF_HIGH,
	JOB_LORD_KNIGHT,
	JOB_HIGH_PRIEST,
	JOB_HIGH_WIZARD,
	JOB_WHITESMITH,
	JOB_SNIPER,
	JOB_ASSASSIN_CROSS,
	JOB_LORD_KNIGHT2,
	JOB_PALADIN,
	JOB_CHAMPION,
	JOB_PROFESSOR,
	JOB_STALKER,
	JOB_CREATOR,
	JOB_CLOWN,
	JOB_GYPSY,
	JOB_PALADIN2,

	JOB_BABY,
	JOB_BABY_SWORDMAN,
	JOB_BABY_MAGE,
	JOB_BABY_ARCHER,
	JOB_BABY_ACOLYTE,
	JOB_BABY_MERCHANT,
	JOB_BABY_THIEF,
	JOB_BABY_KNIGHT,
	JOB_BABY_PRIEST,
	JOB_BABY_WIZARD,
	JOB_BABY_BLACKSMITH,
	JOB_BABY_HUNTER,
	JOB_BABY_ASSASSIN,
	JOB_BABY_KNIGHT2,
	JOB_BABY_CRUSADER,
	JOB_BABY_MONK,
	JOB_BABY_SAGE,
	JOB_BABY_ROGUE,
	JOB_BABY_ALCHEMIST,
	JOB_BABY_BARD,
	JOB_BABY_DANCER,
	JOB_BABY_CRUSADER2,
	JOB_SUPER_BABY,

	JOB_TAEKWON,
	JOB_STAR_GLADIATOR,
	JOB_STAR_GLADIATOR2,
	JOB_SOUL_LINKER,

	JOB_GANGSI,
	JOB_DEATH_KNIGHT,
	JOB_DARK_COLLECTOR,

	JOB_RUNE_KNIGHT = 4054,
	JOB_WARLOCK,
	JOB_RANGER,
	JOB_ARCH_BISHOP,
	JOB_MECHANIC,
	JOB_GUILLOTINE_CROSS,

	JOB_RUNE_KNIGHT_T,
	JOB_WARLOCK_T,
	JOB_RANGER_T,
	JOB_ARCH_BISHOP_T,
	JOB_MECHANIC_T,
	JOB_GUILLOTINE_CROSS_T,

	JOB_ROYAL_GUARD,
	JOB_SORCERER,
	JOB_MINSTREL,
	JOB_WANDERER,
	JOB_SURA,
	JOB_GENETIC,
	JOB_SHADOW_CHASER,

	JOB_ROYAL_GUARD_T,
	JOB_SORCERER_T,
	JOB_MINSTREL_T,
	JOB_WANDERER_T,
	JOB_SURA_T,
	JOB_GENETIC_T,
	JOB_SHADOW_CHASER_T,

	JOB_RUNE_KNIGHT2,
	JOB_RUNE_KNIGHT_T2,
	JOB_ROYAL_GUARD2,
	JOB_ROYAL_GUARD_T2,
	JOB_RANGER2,
	JOB_RANGER_T2,
	JOB_MECHANIC2,
	JOB_MECHANIC_T2,

	JOB_BABY_RUNE = 4096,
	JOB_BABY_WARLOCK,
	JOB_BABY_RANGER,
	JOB_BABY_BISHOP,
	JOB_BABY_MECHANIC,
	JOB_BABY_CROSS,
	JOB_BABY_GUARD,
	JOB_BABY_SORCERER,
	JOB_BABY_MINSTREL,
	JOB_BABY_WANDERER,
	JOB_BABY_SURA,
	JOB_BABY_GENETIC,
	JOB_BABY_CHASER,

	JOB_BABY_RUNE2,
	JOB_BABY_GUARD2,
	JOB_BABY_RANGER2,
	JOB_BABY_MECHANIC2,

	JOB_SUPER_NOVICE_E = 4190,
	JOB_SUPER_BABY_E,

	JOB_KAGEROU = 4211,
	JOB_OBORO,

	JOB_REBELLION = 4215,

	JOB_SUMMONER = 4218,

	JOB_MAX,
};

enum e_sex {
	SEX_FEMALE = 0,
	SEX_MALE,
	SEX_SERVER
};

/// Item Bound Type
enum bound_type {
	BOUND_NONE = 0, /// No bound
	BOUND_ACCOUNT, /// 1- Account Bound
	BOUND_GUILD, /// 2 - Guild Bound
	BOUND_PARTY, /// 3 - Party Bound
	BOUND_CHAR, /// 4 - Character Bound
	BOUND_MAX,

	BOUND_ONEQUIP = 1, ///< Show notification when item will be bound on equip
	BOUND_DISPYELLOW = 2, /// Shows the item name in yellow color
};

enum e_pc_reg_loading {
	PRL_NONE = 0x0,
	PRL_CHAR = 0x1,
	PRL_ACCL = 0x2, // local
	PRL_ACCG = 0x4, // global
	PRL_ALL = 0xFF,
};

enum e_party_member_withdraw {
	PARTY_MEMBER_WITHDRAW_LEAVE,	  ///< /leave
	PARTY_MEMBER_WITHDRAW_EXPEL,	  ///< Kicked
	PARTY_MEMBER_WITHDRAW_CANT_LEAVE, ///< TODO: Cannot /leave
	PARTY_MEMBER_WITHDRAW_CANT_EXPEL, ///< TODO: Cannot be kicked
};

enum e_rank {
	RANK_BLACKSMITH = 0,
	RANK_ALCHEMIST = 1,
	RANK_TAEKWON = 2,
	RANK_KILLER = 3
};

struct clan_alliance {
	int opposition;
	int clan_id;
	char name[NAME_LENGTH];
};

struct clan{
	int id;
	char name[NAME_LENGTH];
	char master[NAME_LENGTH];
	char map[MAP_NAME_LENGTH_EXT];
	short max_member, connect_member;
	struct map_session_data *members[MAX_CLAN];
	struct clan_alliance alliance[MAX_CLANALLIANCE];
};

// Sanity checks...
#if MAX_ZENY > INT_MAX
#error MAX_ZENY is too big
#endif

// This sanity check is required, because some other places(like skill.c) rely on this
#if MAX_PARTY < 2
#error MAX_PARTY is too small, you need at least 2 players for a party
#endif

#ifndef VIP_ENABLE
	#define MIN_STORAGE MAX_STORAGE // If the VIP system is disabled the min = max.
	#define MIN_CHARS MAX_CHARS // Default number of characters per account.
	#define MAX_CHAR_BILLING 0
	#define MAX_CHAR_VIP 0
#endif

#if (MIN_CHARS + MAX_CHAR_VIP + MAX_CHAR_BILLING) > MAX_CHARS
#error Config of MAX_CHARS is invalid
#endif

#if MIN_STORAGE > MAX_STORAGE
#error Config of MIN_STORAGE is invalid
#endif

#ifdef PACKET_OBFUSCATION
	#if PACKETVER < 20110817
		#undef PACKET_OBFUSCATION
	#endif
#endif

/* Feb 1st 2012 */
#if PACKETVER >= 20120201
	#define NEW_CARTS
	#ifndef ENABLE_SC_SAVING
	#warning "Cart won't be able to be saved for relog"
	#endif
#if PACKETVER >= 20150826
	#define MAX_CARTS 12		// used for 3 new cart design
#else
	#define MAX_CARTS 9
#endif
#else
	#define MAX_CARTS 5
#endif

#endif /* _MMO_H_ */

 

Screenshot_1.png

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  7
  • Reputation:   0
  • Joined:  11/22/16
  • Last Seen:  

BUMP?!

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  5
  • Reputation:   2
  • Joined:  06/20/14
  • Last Seen:  

That has to do with your data folder or grf. In the clientinfo.xml file, it needs to look something like this:

<address>127.0.0.1</address>
<port>6900</port>
<version>53</version>

 

Make sure you have the version tag and it's set to 53.

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  7
  • Reputation:   0
  • Joined:  11/22/16
  • Last Seen:  

On 11/28/2016 at 3:29 AM, Asela said:

That has to do with your data folder or grf. In the clientinfo.xml file, it needs to look something like this:


<address>127.0.0.1</address>
<port>6900</port>
<version>53</version>

 

Make sure you have the version tag and it's set to 53.

still dont work I did it before and the errors the same

clientinfo.xml

<?xml version="1.0" encoding="euc-kr" ?>
<clientinfo>
	<desc>Ragnarok Online Client Information</desc>
	<servicetype>korea</servicetype>
	<servertype>primary</servertype>
	<connection>
		<display>test</display>
      	<address>127.0.0.1</address>
      	<port>6900</port>
      	<version>53</version>
      	<langtype>0</langtype>
		<registrationweb>www.ragnarok.com</registrationweb>
		<loading>
			<image>loading00.jpg</image>
			<image>loading01.jpg</image>
			<image>loading02.jpg</image>
			<image>loading03.jpg</image>
			<image>loading04.jpg</image>
		</loading>
		<yellow>
			<admin>2000000</admin>
			<admin>2000001</admin>
			<admin>2000002</admin>
		</yellow>
   	</connection>
</clientinfo>

 

 

Some one ? may help me ?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...