Jump to content
  • 0

Disconnecting session #3


Mushroom

Question


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  8
  • Reputation:   0
  • Joined:  08/08/12
  • Last Seen:  

[info]: clif_parse: Disconnecting session #3 with unknown packet version (p:0x46
4d,l:19).

Im using 2012-04-10aRagexeRE client. patched with ShinsDiffPatcher.

My packetversion in mmo.h is set to 20120410

clientinfo packetver is set to 30

packet_db contains packer_ver 30 - packets for 2012-04-10 client. it is included in resent svn rathena version.

WAN/lan settings are correct.

found similar topics but still cannot fix the problem

Link to comment
Share on other sites

6 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  94
  • Topics Per Day:  0.02
  • Content Count:  2192
  • Reputation:   252
  • Joined:  11/11/11
  • Last Seen:  

Did you add the plugin to Skip Packet Header Obfuscation?

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  22
  • Topics Per Day:  0.00
  • Content Count:  1479
  • Reputation:   172
  • Joined:  12/14/11
  • Last Seen:  

then, after done editing mmo.h, have you re-compiled your server?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  7
  • Reputation:   1
  • Joined:  01/06/13
  • Last Seen:  

[info]: clif_parse: Disconnecting session #3 with unknown packet version (p:0x46
4d,l:19).

Im using 2012-04-10aRagexeRE client. patched with ShinsDiffPatcher.

My packetversion in mmo.h is set to 20120410

clientinfo packetver is set to 30

packet_db contains packer_ver 30 - packets for 2012-04-10 client. it is included in resent svn rathena version.

WAN/lan settings are correct.

found similar topics but still cannot fix the problem

Hello Guys, I'm new here, but i'm older from RO servers from Vidar and Athena (when the forum was eathena.ws :D) and i'm having the same problem here.

Same hexed, packet_db.txt confs, same values in mmo.h and still not working o.O

Here we go:

PS: Trying to Run Offline only under localhost (127.0.0.1)

My rAthena Server Version: 16797 (downloaded 3 days ago)

My Files:

clientinfo.xml:

<?xml version="1.0" encoding="euc-kr" ?>
<clientinfo>
<servicetype>korea</servicetype>
<servertype>sakray</servertype>
<connection>
 <display>KainRO Test Server</display>
 <desc>ThiagoKain's RO Server</desc>
 <balloon>bla bla bla</balloon>
 <address>127.0.0.1</address>
 <port>6900</port>
 <version>25</version>
 <langtype>1</langtype>
 <registrationweb>https://www.google.com.br/#hl=pt-BR&safe=off&tbo=d&sclient=psy-ab&q=thiagokain&oq=thiagokain&gs_l=hp.3..0i13j0i13i30j0i13i10i30j0i13i30.371.2578.0.2805.10.9.0.1.1.0.453.2287.2-6j1j1.8.0...0.0...1c.1.ysCAOEfu2-g&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.&bvm=bv.1355534169,d.eWU&fp=fe445338dff20956&bpcl=40096503&biw=944&bih=951</registrationweb>
 <yellow>
  <admin>2000000</admin>
  <admin>2000001</admin>
  <admin>2000002</admin>
  <admin>2000003</admin>
  <admin>2000004</admin>
 </yellow>
 <loading>
  <image>loadingscreen01.jpg</image>
 </loading>
</connection>
</clientinfo>

clif.h

