It says game client not the latest version when I try to log in. I got the mmo.h right ( i think so)
// 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 "../common/db.h"
#include <time.h>
// server->client protocol version
// 0 - pre-?
// 1 - ? - 0x196
// 2 - ? - 0x78, 0x79
// 3 - ? - 0x1c8, 0x1c9, 0x1de
// 4 - ? - 0x1d7, 0x1d8, 0x1d9, 0x1da
// 5 - 2003-12-18aSakexe+ - 0x1ee, 0x1ef, 0x1f0, ?0x1c4, 0x1c5?
// 6 - 2004-03-02aSakexe+ - 0x1f4, 0x1f5
// 7 - 2005-04-11aSakexe+ - 0x229, 0x22a, 0x22b, 0x22c
// 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 20120515
//#define PACKETVER 20130320
//#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 2700 //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)
//Pincode Length
#define PINCODE_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 61
//Elemental System
#define MAX_ELEMENTALSKILL 42
#define EL_SKILLBASE 8401
#define MAX_ELESKILLTREE 3
#define MAX_ELEMENTAL_CLASS 12
#define EL_CLASS_BASE 2114
#define EL_CLASS_MAX (EL_CLASS_BASE+MAX_ELEMENTAL_CLASS-1)
enum item_types {
IT_HEALING = 0,
IT_UNKNOWN, //1
IT_USABLE, //2
IT_ETC, //3
IT_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, bound;
uint64 unique_id;
};
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
SKILL_FLAG_TMP_COMBO, //@FIXME for homon combo atm
//...
};
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;
// Char server addon system
unsigned int character_moves;
};
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];
/* TODO: still used for something? */
unsigned short save_flag; // for TXT saving
void *channel;
};
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 e_guild_skill {
GD_SKILLBASE=10000,
GD_APPROVAL=10000,
GD_KAFRACONTRACT=10001,
GD_GUARDRESEARCH=10002,
GD_GUARDUP=10003,
GD_EXTENSION=10004,
GD_GLORYGUILD=10005,
GD_LEADERSHIP=10006,
GD_GLORYWOUNDS=10007,
GD_SOULCOLD=10008,
GD_HAWKEYES=10009,
GD_BATTLEORDER=10010,
GD_REGENERATION=10011,
GD_RESTORE=10012,
GD_EMERGENCYCALL=10013,
GD_DEVELOPMENT=10014,
GD_ITEMEMERGENCYCALL=10015,
GD_MAX,
};
//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_HANBOK,
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:
// 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: 28
//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
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, SELF,
// Instancing void clif_instance_create(struct map_session_data *sd, const char *name, int num, int flag); void clif_instance_changewait(struct map_session_data *sd, int num, int flag); void clif_instance_status(struct map_session_data *sd, const char *name, unsigned int limit1, unsigned int limit2, int flag); void clif_instance_changestatus(struct map_session_data *sd, int type, unsigned int limit, int flag);
/** * 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, unsigned long color, const char* msg);
Question
freyreuxine13
It says game client not the latest version when I try to log in. I got the mmo.h right ( i think so)
packet_db:
// Client<->Map Packet Database
//
// Structure of Database:
// PacketType,PacketLength[,Name,FieldIndex1:FieldIndex2:FieldIndex3:...]
//
// 01. PacketType ID of the packet.
// 02. PacketLength Length of the packet. If 0, packet is disabled in current packet version. If -1, packet has variable size.
// 03. Name Name of the packet parser function (optional, for incoming packets only).
// 04. FieldIndex Specifies the offset of a packet field in bytes from the begin of the packet (only specified when Name is given).
// Can be 0, when the layout is not known.
// ...
//
// NOTE: Up to MAX_PACKET_POS (typically 20) field indexes may be used.
//
// The packet database allows you to add support for new clients,
// because packets change every release.
//
// Note: Every packet version needs a wanttoconnection specification, since
// that is the packet used to identify a client's version.
// If multiple versions have the same connection packet, the higher version
// will be used (unless the lower one is specified as the default)
//
// Incoming packets have their parser function and layout specified, which enables
// them for the current and all higher versions, unless explicitely disabled.
//
// Outgoing packets must be specified in order to enable them for the current
// and all higher versions, unless explicitely disabled. Packets that are not
// enabled for a packet version are silently discarded when sent as multicast.
//
// Every packet version inherits packet definitions from the previous (lower)
// packet version.
//
// Main packet version of the DB to use (default = max available version)
// Client detection is faster when all clients use this version.
// Version 23 is the latest Sakexe (above versions are for Renewal clients)
//packet_db_ver: 25
packet_db_ver: 28
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-05-15aRagexeRE
packet_ver: 30
0x01FD,15,repairitem,2
0x0369,26,friendslistadd,2
0x094B,5,hommenu,2:4
0x089A,36,storagepassword,0
0x0288,-1,cashshopbuy,4:8
0x091F,26,partyinvite2,2
0x08A8,19,wanttoconnection,2:6:10:14:18
0x0923,7,actionrequest,2:6
0x0947,10,useskilltoid,2:4:6
0x0439,8,useitem,2:4
0x0366,-1,itemlistwindowselected,2:4:8
0x0891,-1,reqopenbuyingstore,2:4:8:9:89
0x092C,2,reqclosebuyingstore,0
0x091A,6,reqclickbuyingstore,2
0x096A,-1,reqtradebuyingstore,2:4:8:12
0x0817,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0367,2,searchstoreinfonextpage,0
0x087E,12,searchstoreinfolistitemclick,2:6:10
0x087C,5,walktoxy,2
0x087D,6,ticksend,2
0x08AC,5,changedir,2:4
0x0964,6,takeitem,2
0x0364,6,dropitem,2:4
0x085A,8,movetokafra,2:4
0x0869,8,movefromkafra,2:4
0x08AD,10,useskilltopos,2:4:6:8
0x08A2,90,useskilltoposinfo,2:4:6:8:10
0x08A5,6,getcharnamerequest,2
0x0957,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
clif.h :
// Copyright © Athena Dev Teams - Licensed under GNU GPL




--- 10


used for muted characters
, /stare
, /cool
, /goodboy
, /comeon
, /sleepy
// For more information, see LICENCE in the main folder
#ifndef _CLIF_H_
#define _CLIF_H_
#include "../common/cbasetypes.h"
#include "../common/db.h" //dbmap
//#include "../common/mmo.h"
struct Channel;
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
enum
{// packet DB
MAX_PACKET_DB = 0xf00,
MAX_PACKET_VER = 34,
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,
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, //
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
E_INDONESIA,
E_BZZ, //
E_RICE,
E_AWSM, //
E_MEH,
E_SHY, // --- 40
E_PAT, //
E_MP, // /mp, /sptime
E_SLUR,
E_COM, //
E_YAWN, //
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,
};
enum clif_messages {
MERC_MSG_BASE = 1266, //0x4f2
SKILL_CANT_USE_AREA = 0x536,
VIEW_EQUIP_FAIL = 0x54d,
USAGE_FAIL = 0x783,
};
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 packetdb_readdb(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 m, 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, int64 sdamage, int div, int type, int64 sdamage2); // 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,enum send_target target);
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, int lv, int range, int upgradable);
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,int64 sdamage,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, int 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);
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
void clif_instance_create(struct map_session_data *sd, const char *name, int num, int flag);
void clif_instance_changewait(struct map_session_data *sd, int num, int flag);
void clif_instance_status(struct map_session_data *sd, const char *name, unsigned int limit1, unsigned int limit2, int flag);
void clif_instance_changestatus(struct map_session_data *sd, int type, unsigned int limit, int flag);
// 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_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_maptypeproperty2(struct block_list *bl,enum send_target t);
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_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 block_list *bl, 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_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);
/// Cash Shop
void clif_cashshop_result( struct map_session_data* sd, uint16 item_id, uint16 result );
void clif_cashshop_open( struct map_session_data* sd );
/**
* 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, unsigned long color, const char* msg);
void clif_channel_msg(struct Channel *channel, struct map_session_data *sd, char *msg, short color);
#define clif_menuskill_clear(sd) (sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0;
void clif_ranklist(struct map_session_data *sd, int16 rankingType);
void clif_update_rankingpoint(struct map_session_data *sd, int rankingtype, int point);
#endif /* _CLIF_H_ */
clientinfo.xml:
199.71.213.33korea
sakray
Valkyrja Ragnarok Online
Sakray Client
6900
28
1
Sakray Client
I recompiled the server already but still got the same error. please do help me. its kinda urgent
Link to comment
Share on other sites
5 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.