2022-03-05 12:44:06 +02:00
|
|
|
|
#ifndef __INC_TABLES_H__
|
|
|
|
|
#define __INC_TABLES_H__
|
|
|
|
|
|
|
|
|
|
#include "length.h"
|
|
|
|
|
|
|
|
|
|
typedef DWORD IDENT;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @version 05/06/10 Bang2ni - Myshop Pricelist <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>Ŷ HEADER_XX_MYSHOP_PRICELIST_XXX <EFBFBD>߰<EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
enum
|
|
|
|
|
{
|
|
|
|
|
HEADER_GD_LOGIN = 1,
|
|
|
|
|
HEADER_GD_LOGOUT = 2,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_PLAYER_LOAD = 3,
|
|
|
|
|
HEADER_GD_PLAYER_SAVE = 4,
|
|
|
|
|
HEADER_GD_PLAYER_CREATE = 5,
|
|
|
|
|
HEADER_GD_PLAYER_DELETE = 6,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_LOGIN_KEY = 7,
|
|
|
|
|
// 8 empty
|
|
|
|
|
HEADER_GD_BOOT = 9,
|
|
|
|
|
HEADER_GD_PLAYER_COUNT = 10,
|
|
|
|
|
HEADER_GD_QUEST_SAVE = 11,
|
|
|
|
|
HEADER_GD_SAFEBOX_LOAD = 12,
|
|
|
|
|
HEADER_GD_SAFEBOX_SAVE = 13,
|
|
|
|
|
HEADER_GD_SAFEBOX_CHANGE_SIZE = 14,
|
|
|
|
|
HEADER_GD_EMPIRE_SELECT = 15,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_SAFEBOX_CHANGE_PASSWORD = 16,
|
|
|
|
|
HEADER_GD_SAFEBOX_CHANGE_PASSWORD_SECOND = 17, // Not really a packet, used internal
|
|
|
|
|
HEADER_GD_DIRECT_ENTER = 18,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_GUILD_SKILL_UPDATE = 19,
|
|
|
|
|
HEADER_GD_GUILD_EXP_UPDATE = 20,
|
|
|
|
|
HEADER_GD_GUILD_ADD_MEMBER = 21,
|
|
|
|
|
HEADER_GD_GUILD_REMOVE_MEMBER = 22,
|
|
|
|
|
HEADER_GD_GUILD_CHANGE_GRADE = 23,
|
|
|
|
|
HEADER_GD_GUILD_CHANGE_MEMBER_DATA = 24,
|
|
|
|
|
HEADER_GD_GUILD_DISBAND = 25,
|
|
|
|
|
HEADER_GD_GUILD_WAR = 26,
|
|
|
|
|
HEADER_GD_GUILD_WAR_SCORE = 27,
|
|
|
|
|
HEADER_GD_GUILD_CREATE = 28,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_ITEM_SAVE = 30,
|
|
|
|
|
HEADER_GD_ITEM_DESTROY = 31,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_ADD_AFFECT = 32,
|
|
|
|
|
HEADER_GD_REMOVE_AFFECT = 33,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_HIGHSCORE_REGISTER = 34,
|
|
|
|
|
HEADER_GD_ITEM_FLUSH = 35,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_PARTY_CREATE = 36,
|
|
|
|
|
HEADER_GD_PARTY_DELETE = 37,
|
|
|
|
|
HEADER_GD_PARTY_ADD = 38,
|
|
|
|
|
HEADER_GD_PARTY_REMOVE = 39,
|
|
|
|
|
HEADER_GD_PARTY_STATE_CHANGE = 40,
|
|
|
|
|
HEADER_GD_PARTY_HEAL_USE = 41,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_FLUSH_CACHE = 42,
|
|
|
|
|
HEADER_GD_RELOAD_PROTO = 43,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_CHANGE_NAME = 44,
|
|
|
|
|
HEADER_GD_SMS = 45,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_GUILD_CHANGE_LADDER_POINT = 46,
|
|
|
|
|
HEADER_GD_GUILD_USE_SKILL = 47,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_REQUEST_EMPIRE_PRIV = 48,
|
|
|
|
|
HEADER_GD_REQUEST_GUILD_PRIV = 49,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_MONEY_LOG = 50,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_GUILD_DEPOSIT_MONEY = 51,
|
|
|
|
|
HEADER_GD_GUILD_WITHDRAW_MONEY = 52,
|
|
|
|
|
HEADER_GD_GUILD_WITHDRAW_MONEY_GIVE_REPLY = 53,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_REQUEST_CHARACTER_PRIV = 54,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_SET_EVENT_FLAG = 55,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_PARTY_SET_MEMBER_LEVEL = 56,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_GUILD_WAR_BET = 57,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_CREATE_OBJECT = 60,
|
|
|
|
|
HEADER_GD_DELETE_OBJECT = 61,
|
|
|
|
|
HEADER_GD_UPDATE_LAND = 62,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_MARRIAGE_ADD = 70,
|
|
|
|
|
HEADER_GD_MARRIAGE_UPDATE = 71,
|
|
|
|
|
HEADER_GD_MARRIAGE_REMOVE = 72,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_WEDDING_REQUEST = 73,
|
|
|
|
|
HEADER_GD_WEDDING_READY = 74,
|
|
|
|
|
HEADER_GD_WEDDING_END = 75,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_AUTH_LOGIN = 100,
|
|
|
|
|
HEADER_GD_LOGIN_BY_KEY = 101,
|
|
|
|
|
HEADER_GD_BILLING_EXPIRE = 104,
|
|
|
|
|
HEADER_GD_VCARD = 105,
|
|
|
|
|
HEADER_GD_BILLING_CHECK = 106,
|
|
|
|
|
HEADER_GD_MALL_LOAD = 107,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_MYSHOP_PRICELIST_UPDATE = 108, ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>û
|
|
|
|
|
HEADER_GD_MYSHOP_PRICELIST_REQ = 109, ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><>û
|
|
|
|
|
|
|
|
|
|
HEADER_GD_BLOCK_CHAT = 110,
|
|
|
|
|
|
|
|
|
|
// PCBANG_IP_LIST_BY_AUTH
|
|
|
|
|
HEADER_GD_PCBANG_REQUEST_IP_LIST = 111,
|
|
|
|
|
HEADER_GD_PCBANG_CLEAR_IP_LIST = 112,
|
|
|
|
|
HEADER_GD_PCBANG_INSERT_IP = 113,
|
|
|
|
|
// END_OF_PCBANG_IP_LIST_BY_AUTH
|
|
|
|
|
|
|
|
|
|
HEADER_GD_HAMMER_OF_TOR = 114,
|
|
|
|
|
HEADER_GD_RELOAD_ADMIN = 115, ///<<3C><EFBFBD><EEBFB5> <20><><EFBFBD><EFBFBD> <20><>û
|
|
|
|
|
HEADER_GD_BREAK_MARRIAGE = 116, ///< <20><>ȥ <20>ı<EFBFBD>
|
|
|
|
|
HEADER_GD_ELECT_MONARCH = 117, ///< <20><><EFBFBD><EFBFBD> <20><>ǥ
|
|
|
|
|
HEADER_GD_CANDIDACY = 118, ///< <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
HEADER_GD_ADD_MONARCH_MONEY = 119, ///< <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
HEADER_GD_TAKE_MONARCH_MONEY = 120, ///< <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
HEADER_GD_COME_TO_VOTE = 121, ///< ǥ<><C7A5>
|
|
|
|
|
HEADER_GD_RMCANDIDACY = 122, ///< <20>ĺ<EFBFBD> <20><><EFBFBD><EFBFBD> (<28><EFBFBD><EEBFB5>)
|
|
|
|
|
HEADER_GD_SETMONARCH = 123, ///<<3C><><EFBFBD>ּ<EFBFBD><D6BC><EFBFBD> (<28><EFBFBD><EEBFB5>)
|
|
|
|
|
HEADER_GD_RMMONARCH = 124, ///<<3C><><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>
|
|
|
|
|
HEADER_GD_DEC_MONARCH_MONEY = 125,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_CHANGE_MONARCH_LORD = 126,
|
|
|
|
|
HEADER_GD_BLOCK_COUNTRY_IP = 127, // <20><><EFBFBD>뿪 IP-Block
|
|
|
|
|
HEADER_GD_BLOCK_EXCEPTION = 128, // <20><><EFBFBD>뿪 IP-Block <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
HEADER_GD_REQ_CHANGE_GUILD_MASTER = 129,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_REQ_SPARE_ITEM_ID_RANGE = 130,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_UPDATE_HORSE_NAME = 131,
|
|
|
|
|
HEADER_GD_REQ_HORSE_NAME = 132,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_DC = 133, // Login Key<65><79> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
HEADER_GD_VALID_LOGOUT = 134,
|
|
|
|
|
|
|
|
|
|
// AUCTION
|
|
|
|
|
#ifdef __AUCTION__
|
|
|
|
|
HEADER_GD_GET_AUCTION_LIST = 135,
|
|
|
|
|
HEADER_GD_COMMAND_AUCTION = 136,
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
HEADER_GD_REQUEST_CHARGE_CASH = 137,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_DELETE_AWARDID = 138, // delete gift notify icon
|
|
|
|
|
|
|
|
|
|
HEADER_GD_UPDATE_CHANNELSTATUS = 139,
|
|
|
|
|
HEADER_GD_REQUEST_CHANNELSTATUS = 140,
|
|
|
|
|
|
|
|
|
|
HEADER_GD_SETUP = 0xff,
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////
|
|
|
|
|
HEADER_DG_NOTICE = 1,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_LOGIN_SUCCESS = 30,
|
|
|
|
|
HEADER_DG_LOGIN_NOT_EXIST = 31,
|
|
|
|
|
HEADER_DG_LOGIN_WRONG_PASSWD = 33,
|
|
|
|
|
HEADER_DG_LOGIN_ALREADY = 34,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_PLAYER_LOAD_SUCCESS = 35,
|
|
|
|
|
HEADER_DG_PLAYER_LOAD_FAILED = 36,
|
|
|
|
|
HEADER_DG_PLAYER_CREATE_SUCCESS = 37,
|
|
|
|
|
HEADER_DG_PLAYER_CREATE_ALREADY = 38,
|
|
|
|
|
HEADER_DG_PLAYER_CREATE_FAILED = 39,
|
|
|
|
|
HEADER_DG_PLAYER_DELETE_SUCCESS = 40,
|
|
|
|
|
HEADER_DG_PLAYER_DELETE_FAILED = 41,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_ITEM_LOAD = 42,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_BOOT = 43,
|
|
|
|
|
HEADER_DG_QUEST_LOAD = 44,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_SAFEBOX_LOAD = 45,
|
|
|
|
|
HEADER_DG_SAFEBOX_CHANGE_SIZE = 46,
|
|
|
|
|
HEADER_DG_SAFEBOX_WRONG_PASSWORD = 47,
|
|
|
|
|
HEADER_DG_SAFEBOX_CHANGE_PASSWORD_ANSWER = 48,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_EMPIRE_SELECT = 49,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_AFFECT_LOAD = 50,
|
|
|
|
|
HEADER_DG_MALL_LOAD = 51,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_DIRECT_ENTER = 55,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_GUILD_SKILL_UPDATE = 56,
|
|
|
|
|
HEADER_DG_GUILD_SKILL_RECHARGE = 57,
|
|
|
|
|
HEADER_DG_GUILD_EXP_UPDATE = 58,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_PARTY_CREATE = 59,
|
|
|
|
|
HEADER_DG_PARTY_DELETE = 60,
|
|
|
|
|
HEADER_DG_PARTY_ADD = 61,
|
|
|
|
|
HEADER_DG_PARTY_REMOVE = 62,
|
|
|
|
|
HEADER_DG_PARTY_STATE_CHANGE = 63,
|
|
|
|
|
HEADER_DG_PARTY_HEAL_USE = 64,
|
|
|
|
|
HEADER_DG_PARTY_SET_MEMBER_LEVEL = 65,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_TIME = 90,
|
|
|
|
|
HEADER_DG_ITEM_ID_RANGE = 91,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_GUILD_ADD_MEMBER = 92,
|
|
|
|
|
HEADER_DG_GUILD_REMOVE_MEMBER = 93,
|
|
|
|
|
HEADER_DG_GUILD_CHANGE_GRADE = 94,
|
|
|
|
|
HEADER_DG_GUILD_CHANGE_MEMBER_DATA = 95,
|
|
|
|
|
HEADER_DG_GUILD_DISBAND = 96,
|
|
|
|
|
HEADER_DG_GUILD_WAR = 97,
|
|
|
|
|
HEADER_DG_GUILD_WAR_SCORE = 98,
|
|
|
|
|
HEADER_DG_GUILD_TIME_UPDATE = 99,
|
|
|
|
|
HEADER_DG_GUILD_LOAD = 100,
|
|
|
|
|
HEADER_DG_GUILD_LADDER = 101,
|
|
|
|
|
HEADER_DG_GUILD_SKILL_USABLE_CHANGE = 102,
|
|
|
|
|
HEADER_DG_GUILD_MONEY_CHANGE = 103,
|
|
|
|
|
HEADER_DG_GUILD_WITHDRAW_MONEY_GIVE = 104,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_SET_EVENT_FLAG = 105,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_GUILD_WAR_RESERVE_ADD = 106,
|
|
|
|
|
HEADER_DG_GUILD_WAR_RESERVE_DEL = 107,
|
|
|
|
|
HEADER_DG_GUILD_WAR_BET = 108,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_RELOAD_PROTO = 120,
|
|
|
|
|
HEADER_DG_CHANGE_NAME = 121,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_AUTH_LOGIN = 122,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_CHANGE_EMPIRE_PRIV = 124,
|
|
|
|
|
HEADER_DG_CHANGE_GUILD_PRIV = 125,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_MONEY_LOG = 126,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_CHANGE_CHARACTER_PRIV = 127,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_BILLING_REPAIR = 128,
|
|
|
|
|
HEADER_DG_BILLING_EXPIRE = 129,
|
|
|
|
|
HEADER_DG_BILLING_LOGIN = 130,
|
|
|
|
|
HEADER_DG_VCARD = 131,
|
|
|
|
|
HEADER_DG_BILLING_CHECK = 132,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_CREATE_OBJECT = 140,
|
|
|
|
|
HEADER_DG_DELETE_OBJECT = 141,
|
|
|
|
|
HEADER_DG_UPDATE_LAND = 142,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_MARRIAGE_ADD = 150,
|
|
|
|
|
HEADER_DG_MARRIAGE_UPDATE = 151,
|
|
|
|
|
HEADER_DG_MARRIAGE_REMOVE = 152,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_WEDDING_REQUEST = 153,
|
|
|
|
|
HEADER_DG_WEDDING_READY = 154,
|
|
|
|
|
HEADER_DG_WEDDING_START = 155,
|
|
|
|
|
HEADER_DG_WEDDING_END = 156,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_MYSHOP_PRICELIST_RES = 157, ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
|
|
|
|
|
HEADER_DG_RELOAD_ADMIN = 158, ///< <20><EFBFBD><EEBFB5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ε<EFBFBD>
|
|
|
|
|
HEADER_DG_BREAK_MARRIAGE = 159, ///< <20><>ȥ <20>ı<EFBFBD>
|
|
|
|
|
HEADER_DG_ELECT_MONARCH = 160, ///< <20><><EFBFBD><EFBFBD> <20><>ǥ
|
|
|
|
|
HEADER_DG_CANDIDACY = 161, ///< <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
HEADER_DG_ADD_MONARCH_MONEY = 162, ///< <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
HEADER_DG_TAKE_MONARCH_MONEY = 163, ///< <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
HEADER_DG_COME_TO_VOTE = 164, ///< ǥ<><C7A5>
|
|
|
|
|
HEADER_DG_RMCANDIDACY = 165, ///< <20>ĺ<EFBFBD> <20><><EFBFBD><EFBFBD> (<28><EFBFBD><EEBFB5>)
|
|
|
|
|
HEADER_DG_SETMONARCH = 166, ///<<3C><><EFBFBD>ּ<EFBFBD><D6BC><EFBFBD> (<28><EFBFBD><EEBFB5>)
|
|
|
|
|
HEADER_DG_RMMONARCH = 167, ///<<3C><><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>
|
|
|
|
|
HEADER_DG_DEC_MONARCH_MONEY = 168,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_CHANGE_MONARCH_LORD_ACK = 169,
|
|
|
|
|
HEADER_DG_UPDATE_MONARCH_INFO = 170,
|
|
|
|
|
HEADER_DG_BLOCK_COUNTRY_IP = 171, // <20><><EFBFBD>뿪 IP-Block
|
|
|
|
|
HEADER_DG_BLOCK_EXCEPTION = 172, // <20><><EFBFBD>뿪 IP-Block <20><><EFBFBD><EFBFBD> account
|
|
|
|
|
|
|
|
|
|
HEADER_DG_ACK_CHANGE_GUILD_MASTER = 173,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_ACK_SPARE_ITEM_ID_RANGE = 174,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_UPDATE_HORSE_NAME = 175,
|
|
|
|
|
HEADER_DG_ACK_HORSE_NAME = 176,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_NEED_LOGIN_LOG = 177,
|
|
|
|
|
#ifdef __AUCTION__
|
|
|
|
|
HEADER_DG_AUCTION_RESULT = 178,
|
|
|
|
|
#endif
|
|
|
|
|
HEADER_DG_RESULT_CHARGE_CASH = 179,
|
|
|
|
|
HEADER_DG_ITEMAWARD_INFORMER = 180, //gift notify
|
|
|
|
|
HEADER_DG_RESPOND_CHANNELSTATUS = 181,
|
|
|
|
|
|
|
|
|
|
HEADER_DG_MAP_LOCATIONS = 0xfe,
|
|
|
|
|
HEADER_DG_P2P = 0xff,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/* ----------------------------------------------
|
|
|
|
|
* table
|
|
|
|
|
* ----------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/* game Server -> DB Server */
|
|
|
|
|
#pragma pack(1)
|
|
|
|
|
enum ERequestChargeType
|
|
|
|
|
{
|
|
|
|
|
ERequestCharge_Cash = 0,
|
|
|
|
|
ERequestCharge_Mileage,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
typedef struct SRequestChargeCash
|
|
|
|
|
{
|
|
|
|
|
DWORD dwAID; // id(primary key) - Account Table
|
|
|
|
|
DWORD dwAmount;
|
|
|
|
|
ERequestChargeType eChargeType;
|
|
|
|
|
|
|
|
|
|
} TRequestChargeCash;
|
|
|
|
|
|
|
|
|
|
typedef struct SSimplePlayer
|
|
|
|
|
{
|
|
|
|
|
DWORD dwID;
|
|
|
|
|
char szName[CHARACTER_NAME_MAX_LEN + 1];
|
|
|
|
|
BYTE byJob;
|
|
|
|
|
BYTE byLevel;
|
|
|
|
|
DWORD dwPlayMinutes;
|
|
|
|
|
BYTE byST, byHT, byDX, byIQ;
|
|
|
|
|
WORD wMainPart;
|
|
|
|
|
BYTE bChangeName;
|
|
|
|
|
WORD wHairPart;
|
|
|
|
|
BYTE bDummy[4];
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG x, y;
|
|
|
|
|
LONG lAddr;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
WORD wPort;
|
|
|
|
|
BYTE skill_group;
|
|
|
|
|
} TSimplePlayer;
|
|
|
|
|
|
|
|
|
|
typedef struct SAccountTable
|
|
|
|
|
{
|
|
|
|
|
DWORD id;
|
|
|
|
|
char login[LOGIN_MAX_LEN + 1];
|
|
|
|
|
char passwd[PASSWD_MAX_LEN + 1];
|
|
|
|
|
char social_id[SOCIAL_ID_MAX_LEN + 1];
|
|
|
|
|
char status[ACCOUNT_STATUS_MAX_LEN + 1];
|
|
|
|
|
BYTE bEmpire;
|
|
|
|
|
TSimplePlayer players[PLAYER_PER_ACCOUNT];
|
|
|
|
|
} TAccountTable;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketDGCreateSuccess
|
|
|
|
|
{
|
|
|
|
|
BYTE bAccountCharacterIndex;
|
|
|
|
|
TSimplePlayer player;
|
|
|
|
|
} TPacketDGCreateSuccess;
|
|
|
|
|
|
|
|
|
|
typedef struct TPlayerItemAttribute
|
|
|
|
|
{
|
|
|
|
|
BYTE bType;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
WORD sValue;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
} TPlayerItemAttribute;
|
|
|
|
|
|
|
|
|
|
typedef struct SPlayerItem
|
|
|
|
|
{
|
|
|
|
|
DWORD id;
|
|
|
|
|
BYTE window;
|
|
|
|
|
WORD pos;
|
|
|
|
|
DWORD count;
|
|
|
|
|
|
|
|
|
|
DWORD vnum;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG alSockets[ITEM_SOCKET_MAX_NUM]; // <20><><EFBFBD>Ϲ<EFBFBD>ȣ
|
2022-03-05 12:44:06 +02:00
|
|
|
|
|
|
|
|
|
TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_MAX_NUM];
|
|
|
|
|
|
|
|
|
|
DWORD owner;
|
|
|
|
|
} TPlayerItem;
|
|
|
|
|
|
|
|
|
|
typedef struct SQuickslot
|
|
|
|
|
{
|
|
|
|
|
BYTE type;
|
|
|
|
|
BYTE pos;
|
|
|
|
|
} TQuickslot;
|
|
|
|
|
|
|
|
|
|
typedef struct SPlayerSkill
|
|
|
|
|
{
|
|
|
|
|
BYTE bMasterType;
|
|
|
|
|
BYTE bLevel;
|
|
|
|
|
time_t tNextRead;
|
|
|
|
|
} TPlayerSkill;
|
|
|
|
|
|
|
|
|
|
struct THorseInfo
|
|
|
|
|
{
|
|
|
|
|
BYTE bLevel;
|
|
|
|
|
BYTE bRiding;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
WORD sStamina;
|
|
|
|
|
WORD sHealth;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
DWORD dwHorseHealthDropTime;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
typedef struct SPlayerTable
|
|
|
|
|
{
|
|
|
|
|
DWORD id;
|
|
|
|
|
|
|
|
|
|
char name[CHARACTER_NAME_MAX_LEN + 1];
|
|
|
|
|
char ip[IP_ADDRESS_LENGTH + 1];
|
|
|
|
|
|
|
|
|
|
WORD job;
|
|
|
|
|
BYTE voice;
|
|
|
|
|
|
|
|
|
|
BYTE level;
|
|
|
|
|
BYTE level_step;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
WORD st, ht, dx, iq;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
|
|
|
|
|
DWORD exp;
|
|
|
|
|
INT gold;
|
|
|
|
|
|
|
|
|
|
BYTE dir;
|
|
|
|
|
INT x, y, z;
|
|
|
|
|
INT lMapIndex;
|
|
|
|
|
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG lExitX, lExitY;
|
|
|
|
|
LONG lExitMapIndex;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
|
2022-03-12 11:39:41 +02:00
|
|
|
|
WORD hp;
|
|
|
|
|
WORD sp;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
|
2022-03-12 11:39:41 +02:00
|
|
|
|
WORD sRandomHP;
|
|
|
|
|
WORD sRandomSP;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
|
2022-03-12 11:39:41 +02:00
|
|
|
|
DWORD playtime;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
|
2022-03-12 11:39:41 +02:00
|
|
|
|
WORD stat_point;
|
|
|
|
|
WORD skill_point;
|
|
|
|
|
WORD sub_skill_point;
|
|
|
|
|
WORD horse_skill_point;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
|
|
|
|
|
TPlayerSkill skills[SKILL_MAX_NUM];
|
|
|
|
|
|
|
|
|
|
TQuickslot quickslot[QUICKSLOT_MAX_NUM];
|
|
|
|
|
|
|
|
|
|
BYTE part_base;
|
|
|
|
|
WORD parts[PART_MAX_NUM];
|
|
|
|
|
|
2022-03-12 11:39:41 +02:00
|
|
|
|
WORD stamina;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
|
|
|
|
|
BYTE skill_group;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG lAlignment;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
char szMobile[MOBILE_MAX_LEN + 1];
|
|
|
|
|
|
2022-03-12 11:39:41 +02:00
|
|
|
|
WORD stat_reset_count;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
|
|
|
|
|
THorseInfo horse;
|
|
|
|
|
|
|
|
|
|
DWORD logoff_interval;
|
|
|
|
|
|
2022-03-12 11:39:41 +02:00
|
|
|
|
DWORD aiPremiumTimes[PREMIUM_MAX_NUM];
|
2022-03-05 12:44:06 +02:00
|
|
|
|
} TPlayerTable;
|
|
|
|
|
|
|
|
|
|
typedef struct SMobSkillLevel
|
|
|
|
|
{
|
|
|
|
|
DWORD dwVnum;
|
|
|
|
|
BYTE bLevel;
|
|
|
|
|
} TMobSkillLevel;
|
|
|
|
|
|
|
|
|
|
typedef struct SEntityTable
|
|
|
|
|
{
|
|
|
|
|
DWORD dwVnum;
|
|
|
|
|
} TEntityTable;
|
|
|
|
|
|
|
|
|
|
typedef struct SMobTable : public SEntityTable
|
|
|
|
|
{
|
|
|
|
|
char szName[CHARACTER_NAME_MAX_LEN + 1];
|
|
|
|
|
char szLocaleName[CHARACTER_NAME_MAX_LEN + 1];
|
|
|
|
|
|
|
|
|
|
BYTE bType; // Monster, NPC
|
|
|
|
|
BYTE bRank; // PAWN, KNIGHT, KING
|
|
|
|
|
BYTE bBattleType; // MELEE, etc..
|
|
|
|
|
BYTE bLevel; // Level
|
|
|
|
|
BYTE bSize;
|
|
|
|
|
|
|
|
|
|
DWORD dwGoldMin;
|
|
|
|
|
DWORD dwGoldMax;
|
|
|
|
|
DWORD dwExp;
|
|
|
|
|
DWORD dwMaxHP;
|
|
|
|
|
BYTE bRegenCycle;
|
|
|
|
|
BYTE bRegenPercent;
|
|
|
|
|
WORD wDef;
|
|
|
|
|
|
|
|
|
|
DWORD dwAIFlag;
|
|
|
|
|
DWORD dwRaceFlag;
|
|
|
|
|
DWORD dwImmuneFlag;
|
|
|
|
|
|
|
|
|
|
BYTE bStr, bDex, bCon, bInt;
|
|
|
|
|
DWORD dwDamageRange[2];
|
|
|
|
|
|
2022-03-12 11:39:41 +02:00
|
|
|
|
WORD sAttackSpeed;
|
|
|
|
|
WORD sMovingSpeed;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
BYTE bAggresiveHPPct;
|
|
|
|
|
WORD wAggressiveSight;
|
|
|
|
|
WORD wAttackRange;
|
|
|
|
|
|
|
|
|
|
char cEnchants[MOB_ENCHANTS_MAX_NUM];
|
|
|
|
|
char cResists[MOB_RESISTS_MAX_NUM];
|
|
|
|
|
|
|
|
|
|
DWORD dwResurrectionVnum;
|
|
|
|
|
DWORD dwDropItemVnum;
|
|
|
|
|
|
|
|
|
|
BYTE bMountCapacity;
|
|
|
|
|
BYTE bOnClickType;
|
|
|
|
|
|
|
|
|
|
BYTE bEmpire;
|
|
|
|
|
char szFolder[64 + 1];
|
|
|
|
|
|
|
|
|
|
float fDamMultiply;
|
|
|
|
|
|
|
|
|
|
DWORD dwSummonVnum;
|
|
|
|
|
DWORD dwDrainSP;
|
|
|
|
|
DWORD dwMobColor;
|
|
|
|
|
DWORD dwPolymorphItemVnum;
|
|
|
|
|
|
|
|
|
|
TMobSkillLevel Skills[MOB_SKILL_MAX_NUM];
|
|
|
|
|
|
|
|
|
|
BYTE bBerserkPoint;
|
|
|
|
|
BYTE bStoneSkinPoint;
|
|
|
|
|
BYTE bGodSpeedPoint;
|
|
|
|
|
BYTE bDeathBlowPoint;
|
|
|
|
|
BYTE bRevivePoint;
|
|
|
|
|
} TMobTable;
|
|
|
|
|
|
|
|
|
|
typedef struct SSkillTable
|
|
|
|
|
{
|
|
|
|
|
DWORD dwVnum;
|
|
|
|
|
char szName[32 + 1];
|
|
|
|
|
BYTE bType;
|
|
|
|
|
BYTE bMaxLevel;
|
|
|
|
|
DWORD dwSplashRange;
|
|
|
|
|
|
|
|
|
|
char szPointOn[64];
|
|
|
|
|
char szPointPoly[100 + 1];
|
|
|
|
|
char szSPCostPoly[100 + 1];
|
|
|
|
|
char szDurationPoly[100 + 1];
|
|
|
|
|
char szDurationSPCostPoly[100 + 1];
|
|
|
|
|
char szCooldownPoly[100 + 1];
|
|
|
|
|
char szMasterBonusPoly[100 + 1];
|
|
|
|
|
//char szAttackGradePoly[100 + 1];
|
|
|
|
|
char szGrandMasterAddSPCostPoly[100 + 1];
|
|
|
|
|
DWORD dwFlag;
|
|
|
|
|
DWORD dwAffectFlag;
|
|
|
|
|
|
|
|
|
|
// Data for secondary skill
|
|
|
|
|
char szPointOn2[64];
|
|
|
|
|
char szPointPoly2[100 + 1];
|
|
|
|
|
char szDurationPoly2[100 + 1];
|
|
|
|
|
DWORD dwAffectFlag2;
|
|
|
|
|
|
|
|
|
|
// Data for grand master point
|
|
|
|
|
char szPointOn3[64];
|
|
|
|
|
char szPointPoly3[100 + 1];
|
|
|
|
|
char szDurationPoly3[100 + 1];
|
|
|
|
|
|
|
|
|
|
BYTE bLevelStep;
|
|
|
|
|
BYTE bLevelLimit;
|
|
|
|
|
DWORD preSkillVnum;
|
|
|
|
|
BYTE preSkillLevel;
|
|
|
|
|
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG lMaxHit;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
char szSplashAroundDamageAdjustPoly[100 + 1];
|
|
|
|
|
|
|
|
|
|
BYTE bSkillAttrType;
|
|
|
|
|
|
|
|
|
|
DWORD dwTargetRange;
|
|
|
|
|
} TSkillTable;
|
|
|
|
|
|
|
|
|
|
typedef struct SShopItemTable
|
|
|
|
|
{
|
|
|
|
|
DWORD vnum;
|
|
|
|
|
BYTE count;
|
|
|
|
|
|
|
|
|
|
TItemPos pos; // PC <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̿<EFBFBD>
|
|
|
|
|
DWORD price; // PC, shop_table_ex.txt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̿<EFBFBD>
|
|
|
|
|
BYTE display_pos; // PC, shop_table_ex.txt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̿<EFBFBD>, <20><><EFBFBD><EFBFBD> <20><>ġ.
|
|
|
|
|
} TShopItemTable;
|
|
|
|
|
|
|
|
|
|
typedef struct SShopTable
|
|
|
|
|
{
|
|
|
|
|
DWORD dwVnum;
|
|
|
|
|
DWORD dwNPCVnum;
|
|
|
|
|
|
|
|
|
|
BYTE byItemCount;
|
|
|
|
|
TShopItemTable items[SHOP_HOST_ITEM_MAX_NUM];
|
|
|
|
|
} TShopTable;
|
|
|
|
|
|
|
|
|
|
#define QUEST_NAME_MAX_LEN 32
|
|
|
|
|
#define QUEST_STATE_MAX_LEN 64
|
|
|
|
|
|
|
|
|
|
typedef struct SQuestTable
|
|
|
|
|
{
|
|
|
|
|
DWORD dwPID;
|
|
|
|
|
char szName[QUEST_NAME_MAX_LEN + 1];
|
|
|
|
|
char szState[QUEST_STATE_MAX_LEN + 1];
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG lValue;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
} TQuestTable;
|
|
|
|
|
|
|
|
|
|
typedef struct SItemLimit
|
|
|
|
|
{
|
|
|
|
|
BYTE bType;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG lValue;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
} TItemLimit;
|
|
|
|
|
|
|
|
|
|
typedef struct SItemApply
|
|
|
|
|
{
|
|
|
|
|
BYTE bType;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG lValue;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
} TItemApply;
|
|
|
|
|
|
|
|
|
|
typedef struct SItemTable : public SEntityTable
|
|
|
|
|
{
|
|
|
|
|
DWORD dwVnumRange;
|
|
|
|
|
char szName[ITEM_NAME_MAX_LEN + 1];
|
|
|
|
|
char szLocaleName[ITEM_NAME_MAX_LEN + 1];
|
|
|
|
|
BYTE bType;
|
|
|
|
|
BYTE bSubType;
|
|
|
|
|
|
|
|
|
|
BYTE bWeight;
|
|
|
|
|
BYTE bSize;
|
|
|
|
|
|
|
|
|
|
DWORD dwAntiFlags;
|
|
|
|
|
DWORD dwFlags;
|
|
|
|
|
DWORD dwWearFlags;
|
|
|
|
|
DWORD dwImmuneFlag;
|
|
|
|
|
|
|
|
|
|
DWORD dwGold;
|
|
|
|
|
DWORD dwShopBuyPrice;
|
|
|
|
|
|
|
|
|
|
TItemLimit aLimits[ITEM_LIMIT_MAX_NUM];
|
|
|
|
|
TItemApply aApplies[ITEM_APPLY_MAX_NUM];
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG alValues[ITEM_VALUES_MAX_NUM];
|
|
|
|
|
LONG alSockets[ITEM_SOCKET_MAX_NUM];
|
2022-03-05 12:44:06 +02:00
|
|
|
|
DWORD dwRefinedVnum;
|
|
|
|
|
WORD wRefineSet;
|
|
|
|
|
BYTE bAlterToMagicItemPct;
|
|
|
|
|
BYTE bSpecular;
|
|
|
|
|
BYTE bGainSocketPct;
|
|
|
|
|
|
2022-03-12 11:39:41 +02:00
|
|
|
|
WORD sAddonType; // <20>⺻ <20>Ӽ<EFBFBD>
|
2022-03-05 12:44:06 +02:00
|
|
|
|
|
|
|
|
|
// <20>Ʒ<EFBFBD> limit flag<61><67><EFBFBD><EFBFBD> realtime<6D><65> üũ <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> VNUM<55><4D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ε<EFBFBD>,
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ź<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>۸<EFBFBD><DBB8><EFBFBD> <20>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD>쿡 LIMIT_MAX_NUM<55><4D><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鼭 üũ<C3BC>ϴ<EFBFBD> <20><><EFBFBD>ϰ<EFBFBD> Ŀ<><C4BF> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><>.
|
|
|
|
|
char cLimitRealTimeFirstUseIndex; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> limit <20>ʵ尪 <20>߿<EFBFBD><DFBF><EFBFBD> LIMIT_REAL_TIME_FIRST_USE <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD> <20><>ġ (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -1)
|
|
|
|
|
char cLimitTimerBasedOnWearIndex; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> limit <20>ʵ尪 <20>߿<EFBFBD><DFBF><EFBFBD> LIMIT_TIMER_BASED_ON_WEAR <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD> <20><>ġ (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -1)
|
|
|
|
|
|
|
|
|
|
} TItemTable;
|
|
|
|
|
|
|
|
|
|
struct TItemAttrTable
|
|
|
|
|
{
|
|
|
|
|
TItemAttrTable() :
|
|
|
|
|
dwApplyIndex(0),
|
|
|
|
|
dwProb(0)
|
|
|
|
|
{
|
|
|
|
|
szApply[0] = 0;
|
|
|
|
|
memset(&lValues, 0, sizeof(lValues));
|
|
|
|
|
memset(&bMaxLevelBySet, 0, sizeof(bMaxLevelBySet));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
char szApply[APPLY_NAME_MAX_LEN + 1];
|
|
|
|
|
DWORD dwApplyIndex;
|
|
|
|
|
DWORD dwProb;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG lValues[5];
|
2022-03-05 12:44:06 +02:00
|
|
|
|
BYTE bMaxLevelBySet[ATTRIBUTE_SET_MAX_NUM];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
typedef struct SConnectTable
|
|
|
|
|
{
|
|
|
|
|
char login[LOGIN_MAX_LEN + 1];
|
|
|
|
|
IDENT ident;
|
|
|
|
|
} TConnectTable;
|
|
|
|
|
|
|
|
|
|
typedef struct SLoginPacket
|
|
|
|
|
{
|
|
|
|
|
char login[LOGIN_MAX_LEN + 1];
|
|
|
|
|
char passwd[PASSWD_MAX_LEN + 1];
|
|
|
|
|
} TLoginPacket;
|
|
|
|
|
|
|
|
|
|
typedef struct SPlayerLoadPacket
|
|
|
|
|
{
|
|
|
|
|
DWORD account_id;
|
|
|
|
|
DWORD player_id;
|
|
|
|
|
BYTE account_index; /* account <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ */
|
|
|
|
|
} TPlayerLoadPacket;
|
|
|
|
|
|
|
|
|
|
typedef struct SPlayerCreatePacket
|
|
|
|
|
{
|
|
|
|
|
char login[LOGIN_MAX_LEN + 1];
|
|
|
|
|
char passwd[PASSWD_MAX_LEN + 1];
|
|
|
|
|
DWORD account_id;
|
|
|
|
|
BYTE account_index;
|
|
|
|
|
TPlayerTable player_table;
|
|
|
|
|
} TPlayerCreatePacket;
|
|
|
|
|
|
|
|
|
|
typedef struct SPlayerDeletePacket
|
|
|
|
|
{
|
|
|
|
|
char login[LOGIN_MAX_LEN + 1];
|
|
|
|
|
DWORD player_id;
|
|
|
|
|
BYTE account_index;
|
|
|
|
|
//char name[CHARACTER_NAME_MAX_LEN + 1];
|
|
|
|
|
char private_code[8];
|
|
|
|
|
} TPlayerDeletePacket;
|
|
|
|
|
|
|
|
|
|
typedef struct SLogoutPacket
|
|
|
|
|
{
|
|
|
|
|
char login[LOGIN_MAX_LEN + 1];
|
|
|
|
|
char passwd[PASSWD_MAX_LEN + 1];
|
|
|
|
|
} TLogoutPacket;
|
|
|
|
|
|
|
|
|
|
typedef struct SPlayerCountPacket
|
|
|
|
|
{
|
|
|
|
|
DWORD dwCount;
|
|
|
|
|
} TPlayerCountPacket;
|
|
|
|
|
|
|
|
|
|
#define SAFEBOX_MAX_NUM 135
|
|
|
|
|
#define SAFEBOX_PASSWORD_MAX_LEN 6
|
|
|
|
|
|
|
|
|
|
typedef struct SSafeboxTable
|
|
|
|
|
{
|
|
|
|
|
DWORD dwID;
|
|
|
|
|
BYTE bSize;
|
|
|
|
|
DWORD dwGold;
|
|
|
|
|
WORD wItemCount;
|
|
|
|
|
} TSafeboxTable;
|
|
|
|
|
|
|
|
|
|
typedef struct SSafeboxChangeSizePacket
|
|
|
|
|
{
|
|
|
|
|
DWORD dwID;
|
|
|
|
|
BYTE bSize;
|
|
|
|
|
} TSafeboxChangeSizePacket;
|
|
|
|
|
|
|
|
|
|
typedef struct SSafeboxLoadPacket
|
|
|
|
|
{
|
|
|
|
|
DWORD dwID;
|
|
|
|
|
char szLogin[LOGIN_MAX_LEN + 1];
|
|
|
|
|
char szPassword[SAFEBOX_PASSWORD_MAX_LEN + 1];
|
|
|
|
|
} TSafeboxLoadPacket;
|
|
|
|
|
|
|
|
|
|
typedef struct SSafeboxChangePasswordPacket
|
|
|
|
|
{
|
|
|
|
|
DWORD dwID;
|
|
|
|
|
char szOldPassword[SAFEBOX_PASSWORD_MAX_LEN + 1];
|
|
|
|
|
char szNewPassword[SAFEBOX_PASSWORD_MAX_LEN + 1];
|
|
|
|
|
} TSafeboxChangePasswordPacket;
|
|
|
|
|
|
|
|
|
|
typedef struct SSafeboxChangePasswordPacketAnswer
|
|
|
|
|
{
|
|
|
|
|
BYTE flag;
|
|
|
|
|
} TSafeboxChangePasswordPacketAnswer;
|
|
|
|
|
|
|
|
|
|
typedef struct SEmpireSelectPacket
|
|
|
|
|
{
|
|
|
|
|
DWORD dwAccountID;
|
|
|
|
|
BYTE bEmpire;
|
|
|
|
|
} TEmpireSelectPacket;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGDSetup
|
|
|
|
|
{
|
|
|
|
|
char szPublicIP[16]; // Public IP which listen to users
|
|
|
|
|
BYTE bChannel; // ä<><C3A4>
|
|
|
|
|
WORD wListenPort; // Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><>Ʈ <20><>ȣ
|
|
|
|
|
WORD wP2PPort; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>Ű<EFBFBD><C5B0> P2P <20><>Ʈ <20><>ȣ
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG alMaps[32];
|
2022-03-05 12:44:06 +02:00
|
|
|
|
DWORD dwLoginCount;
|
|
|
|
|
BYTE bAuthServer;
|
|
|
|
|
} TPacketGDSetup;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketDGMapLocations
|
|
|
|
|
{
|
|
|
|
|
BYTE bCount;
|
|
|
|
|
} TPacketDGMapLocations;
|
|
|
|
|
|
|
|
|
|
typedef struct SMapLocation
|
|
|
|
|
{
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG alMaps[32];
|
2022-03-05 12:44:06 +02:00
|
|
|
|
char szHost[MAX_HOST_LENGTH + 1];
|
|
|
|
|
WORD wPort;
|
|
|
|
|
} TMapLocation;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketDGP2P
|
|
|
|
|
{
|
|
|
|
|
char szHost[MAX_HOST_LENGTH + 1];
|
|
|
|
|
WORD wPort;
|
|
|
|
|
BYTE bChannel;
|
|
|
|
|
} TPacketDGP2P;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGDDirectEnter
|
|
|
|
|
{
|
|
|
|
|
char login[LOGIN_MAX_LEN + 1];
|
|
|
|
|
char passwd[PASSWD_MAX_LEN + 1];
|
|
|
|
|
BYTE index;
|
|
|
|
|
} TPacketGDDirectEnter;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketDGDirectEnter
|
|
|
|
|
{
|
|
|
|
|
TAccountTable accountTable;
|
|
|
|
|
TPlayerTable playerTable;
|
|
|
|
|
} TPacketDGDirectEnter;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGuildSkillUpdate
|
|
|
|
|
{
|
|
|
|
|
DWORD guild_id;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
DWORD amount;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
BYTE skill_levels[12];
|
|
|
|
|
BYTE skill_point;
|
|
|
|
|
BYTE save;
|
|
|
|
|
} TPacketGuildSkillUpdate;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGuildExpUpdate
|
|
|
|
|
{
|
|
|
|
|
DWORD guild_id;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
DWORD amount;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
} TPacketGuildExpUpdate;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGuildChangeMemberData
|
|
|
|
|
{
|
|
|
|
|
DWORD guild_id;
|
|
|
|
|
DWORD pid;
|
|
|
|
|
DWORD offer;
|
|
|
|
|
BYTE level;
|
|
|
|
|
BYTE grade;
|
|
|
|
|
} TPacketGuildChangeMemberData;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketDGLoginAlready
|
|
|
|
|
{
|
|
|
|
|
char szLogin[LOGIN_MAX_LEN + 1];
|
|
|
|
|
} TPacketDGLoginAlready;
|
|
|
|
|
|
|
|
|
|
typedef struct TPacketAffectElement
|
|
|
|
|
{
|
|
|
|
|
DWORD dwType;
|
|
|
|
|
BYTE bApplyOn;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG lApplyValue;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
DWORD dwFlag;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG lDuration;
|
|
|
|
|
LONG lSPCost;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
} TPacketAffectElement;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGDAddAffect
|
|
|
|
|
{
|
|
|
|
|
DWORD dwPID;
|
|
|
|
|
TPacketAffectElement elem;
|
|
|
|
|
} TPacketGDAddAffect;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGDRemoveAffect
|
|
|
|
|
{
|
|
|
|
|
DWORD dwPID;
|
|
|
|
|
DWORD dwType;
|
|
|
|
|
BYTE bApplyOn;
|
|
|
|
|
} TPacketGDRemoveAffect;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGDHighscore
|
|
|
|
|
{
|
|
|
|
|
DWORD dwPID;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG lValue;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
char cDir;
|
|
|
|
|
char szBoard[21];
|
|
|
|
|
} TPacketGDHighscore;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketPartyCreate
|
|
|
|
|
{
|
|
|
|
|
DWORD dwLeaderPID;
|
|
|
|
|
} TPacketPartyCreate;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketPartyDelete
|
|
|
|
|
{
|
|
|
|
|
DWORD dwLeaderPID;
|
|
|
|
|
} TPacketPartyDelete;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketPartyAdd
|
|
|
|
|
{
|
|
|
|
|
DWORD dwLeaderPID;
|
|
|
|
|
DWORD dwPID;
|
|
|
|
|
BYTE bState;
|
|
|
|
|
} TPacketPartyAdd;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketPartyRemove
|
|
|
|
|
{
|
|
|
|
|
DWORD dwLeaderPID;
|
|
|
|
|
DWORD dwPID;
|
|
|
|
|
} TPacketPartyRemove;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketPartyStateChange
|
|
|
|
|
{
|
|
|
|
|
DWORD dwLeaderPID;
|
|
|
|
|
DWORD dwPID;
|
|
|
|
|
BYTE bRole;
|
|
|
|
|
BYTE bFlag;
|
|
|
|
|
} TPacketPartyStateChange;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketPartySetMemberLevel
|
|
|
|
|
{
|
|
|
|
|
DWORD dwLeaderPID;
|
|
|
|
|
DWORD dwPID;
|
|
|
|
|
BYTE bLevel;
|
|
|
|
|
} TPacketPartySetMemberLevel;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGDBoot
|
|
|
|
|
{
|
|
|
|
|
DWORD dwItemIDRange[2];
|
|
|
|
|
char szIP[16];
|
|
|
|
|
} TPacketGDBoot;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGuild
|
|
|
|
|
{
|
|
|
|
|
DWORD dwGuild;
|
|
|
|
|
DWORD dwInfo;
|
|
|
|
|
} TPacketGuild;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGDGuildAddMember
|
|
|
|
|
{
|
|
|
|
|
DWORD dwPID;
|
|
|
|
|
DWORD dwGuild;
|
|
|
|
|
BYTE bGrade;
|
|
|
|
|
} TPacketGDGuildAddMember;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketDGGuildMember
|
|
|
|
|
{
|
|
|
|
|
DWORD dwPID;
|
|
|
|
|
DWORD dwGuild;
|
|
|
|
|
BYTE bGrade;
|
|
|
|
|
BYTE isGeneral;
|
|
|
|
|
BYTE bJob;
|
|
|
|
|
BYTE bLevel;
|
|
|
|
|
DWORD dwOffer;
|
|
|
|
|
char szName[CHARACTER_NAME_MAX_LEN + 1];
|
|
|
|
|
} TPacketDGGuildMember;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGuildWar
|
|
|
|
|
{
|
|
|
|
|
BYTE bType;
|
|
|
|
|
BYTE bWar;
|
|
|
|
|
DWORD dwGuildFrom;
|
|
|
|
|
DWORD dwGuildTo;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG lWarPrice;
|
|
|
|
|
LONG lInitialScore;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
} TPacketGuildWar;
|
|
|
|
|
|
|
|
|
|
// Game -> DB : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȭ<EFBFBD><C8AD>
|
|
|
|
|
// DB -> Game : <20><>Ż<EFBFBD><C5BB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
typedef struct SPacketGuildWarScore
|
|
|
|
|
{
|
|
|
|
|
DWORD dwGuildGainPoint;
|
|
|
|
|
DWORD dwGuildOpponent;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG lScore;
|
|
|
|
|
LONG lBetScore;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
} TPacketGuildWarScore;
|
|
|
|
|
|
|
|
|
|
typedef struct SRefineMaterial
|
|
|
|
|
{
|
|
|
|
|
DWORD vnum;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
DWORD count;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
} TRefineMaterial;
|
|
|
|
|
|
|
|
|
|
typedef struct SRefineTable
|
|
|
|
|
{
|
|
|
|
|
//DWORD src_vnum;
|
|
|
|
|
//DWORD result_vnum;
|
|
|
|
|
DWORD id;
|
|
|
|
|
BYTE material_count;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
DWORD cost; // <20>ҿ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
DWORD prob; // Ȯ<><C8AE>
|
2022-03-05 12:44:06 +02:00
|
|
|
|
TRefineMaterial materials[REFINE_MATERIAL_MAX_NUM];
|
|
|
|
|
} TRefineTable;
|
|
|
|
|
|
|
|
|
|
typedef struct SBanwordTable
|
|
|
|
|
{
|
|
|
|
|
char szWord[BANWORD_MAX_LEN + 1];
|
|
|
|
|
} TBanwordTable;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGDChangeName
|
|
|
|
|
{
|
|
|
|
|
DWORD pid;
|
|
|
|
|
char name[CHARACTER_NAME_MAX_LEN + 1];
|
|
|
|
|
} TPacketGDChangeName;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketDGChangeName
|
|
|
|
|
{
|
|
|
|
|
DWORD pid;
|
|
|
|
|
char name[CHARACTER_NAME_MAX_LEN + 1];
|
|
|
|
|
} TPacketDGChangeName;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGuildLadder
|
|
|
|
|
{
|
|
|
|
|
DWORD dwGuild;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG lLadderPoint;
|
|
|
|
|
LONG lWin;
|
|
|
|
|
LONG lDraw;
|
|
|
|
|
LONG lLoss;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
} TPacketGuildLadder;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGuildLadderPoint
|
|
|
|
|
{
|
|
|
|
|
DWORD dwGuild;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG lChange;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
} TPacketGuildLadderPoint;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGDSMS
|
|
|
|
|
{
|
|
|
|
|
char szFrom[CHARACTER_NAME_MAX_LEN + 1];
|
|
|
|
|
char szTo[CHARACTER_NAME_MAX_LEN + 1];
|
|
|
|
|
char szMobile[MOBILE_MAX_LEN + 1];
|
|
|
|
|
char szMsg[SMS_MAX_LEN + 1];
|
|
|
|
|
} TPacketGDSMS;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGuildUseSkill
|
|
|
|
|
{
|
|
|
|
|
DWORD dwGuild;
|
|
|
|
|
DWORD dwSkillVnum;
|
|
|
|
|
DWORD dwCooltime;
|
|
|
|
|
} TPacketGuildUseSkill;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGuildSkillUsableChange
|
|
|
|
|
{
|
|
|
|
|
DWORD dwGuild;
|
|
|
|
|
DWORD dwSkillVnum;
|
|
|
|
|
BYTE bUsable;
|
|
|
|
|
} TPacketGuildSkillUsableChange;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGDLoginKey
|
|
|
|
|
{
|
|
|
|
|
DWORD dwAccountID;
|
|
|
|
|
DWORD dwLoginKey;
|
|
|
|
|
} TPacketGDLoginKey;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGDAuthLogin
|
|
|
|
|
{
|
|
|
|
|
DWORD dwID;
|
|
|
|
|
DWORD dwLoginKey;
|
|
|
|
|
char szLogin[LOGIN_MAX_LEN + 1];
|
|
|
|
|
char szSocialID[SOCIAL_ID_MAX_LEN + 1];
|
|
|
|
|
DWORD adwClientKey[4];
|
|
|
|
|
BYTE bBillType;
|
|
|
|
|
DWORD dwBillID;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
DWORD iPremiumTimes[PREMIUM_MAX_NUM];
|
2022-03-05 12:44:06 +02:00
|
|
|
|
} TPacketGDAuthLogin;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGDLoginByKey
|
|
|
|
|
{
|
|
|
|
|
char szLogin[LOGIN_MAX_LEN + 1];
|
|
|
|
|
DWORD dwLoginKey;
|
|
|
|
|
DWORD adwClientKey[4];
|
|
|
|
|
char szIP[MAX_HOST_LENGTH + 1];
|
|
|
|
|
} TPacketGDLoginByKey;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @version 05/06/08 Bang2ni - <EFBFBD><EFBFBD><EFBFBD>ӽð<EFBFBD> <EFBFBD>߰<EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
typedef struct SPacketGiveGuildPriv
|
|
|
|
|
{
|
|
|
|
|
BYTE type;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
DWORD value;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
DWORD guild_id;
|
|
|
|
|
time_t duration_sec; ///< <20><><EFBFBD>ӽð<D3BD>
|
|
|
|
|
} TPacketGiveGuildPriv;
|
|
|
|
|
typedef struct SPacketGiveEmpirePriv
|
|
|
|
|
{
|
|
|
|
|
BYTE type;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
DWORD value;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
BYTE empire;
|
|
|
|
|
time_t duration_sec;
|
|
|
|
|
} TPacketGiveEmpirePriv;
|
|
|
|
|
typedef struct SPacketGiveCharacterPriv
|
|
|
|
|
{
|
|
|
|
|
BYTE type;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
DWORD value;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
DWORD pid;
|
|
|
|
|
} TPacketGiveCharacterPriv;
|
|
|
|
|
typedef struct SPacketRemoveGuildPriv
|
|
|
|
|
{
|
|
|
|
|
BYTE type;
|
|
|
|
|
DWORD guild_id;
|
|
|
|
|
} TPacketRemoveGuildPriv;
|
|
|
|
|
typedef struct SPacketRemoveEmpirePriv
|
|
|
|
|
{
|
|
|
|
|
BYTE type;
|
|
|
|
|
BYTE empire;
|
|
|
|
|
} TPacketRemoveEmpirePriv;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketDGChangeCharacterPriv
|
|
|
|
|
{
|
|
|
|
|
BYTE type;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
DWORD value;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
DWORD pid;
|
|
|
|
|
BYTE bLog;
|
|
|
|
|
} TPacketDGChangeCharacterPriv;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @version 05/06/08 Bang2ni - <EFBFBD><EFBFBD><EFBFBD>ӽð<EFBFBD> <EFBFBD>߰<EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
typedef struct SPacketDGChangeGuildPriv
|
|
|
|
|
{
|
|
|
|
|
BYTE type;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
DWORD value;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
DWORD guild_id;
|
|
|
|
|
BYTE bLog;
|
|
|
|
|
time_t end_time_sec; ///< <20><><EFBFBD>ӽð<D3BD>
|
|
|
|
|
} TPacketDGChangeGuildPriv;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketDGChangeEmpirePriv
|
|
|
|
|
{
|
|
|
|
|
BYTE type;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
DWORD value;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
BYTE empire;
|
|
|
|
|
BYTE bLog;
|
|
|
|
|
time_t end_time_sec;
|
|
|
|
|
} TPacketDGChangeEmpirePriv;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketMoneyLog
|
|
|
|
|
{
|
|
|
|
|
BYTE type;
|
|
|
|
|
DWORD vnum;
|
|
|
|
|
INT gold;
|
|
|
|
|
} TPacketMoneyLog;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGDGuildMoney
|
|
|
|
|
{
|
|
|
|
|
DWORD dwGuild;
|
|
|
|
|
INT iGold;
|
|
|
|
|
} TPacketGDGuildMoney;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketDGGuildMoneyChange
|
|
|
|
|
{
|
|
|
|
|
DWORD dwGuild;
|
|
|
|
|
INT iTotalGold;
|
|
|
|
|
} TPacketDGGuildMoneyChange;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketDGGuildMoneyWithdraw
|
|
|
|
|
{
|
|
|
|
|
DWORD dwGuild;
|
|
|
|
|
INT iChangeGold;
|
|
|
|
|
} TPacketDGGuildMoneyWithdraw;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGDGuildMoneyWithdrawGiveReply
|
|
|
|
|
{
|
|
|
|
|
DWORD dwGuild;
|
|
|
|
|
INT iChangeGold;
|
|
|
|
|
BYTE bGiveSuccess;
|
|
|
|
|
} TPacketGDGuildMoneyWithdrawGiveReply;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketSetEventFlag
|
|
|
|
|
{
|
|
|
|
|
char szFlagName[EVENT_FLAG_NAME_MAX_LEN + 1];
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG lValue;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
} TPacketSetEventFlag;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketBillingLogin
|
|
|
|
|
{
|
|
|
|
|
DWORD dwLoginKey;
|
|
|
|
|
BYTE bLogin;
|
|
|
|
|
} TPacketBillingLogin;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketBillingRepair
|
|
|
|
|
{
|
|
|
|
|
DWORD dwLoginKey;
|
|
|
|
|
char szLogin[LOGIN_MAX_LEN + 1];
|
|
|
|
|
char szHost[MAX_HOST_LENGTH + 1];
|
|
|
|
|
} TPacketBillingRepair;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketBillingExpire
|
|
|
|
|
{
|
|
|
|
|
char szLogin[LOGIN_MAX_LEN + 1];
|
|
|
|
|
BYTE bBillType;
|
|
|
|
|
DWORD dwRemainSeconds;
|
|
|
|
|
} TPacketBillingExpire;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketLoginOnSetup
|
|
|
|
|
{
|
|
|
|
|
DWORD dwID;
|
|
|
|
|
char szLogin[LOGIN_MAX_LEN + 1];
|
|
|
|
|
char szSocialID[SOCIAL_ID_MAX_LEN + 1];
|
|
|
|
|
char szHost[MAX_HOST_LENGTH + 1];
|
|
|
|
|
DWORD dwLoginKey;
|
|
|
|
|
DWORD adwClientKey[4];
|
|
|
|
|
} TPacketLoginOnSetup;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGDCreateObject
|
|
|
|
|
{
|
|
|
|
|
DWORD dwVnum;
|
|
|
|
|
DWORD dwLandID;
|
|
|
|
|
INT lMapIndex;
|
|
|
|
|
INT x, y;
|
|
|
|
|
float xRot;
|
|
|
|
|
float yRot;
|
|
|
|
|
float zRot;
|
|
|
|
|
} TPacketGDCreateObject;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGDHammerOfTor
|
|
|
|
|
{
|
|
|
|
|
DWORD key;
|
|
|
|
|
DWORD delay;
|
|
|
|
|
} TPacketGDHammerOfTor;
|
|
|
|
|
|
|
|
|
|
typedef struct SPacketGDVCard
|
|
|
|
|
{
|
|
|
|
|
DWORD dwID;
|
|
|
|
|
char szSellCharacter[CHARACTER_NAME_MAX_LEN + 1];
|
|
|
|
|
char szSellAccount[LOGIN_MAX_LEN + 1];
|
|
|
|
|
char szBuyCharacter[CHARACTER_NAME_MAX_LEN + 1];
|
|
|
|
|
char szBuyAccount[LOGIN_MAX_LEN + 1];
|
|
|
|
|
} TPacketGDVCard;
|
|
|
|
|
|
|
|
|
|
typedef struct SGuildReserve
|
|
|
|
|
{
|
|
|
|
|
DWORD dwID;
|
|
|
|
|
DWORD dwGuildFrom;
|
|
|
|
|
DWORD dwGuildTo;
|
|
|
|
|
DWORD dwTime;
|
|
|
|
|
BYTE bType;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG lWarPrice;
|
|
|
|
|
LONG lInitialScore;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
bool bStarted;
|
|
|
|
|
DWORD dwBetFrom;
|
|
|
|
|
DWORD dwBetTo;
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG lPowerFrom;
|
|
|
|
|
LONG lPowerTo;
|
|
|
|
|
LONG lHandicap;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
} TGuildWarReserve;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
DWORD dwWarID;
|
|
|
|
|
char szLogin[LOGIN_MAX_LEN + 1];
|
|
|
|
|
DWORD dwGold;
|
|
|
|
|
DWORD dwGuild;
|
|
|
|
|
} TPacketGDGuildWarBet;
|
|
|
|
|
|
|
|
|
|
// Marriage
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
DWORD dwPID1;
|
|
|
|
|
DWORD dwPID2;
|
|
|
|
|
time_t tMarryTime;
|
|
|
|
|
char szName1[CHARACTER_NAME_MAX_LEN + 1];
|
|
|
|
|
char szName2[CHARACTER_NAME_MAX_LEN + 1];
|
|
|
|
|
} TPacketMarriageAdd;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
DWORD dwPID1;
|
|
|
|
|
DWORD dwPID2;
|
|
|
|
|
INT iLovePoint;
|
|
|
|
|
BYTE byMarried;
|
|
|
|
|
} TPacketMarriageUpdate;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
DWORD dwPID1;
|
|
|
|
|
DWORD dwPID2;
|
|
|
|
|
} TPacketMarriageRemove;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
DWORD dwPID1;
|
|
|
|
|
DWORD dwPID2;
|
|
|
|
|
} TPacketWeddingRequest;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
DWORD dwPID1;
|
|
|
|
|
DWORD dwPID2;
|
|
|
|
|
DWORD dwMapIndex;
|
|
|
|
|
} TPacketWeddingReady;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
DWORD dwPID1;
|
|
|
|
|
DWORD dwPID2;
|
|
|
|
|
} TPacketWeddingStart;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
DWORD dwPID1;
|
|
|
|
|
DWORD dwPID2;
|
|
|
|
|
} TPacketWeddingEnd;
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD>λ<EFBFBD><CEBB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD> <20><>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD> <20><> <20>ڿ<EFBFBD> byCount <20><>ŭ<EFBFBD><C5AD> TItemPriceInfo <20><> <20>´<EFBFBD>.
|
|
|
|
|
typedef struct SPacketMyshopPricelistHeader
|
|
|
|
|
{
|
|
|
|
|
DWORD dwOwnerID; ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7>̾<EFBFBD> ID
|
|
|
|
|
BYTE byCount; ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
} TPacketMyshopPricelistHeader;
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ۿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
typedef struct SItemPriceInfo
|
|
|
|
|
{
|
|
|
|
|
DWORD dwVnum; ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> vnum
|
|
|
|
|
DWORD dwPrice; ///< <20><><EFBFBD><EFBFBD>
|
|
|
|
|
} TItemPriceInfo;
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD>λ<EFBFBD><CEBB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD>̺<EFBFBD>
|
|
|
|
|
typedef struct SItemPriceListTable
|
|
|
|
|
{
|
|
|
|
|
DWORD dwOwnerID; ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7>̾<EFBFBD> ID
|
|
|
|
|
BYTE byCount; ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
TItemPriceInfo aPriceInfo[SHOP_PRICELIST_MAX_NUM]; ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
|
|
|
|
|
} TItemPriceListTable;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
char szName[CHARACTER_NAME_MAX_LEN + 1];
|
2022-03-12 11:39:41 +02:00
|
|
|
|
LONG lDuration;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
} TPacketBlockChat;
|
|
|
|
|
|
|
|
|
|
// PCBANG_IP_LIST
|
|
|
|
|
typedef struct SPacketPCBangIP
|
|
|
|
|
{
|
|
|
|
|
DWORD id;
|
|
|
|
|
DWORD ip;
|
|
|
|
|
} TPacketPCBangIP;
|
|
|
|
|
// END_OF_PCBANG_IP_LIST
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//ADMIN_MANAGER
|
|
|
|
|
typedef struct TAdminInfo
|
|
|
|
|
{
|
2022-03-12 11:39:41 +02:00
|
|
|
|
DWORD m_ID; //<2F><><EFBFBD><EFBFBD>ID
|
2022-03-05 12:44:06 +02:00
|
|
|
|
char m_szAccount[32]; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
char m_szName[32]; //ij<><C4B3><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD>
|
|
|
|
|
char m_szContactIP[16]; //<2F><><EFBFBD>پ<EFBFBD><D9BE><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
char m_szServerIP[16]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2022-03-12 11:39:41 +02:00
|
|
|
|
DWORD m_Authority; //<2F><><EFBFBD><EFBFBD>
|
2022-03-05 12:44:06 +02:00
|
|
|
|
} tAdminInfo;
|
|
|
|
|
//END_ADMIN_MANAGER
|
|
|
|
|
|
|
|
|
|
//BOOT_LOCALIZATION
|
|
|
|
|
struct tLocale
|
|
|
|
|
{
|
|
|
|
|
char szValue[32];
|
|
|
|
|
char szKey[32];
|
|
|
|
|
};
|
|
|
|
|
//BOOT_LOCALIZATION
|
|
|
|
|
|
|
|
|
|
//RELOAD_ADMIN
|
|
|
|
|
typedef struct SPacketReloadAdmin
|
|
|
|
|
{
|
|
|
|
|
char szIP[16];
|
|
|
|
|
} TPacketReloadAdmin;
|
|
|
|
|
//END_RELOAD_ADMIN
|
|
|
|
|
|
|
|
|
|
typedef struct TMonarchInfo
|
|
|
|
|
{
|
|
|
|
|
DWORD pid[4]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PID
|
|
|
|
|
int64_t money[4]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
|
|
|
|
|
char name[4][32]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD>
|
|
|
|
|
char date[4][32]; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>¥
|
|
|
|
|
} MonarchInfo;
|
|
|
|
|
|
|
|
|
|
typedef struct TMonarchElectionInfo
|
|
|
|
|
{
|
|
|
|
|
DWORD pid; // <20><>ǥ <20>ѻ<EFBFBD><D1BB><EFBFBD> PID
|
|
|
|
|
DWORD selectedpid; // <20><>ǥ <20><><EFBFBD><EFBFBD> PID ( <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> )
|
|
|
|
|
char date[32]; // <20><>ǥ <20><>¥
|
|
|
|
|
} MonarchElectionInfo;
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20>⸶<EFBFBD><E2B8B6>
|
|
|
|
|
typedef struct tMonarchCandidacy
|
|
|
|
|
{
|
|
|
|
|
DWORD pid;
|
|
|
|
|
char name[32];
|
|
|
|
|
char date[32];
|
|
|
|
|
} MonarchCandidacy;
|
|
|
|
|
|
|
|
|
|
typedef struct tChangeMonarchLord
|
|
|
|
|
{
|
|
|
|
|
BYTE bEmpire;
|
|
|
|
|
DWORD dwPID;
|
|
|
|
|
} TPacketChangeMonarchLord;
|
|
|
|
|
|
|
|
|
|
typedef struct tChangeMonarchLordACK
|
|
|
|
|
{
|
|
|
|
|
BYTE bEmpire;
|
|
|
|
|
DWORD dwPID;
|
|
|
|
|
char szName[32];
|
|
|
|
|
char szDate[32];
|
|
|
|
|
} TPacketChangeMonarchLordACK;
|
|
|
|
|
|
|
|
|
|
// Block Country Ip
|
|
|
|
|
typedef struct tBlockCountryIp
|
|
|
|
|
{
|
|
|
|
|
DWORD ip_from;
|
|
|
|
|
DWORD ip_to;
|
|
|
|
|
} TPacketBlockCountryIp;
|
|
|
|
|
|
|
|
|
|
enum EBlockExceptionCommand
|
|
|
|
|
{
|
|
|
|
|
BLOCK_EXCEPTION_CMD_ADD = 1,
|
|
|
|
|
BLOCK_EXCEPTION_CMD_DEL = 2,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Block Exception Account
|
|
|
|
|
typedef struct tBlockException
|
|
|
|
|
{
|
|
|
|
|
BYTE cmd; // 1 == add, 2 == delete
|
|
|
|
|
char login[LOGIN_MAX_LEN + 1];
|
|
|
|
|
}TPacketBlockException;
|
|
|
|
|
|
|
|
|
|
typedef struct tChangeGuildMaster
|
|
|
|
|
{
|
|
|
|
|
DWORD dwGuildID;
|
|
|
|
|
DWORD idFrom;
|
|
|
|
|
DWORD idTo;
|
|
|
|
|
} TPacketChangeGuildMaster;
|
|
|
|
|
|
|
|
|
|
typedef struct tItemIDRange
|
|
|
|
|
{
|
|
|
|
|
DWORD dwMin;
|
|
|
|
|
DWORD dwMax;
|
|
|
|
|
DWORD dwUsableItemIDMin;
|
|
|
|
|
} TItemIDRangeTable;
|
|
|
|
|
|
|
|
|
|
typedef struct tUpdateHorseName
|
|
|
|
|
{
|
|
|
|
|
DWORD dwPlayerID;
|
|
|
|
|
char szHorseName[CHARACTER_NAME_MAX_LEN + 1];
|
|
|
|
|
} TPacketUpdateHorseName;
|
|
|
|
|
|
|
|
|
|
typedef struct tDC
|
|
|
|
|
{
|
|
|
|
|
char login[LOGIN_MAX_LEN + 1];
|
|
|
|
|
} TPacketDC;
|
|
|
|
|
|
|
|
|
|
typedef struct tNeedLoginLogInfo
|
|
|
|
|
{
|
|
|
|
|
DWORD dwPlayerID;
|
|
|
|
|
} TPacketNeedLoginLogInfo;
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>˸<EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>Ʈ<EFBFBD><C6AE> <20><>Ŷ <20><><EFBFBD><EFBFBD>
|
|
|
|
|
typedef struct tItemAwardInformer
|
|
|
|
|
{
|
|
|
|
|
char login[LOGIN_MAX_LEN + 1];
|
|
|
|
|
char command[20]; //<2F><><EFBFBD>ɾ<EFBFBD>
|
2022-03-12 11:39:41 +02:00
|
|
|
|
DWORD vnum; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2022-03-05 12:44:06 +02:00
|
|
|
|
} TPacketItemAwardInfromer;
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20>˸<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ŷ <20><><EFBFBD><EFBFBD>
|
|
|
|
|
typedef struct tDeleteAwardID
|
|
|
|
|
{
|
|
|
|
|
DWORD dwID;
|
|
|
|
|
} TPacketDeleteAwardID;
|
|
|
|
|
|
|
|
|
|
typedef struct SChannelStatus
|
|
|
|
|
{
|
2022-03-12 11:39:41 +02:00
|
|
|
|
WORD nPort;
|
2022-03-05 12:44:06 +02:00
|
|
|
|
BYTE bStatus;
|
|
|
|
|
} TChannelStatus;
|
|
|
|
|
|
|
|
|
|
#pragma pack()
|
|
|
|
|
#endif
|