// Copyright (c) Athena Dev Teams - Licensed under GNU GPL
// For more information, see LICENCE in the main folder
#ifndef _CLIF_H_
#define _CLIF_H_
#include "../common/cbasetypes.h"
//#include "../common/mmo.h"
struct item;
struct storage_data;
struct guild_storage;
//#include "map.h"
struct block_list;
struct unit_data;
struct map_session_data;
struct homun_data;
struct pet_data;
struct mob_data;
struct npc_data;
struct chat_data;
struct flooritem_data;
struct skill_unit;
struct s_vending;
struct party;
struct party_data;
struct guild;
struct battleground_data;
struct quest;
struct party_booking_ad_info;
#include <stdarg.h>
enum
{// packet DB
MAX_PACKET_DB  = 0xA00,
MAX_PACKET_VER = 30,
MAX_PACKET_POS = 20,
};
struct s_packet_db {
short len;
void (*func)(int, struct map_session_data *);
short pos[MAX_PACKET_POS];
};
// packet_db[sERVER] is reserved for server use
#define SERVER 0
#define packet_len(cmd) packet_db[sERVER][cmd].len
extern struct s_packet_db packet_db[MAX_PACKET_VER+1][MAX_PACKET_DB+1];
// local define
typedef enum send_target {
ALL_CLIENT,
ALL_SAMEMAP,
AREA,	// area
AREA_WOS,   // area, without self
AREA_WOC,   // area, without chatrooms
AREA_WOSC,   // area, without own chatroom
AREA_CHAT_WOC,  // hearable area, without chatrooms
CHAT,	// current chatroom
CHAT_WOS,   // current chatroom, without self
PARTY,
PARTY_WOS,
PARTY_SAMEMAP,
PARTY_SAMEMAP_WOS,
PARTY_AREA,
PARTY_AREA_WOS,
GUILD,
GUILD_WOS,
GUILD_SAMEMAP,
GUILD_SAMEMAP_WOS,
GUILD_AREA,
GUILD_AREA_WOS,
GUILD_NOBG,
DUEL,
DUEL_WOS,
CHAT_MAINCHAT,  // everyone on main chat
SELF,
BG,	 // BattleGround System
BG_WOS,
BG_SAMEMAP,
BG_SAMEMAP_WOS,
BG_AREA,
BG_AREA_WOS,
} send_target;
typedef enum emotion_type
{
E_GASP = 0,	 // /!
E_WHAT,		 // 
E_HO,
E_LV,
E_SWT,
E_IC,
E_AN,
E_AG,
E_CASH,		 // /$
E_DOTS,		 // 
E_SCISSORS,	 //  --- 10
E_ROCK,		 // 
E_PAPER,		// 
E_KOREA,
E_LV2,
E_THX,
E_WAH,
E_SRY,
E_HEH,
E_SWT2,
E_HMM,		  // --- 20
E_NO1,
E_NO,		   // 
E_OMG,
E_OH,
E_X,
E_HLP,
E_GO,
E_SOB,
E_GG,
E_KIS,		  // --- 30
E_KIS2,
E_PIF,
E_OK,
E_MUTE,		 // red  used for muted characters
E_INDONESIA,
E_BZZ,		  // , /stare
E_RICE,
E_AWSM,		 // , /cool
E_MEH,
E_SHY,		  // --- 40
E_PAT,		  // , /goodboy
E_MP,		   // /mp, /sptime
E_SLUR,
E_COM,		  // , /comeon
E_YAWN,		 // , /sleepy
E_GRAT,		 // /grat, /congrats
E_HP,		   // /hp, /hptime
E_PHILIPPINES,
E_MALAYSIA,
E_SINGAPORE,	// --- 50
E_BRAZIL,
E_FLASH,		// /fsh
E_SPIN,		 // /spin
E_SIGH,
E_DUM,		  // /dum
E_LOUD,		 // /crwd
E_OTL,		  // /otl, /desp
E_DICE1,
E_DICE2,
E_DICE3,		// --- 60
E_DICE4,
E_DICE5,
E_DICE6,
E_INDIA,
E_LUV,		  // /love
E_RUSSIA,
E_VIRGIN,
E_MOBILE,
E_MAIL,
E_CHINESE,	  // --- 70
E_ANTENNA1,
E_ANTENNA2,
E_ANTENNA3,
E_HUM,
E_ABS,
E_OOPS,
E_SPIT,
E_ENE,
E_PANIC,
E_WHISP,		// --- 80
E_YUT1,
E_YUT2,
E_YUT3,
E_YUT4,
E_YUT5,
E_YUT6,
E_YUT7,
//
E_MAX
} emotion_type;
typedef enum clr_type
{
CLR_OUTSIGHT = 0,
CLR_DEAD,
CLR_RESPAWN,
CLR_TELEPORT,
CLR_TRICKDEAD,
} clr_type;
enum map_property
{// clif_map_property
MAPPROPERTY_NOTHING	   = 0,
MAPPROPERTY_FREEPVPZONE   = 1,
MAPPROPERTY_EVENTPVPZONE  = 2,
MAPPROPERTY_AGITZONE	  = 3,
MAPPROPERTY_PKSERVERZONE  = 4, // message "You are in a PK area. Please beware of sudden attacks." in color 0x9B9BFF (light red)
MAPPROPERTY_PVPSERVERZONE = 5,
MAPPROPERTY_DENYSKILLZONE = 6,
};
enum map_type
{// clif_map_type
MAPTYPE_VILLAGE			  = 0,
MAPTYPE_VILLAGE_IN		   = 1,
MAPTYPE_FIELD				= 2,
MAPTYPE_DUNGEON			  = 3,
MAPTYPE_ARENA				= 4,
MAPTYPE_PENALTY_FREEPKZONE   = 5,
MAPTYPE_NOPENALTY_FREEPKZONE = 6,
MAPTYPE_EVENT_GUILDWAR	   = 7,
MAPTYPE_AGIT				 = 8,
MAPTYPE_DUNGEON2			 = 9,
MAPTYPE_DUNGEON3			 = 10,
MAPTYPE_PKSERVER			 = 11,
MAPTYPE_PVPSERVER			= 12,
MAPTYPE_DENYSKILL			= 13,
MAPTYPE_TURBOTRACK		   = 14,
MAPTYPE_JAIL				 = 15,
MAPTYPE_MONSTERTRACK		 = 16,
MAPTYPE_PORINGBATTLE		 = 17,
MAPTYPE_AGIT_SIEGEV15		= 18,
MAPTYPE_BATTLEFIELD		  = 19,
MAPTYPE_PVP_TOURNAMENT	   = 20,
//Map types 21 - 24 not used.
MAPTYPE_SIEGE_LOWLEVEL	   = 25,
//Map types 26 - 28 remains opens for future types.
MAPTYPE_UNUSED			   = 29,
};
enum useskill_fail_cause
{// clif_skill_fail
USESKILL_FAIL_LEVEL = 0,
USESKILL_FAIL_SP_INSUFFICIENT = 1,
USESKILL_FAIL_HP_INSUFFICIENT = 2,
USESKILL_FAIL_STUFF_INSUFFICIENT = 3,
USESKILL_FAIL_SKILLINTERVAL = 4,
USESKILL_FAIL_MONEY = 5,
USESKILL_FAIL_THIS_WEAPON = 6,
USESKILL_FAIL_REDJAMSTONE = 7,
USESKILL_FAIL_BLUEJAMSTONE = 8,
USESKILL_FAIL_WEIGHTOVER = 9,
USESKILL_FAIL = 10,
USESKILL_FAIL_TOTARGET = 11,
USESKILL_FAIL_ANCILLA_NUMOVER = 12,
USESKILL_FAIL_HOLYWATER = 13,
USESKILL_FAIL_ANCILLA = 14,
USESKILL_FAIL_DUPLICATE_RANGEIN = 15,
USESKILL_FAIL_NEED_OTHER_SKILL = 16,
USESKILL_FAIL_NEED_HELPER = 17,
USESKILL_FAIL_INVALID_DIR = 18,
USESKILL_FAIL_SUMMON = 19,
USESKILL_FAIL_SUMMON_NONE = 20,
USESKILL_FAIL_IMITATION_SKILL_NONE = 21,
USESKILL_FAIL_DUPLICATE = 22,
USESKILL_FAIL_CONDITION = 23,
USESKILL_FAIL_PAINTBRUSH = 24,
USESKILL_FAIL_DRAGON = 25,
USESKILL_FAIL_POS = 26,
USESKILL_FAIL_HELPER_SP_INSUFFICIENT = 27,
USESKILL_FAIL_NEER_WALL = 28,
USESKILL_FAIL_NEED_EXP_1PERCENT = 29,
USESKILL_FAIL_CHORUS_SP_INSUFFICIENT = 30,
USESKILL_FAIL_GC_WEAPONBLOCKING = 31,
USESKILL_FAIL_GC_POISONINGWEAPON = 32,
USESKILL_FAIL_MADOGEAR = 33,
USESKILL_FAIL_NEED_EQUIPMENT_KUNAI = 34,
USESKILL_FAIL_TOTARGET_PLAYER = 35,
USESKILL_FAIL_SIZE = 36,
USESKILL_FAIL_CANONBALL = 37,
//XXX_USESKILL_FAIL_II_MADOGEAR_ACCELERATION = 38,
//XXX_USESKILL_FAIL_II_MADOGEAR_HOVERING_BOOSTER = 39,
USESKILL_FAIL_MADOGEAR_HOVERING = 40,
//XXX_USESKILL_FAIL_II_MADOGEAR_SELFDESTRUCTION_DEVICE = 41,
//XXX_USESKILL_FAIL_II_MADOGEAR_SHAPESHIFTER = 42,
USESKILL_FAIL_GUILLONTINE_POISON = 43,
//XXX_USESKILL_FAIL_II_MADOGEAR_COOLING_DEVICE = 44,
//XXX_USESKILL_FAIL_II_MADOGEAR_MAGNETICFIELD_GENERATOR = 45,
//XXX_USESKILL_FAIL_II_MADOGEAR_BARRIER_GENERATOR = 46,
//XXX_USESKILL_FAIL_II_MADOGEAR_OPTICALCAMOUFLAGE_GENERATOR = 47,
//XXX_USESKILL_FAIL_II_MADOGEAR_REPAIRKIT = 48,
//XXX_USESKILL_FAIL_II_MONKEY_SPANNER = 49,
USESKILL_FAIL_MADOGEAR_RIDE = 50,
USESKILL_FAIL_SPELLBOOK = 51,
USESKILL_FAIL_SPELLBOOK_DIFFICULT_SLEEP = 52,
USESKILL_FAIL_SPELLBOOK_PRESERVATION_POINT = 53,
USESKILL_FAIL_SPELLBOOK_READING = 54,
//XXX_USESKILL_FAIL_II_FACE_PAINTS = 55,
//XXX_USESKILL_FAIL_II_MAKEUP_BRUSH = 56,
USESKILL_FAIL_CART = 57,
//XXX_USESKILL_FAIL_II_THORNS_SEED = 58,
//XXX_USESKILL_FAIL_II_BLOOD_SUCKER_SEED = 59,
USESKILL_FAIL_NO_MORE_SPELL = 60,
//XXX_USESKILL_FAIL_II_BOMB_MUSHROOM_SPORE = 61,
//XXX_USESKILL_FAIL_II_GASOLINE_BOOMB = 62,
//XXX_USESKILL_FAIL_II_OIL_BOTTLE = 63,
//XXX_USESKILL_FAIL_II_EXPLOSION_POWDER = 64,
//XXX_USESKILL_FAIL_II_SMOKE_POWDER = 65,
//XXX_USESKILL_FAIL_II_TEAR_GAS = 66,
//XXX_USESKILL_FAIL_II_HYDROCHLORIC_ACID_BOTTLE = 67,
//XXX_USESKILL_FAIL_II_HELLS_PLANT_BOTTLE = 68,
//XXX_USESKILL_FAIL_II_MANDRAGORA_FLOWERPOT = 69,
USESKILL_FAIL_MANUAL_NOTIFY = 70,
USESKILL_FAIL_NEED_ITEM = 71,
USESKILL_FAIL_NEED_EQUIPMENT = 72,
USESKILL_FAIL_COMBOSKILL = 73,
USESKILL_FAIL_SPIRITS = 74,
USESKILL_FAIL_EXPLOSIONSPIRITS = 75,
USESKILL_FAIL_HP_TOOMANY = 76,
USESKILL_FAIL_NEED_ROYAL_GUARD_BANDING = 77,
USESKILL_FAIL_NEED_EQUIPPED_WEAPON_CLASS = 78,
USESKILL_FAIL_EL_SUMMON = 79,
USESKILL_FAIL_RELATIONGRADE = 80,
USESKILL_FAIL_STYLE_CHANGE_FIGHTER = 81,
USESKILL_FAIL_STYLE_CHANGE_GRAPPLER = 82,
USESKILL_FAIL_THERE_ARE_NPC_AROUND = 83,
};
int clif_setip(const char* ip);
void clif_setbindip(const char* ip);
void clif_setport(uint16 port);
uint32 clif_getip(void);
uint32 clif_refresh_ip(void);
uint16 clif_getport(void);
void clif_authok(struct map_session_data *sd);
void clif_authrefuse(int fd, uint8 error_code);
void clif_authfail_fd(int fd, int type);
void clif_charselectok(int id, uint8 ok);
void clif_dropflooritem(struct flooritem_data* fitem);
void clif_clearflooritem(struct flooritem_data *fitem, int fd);
void clif_clearunit_single(int id, clr_type type, int fd);
void clif_clearunit_area(struct block_list* bl, clr_type type);
void clif_clearunit_delayed(struct block_list* bl, clr_type type, unsigned int tick);
int clif_spawn(struct block_list *bl); //area
void clif_walkok(struct map_session_data *sd); // self
void clif_move(struct unit_data *ud); //area
void clif_changemap(struct map_session_data *sd, short map, int x, int y); //self
void clif_changemapserver(struct map_session_data* sd, unsigned short map_index, int x, int y, uint32 ip, uint16 port); //self
void clif_blown(struct block_list *bl); // area
void clif_slide(struct block_list *bl, int x, int y); // area
void clif_fixpos(struct block_list *bl); // area
void clif_npcbuysell(struct map_session_data* sd, int id); //self
void clif_buylist(struct map_session_data *sd, struct npc_data *nd); //self
void clif_selllist(struct map_session_data *sd); //self
void clif_scriptmes(struct map_session_data *sd, int npcid, const char *mes); //self
void clif_scriptnext(struct map_session_data *sd,int npcid); //self
void clif_scriptclose(struct map_session_data *sd, int npcid); //self
void clif_scriptmenu(struct map_session_data* sd, int npcid, const char* mes); //self
void clif_scriptinput(struct map_session_data *sd, int npcid); //self
void clif_scriptinputstr(struct map_session_data *sd, int npcid); // self
void clif_cutin(struct map_session_data* sd, const char* image, int type); //self
void clif_viewpoint(struct map_session_data *sd, int npc_id, int type, int x, int y, int id, int color); //self
void clif_additem(struct map_session_data *sd, int n, int amount, int fail); // self
void clif_dropitem(struct map_session_data *sd,int n,int amount); //self
void clif_delitem(struct map_session_data *sd,int n,int amount, short reason); //self
void clif_updatestatus(struct map_session_data *sd,int type); //self
void clif_changestatus(struct map_session_data* sd,int type,int val); //area
int clif_damage(struct block_list* src, struct block_list* dst, unsigned int tick, int sdelay, int ddelay, int damage, int div, int type, int damage2); // area
void clif_takeitem(struct block_list* src, struct block_list* dst);
void clif_sitting(struct block_list* bl);
void clif_standing(struct block_list* bl);
void clif_changelook(struct block_list *bl,int type,int val); // area
void clif_changetraplook(struct block_list *bl,int val); // area
void clif_refreshlook(struct block_list *bl,int id,int type,int val,enum send_target target); //area specified in 'target'
void clif_arrowequip(struct map_session_data *sd,int val); //self
void clif_arrow_fail(struct map_session_data *sd,int type); //self
void clif_arrow_create_list(struct map_session_data *sd); //self
void clif_statusupack(struct map_session_data *sd,int type,int ok,int val); // self
void clif_equipitemack(struct map_session_data *sd,int n,int pos,int ok); // self
void clif_unequipitemack(struct map_session_data *sd,int n,int pos,int ok); // self
void clif_misceffect(struct block_list* bl,int type); // area
void clif_changeoption(struct block_list* bl); // area
void clif_changeoption2(struct block_list* bl); // area
void clif_useitemack(struct map_session_data *sd,int index,int amount,bool ok); // self
void clif_GlobalMessage(struct block_list* bl, const char* message);
void clif_createchat(struct map_session_data* sd, int flag); // self
void clif_dispchat(struct chat_data* cd, int fd); // area or fd
void clif_joinchatfail(struct map_session_data *sd,int flag); // self
void clif_joinchatok(struct map_session_data *sd,struct chat_data* cd); // self
void clif_addchat(struct chat_data* cd,struct map_session_data *sd); // chat
void clif_changechatowner(struct chat_data* cd, struct map_session_data* sd); // chat
void clif_clearchat(struct chat_data *cd,int fd); // area or fd
void clif_leavechat(struct chat_data* cd, struct map_session_data* sd, bool flag); // chat
void clif_changechatstatus(struct chat_data* cd); // chat
void clif_refresh(struct map_session_data *sd); // self
void clif_fame_blacksmith(struct map_session_data *sd, int points);
void clif_fame_alchemist(struct map_session_data *sd, int points);
void clif_fame_taekwon(struct map_session_data *sd, int points);
void clif_emotion(struct block_list *bl,int type);
void clif_talkiebox(struct block_list* bl, const char* talkie);
void clif_wedding_effect(struct block_list *bl);
void clif_divorced(struct map_session_data* sd, const char* name);
void clif_callpartner(struct map_session_data *sd);
void clif_playBGM(struct map_session_data* sd, const char* name);
void clif_soundeffect(struct map_session_data* sd, struct block_list* bl, const char* name, int type);
void clif_soundeffectall(struct block_list* bl, const char* name, int type, enum send_target coverage);
void clif_parse_ActionRequest_sub(struct map_session_data *sd, int action_type, int target_id, unsigned int tick);
void clif_parse_LoadEndAck(int fd,struct map_session_data *sd);
void clif_hotkeys_send(struct map_session_data *sd);
// trade
void clif_traderequest(struct map_session_data* sd, const char* name);
void clif_tradestart(struct map_session_data* sd, uint8 type);
void clif_tradeadditem(struct map_session_data* sd, struct map_session_data* tsd, int index, int amount);
void clif_tradeitemok(struct map_session_data* sd, int index, int fail);
void clif_tradedeal_lock(struct map_session_data* sd, int fail);
void clif_tradecancelled(struct map_session_data* sd);
void clif_tradecompleted(struct map_session_data* sd, int fail);
void clif_tradeundo(struct map_session_data* sd);
// storage
void clif_storagelist(struct map_session_data* sd, struct item* items, int items_length);
void clif_updatestorageamount(struct map_session_data* sd, int amount, int max_amount);
void clif_storageitemadded(struct map_session_data* sd, struct item* i, int index, int amount);
void clif_storageitemremoved(struct map_session_data* sd, int index, int amount);
void clif_storageclose(struct map_session_data* sd);
int clif_insight(struct block_list *bl,va_list ap); // map_forallinmovearea callback
int clif_outsight(struct block_list *bl,va_list ap); // map_forallinmovearea callback
void clif_class_change(struct block_list *bl,int class_,int type);
#define clif_mob_class_change(md, class_) clif_class_change(&md->bl, class_, 1)
void clif_skillinfoblock(struct map_session_data *sd);
void clif_skillup(struct map_session_data *sd,uint16 skill_id);
void clif_skillinfo(struct map_session_data *sd,int skill, int inf);
void clif_addskill(struct map_session_data *sd, int id);
void clif_deleteskill(struct map_session_data *sd, int id);
void clif_skillcasting(struct block_list* bl, int src_id, int dst_id, int dst_x, int dst_y, uint16 skill_id, int property, int casttime);
void clif_skillcastcancel(struct block_list* bl);
void clif_skill_fail(struct map_session_data *sd,uint16 skill_id,enum useskill_fail_cause cause,int btype);
void clif_skill_cooldown(struct map_session_data *sd, uint16 skill_id, unsigned int tick);
int clif_skill_damage(struct block_list *src,struct block_list *dst,unsigned int tick,int sdelay,int ddelay,int damage,int div,uint16 skill_id,uint16 skill_lv,int type);
//int clif_skill_damage2(struct block_list *src,struct block_list *dst,unsigned int tick,int sdelay,int ddelay,int damage,int div,uint16 skill_id,uint16 skill_lv,int type);
int clif_skill_nodamage(struct block_list *src,struct block_list *dst,uint16 skill_id,int heal,int fail);
void clif_skill_poseffect(struct block_list *src,uint16 skill_id,int val,int x,int y,int tick);
void clif_skill_estimation(struct map_session_data *sd,struct block_list *dst);
void clif_skill_warppoint(struct map_session_data* sd, uint16 skill_id, uint16 skill_lv, unsigned short map1, unsigned short map2, unsigned short map3, unsigned short map4);
void clif_skill_memomessage(struct map_session_data* sd, int type);
void clif_skill_teleportmessage(struct map_session_data *sd, int type);
void clif_skill_produce_mix_list(struct map_session_data *sd, uint16 skill_id, int trigger);
void clif_cooking_list(struct map_session_data *sd, int trigger, uint16 skill_id, int qty, int list_type);
void clif_produceeffect(struct map_session_data* sd,int flag,int nameid);
void clif_skill_setunit(struct skill_unit *unit);
void clif_skill_delunit(struct skill_unit *unit);
void clif_skillunit_update(struct block_list* bl);
void clif_autospell(struct map_session_data *sd,uint16 skill_lv);
void clif_devotion(struct block_list *src, struct map_session_data *tsd);
void clif_spiritball(struct block_list *bl);
void clif_combo_delay(struct block_list *bl,int wait);
void clif_bladestop(struct block_list *src, int dst_id, int active);
void clif_changemapcell(int fd, int16 m, int x, int y, int type, enum send_target target);
#define clif_status_load(bl, type, flag) clif_status_change((bl), (type), (flag), 0, 0, 0, 0)
void clif_status_change(struct block_list *bl,int type,int flag,int tick,int val1, int val2, int val3);
void clif_wis_message(int fd, const char* nick, const char* mes, int mes_len);
void clif_wis_end(int fd, int flag);
void clif_solved_charname(int fd, int charid, const char* name);
void clif_charnameack(int fd, struct block_list *bl);
void clif_charnameupdate(struct map_session_data *ssd);
void clif_use_card(struct map_session_data *sd,int idx);
void clif_insert_card(struct map_session_data *sd,int idx_equip,int idx_card,int flag);
void clif_inventorylist(struct map_session_data *sd);
void clif_equiplist(struct map_session_data *sd);
void clif_cart_additem(struct map_session_data *sd,int n,int amount,int fail);
void clif_cart_delitem(struct map_session_data *sd,int n,int amount);
void clif_cartlist(struct map_session_data *sd);
void clif_clearcart(int fd);
void clif_item_identify_list(struct map_session_data *sd);
void clif_item_identified(struct map_session_data *sd,int idx,int flag);
void clif_item_repair_list(struct map_session_data *sd, struct map_session_data *dstsd, int lv);
void clif_item_repaireffect(struct map_session_data *sd, int idx, int flag);
void clif_item_damaged(struct map_session_data* sd, unsigned short position);
void clif_item_refine_list(struct map_session_data *sd);
void clif_item_skill(struct map_session_data *sd,uint16 skill_id,uint16 skill_lv);
void clif_mvp_effect(struct map_session_data *sd);
void clif_mvp_item(struct map_session_data *sd,int nameid);
void clif_mvp_exp(struct map_session_data *sd, unsigned int exp);
void clif_mvp_noitem(struct map_session_data* sd);
void clif_changed_dir(struct block_list *bl, enum send_target target);
// vending
void clif_openvendingreq(struct map_session_data* sd, int num);
void clif_showvendingboard(struct block_list* bl, const char* message, int fd);
void clif_closevendingboard(struct block_list* bl, int fd);
void clif_vendinglist(struct map_session_data* sd, int id, struct s_vending* vending);
void clif_buyvending(struct map_session_data* sd, int index, int amount, int fail);
void clif_openvending(struct map_session_data* sd, int id, struct s_vending* vending);
void clif_vendingreport(struct map_session_data* sd, int index, int amount);
void clif_movetoattack(struct map_session_data *sd,struct block_list *bl);
// party
void clif_party_created(struct map_session_data *sd,int result);
void clif_party_member_info(struct party_data *p, struct map_session_data *sd);
void clif_party_info(struct party_data* p, struct map_session_data *sd);
void clif_party_invite(struct map_session_data *sd,struct map_session_data *tsd);
void clif_party_inviteack(struct map_session_data* sd, const char* nick, int result);
void clif_party_option(struct party_data *p,struct map_session_data *sd,int flag);
void clif_party_withdraw(struct party_data* p, struct map_session_data* sd, int account_id, const char* name, int flag);
void clif_party_message(struct party_data* p, int account_id, const char* mes, int len);
void clif_party_xy(struct map_session_data *sd);
void clif_party_xy_single(int fd, struct map_session_data *sd);
void clif_party_hp(struct map_session_data *sd);
void clif_hpmeter_single(int fd, int id, unsigned int hp, unsigned int maxhp);
// guild
void clif_guild_created(struct map_session_data *sd,int flag);
void clif_guild_belonginfo(struct map_session_data *sd, struct guild *g);
void clif_guild_masterormember(struct map_session_data *sd);
void clif_guild_basicinfo(struct map_session_data *sd);
void clif_guild_allianceinfo(struct map_session_data *sd);
void clif_guild_memberlist(struct map_session_data *sd);
void clif_guild_skillinfo(struct map_session_data* sd);
void clif_guild_send_onlineinfo(struct map_session_data *sd); //[LuzZza]
void clif_guild_memberlogin_notice(struct guild *g,int idx,int flag);
void clif_guild_invite(struct map_session_data *sd,struct guild *g);
void clif_guild_inviteack(struct map_session_data *sd,int flag);
void clif_guild_leave(struct map_session_data *sd,const char *name,const char *mes);
void clif_guild_expulsion(struct map_session_data* sd, const char* name, const char* mes, int account_id);
void clif_guild_positionchanged(struct guild *g,int idx);
void clif_guild_memberpositionchanged(struct guild *g,int idx);
void clif_guild_emblem(struct map_session_data *sd,struct guild *g);
void clif_guild_emblem_area(struct block_list* bl);
void clif_guild_notice(struct map_session_data* sd, struct guild* g);
void clif_guild_message(struct guild *g,int account_id,const char *mes,int len);
int clif_guild_skillup(struct map_session_data *sd,uint16 skill_id,int lv);
void clif_guild_reqalliance(struct map_session_data *sd,int account_id,const char *name);
void clif_guild_allianceack(struct map_session_data *sd,int flag);
void clif_guild_delalliance(struct map_session_data *sd,int guild_id,int flag);
void clif_guild_oppositionack(struct map_session_data *sd,int flag);
void clif_guild_broken(struct map_session_data *sd,int flag);
void clif_guild_xy(struct map_session_data *sd);
void clif_guild_xy_single(int fd, struct map_session_data *sd);
void clif_guild_xy_remove(struct map_session_data *sd);
// Battleground
void clif_bg_hp(struct map_session_data *sd);
void clif_bg_xy(struct map_session_data *sd);
void clif_bg_xy_remove(struct map_session_data *sd);
void clif_bg_message(struct battleground_data *bg, int src_id, const char *name, const char *mes, int len);
void clif_bg_updatescore(int16 m);
void clif_bg_updatescore_single(struct map_session_data *sd);
void clif_sendbgemblem_area(struct map_session_data *sd);
void clif_sendbgemblem_single(int fd, struct map_session_data *sd);
// Instancing
int clif_instance(int instance_id, int type, int flag);
void clif_instance_join(int fd, int instance_id);
void clif_instance_leave(int fd);
// Custom Fonts
void clif_font(struct map_session_data *sd);
// atcommand
void clif_displaymessage(const int fd, const char* mes);
void clif_disp_onlyself(struct map_session_data *sd, const char *mes, int len);
void clif_disp_message(struct block_list* src, const char* mes, int len, enum send_target target);
void clif_broadcast(struct block_list* bl, const char* mes, int len, int type, enum send_target target);
void clif_MainChatMessage(const char* message);
void clif_broadcast2(struct block_list* bl, const char* mes, int len, unsigned long fontColor, short fontType, short fontSize, short fontAlign, short fontY, enum send_target target);
void clif_heal(int fd,int type,int val);
void clif_resurrection(struct block_list *bl,int type);
void clif_map_property(struct map_session_data* sd, enum map_property property);
void clif_pvpset(struct map_session_data *sd, int pvprank, int pvpnum,int type);
void clif_map_property_mapall(int map, enum map_property property);
void clif_refine(int fd, int fail, int index, int val);
void clif_upgrademessage(int fd, int result, int item_id);
//petsystem
void clif_catch_process(struct map_session_data *sd);
void clif_pet_roulette(struct map_session_data *sd,int data);
void clif_sendegg(struct map_session_data *sd);
void clif_send_petstatus(struct map_session_data *sd);
void clif_send_petdata(struct map_session_data* sd, struct pet_data* pd, int type, int param);
#define clif_pet_equip(sd, pd) clif_send_petdata(sd, pd, 3, (pd)->vd.head_bottom)
#define clif_pet_equip_area(pd) clif_send_petdata(NULL, pd, 3, (pd)->vd.head_bottom)
#define clif_pet_performance(pd, param) clif_send_petdata(NULL, pd, 4, param)
void clif_pet_emotion(struct pet_data *pd,int param);
void clif_pet_food(struct map_session_data *sd,int foodid,int fail);
//friends list
int clif_friendslist_toggle_sub(struct map_session_data *sd,va_list ap);
void clif_friendslist_send(struct map_session_data *sd);
void clif_friendslist_reqack(struct map_session_data *sd, struct map_session_data *f_sd, int type);
void clif_weather(int16 m); // [Valaris]
void clif_specialeffect(struct block_list* bl, int type, enum send_target target); // special effects [Valaris]
void clif_specialeffect_single(struct block_list* bl, int type, int fd);
void clif_messagecolor(struct block_list* bl, unsigned long color, const char* msg); // Mob/Npc color talk [snakeDrak]
void clif_message(struct block_list* bl, const char* msg);
void clif_specialeffect_value(struct block_list* bl, int effect_id, int num, send_target target);
void clif_GM_kickack(struct map_session_data *sd, int id);
void clif_GM_kick(struct map_session_data *sd,struct map_session_data *tsd);
void clif_manner_message(struct map_session_data* sd, uint32 type);
void clif_GM_silence(struct map_session_data* sd, struct map_session_data* tsd, uint8 type);
void clif_disp_overhead(struct map_session_data *sd, const char* mes);
void clif_get_weapon_view(struct map_session_data* sd, unsigned short *rhand, unsigned short *lhand);
void clif_party_xy_remove(struct map_session_data *sd); //Fix for minimap [Kevin]
void clif_gospel_info(struct map_session_data *sd, int type);
void clif_feel_req(int fd, struct map_session_data *sd, uint16 skill_lv);
void clif_starskill(struct map_session_data* sd, const char* mapname, int monster_id, unsigned char star, unsigned char result);
void clif_feel_info(struct map_session_data* sd, unsigned char feel_level, unsigned char type);
void clif_hate_info(struct map_session_data *sd, unsigned char hate_level,int class_, unsigned char type);
void clif_mission_info(struct map_session_data *sd, int mob_id, unsigned char progress);
void clif_feel_hate_reset(struct map_session_data *sd);
// [blackhole89]
void clif_hominfo(struct map_session_data *sd, struct homun_data *hd, int flag);
int clif_homskillinfoblock(struct map_session_data *sd);
void clif_homskillup(struct map_session_data *sd, uint16 skill_id); //[orn]
int clif_hom_food(struct map_session_data *sd,int foodid,int fail); //[orn]
void clif_send_homdata(struct map_session_data *sd, int state, int param); //[orn]
void clif_equiptickack(struct map_session_data* sd, int flag);
void clif_viewequip_ack(struct map_session_data* sd, struct map_session_data* tsd);
void clif_viewequip_fail(struct map_session_data* sd);
void clif_equipcheckbox(struct map_session_data* sd);
void clif_msg(struct map_session_data* sd, unsigned short id);
void clif_msg_value(struct map_session_data* sd, unsigned short id, int value);
void clif_msg_skill(struct map_session_data* sd, uint16 skill_id, int msg_id);
//quest system [Kevin] [inkfish]
void clif_quest_send_list(struct map_session_data * sd);
void clif_quest_send_mission(struct map_session_data * sd);
void clif_quest_add(struct map_session_data * sd, struct quest * qd, int index);
void clif_quest_delete(struct map_session_data * sd, int quest_id);
void clif_quest_update_status(struct map_session_data * sd, int quest_id, bool active);
void clif_quest_update_objective(struct map_session_data * sd, struct quest * qd, int index);
void clif_quest_show_event(struct map_session_data *sd, struct block_list *bl, short state, short color);
void clif_displayexp(struct map_session_data *sd, unsigned int exp, char type, bool quest);
int clif_send(const uint8* buf, int len, struct block_list* bl, enum send_target type);
int do_init_clif(void);
void do_final_clif(void);
// MAIL SYSTEM
void clif_Mail_window(int fd, int flag);
void clif_Mail_read(struct map_session_data *sd, int mail_id);
void clif_Mail_delete(int fd, int mail_id, short fail);
void clif_Mail_return(int fd, int mail_id, short fail);
void clif_Mail_send(int fd, bool fail);
void clif_Mail_new(int fd, int mail_id, const char *sender, const char *title);
void clif_Mail_refreshinbox(struct map_session_data *sd);
void clif_Mail_getattachment(int fd, uint8 flag);
// AUCTION SYSTEM
void clif_Auction_openwindow(struct map_session_data *sd);
void clif_Auction_results(struct map_session_data *sd, short count, short pages, uint8 *buf);
void clif_Auction_message(int fd, unsigned char flag);
void clif_Auction_close(int fd, unsigned char flag);
void clif_parse_Auction_cancelreg(int fd, struct map_session_data *sd);
void clif_bossmapinfo(int fd, struct mob_data *md, short flag);
void clif_cashshop_show(struct map_session_data *sd, struct npc_data *nd);
// ADOPTION
void clif_Adopt_reply(struct map_session_data *sd, int type);
// MERCENARIES
void clif_mercenary_info(struct map_session_data *sd);
void clif_mercenary_skillblock(struct map_session_data *sd);
void clif_mercenary_message(struct map_session_data* sd, int message);
void clif_mercenary_updatestatus(struct map_session_data *sd, int type);
// RENTAL SYSTEM
void clif_rental_time(int fd, int nameid, int seconds);
void clif_rental_expired(int fd, int index, int nameid);
// BOOK READING
void clif_readbook(int fd, int book_id, int page);
// Show Picker
void clif_party_show_picker(struct map_session_data * sd, struct item * item_data);
// Progress Bar [inkfish]
void clif_progressbar(struct map_session_data * sd, unsigned long color, unsigned int second);
void clif_progressbar_abort(struct map_session_data * sd);
void clif_PartyBookingRegisterAck(struct map_session_data *sd, int flag);
void clif_PartyBookingDeleteAck(struct map_session_data* sd, int flag);
void clif_PartyBookingSearchAck(int fd, struct party_booking_ad_info** results, int count, bool more_result);
void clif_PartyBookingUpdateNotify(struct map_session_data* sd, struct party_booking_ad_info* pb_ad);
void clif_PartyBookingDeleteNotify(struct map_session_data* sd, int index);
void clif_PartyBookingInsertNotify(struct map_session_data* sd, struct party_booking_ad_info* pb_ad);
void clif_showdigit(struct map_session_data* sd, unsigned char type, int value);
/// Buying Store System
void clif_buyingstore_open(struct map_session_data* sd);
void clif_buyingstore_open_failed(struct map_session_data* sd, unsigned short result, unsigned int weight);
void clif_buyingstore_myitemlist(struct map_session_data* sd);
void clif_buyingstore_entry(struct map_session_data* sd);
void clif_buyingstore_entry_single(struct map_session_data* sd, struct map_session_data* pl_sd);
void clif_buyingstore_disappear_entry(struct map_session_data* sd);
void clif_buyingstore_disappear_entry_single(struct map_session_data* sd, struct map_session_data* pl_sd);
void clif_buyingstore_itemlist(struct map_session_data* sd, struct map_session_data* pl_sd);
void clif_buyingstore_trade_failed_buyer(struct map_session_data* sd, short result);
void clif_buyingstore_update_item(struct map_session_data* sd, unsigned short nameid, unsigned short amount);
void clif_buyingstore_delete_item(struct map_session_data* sd, short index, unsigned short amount, int price);
void clif_buyingstore_trade_failed_seller(struct map_session_data* sd, short result, unsigned short nameid);
/// Search Store System
void clif_search_store_info_ack(struct map_session_data* sd);
void clif_search_store_info_failed(struct map_session_data* sd, unsigned char reason);
void clif_open_search_store_info(struct map_session_data* sd);
void clif_search_store_info_click_ack(struct map_session_data* sd, short x, short y);
/**
* 3CeAM
**/
void clif_msgtable(int fd, int line);
void clif_msgtable_num(int fd, int line, int num);
int clif_elementalconverter_list(struct map_session_data *sd);
void clif_millenniumshield(struct map_session_data *sd, short shields );
int clif_spellbook_list(struct map_session_data *sd);
int clif_magicdecoy_list(struct map_session_data *sd, uint16 skill_lv, short x, short y);
int clif_poison_list(struct map_session_data *sd, uint16 skill_lv);
int clif_autoshadowspell_list(struct map_session_data *sd);
int clif_status_load_notick(struct block_list *bl,int type,int flag,int val1, int val2, int val3);
int clif_status_load_single(int fd, int id,int type,int flag,int val1, int val2, int val3);

int clif_skill_itemlistwindow( struct map_session_data *sd, uint16 skill_id, uint16 skill_lv );
void clif_elemental_info(struct map_session_data *sd);
void clif_elemental_updatestatus(struct map_session_data *sd, int type);
void clif_talisman(struct map_session_data *sd, short type);
void clif_snap( struct block_list *bl, short x, short y );
void clif_monster_hp_bar( struct mob_data* md, int fd );
/**
* Color Table
**/
enum clif_colors {
COLOR_RED,
COLOR_MAX
};
unsigned long color_table[color_MAX];
int clif_colormes(struct map_session_data * sd, enum clif_colors color, const char* msg);
#define clif_menuskill_clear(sd) (sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0;
#endif /* _CLIF_H_ */

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 <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
// 20061023 - 2006-10-23aSakexe+   - 0x6b, 0x6d
// 20070521 - 2007-05-21aSakexe+   - 0x283
// 20070821 - 2007-08-21aSakexe+   - 0x2c5
// 20070918 - 2007-09-18aSakexe+   - 0x2d7, 0x2d9, 0x2da
// 20071106 - 2007-11-06aSakexe+   - 0x78, 0x7c, 0x22c
// 20080102 - 2008-01-02aSakexe+   - 0x2ec, 0x2ed , 0x2ee
// 20081126 - 2008-11-26aSakexe+   - 0x1a2
// 20090408 - 2009-04-08aSakexe+   - 0x44a (dont use as it overlaps with RE client packets)
// 20080827 - 2008-08-27aRagexeRE+ - First RE Client
// 20081217 - 2008-12-17aRagexeRE+ - 0x6d (Note: This one still use old Char Info Packet Structure)
// 20081218 - 2008-12-17bRagexeRE+ - 0x6d (Note: From this one client use new Char Info Packet Structure)
// 20090603 - 2009-06-03aRagexeRE+ - 0x7d7, 0x7d8, 0x7d9, 0x7da
// 20090617 - 2009-06-17aRagexeRE+ - 0x7d9
// 20090922 - 2009-09-22aRagexeRE+ - 0x7e5, 0x7e7, 0x7e8, 0x7e9
// 20091103 - 2009-11-03aRagexeRE+ - 0x7f7, 0x7f8, 0x7f9
// 20100105 - 2010-01-05aRagexeRE+ - 0x133, 0x800, 0x801
// 20100126 - 2010-01-26aRagexeRE+ - 0x80e
// 20100223 - 2010-02-23aRagexeRE+ - 0x80f
// 20100413 - 2010-04-13aRagexeRE+ - 0x6b
// 20100629 - 2010-06-29aRagexeRE+ - 0x2d0, 0xaa, 0x2d1, 0x2d2
// 20100721 - 2010-07-21aRagexeRE+ - 0x6b, 0x6d
// 20100727 - 2010-07-27aRagexeRE+ - 0x6b, 0x6d
// 20100803 - 2010-08-03aRagexeRE+ - 0x6b, 0x6d, 0x827, 0x828, 0x829, 0x82a, 0x82b, 0x82c, 0x842, 0x843
// 20101124 - 2010-11-24aRagexeRE+ - 0x856, 0x857, 0x858
// 20110111 - 2011-01-11aRagexeRE+ - 0x6b, 0x6d
// 20110928 - 2011-09-28aRagexeRE+ - 0x6b, 0x6d
// 20111025 - 2011-10-25aRagexeRE+ - 0x6b, 0x6d
// 20120307 - 2012-03-07aRagexeRE+ - 0x970
#ifndef PACKETVER
#define PACKETVER 20120410
//#define PACKETVER 20111116
#endif
//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
//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.
#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
//Max amount of a single stacked item
#define MAX_AMOUNT 30000
#define MAX_ZENY 1000000000
#define MAX_FAME 1000000000
#define MAX_CART 100
#define MAX_SKILL 3100
#define GLOBAL_REG_NUM 256   // max permanent character variables per char
#define ACCOUNT_REG_NUM 64   // max permanent local account variables per account
#define ACCOUNT_REG2_NUM 16  // max permanent global account variables per account
//Should hold the max of GLOBAL/ACCOUNT/ACCOUNT2 (needed for some arrays that hold all three)
#define MAX_REG_NUM 256
#define DEFAULT_WALK_SPEED 150
#define MIN_WALK_SPEED 0
#define MAX_WALK_SPEED 1000
#define MAX_STORAGE 600
#define MAX_GUILD_STORAGE 600
#define MAX_PARTY 12
#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
#define MAX_GUILDALLIANCE 16
#define MAX_GUILDSKILL 15 // increased max guild skills because of new skills [sara-chan]
#define MAX_GUILDLEVEL 50
#define MAX_GUARDIANS 8 //Local max per castle. [skotlex]
#define MAX_QUEST_DB 2200 //Max quests that the server will load
#define MAX_QUEST_OBJECTIVES 3 //Max quest objectives for a quest
// 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)
//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)
#define MAX_FRIENDS 40
#define MAX_MEMOPOINTS 3
//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 44
//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_WEAPON,  //4
IT_ARMOR,   //5
IT_CARD,    //6
IT_PETEGG,  //7
IT_PETARMOR,//8
IT_UNKNOWN2,//9
IT_AMMO,    //10
IT_DELAYCONSUME,//11
IT_CASH = 18,
IT_MAX
};

//Questlog system [Kevin] [inkfish]
typedef enum quest_state { Q_INACTIVE, Q_ACTIVE, Q_COMPLETE } quest_state;
struct quest {
int quest_id;
unsigned int time;
int count[MAX_QUEST_OBJECTIVES];
quest_state state;
};
struct item {
int id;
short nameid;
short amount;
unsigned short equip; // location(s) where item is equipped (using enum equip_pos for bitmasking)
char identify;
char refine;
char attribute;
short card[MAX_SLOTS];
unsigned int expire_time;
char favorite;
};
struct point {
unsigned short map;
short x,y;
};
enum e_skill_flag
{
SKILL_FLAG_PERMANENT,
SKILL_FLAG_TEMPORARY,
SKILL_FLAG_PLAGIARIZED,
SKILL_FLAG_REPLACED_LV_0, // temporary skill overshadowing permanent skill of level 'N - SKILL_FLAG_REPLACED_LV_0',
SKILL_FLAG_PERM_GRANTED, // permanent, granted through someway e.g. script
//...
};
struct s_skill {
unsigned short id;
unsigned char lv;
unsigned char flag; // see enum e_skill_flag
};
struct global_reg {
char str[32];
char value[256];
};
//Holds array of global registries, used by the char server and converter.
struct accreg {
int account_id, char_id;
int reg_num;
struct global_reg reg[MAX_REG_NUM];
};
//For saving status changes across sessions. [skotlex]
struct status_change_data {
unsigned short type; //SC_type
long val1, val2, val3, val4, tick; //Remaining duration.
};
struct storage_data {
int storage_amount;
struct item items[MAX_STORAGE];
};
struct guild_storage {
int dirty;
int guild_id;
short storage_status;
short storage_amount;
struct item items[MAX_GUILD_STORAGE];
unsigned short lock;
};
struct s_pet {
int account_id;
int 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 incuvate;
};
struct s_homunculus { //[orn]
char name[NAME_LENGTH];
int hom_id;
int 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 ;
char spiritball; //for homun S [lighta]
};
struct s_mercenary {
int mercenary_id;
int char_id;
short class_;
int hp, sp;
unsigned int kill_count;
unsigned int life_time;
};
struct s_elemental {
int elemental_id;
int 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 {
int account_id;
int 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 {
int char_id;
int account_id;
int partner_id;
int father;
int mother;
int child;
unsigned int base_exp,job_exp;
int zeny;
short class_;
unsigned int status_point,skill_point;
int hp,max_hp,sp,max_sp;
unsigned int option;
short manner;
unsigned char karma;
short hair,hair_color,clothes_color;
int party_id,guild_id,pet_id,hom_id,mer_id,ele_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;
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 item inventory[MAX_INVENTORY],cart[MAX_CART];
struct storage_data storage;
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;
short rename;
time_t delete_date;
};
typedef enum mail_status {
MAIL_NEW,
MAIL_UNREAD,
MAIL_READ,
} mail_status;
struct mail_message {
int id;
int send_id;
char send_name[NAME_LENGTH];
int dest_id;
char dest_name[NAME_LENGTH];
char title[MAIL_TITLE_LENGTH];
char body[MAIL_BODY_LENGTH];
mail_status status;
time_t timestamp; // marks when the message was sent
int 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 registry {
int global_num;
struct global_reg global[GLOBAL_REG_NUM];
int account_num;
struct global_reg account[ACCOUNT_REG_NUM];
int account2_num;
struct global_reg account2[ACCOUNT_REG2_NUM];
};
struct party_member {
int account_id;
int 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 {
int 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];
int account_id;
};
struct guild_skill {
int id,lv;
};
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];
unsigned short save_flag; // for TXT saving
};
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 { //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 { //Change Member Infos
GMI_POSITION =0,
GMI_EXP,
GMI_HAIR,
GMI_HAIR_COLOR,
GMI_GENDER,
GMI_CLASS,
GMI_LEVEL,
};
enum {
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_MAX,
};

//These mark the ID of the jobs, as expected by the client. [skotlex]
enum {
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_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_MAX,
};
enum {
SEX_FEMALE = 0,
SEX_MALE,
SEX_SERVER
};
// sanity checks...
#if MAX_ZENY > INT_MAX
#error MAX_ZENY is too big
#endif
#endif /* _MMO_H_ */

packet_db.txt

// 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_db_ver: 25
packet_db_ver: 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
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
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
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
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
0x0162,-1
0x0163,-1
0x0164,-1
0x0165,30,createguild,6
0x0166,-1
0x0167,3
0x0168,14,guildinvite,2
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
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,0
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,0
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
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,0
0x01f8,2
0x01f9,6,adoptrequest,0
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
//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,0
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,0
0x024c,8,auctionsetitem,0
0x024d,14
0x024e,6,auctioncancel,0
0x024f,10,auctionbid,0
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,0
0x024e,4
//2005-08-17aSakexe
0x0253,3
0x0254,3,feelsaveok,0
//2005-08-29aSakexe
0x0240,-1
0x0248,-1,mailsend,2:4:28:68
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,0
//2005-10-13aSakexe
0x007a,6
0x0251,32
0x025c,4,auctionbuysell,0
//2005-10-17aSakexe
0x007a,58
0x025d,6,auctionclose,0
0x025e,4
//2005-10-24aSakexe
0x025f,6
0x0260,6
//2005-11-07aSakexe
0x024e,6,auctioncancel,0
0x0251,34,auctionsearch,0
//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,0
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
//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
0x02c9,3
0x02ca,3
0x02cb,20
0x02cc,4
0x02cd,26
0x02ce,10
0x02cf,6
0x02d0,-1
0x02d1,-1
0x02d2,-1
0x02d3,4
0x02d4,29
0x02d5,2
0x02d6,6,viewplayerequip,2
0x02d7,-1
0x02d8,10,equiptickbox,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
//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
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,gmreqaccname,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
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
//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
//0x841,4
//2010-08-03aRagexeRE
0x0839,66
0x0842,6,recall2,2
0x0843,6,remove2,2
//2010-11-24aRagexeRE
packet_ver: 26
0x0288,-1,cashshopbuy,4:8
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
//2011-10-05aRagexeRE
packet_ver: 27
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
// 2011-11-02aRagexe
packet_ver: 28
0x0436,26,friendslistadd,2
0x0898,5,hommenu,4
0x0281,36,storagepassword,0
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
0x890,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
//2012-03-07fRagexeRE
packet_ver:29
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,4
0x0861,36,storagepassword,0
0x0929,26,partyinvite2,2
0x0885,7,actionrequest,2:6
0x0889,10,useskilltoid,2:4:6
0x0870,-1,itemlistwindowselected,2:4:8
0x0926,18,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
//2012-04-10aRagexeRE
packet_ver: 30
0x01FD,15,repairitem,2
0x089C,26,friendslistadd,2
0x0885,5,hommenu,2:4
0x0961,36,storagepassword,0
0x0288,-1,cashshopbuy,4:8
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
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
0x08E5,41,bookingregreq,2:4 //Added to prevent disconnections
0x08E6,4
0x08E7,10,bookingsearchreq,2
0x08E8,-1
0x08E9,2,bookingdelreq,2
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 //Added to prevent disconnections
0x08CF,10 //Amulet spirits
0x0977,14 //Monster HP Bar
//Add new packets here
//packet_ver: 31

subnet_athena.conf

// Subnet support file
// Format is:
// subnet: net-submask:char_ip:map_ip
// you can add more than one subnet
subnet: 255.255.255.0:127.0.0.1:127.0.0.1

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
//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
//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 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
// 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: 127
// 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

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: KainRO_Test
// 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 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 for unlimited.
max_connect_user: 0
// Group ID that is allowed to bypass the server limit of users.
// Default: -1 = nobody (there are no groups with ID < 0)
// See: conf/groups.conf
gm_allow_group: -1
// How often should the server save all files? (In seconds)
// Note: Applies to all data files on TXT servers.
// On SQL servers, it applies to guilds (character save interval is defined on the map config)
autosave_time: 60
// Display information on the console whenever characters/guilds/parties/pets are loaded/saved?
save_log: yes
// Start point, Map name followed by coordinates (x,y)
start_point: new_1-1,53,111
// Starting weapon for new characters
start_weapon: 1201
// Starting armor for new characters
start_armor: 2301
// 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
// How many Characters are allowed per Account ? (0 = disabled)
// You can not exceed the limit of MAX_CHARS slots, defined in mmo.h
// Doing that, chars_per_account will be default to MAX_CHARS.
chars_per_account: 0
// 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
// What folder the DB files are in (item_db.txt, etc.)
db_path: db
import: conf/import/char_conf.txt

login_athena.conf (the only that is everything default. I didin't change any line in this file.

// Athena Login Server configuration file.
// Translated by Peter Kieser <[email protected]>
// 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.
// The login server listens on the interface with this IP address.
// NOTE: This allows you to run multiple servers on multiple interfaces
// while using the same ports for each server.
//bind_ip: 127.0.0.1

// Login Server Port
login_port: 6900
//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 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
// Can you use _M/_F to make new accounts on the server?
new_account: yes
//If new_account is enabled, minimum length to userid and passwords should be 4?
//Must be 'Yes' unless your client uses both 'Disable 4 LetterUserID/Password' Diffs
new_acc_length_limit: yes
// Account registration flood protection system
// allowed_regs is the number of registrations allowed in time_allowed (in seconds)
allowed_regs: 1
time_allowed: 10
// Log Filename. All operations received by the server are logged in this file.
login_log_filename: log/login.log
// To log the login server?
// NOTE: The login-sql server needs the login logs to enable dynamic pass failure bans.
log_login: yes
// Indicate how to display date in logs, to players, etc.
date_format: %Y-%m-%d %H:%M:%S
// Required account group id to connect to server.
// -1: disabled
// 0 or more: group id
group_id_to_connect: -1
// Minimum account group id required to connect to server.
// Will not function if group_id_to_connect config is enabled.
// -1: disabled
// 0 or more: group id
min_group_id_to_connect: -1
// Starting additional sec from now for the limited time at creation of account
// -1: new account are created with UNlimited time (default value)
// 0 or more: new accounts was created by addition of the value (in sec) to the actual time (to set first limited time)
start_limited_time: -1
// Check The clientversion set in the clientinfo ?
check_client_version: no
// What version we would allow to connect? (if the options above is enabled..)
client_version_to_connect: 20
// Store passwords as MD5 hashes instead of plaintext ?
// NOTE: Will not work with clients that use <passwordencrypt>
use_MD5_passwords: no
// Ipban features (SQL only)
ipban.enable: yes
//ipban.sql.db_hostname: 127.0.0.1
//ipban.sql.db_port: 3306
//ipban.sql.db_username: ragnarok
//ipban.sql.db_password: ragnarok
//ipban.sql.db_database: ragnarok
//ipban.sql.codepage:
//ipban.sql.ipban_table: ipbanlist
// Dynamic password failure ipban system
ipban.dynamic_pass_failure_ban: yes
ipban.dynamic_pass_failure_ban_interval: 5
ipban.dynamic_pass_failure_ban_limit: 7
ipban.dynamic_pass_failure_ban_duration: 5
// Interval (in seconds) to clean up expired IP bans. 0 = disabled. default = 60.
// NOTE: Even if this is disabled, expired IP bans will be cleaned up on login server start/stop.
// Players will still be able to login if an ipban entry exists but the expiration time has already passed.
ipban_cleanup_interval: 60
// Interval (in minutes) to execute a DNS/IP update. Disabled by default.
// Enable it if your server uses a dynamic IP which changes with time.
//ip_sync_interval: 10
// DNS Blacklist Blocking
// If enabled, each incoming connection will be tested against the blacklists
// on the specified dnsbl_servers (comma-separated list)
use_dnsbl: no
dnsbl_servers: bl.blocklist.de, socks.dnsbl.sorbs.net
// Here are some free DNS Blacklist Services: http://en.wikipedia.org/wiki/Comparison_of_DNS_blacklists
//==============================================================================
//   dnsbl_servers                 Description
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// bl.blocklist.de                 IP-Addresses who attack other servers/honeypots over SSH, FTP, IMAP, etc.
// ircbl.ahbl.org                  AHBL (open proxies, compromised machines, comment spammers)
// safe.dnsbl.sorbs.net            All zones in dnsbl.sorbs.net except "recent" and "escalations"
// sbl-xbl.spamhaus.org            Spamhaus blacklist (spammers, open proxies)
// socks.dnsbl.sorbs.net           Open SOCKS proxy servers
// tor.ahbl.org                    Current tor relay and exit nodes
// Which account engine to use.
// 'auto' selects the first engine available (txt, sql, then others)
// (defaults to auto)
account.engine: auto
// Account data storage configuration
// SQL
//account.sql.db_hostname: 127.0.0.1
//account.sql.db_port: 3306
//account.sql.db_username: ragnarok
//account.sql.db_password: ragnarok
//account.sql.db_database: ragnarok
//account.sql.codepage:
//account.sql.case_sensitive: no
//account.sql.account_db: login
//account.sql.accreg_db: global_reg_value
// Client MD5 hash check
// If turned on, the login server will check if the client's hash matches
// the value below, and will not connect tampered clients.
// Note: see doc\md5_hashcheck.txt for more details.
client_hash_check: off
// Client MD5 hashes
// A player can login with a client hash at or below the account group_id.
// Format: group_id, hash
client_hash: 0, 113e195e6c051bb1cfb12a644bb084c5
client_hash: 99, cb1ea78023d337c38e8ba5124e2338ae
import: conf/inter_athena.conf
import: conf/import/login_conf.txt

I followed these videos:

[rAthena - Sharpienero] How to: Make a ragnarok online private server [Part 1 - 2012]

http://www.youtube.com/watch?v=3LTOOEjRtUo

[rAthena - Sharpienero] How to: Make a client and get in-game [Part 2 - 2012]

http://www.youtube.com/watch?v=CtDRZki3Hpo

[rAthena - Sharpienero] How to: Assign Admins/Work w/ Groups.conf [Part 3 - 2012]

http://www.youtube.com/watch?v=UT3bHiRSvRo

[rAthena - Sharpienero] How to: Adding NPCs [Part 4 - 2012]

http://www.youtube.com/watch?v=Az0C1k9AU_o

Please, someone can help us?

It's WORKING! I can't belive, but it's finally working thanks to user ossi0110 ( http://http://rathena.org/board/user/1117-ossi0110/)

Who helped me a lot this afternoon (here is Brazil, GTM -3) until now (19:40 PM).

He spent a lot of time helping me to find the problems and fix then.

God bless him, because we dont a lot of people who has his goodwill to help like him.

Cheers to ossi0110 \o/

Cheers to ossi0110 \o/

Edited by kainbr3
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  6
  • Reputation:   0
  • Joined:  01/10/13
  • Last Seen:  

Do you feel like sharing what you did? I've been pulling my hair out for the last day trying to figure this out.

EDIT: NVM my problem is different.

Edited by Metra
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  12
  • Topics Per Day:  0.00
  • Content Count:  318
  • Reputation:   37
  • Joined:  12/30/11
  • Last Seen:  

Do you feel like sharing what you did? I've been pulling my hair out for the last day trying to figure this out.

EDIT: NVM my problem is different.

Hello Mera

he used the Wrong Diff patcher.

if you have the same problem , download this Diff patcher and be sure too diff SKIP PACKET HEADER.....

http://supportmii.com/ro1/Clients/Weediff2012Pack_v5.7.7z

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  6
  • Reputation:   0
  • Joined:  01/10/13
  • Last Seen:  

Do you feel like sharing what you did? I've been pulling my hair out for the last day trying to figure this out.

EDIT: NVM my problem is different.

Hello Mera

he used the Wrong Diff patcher.

if you have the same problem , download this Diff patcher and be sure too diff SKIP PACKET HEADER.....

http://supportmii.co...012Pack_v5.7.7z

I checked this out anyways ossi, My problem is a bit different. See my post here: http://rathena.org/board/topic/77249-failed-to-connect-after-login/

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...