Advertisement
Guest User

tables.h

a guest
Mar 28th, 2020
316
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 32.65 KB | None | 0 0
  1. #pragma once
  2. #include "length.h"
  3. #include "service.h"
  4.  
  5. typedef DWORD IDENT;
  6.  
  7. /**
  8.  * @version 05/06/10    Bang2ni - Myshop Pricelist 관련 패킷 HEADER_XX_MYSHOP_PRICELIST_XXX 추가
  9.  */
  10. enum
  11. {
  12.     HEADER_GD_LOGIN             = 1,
  13.     HEADER_GD_LOGOUT            = 2,
  14.  
  15.     HEADER_GD_PLAYER_LOAD       = 3,
  16.     HEADER_GD_PLAYER_SAVE       = 4,
  17.     HEADER_GD_PLAYER_CREATE     = 5,
  18.     HEADER_GD_PLAYER_DELETE     = 6,
  19.  
  20.     HEADER_GD_LOGIN_KEY         = 7,
  21.     // 8 empty
  22.     HEADER_GD_BOOT              = 9,
  23.     HEADER_GD_PLAYER_COUNT      = 10,
  24.     HEADER_GD_QUEST_SAVE        = 11,
  25.     HEADER_GD_SAFEBOX_LOAD      = 12,
  26.     HEADER_GD_SAFEBOX_SAVE      = 13,
  27.     HEADER_GD_SAFEBOX_CHANGE_SIZE   = 14,
  28.     HEADER_GD_EMPIRE_SELECT     = 15,
  29.  
  30.     HEADER_GD_SAFEBOX_CHANGE_PASSWORD       = 16,
  31.     HEADER_GD_SAFEBOX_CHANGE_PASSWORD_SECOND    = 17, // Not really a packet, used internal
  32.     HEADER_GD_DIRECT_ENTER      = 18,
  33.  
  34.     HEADER_GD_GUILD_SKILL_UPDATE    = 19,
  35.     HEADER_GD_GUILD_EXP_UPDATE      = 20,
  36.     HEADER_GD_GUILD_ADD_MEMBER      = 21,
  37.     HEADER_GD_GUILD_REMOVE_MEMBER   = 22,
  38.     HEADER_GD_GUILD_CHANGE_GRADE    = 23,
  39.     HEADER_GD_GUILD_CHANGE_MEMBER_DATA  = 24,
  40.     HEADER_GD_GUILD_DISBAND     = 25,
  41.     HEADER_GD_GUILD_WAR         = 26,
  42.     HEADER_GD_GUILD_WAR_SCORE       = 27,
  43.     HEADER_GD_GUILD_CREATE      = 28,
  44.  
  45.     HEADER_GD_ITEM_SAVE         = 30,
  46.     HEADER_GD_ITEM_DESTROY      = 31,
  47.  
  48.     HEADER_GD_ADD_AFFECT        = 32,
  49.     HEADER_GD_REMOVE_AFFECT     = 33,
  50.  
  51.     HEADER_GD_HIGHSCORE_REGISTER    = 34,
  52.     HEADER_GD_ITEM_FLUSH        = 35,
  53.  
  54.     HEADER_GD_PARTY_CREATE      = 36,
  55.     HEADER_GD_PARTY_DELETE      = 37,
  56.     HEADER_GD_PARTY_ADD         = 38,
  57.     HEADER_GD_PARTY_REMOVE      = 39,
  58.     HEADER_GD_PARTY_STATE_CHANGE    = 40,
  59.     HEADER_GD_PARTY_HEAL_USE        = 41,
  60.  
  61.     HEADER_GD_FLUSH_CACHE       = 42,
  62.     HEADER_GD_RELOAD_PROTO      = 43,
  63.  
  64.     HEADER_GD_CHANGE_NAME       = 44,
  65.     HEADER_GD_SMS               = 45,
  66.  
  67.     HEADER_GD_GUILD_CHANGE_LADDER_POINT = 46,
  68.     HEADER_GD_GUILD_USE_SKILL       = 47,
  69.  
  70.     HEADER_GD_REQUEST_EMPIRE_PRIV   = 48,
  71.     HEADER_GD_REQUEST_GUILD_PRIV    = 49,
  72.  
  73.     HEADER_GD_MONEY_LOG             = 50,
  74.  
  75.     HEADER_GD_GUILD_DEPOSIT_MONEY               = 51,
  76.     HEADER_GD_GUILD_WITHDRAW_MONEY              = 52,
  77.     HEADER_GD_GUILD_WITHDRAW_MONEY_GIVE_REPLY   = 53,
  78.  
  79.     HEADER_GD_REQUEST_CHARACTER_PRIV    = 54,
  80.  
  81.     HEADER_GD_SET_EVENT_FLAG            = 55,
  82.  
  83.     HEADER_GD_PARTY_SET_MEMBER_LEVEL    = 56,
  84.  
  85.     HEADER_GD_GUILD_WAR_BET     = 57,
  86.  
  87.     HEADER_GD_CREATE_OBJECT     = 60,
  88.     HEADER_GD_DELETE_OBJECT     = 61,
  89.     HEADER_GD_UPDATE_LAND       = 62,
  90.  
  91.     HEADER_GD_MARRIAGE_ADD      = 70,
  92.     HEADER_GD_MARRIAGE_UPDATE   = 71,
  93.     HEADER_GD_MARRIAGE_REMOVE   = 72,
  94.  
  95.     HEADER_GD_WEDDING_REQUEST   = 73,
  96.     HEADER_GD_WEDDING_READY     = 74,
  97.     HEADER_GD_WEDDING_END       = 75,
  98.  
  99.     HEADER_GD_AUTH_LOGIN        = 100,
  100.     HEADER_GD_LOGIN_BY_KEY      = 101,
  101.     HEADER_GD_BILLING_EXPIRE    = 104,
  102.     HEADER_GD_VCARD             = 105,
  103.     HEADER_GD_BILLING_CHECK     = 106,
  104.     HEADER_GD_MALL_LOAD         = 107,
  105.  
  106.     HEADER_GD_MYSHOP_PRICELIST_UPDATE   = 108,      ///< 가격정보 갱신 요청
  107.     HEADER_GD_MYSHOP_PRICELIST_REQ      = 109,      ///< 가격정보 리스트 요청
  108.  
  109.     HEADER_GD_BLOCK_CHAT                = 110,
  110.  
  111.     // PCBANG_IP_LIST_BY_AUTH
  112.     HEADER_GD_PCBANG_REQUEST_IP_LIST    = 111,
  113.     HEADER_GD_PCBANG_CLEAR_IP_LIST      = 112,
  114.     HEADER_GD_PCBANG_INSERT_IP          = 113,
  115.     // END_OF_PCBANG_IP_LIST_BY_AUTH
  116.  
  117.     HEADER_GD_HAMMER_OF_TOR         = 114,
  118.     HEADER_GD_RELOAD_ADMIN          = 115,          ///<운영자 정보 요청
  119.     HEADER_GD_BREAK_MARRIAGE        = 116,          ///< 결혼 파기
  120.     HEADER_GD_ELECT_MONARCH         = 117,          ///< 군주 투표
  121.     HEADER_GD_CANDIDACY             = 118,          ///< 군주 등록
  122.     HEADER_GD_ADD_MONARCH_MONEY     = 119,          ///< 군주 돈 증가
  123.     HEADER_GD_TAKE_MONARCH_MONEY    = 120,          ///< 군주 돈 감소
  124.     HEADER_GD_COME_TO_VOTE          = 121,          ///< 표결
  125.     HEADER_GD_RMCANDIDACY           = 122,          ///< 후보 제거 (운영자)
  126.     HEADER_GD_SETMONARCH            = 123,          ///<군주설정 (운영자)
  127.     HEADER_GD_RMMONARCH         = 124,          ///<군주삭제
  128.     HEADER_GD_DEC_MONARCH_MONEY = 125,
  129.  
  130.     HEADER_GD_CHANGE_MONARCH_LORD = 126,
  131.     HEADER_GD_BLOCK_COUNTRY_IP      = 127,      // 광대역 IP-Block
  132.     HEADER_GD_BLOCK_EXCEPTION       = 128,      // 광대역 IP-Block 예외
  133.  
  134.     HEADER_GD_REQ_CHANGE_GUILD_MASTER   = 129,
  135.  
  136.     HEADER_GD_REQ_SPARE_ITEM_ID_RANGE   = 130,
  137.  
  138.     HEADER_GD_UPDATE_HORSE_NAME     = 131,
  139.     HEADER_GD_REQ_HORSE_NAME        = 132,
  140.  
  141.     HEADER_GD_DC                    = 133,      // Login Key를 지움
  142.  
  143.     HEADER_GD_VALID_LOGOUT          = 134,
  144.  
  145.     // AUCTION
  146. #ifdef __AUCTION__
  147.     HEADER_GD_GET_AUCTION_LIST      = 135,
  148.     HEADER_GD_COMMAND_AUCTION       = 136,
  149. #endif
  150.  
  151.     HEADER_GD_REQUEST_CHARGE_CASH   = 137,
  152.  
  153.     HEADER_GD_DELETE_AWARDID    = 138// delete gift notify icon
  154.    
  155.     HEADER_GD_UPDATE_CHANNELSTATUS  = 139,
  156.     HEADER_GD_REQUEST_CHANNELSTATUS = 140,
  157.  
  158. #ifdef __DUNGEON_FOR_GUILD__
  159.     HEADER_GD_GUILD_DUNGEON = 141,
  160.     HEADER_GD_GUILD_DUNGEON_CD = 142,
  161. #endif
  162.  
  163. #ifdef __SKILL_COLOR_SYSTEM__
  164.     HEADER_GD_SKILL_COLOR_SAVE = 145,
  165. #endif
  166.  
  167.     HEADER_GD_SETUP         = 0xff,
  168.  
  169.     ///////////////////////////////////////////////
  170.     HEADER_DG_NOTICE            = 1,
  171.  
  172.     HEADER_DG_LOGIN_SUCCESS         = 30,
  173.     HEADER_DG_LOGIN_NOT_EXIST       = 31,
  174.     HEADER_DG_LOGIN_WRONG_PASSWD    = 33,
  175.     HEADER_DG_LOGIN_ALREADY         = 34,
  176.  
  177.     HEADER_DG_PLAYER_LOAD_SUCCESS   = 35,
  178.     HEADER_DG_PLAYER_LOAD_FAILED    = 36,
  179.     HEADER_DG_PLAYER_CREATE_SUCCESS = 37,
  180.     HEADER_DG_PLAYER_CREATE_ALREADY = 38,
  181.     HEADER_DG_PLAYER_CREATE_FAILED  = 39,
  182.     HEADER_DG_PLAYER_DELETE_SUCCESS = 40,
  183.     HEADER_DG_PLAYER_DELETE_FAILED  = 41,
  184.  
  185.     HEADER_DG_ITEM_LOAD         = 42,
  186.  
  187.     HEADER_DG_BOOT              = 43,
  188.     HEADER_DG_QUEST_LOAD        = 44,
  189.  
  190.     HEADER_DG_SAFEBOX_LOAD                  = 45,
  191.     HEADER_DG_SAFEBOX_CHANGE_SIZE           = 46,
  192.     HEADER_DG_SAFEBOX_WRONG_PASSWORD        = 47,
  193.     HEADER_DG_SAFEBOX_CHANGE_PASSWORD_ANSWER = 48,
  194.  
  195.     HEADER_DG_EMPIRE_SELECT     = 49,
  196.  
  197.     HEADER_DG_AFFECT_LOAD       = 50,
  198.     HEADER_DG_MALL_LOAD         = 51,
  199.  
  200.     HEADER_DG_DIRECT_ENTER      = 55,
  201.  
  202.     HEADER_DG_GUILD_SKILL_UPDATE    = 56,
  203.     HEADER_DG_GUILD_SKILL_RECHARGE  = 57,
  204.     HEADER_DG_GUILD_EXP_UPDATE      = 58,
  205.  
  206.     HEADER_DG_PARTY_CREATE      = 59,
  207.     HEADER_DG_PARTY_DELETE      = 60,
  208.     HEADER_DG_PARTY_ADD         = 61,
  209.     HEADER_DG_PARTY_REMOVE      = 62,
  210.     HEADER_DG_PARTY_STATE_CHANGE    = 63,
  211.     HEADER_DG_PARTY_HEAL_USE        = 64,
  212.     HEADER_DG_PARTY_SET_MEMBER_LEVEL    = 65,
  213.  
  214.     HEADER_DG_TIME          = 90,
  215.     HEADER_DG_ITEM_ID_RANGE     = 91,
  216.  
  217.     HEADER_DG_GUILD_ADD_MEMBER      = 92,
  218.     HEADER_DG_GUILD_REMOVE_MEMBER   = 93,
  219.     HEADER_DG_GUILD_CHANGE_GRADE    = 94,
  220.     HEADER_DG_GUILD_CHANGE_MEMBER_DATA  = 95,
  221.     HEADER_DG_GUILD_DISBAND     = 96,
  222.     HEADER_DG_GUILD_WAR         = 97,
  223.     HEADER_DG_GUILD_WAR_SCORE       = 98,
  224.     HEADER_DG_GUILD_TIME_UPDATE     = 99,
  225.     HEADER_DG_GUILD_LOAD        = 100,
  226.     HEADER_DG_GUILD_LADDER      = 101,
  227.     HEADER_DG_GUILD_SKILL_USABLE_CHANGE = 102,
  228.     HEADER_DG_GUILD_MONEY_CHANGE    = 103,
  229.     HEADER_DG_GUILD_WITHDRAW_MONEY_GIVE = 104,
  230.  
  231.     HEADER_DG_SET_EVENT_FLAG        = 105,
  232.  
  233.     HEADER_DG_GUILD_WAR_RESERVE_ADD = 106,
  234.     HEADER_DG_GUILD_WAR_RESERVE_DEL = 107,
  235.     HEADER_DG_GUILD_WAR_BET     = 108,
  236.  
  237.     HEADER_DG_RELOAD_PROTO      = 120,
  238.     HEADER_DG_CHANGE_NAME       = 121,
  239.  
  240.     HEADER_DG_AUTH_LOGIN        = 122,
  241.  
  242.     HEADER_DG_CHANGE_EMPIRE_PRIV    = 124,
  243.     HEADER_DG_CHANGE_GUILD_PRIV     = 125,
  244.  
  245.     HEADER_DG_MONEY_LOG         = 126,
  246.  
  247.     HEADER_DG_CHANGE_CHARACTER_PRIV = 127,
  248.  
  249.     HEADER_DG_BILLING_REPAIR        = 128,
  250.     HEADER_DG_BILLING_EXPIRE        = 129,
  251.     HEADER_DG_BILLING_LOGIN     = 130,
  252.     HEADER_DG_VCARD         = 131,
  253.     HEADER_DG_BILLING_CHECK     = 132,
  254.  
  255.     HEADER_DG_CREATE_OBJECT     = 140,
  256.     HEADER_DG_DELETE_OBJECT     = 141,
  257.     HEADER_DG_UPDATE_LAND       = 142,
  258.  
  259.     HEADER_DG_MARRIAGE_ADD      = 150,
  260.     HEADER_DG_MARRIAGE_UPDATE       = 151,
  261.     HEADER_DG_MARRIAGE_REMOVE       = 152,
  262.  
  263.     HEADER_DG_WEDDING_REQUEST       = 153,
  264.     HEADER_DG_WEDDING_READY     = 154,
  265.     HEADER_DG_WEDDING_START     = 155,
  266.     HEADER_DG_WEDDING_END       = 156,
  267.  
  268.     HEADER_DG_MYSHOP_PRICELIST_RES  = 157,      ///< 가격정보 리스트 응답
  269.     HEADER_DG_RELOAD_ADMIN = 158,               ///< 운영자 정보 리로드
  270.     HEADER_DG_BREAK_MARRIAGE = 159,             ///< 결혼 파기
  271.     HEADER_DG_ELECT_MONARCH         = 160,          ///< 군주 투표
  272.     HEADER_DG_CANDIDACY             = 161,          ///< 군주 등록
  273.     HEADER_DG_ADD_MONARCH_MONEY     = 162,          ///< 군주 돈 증가
  274.     HEADER_DG_TAKE_MONARCH_MONEY    = 163,          ///< 군주 돈 감소
  275.     HEADER_DG_COME_TO_VOTE          = 164,          ///< 표결
  276.     HEADER_DG_RMCANDIDACY           = 165,          ///< 후보 제거 (운영자)
  277.     HEADER_DG_SETMONARCH            = 166,          ///<군주설정 (운영자)
  278.     HEADER_DG_RMMONARCH         = 167,          ///<군주삭제
  279.     HEADER_DG_DEC_MONARCH_MONEY = 168,
  280.  
  281.     HEADER_DG_CHANGE_MONARCH_LORD_ACK = 169,
  282.     HEADER_DG_UPDATE_MONARCH_INFO   = 170,
  283.     HEADER_DG_BLOCK_COUNTRY_IP      = 171,      // 광대역 IP-Block
  284.     HEADER_DG_BLOCK_EXCEPTION       = 172,      // 광대역 IP-Block 예외 account
  285.  
  286.     HEADER_DG_ACK_CHANGE_GUILD_MASTER = 173,
  287.  
  288.     HEADER_DG_ACK_SPARE_ITEM_ID_RANGE = 174,
  289.  
  290.     HEADER_DG_UPDATE_HORSE_NAME     = 175,
  291.     HEADER_DG_ACK_HORSE_NAME        = 176,
  292.  
  293.     HEADER_DG_NEED_LOGIN_LOG        = 177,
  294. #ifdef __AUCTION__
  295.     HEADER_DG_AUCTION_RESULT    =   178,
  296. #endif
  297.     HEADER_DG_RESULT_CHARGE_CASH    = 179,
  298.     HEADER_DG_ITEMAWARD_INFORMER    = 180//gift notify
  299.     HEADER_DG_RESPOND_CHANNELSTATUS     = 181,
  300.  
  301. #ifdef __DUNGEON_FOR_GUILD__
  302.     HEADER_DG_GUILD_DUNGEON = 182,
  303.     HEADER_DG_GUILD_DUNGEON_CD = 183,
  304. #endif
  305.  
  306. #ifdef __SKILL_COLOR_SYSTEM__
  307.     HEADER_DG_SKILL_COLOR_LOAD = 186,
  308. #endif
  309.  
  310.     HEADER_DG_MAP_LOCATIONS     = 0xfe,
  311.     HEADER_DG_P2P           = 0xff,
  312.  
  313.     HEADER_GP_CONFIRM_PASSPOD = 1,
  314.     HEADER_PG_CONFIRM_PASSPOD = 2,
  315.  
  316. };
  317.  
  318. enum E_PASSPOD
  319. {
  320.     E_PASSPOD_SUCCESS = 0,
  321.     E_PASSPOD_FAILED_PASSPOD_ERROR,
  322.     E_PASSPOD_FAILED_USER_NOT_FOUND,
  323.     E_PASSPOD_FAILED_SYSTEM_NOT_FOUND,
  324.     E_PASSPOD_FAILED_TOKEN_DISABLED,
  325.     E_PASSPOD_FAILED_EMPTY,
  326. };
  327.  
  328.  
  329. typedef struct SRequestConfirmPasspod
  330. {
  331.     int pid;
  332.     char passpod[MAX_PASSPOD + 1];
  333.     char login[LOGIN_MAX_LEN + 1];
  334.  
  335. } RequestConfirmPasspod;
  336.  
  337. typedef struct SResultConfirmPasspod
  338. {
  339.     int pid;
  340.     int ret_code;
  341.     char login[LOGIN_MAX_LEN + 1];
  342. } ResultConfirmPasspod;
  343. /* ----------------------------------------------
  344.  * table
  345.  * ----------------------------------------------
  346.  */
  347.  
  348. /* game Server -> DB Server */
  349. #pragma pack(1)
  350. enum ERequestChargeType
  351. {
  352.     ERequestCharge_Cash = 0,
  353.     ERequestCharge_Mileage,
  354. };
  355.  
  356. typedef struct SRequestChargeCash
  357. {
  358.     DWORD       dwAID;      // id(primary key) - Account Table
  359.     DWORD       dwAmount;
  360.     ERequestChargeType  eChargeType;
  361.  
  362. } TRequestChargeCash;
  363.  
  364. typedef struct SSimplePlayer
  365. {
  366.     DWORD       dwID;
  367.     char        szName[CHARACTER_NAME_MAX_LEN + 1];
  368.     BYTE        byJob;
  369.     BYTE        byLevel;
  370.     DWORD       dwPlayMinutes;
  371.     BYTE        byST, byHT, byDX, byIQ;
  372.     WORD        wMainPart;
  373.     BYTE        bChangeName;
  374.     WORD        wHairPart;
  375. #ifdef __ACCE_SYSTEM__
  376.     WORD    wAccePart;
  377. #endif
  378.     BYTE        bDummy[4];
  379.     long        x, y;
  380.     long        lAddr;
  381.     WORD        wPort;
  382.     BYTE        skill_group;
  383. } TSimplePlayer;
  384.  
  385. typedef struct SAccountTable
  386. {
  387.     DWORD       id;
  388.     char        login[LOGIN_MAX_LEN + 1];
  389.     char        passwd[PASSWD_MAX_LEN + 1];
  390.     char        social_id[SOCIAL_ID_MAX_LEN + 1];
  391.     char        language[LANGUAGE_MAX_LEN + 1];
  392.     char        status[ACCOUNT_STATUS_MAX_LEN + 1];
  393.     BYTE        bEmpire;
  394.     TSimplePlayer   players[PLAYER_PER_ACCOUNT];
  395. } TAccountTable;
  396.  
  397. typedef struct SPacketDGCreateSuccess
  398. {
  399.     BYTE        bAccountCharacterIndex;
  400.     TSimplePlayer   player;
  401. } TPacketDGCreateSuccess;
  402.  
  403. typedef struct TPlayerItemAttribute
  404. {
  405.     BYTE    bType;
  406.     short   sValue;
  407. } TPlayerItemAttribute;
  408.  
  409. typedef struct SPlayerItem
  410. {
  411.     DWORD   id;
  412.     BYTE    window;
  413.     WORD    pos;
  414.     DWORD   count;
  415.  
  416.     DWORD   vnum;
  417.     long    alSockets[ITEM_SOCKET_MAX_NUM]; // 소켓번호
  418.  
  419.     TPlayerItemAttribute    aAttr[ITEM_ATTRIBUTE_MAX_NUM];
  420.  
  421.     DWORD   owner;
  422. } TPlayerItem;
  423.  
  424. typedef struct SQuickslot
  425. {
  426.     BYTE    type;
  427.     BYTE    pos;
  428. } TQuickslot;
  429.  
  430. typedef struct SPlayerSkill
  431. {
  432.     BYTE    bMasterType;
  433.     BYTE    bLevel;
  434.     time_t  tNextRead;
  435. } TPlayerSkill;
  436.  
  437. struct  THorseInfo
  438. {
  439.     BYTE    bLevel;
  440.     BYTE    bRiding;
  441.     short   sStamina;
  442.     short   sHealth;
  443.     DWORD   dwHorseHealthDropTime;
  444. };
  445.  
  446. typedef struct SPlayerTable
  447. {
  448.     DWORD   id;
  449.  
  450.     char    name[CHARACTER_NAME_MAX_LEN + 1];
  451.     char    ip[IP_ADDRESS_LENGTH + 1];
  452.  
  453.     WORD    job;
  454.     BYTE    voice;
  455.  
  456.     BYTE    level;
  457.     BYTE    level_step;
  458.     short   st, ht, dx, iq;
  459.  
  460.     DWORD   exp;
  461.     long long   gold;
  462.  
  463.     BYTE    dir;
  464.     INT     x, y, z;
  465.     INT     lMapIndex;
  466.  
  467.     long    lExitX, lExitY;
  468.     long    lExitMapIndex;
  469.  
  470.     int     hp;
  471.     int     sp;
  472.  
  473.     short   sRandomHP;
  474.     short   sRandomSP;
  475.  
  476.     int     playtime;
  477.  
  478.     short   stat_point;
  479.     short   skill_point;
  480.     short   sub_skill_point;
  481.     short   horse_skill_point;
  482.  
  483.     TPlayerSkill skills[SKILL_MAX_NUM];
  484.  
  485.     TQuickslot  quickslot[QUICKSLOT_MAX_NUM];
  486.  
  487.     BYTE    part_base;
  488.     WORD    parts[PART_MAX_NUM];
  489.  
  490.     short   stamina;
  491.  
  492.     BYTE    skill_group;
  493.     long    lAlignment;
  494.     char    szMobile[MOBILE_MAX_LEN + 1];
  495.  
  496.     short   stat_reset_count;
  497.  
  498.     THorseInfo  horse;
  499.  
  500.     DWORD   logoff_interval;
  501.  
  502.     int     aiPremiumTimes[PREMIUM_MAX_NUM];
  503. } TPlayerTable;
  504.  
  505. typedef struct SMobSkillLevel
  506. {
  507.     DWORD   dwVnum;
  508.     BYTE    bLevel;
  509. } TMobSkillLevel;
  510.  
  511. typedef struct SEntityTable
  512. {
  513.     DWORD dwVnum;
  514. } TEntityTable;
  515.  
  516. typedef struct SMobTable : public SEntityTable
  517. {
  518.     char    szName[CHARACTER_NAME_MAX_LEN + 1];
  519.     char    szLocaleName[CHARACTER_NAME_MAX_LEN + 1];
  520.  
  521.     BYTE    bType;          // Monster, NPC
  522.     BYTE    bRank;          // PAWN, KNIGHT, KING
  523.     BYTE    bBattleType;        // MELEE, etc..
  524.     BYTE    bLevel;         // Level
  525.     BYTE    bSize;
  526.  
  527.     DWORD   dwGoldMin;
  528.     DWORD   dwGoldMax;
  529.     DWORD   dwExp;
  530.     DWORD   dwMaxHP;
  531.     BYTE    bRegenCycle;
  532.     BYTE    bRegenPercent;
  533.     WORD    wDef;
  534.  
  535.     DWORD   dwAIFlag;
  536.     DWORD   dwRaceFlag;
  537.     DWORD   dwImmuneFlag;
  538.  
  539.     BYTE    bStr, bDex, bCon, bInt;
  540.     DWORD   dwDamageRange[2];
  541.  
  542.     short   sAttackSpeed;
  543.     short   sMovingSpeed;
  544.     BYTE    bAggresiveHPPct;
  545.     WORD    wAggressiveSight;
  546.     WORD    wAttackRange;
  547.  
  548.     char    cEnchants[MOB_ENCHANTS_MAX_NUM];
  549.     char    cResists[MOB_RESISTS_MAX_NUM];
  550.  
  551.     DWORD   dwResurrectionVnum;
  552.     DWORD   dwDropItemVnum;
  553.  
  554.     BYTE    bMountCapacity;
  555.     BYTE    bOnClickType;
  556.  
  557.     BYTE    bEmpire;
  558.     char    szFolder[64 + 1];
  559.  
  560.     float   fDamMultiply;
  561.  
  562.     DWORD   dwSummonVnum;
  563.     DWORD   dwDrainSP;
  564.     DWORD   dwMobColor;
  565.     DWORD   dwPolymorphItemVnum;
  566.  
  567.     TMobSkillLevel Skills[MOB_SKILL_MAX_NUM];
  568.  
  569.     BYTE    bBerserkPoint;
  570.     BYTE    bStoneSkinPoint;
  571.     BYTE    bGodSpeedPoint;
  572.     BYTE    bDeathBlowPoint;
  573.     BYTE    bRevivePoint;
  574. } TMobTable;
  575.  
  576. typedef struct SSkillTable
  577. {
  578.     DWORD   dwVnum;
  579.     char    szName[32 + 1];
  580.     BYTE    bType;
  581.     BYTE    bMaxLevel;
  582.     DWORD   dwSplashRange;
  583.  
  584.     char    szPointOn[64];
  585.     char    szPointPoly[100 + 1];
  586.     char    szSPCostPoly[100 + 1];
  587.     char    szDurationPoly[100 + 1];
  588.     char    szDurationSPCostPoly[100 + 1];
  589.     char    szCooldownPoly[100 + 1];
  590.     char    szMasterBonusPoly[100 + 1];
  591.     //char  szAttackGradePoly[100 + 1];
  592.     char    szGrandMasterAddSPCostPoly[100 + 1];
  593.     DWORD   dwFlag;
  594.     DWORD   dwAffectFlag;
  595.  
  596.     // Data for secondary skill
  597.     char    szPointOn2[64];
  598.     char    szPointPoly2[100 + 1];
  599.     char    szDurationPoly2[100 + 1];
  600.     DWORD   dwAffectFlag2;
  601.  
  602.     // Data for grand master point
  603.     char    szPointOn3[64];
  604.     char    szPointPoly3[100 + 1];
  605.     char    szDurationPoly3[100 + 1];
  606.  
  607.     BYTE    bLevelStep;
  608.     BYTE    bLevelLimit;
  609.     DWORD   preSkillVnum;
  610.     BYTE    preSkillLevel;
  611.  
  612.     long    lMaxHit;
  613.     char    szSplashAroundDamageAdjustPoly[100 + 1];
  614.  
  615.     BYTE    bSkillAttrType;
  616.  
  617.     DWORD   dwTargetRange;
  618. } TSkillTable;
  619.  
  620. typedef struct SShopItemTable
  621. {
  622.     DWORD       vnum;
  623.     BYTE        count;
  624.  
  625.     TItemPos    pos;            // PC 상점에만 이용
  626.     long long   price;  // PC, shop_table_ex.txt 상점에만 이용
  627.     BYTE        display_pos; // PC, shop_table_ex.txt 상점에만 이용, 보일 위치.
  628.     #ifdef ENABLE_RENEWAL_SHOPEX
  629.     long    alSockets[ITEM_SOCKET_MAX_NUM];
  630.     TPlayerItemAttribute    aAttr[ITEM_ATTRIBUTE_MAX_NUM];
  631.     DWORD   price_type;
  632.     DWORD   price_vnum;
  633.     SShopItemTable() : price_type(1), price_vnum(0) {
  634.         memset(&alSockets, 0, sizeof(alSockets));
  635.         memset(&aAttr, 0, sizeof(aAttr));
  636.     }
  637. #endif
  638. } TShopItemTable;
  639.  
  640. typedef struct SShopTable
  641. {
  642.     DWORD       dwVnum;
  643.     DWORD       dwNPCVnum;
  644.  
  645.     BYTE        byItemCount;
  646.     TShopItemTable  items[SHOP_HOST_ITEM_MAX_NUM];
  647. } TShopTable;
  648.  
  649. #define QUEST_NAME_MAX_LEN  32
  650. #define QUEST_STATE_MAX_LEN 64
  651.  
  652. typedef struct SQuestTable
  653. {
  654.     DWORD       dwPID;
  655.     char        szName[QUEST_NAME_MAX_LEN + 1];
  656.     char        szState[QUEST_STATE_MAX_LEN + 1];
  657.     long        lValue;
  658. } TQuestTable;
  659.  
  660. typedef struct SItemLimit
  661. {
  662.     BYTE    bType;
  663.     long    lValue;
  664. } TItemLimit;
  665.  
  666. typedef struct SItemApply
  667. {
  668.     BYTE    bType;
  669.     long    lValue;
  670. } TItemApply;
  671.  
  672. typedef struct SItemTable : public SEntityTable
  673. {
  674.     DWORD       dwVnumRange;
  675.     char        szName[ITEM_NAME_MAX_LEN + 1];
  676.     char    szLocaleName[ITEM_NAME_MAX_LEN + 1];
  677.     BYTE    bType;
  678.     BYTE    bSubType;
  679.  
  680.     BYTE        bWeight;
  681.     BYTE    bSize;
  682.  
  683.     DWORD   dwAntiFlags;
  684.     DWORD   dwFlags;
  685.     DWORD   dwWearFlags;
  686.     DWORD   dwImmuneFlag;
  687.  
  688.     long long   dwGold;
  689.     long long   dwShopBuyPrice;
  690.  
  691.     TItemLimit  aLimits[ITEM_LIMIT_MAX_NUM];
  692.     TItemApply  aApplies[ITEM_APPLY_MAX_NUM];
  693.     long        alValues[ITEM_VALUES_MAX_NUM];
  694.     long    alSockets[ITEM_SOCKET_MAX_NUM];
  695.     DWORD   dwRefinedVnum;
  696.     WORD    wRefineSet;
  697.     BYTE    bAlterToMagicItemPct;
  698.     BYTE    bSpecular;
  699.     BYTE    bGainSocketPct;
  700.  
  701.     short int   sAddonType; // 기본 속성
  702.  
  703.     // 아래 limit flag들은 realtime에 체크 할 일이 많고, 아이템 VNUM당 고정된 값인데,
  704.     // 현재 구조대로 매번 아이템마다 필요한 경우에 LIMIT_MAX_NUM까지 루프돌면서 체크하는 부하가 커서 미리 저장 해 둠.
  705.     char        cLimitRealTimeFirstUseIndex;        // 아이템 limit 필드값 중에서 LIMIT_REAL_TIME_FIRST_USE 플래그의 위치 (없으면 -1)
  706.     char        cLimitTimerBasedOnWearIndex;        // 아이템 limit 필드값 중에서 LIMIT_TIMER_BASED_ON_WEAR 플래그의 위치 (없으면 -1)
  707.  
  708. } TItemTable;
  709.  
  710. struct TItemAttrTable
  711. {
  712.     TItemAttrTable() :
  713.         dwApplyIndex(0),
  714.         dwProb(0)
  715.     {
  716.         szApply[0] = 0;
  717.         memset(&lValues, 0, sizeof(lValues));
  718.         memset(&bMaxLevelBySet, 0, sizeof(bMaxLevelBySet));
  719.     }
  720.  
  721.     char    szApply[APPLY_NAME_MAX_LEN + 1];
  722.     DWORD   dwApplyIndex;
  723.     DWORD   dwProb;
  724.     long    lValues[5];
  725.     BYTE    bMaxLevelBySet[ATTRIBUTE_SET_MAX_NUM];
  726. };
  727.  
  728. typedef struct SConnectTable
  729. {
  730.     char    login[LOGIN_MAX_LEN + 1];
  731.     IDENT   ident;
  732. } TConnectTable;
  733.  
  734. typedef struct SLoginPacket
  735. {
  736.     char    login[LOGIN_MAX_LEN + 1];
  737.     char    passwd[PASSWD_MAX_LEN + 1];
  738. } TLoginPacket;
  739.  
  740. typedef struct SPlayerLoadPacket
  741. {
  742.     DWORD   account_id;
  743.     DWORD   player_id;
  744.     BYTE    account_index;  /* account 에서의 위치 */
  745. } TPlayerLoadPacket;
  746.  
  747. typedef struct SPlayerCreatePacket
  748. {
  749.     char        login[LOGIN_MAX_LEN + 1];
  750.     char        passwd[PASSWD_MAX_LEN + 1];
  751.     DWORD       account_id;
  752.     BYTE        account_index;
  753.     TPlayerTable    player_table;
  754. } TPlayerCreatePacket;
  755.  
  756. typedef struct SPlayerDeletePacket
  757. {
  758.     char    login[LOGIN_MAX_LEN + 1];
  759.     DWORD   player_id;
  760.     BYTE    account_index;
  761.     //char  name[CHARACTER_NAME_MAX_LEN + 1];
  762.     char    private_code[8];
  763. } TPlayerDeletePacket;
  764.  
  765. typedef struct SLogoutPacket
  766. {
  767.     char    login[LOGIN_MAX_LEN + 1];
  768.     char    passwd[PASSWD_MAX_LEN + 1];
  769. } TLogoutPacket;
  770.  
  771. typedef struct SPlayerCountPacket
  772. {
  773.     DWORD   dwCount;
  774. } TPlayerCountPacket;
  775.  
  776. #define SAFEBOX_MAX_NUM         135
  777. #define SAFEBOX_PASSWORD_MAX_LEN    6
  778.  
  779. typedef struct SSafeboxTable
  780. {
  781.     DWORD   dwID;
  782.     BYTE    bSize;
  783.     DWORD   dwGold;
  784.     WORD    wItemCount;
  785. } TSafeboxTable;
  786.  
  787. typedef struct SSafeboxChangeSizePacket
  788. {
  789.     DWORD   dwID;
  790.     BYTE    bSize;
  791. } TSafeboxChangeSizePacket;
  792.  
  793. typedef struct SSafeboxLoadPacket
  794. {
  795.     DWORD   dwID;
  796.     char    szLogin[LOGIN_MAX_LEN + 1];
  797.     char    szPassword[SAFEBOX_PASSWORD_MAX_LEN + 1];
  798. } TSafeboxLoadPacket;
  799.  
  800. typedef struct SSafeboxChangePasswordPacket
  801. {
  802.     DWORD   dwID;
  803.     char    szOldPassword[SAFEBOX_PASSWORD_MAX_LEN + 1];
  804.     char    szNewPassword[SAFEBOX_PASSWORD_MAX_LEN + 1];
  805. } TSafeboxChangePasswordPacket;
  806.  
  807. typedef struct SSafeboxChangePasswordPacketAnswer
  808. {
  809.     BYTE    flag;
  810. } TSafeboxChangePasswordPacketAnswer;
  811.  
  812. typedef struct SEmpireSelectPacket
  813. {
  814.     DWORD   dwAccountID;
  815.     BYTE    bEmpire;
  816. } TEmpireSelectPacket;
  817.  
  818. typedef struct SPacketGDSetup
  819. {
  820.     char    szPublicIP[16]; // Public IP which listen to users
  821.     BYTE    bChannel;   // 채널
  822.     WORD    wListenPort;    // 클라이언트가 접속하는 포트 번호
  823.     WORD    wP2PPort;   // 서버끼리 연결 시키는 P2P 포트 번호
  824.     long    alMaps[32];
  825.     DWORD   dwLoginCount;
  826.     BYTE    bAuthServer;
  827. } TPacketGDSetup;
  828.  
  829. typedef struct SPacketDGMapLocations
  830. {
  831.     BYTE    bCount;
  832. } TPacketDGMapLocations;
  833.  
  834. typedef struct SMapLocation
  835. {
  836.     long    alMaps[32];
  837.     char    szHost[MAX_HOST_LENGTH + 1];
  838.     WORD    wPort;
  839. } TMapLocation;
  840.  
  841. typedef struct SPacketDGP2P
  842. {
  843.     char    szHost[MAX_HOST_LENGTH + 1];
  844.     WORD    wPort;
  845.     BYTE    bChannel;
  846. } TPacketDGP2P;
  847.  
  848. typedef struct SPacketGDDirectEnter
  849. {
  850.     char    login[LOGIN_MAX_LEN + 1];
  851.     char    passwd[PASSWD_MAX_LEN + 1];
  852.     BYTE    index;
  853. } TPacketGDDirectEnter;
  854.  
  855. typedef struct SPacketDGDirectEnter
  856. {
  857.     TAccountTable accountTable;
  858.     TPlayerTable playerTable;
  859. } TPacketDGDirectEnter;
  860.  
  861. typedef struct SPacketGuildSkillUpdate
  862. {
  863.     DWORD guild_id;
  864.     int amount;
  865.     BYTE skill_levels[12];
  866.     BYTE skill_point;
  867.     BYTE save;
  868. } TPacketGuildSkillUpdate;
  869.  
  870. typedef struct SPacketGuildExpUpdate
  871. {
  872.     DWORD guild_id;
  873.     int amount;
  874. } TPacketGuildExpUpdate;
  875.  
  876. typedef struct SPacketGuildChangeMemberData
  877. {
  878.     DWORD guild_id;
  879.     DWORD pid;
  880.     DWORD offer;
  881.     BYTE level;
  882.     BYTE grade;
  883. } TPacketGuildChangeMemberData;
  884.  
  885.  
  886. typedef struct SPacketDGLoginAlready
  887. {
  888.     char    szLogin[LOGIN_MAX_LEN + 1];
  889. } TPacketDGLoginAlready;
  890.  
  891. typedef struct TPacketAffectElement
  892. {
  893.     DWORD   dwType;
  894.     BYTE    bApplyOn;
  895.     long    lApplyValue;
  896.     DWORD   dwFlag;
  897.     long    lDuration;
  898.     long    lSPCost;
  899. } TPacketAffectElement;
  900.  
  901. typedef struct SPacketGDAddAffect
  902. {
  903.     DWORD           dwPID;
  904.     TPacketAffectElement    elem;
  905. } TPacketGDAddAffect;
  906.  
  907. typedef struct SPacketGDRemoveAffect
  908. {
  909.     DWORD   dwPID;
  910.     DWORD   dwType;
  911.     BYTE    bApplyOn;
  912. } TPacketGDRemoveAffect;
  913.  
  914. typedef struct SPacketGDHighscore
  915. {
  916.     DWORD   dwPID;
  917.     long    lValue;
  918.     char    cDir;
  919.     char    szBoard[21];
  920. } TPacketGDHighscore;
  921.  
  922. typedef struct SPacketPartyCreate
  923. {
  924.     DWORD   dwLeaderPID;
  925. } TPacketPartyCreate;
  926.  
  927. typedef struct SPacketPartyDelete
  928. {
  929.     DWORD   dwLeaderPID;
  930. } TPacketPartyDelete;
  931.  
  932. typedef struct SPacketPartyAdd
  933. {
  934.     DWORD   dwLeaderPID;
  935.     DWORD   dwPID;
  936.     BYTE    bState;
  937. } TPacketPartyAdd;
  938.  
  939. typedef struct SPacketPartyRemove
  940. {
  941.     DWORD   dwLeaderPID;
  942.     DWORD   dwPID;
  943. } TPacketPartyRemove;
  944.  
  945. typedef struct SPacketPartyStateChange
  946. {
  947.     DWORD   dwLeaderPID;
  948.     DWORD   dwPID;
  949.     BYTE    bRole;
  950.     BYTE    bFlag;
  951. } TPacketPartyStateChange;
  952.  
  953. typedef struct SPacketPartySetMemberLevel
  954. {
  955.     DWORD   dwLeaderPID;
  956.     DWORD   dwPID;
  957.     BYTE    bLevel;
  958. } TPacketPartySetMemberLevel;
  959.  
  960. typedef struct SPacketGDBoot
  961. {
  962.     DWORD   dwItemIDRange[2];
  963.     char    szIP[16];
  964. } TPacketGDBoot;
  965.  
  966. typedef struct SPacketGuild
  967. {
  968.     DWORD   dwGuild;
  969.     DWORD   dwInfo;
  970. } TPacketGuild;
  971.  
  972. typedef struct SPacketGDGuildAddMember
  973. {
  974.     DWORD   dwPID;
  975.     DWORD   dwGuild;
  976.     BYTE    bGrade;
  977. } TPacketGDGuildAddMember;
  978.  
  979. typedef struct SPacketDGGuildMember
  980. {
  981.     DWORD   dwPID;
  982.     DWORD   dwGuild;
  983.     BYTE    bGrade;
  984.     BYTE    isGeneral;
  985.     BYTE    bJob;
  986.     BYTE    bLevel;
  987.     DWORD   dwOffer;
  988.     char    szName[CHARACTER_NAME_MAX_LEN + 1];
  989. } TPacketDGGuildMember;
  990.  
  991. typedef struct SPacketGuildWar
  992. {
  993.     BYTE    bType;
  994.     BYTE    bWar;
  995.     DWORD   dwGuildFrom;
  996.     DWORD   dwGuildTo;
  997.     long    lWarPrice;
  998.     long    lInitialScore;
  999. } TPacketGuildWar;
  1000.  
  1001. // Game -> DB : 상대적 변화값
  1002. // DB -> Game : 토탈된 최종값
  1003. typedef struct SPacketGuildWarScore
  1004. {
  1005.     DWORD dwGuildGainPoint;
  1006.     DWORD dwGuildOpponent;
  1007.     long lScore;
  1008.     long lBetScore;
  1009. } TPacketGuildWarScore;
  1010.  
  1011. typedef struct SRefineMaterial
  1012. {
  1013.     DWORD vnum;
  1014.     int count;
  1015. } TRefineMaterial;
  1016.  
  1017. typedef struct SRefineTable
  1018. {
  1019.     //DWORD src_vnum;
  1020.     //DWORD result_vnum;
  1021.     DWORD id;
  1022.     BYTE material_count;
  1023.     long long cost; // 소요 비용
  1024.     int prob; // 확률
  1025.     TRefineMaterial materials[REFINE_MATERIAL_MAX_NUM];
  1026. } TRefineTable;
  1027.  
  1028. typedef struct SBanwordTable
  1029. {
  1030.     char szWord[BANWORD_MAX_LEN + 1];
  1031. } TBanwordTable;
  1032.  
  1033. typedef struct SPacketGDChangeName
  1034. {
  1035.     DWORD pid;
  1036.     char name[CHARACTER_NAME_MAX_LEN + 1];
  1037. } TPacketGDChangeName;
  1038.  
  1039. typedef struct SPacketDGChangeName
  1040. {
  1041.     DWORD pid;
  1042.     char name[CHARACTER_NAME_MAX_LEN + 1];
  1043. } TPacketDGChangeName;
  1044.  
  1045. typedef struct SPacketGuildLadder
  1046. {
  1047.     DWORD dwGuild;
  1048.     long lLadderPoint;
  1049.     long lWin;
  1050.     long lDraw;
  1051.     long lLoss;
  1052. } TPacketGuildLadder;
  1053.  
  1054. typedef struct SPacketGuildLadderPoint
  1055. {
  1056.     DWORD dwGuild;
  1057.     long lChange;
  1058. } TPacketGuildLadderPoint;
  1059.  
  1060. typedef struct SPacketGDSMS
  1061. {
  1062.     char szFrom[CHARACTER_NAME_MAX_LEN + 1];
  1063.     char szTo[CHARACTER_NAME_MAX_LEN + 1];
  1064.     char szMobile[MOBILE_MAX_LEN + 1];
  1065.     char szMsg[SMS_MAX_LEN + 1];
  1066. } TPacketGDSMS;
  1067.  
  1068. typedef struct SPacketGuildUseSkill
  1069. {
  1070.     DWORD dwGuild;
  1071.     DWORD dwSkillVnum;
  1072.     DWORD dwCooltime;
  1073. } TPacketGuildUseSkill;
  1074.  
  1075. typedef struct SPacketGuildSkillUsableChange
  1076. {
  1077.     DWORD dwGuild;
  1078.     DWORD dwSkillVnum;
  1079.     BYTE bUsable;
  1080. } TPacketGuildSkillUsableChange;
  1081.  
  1082. typedef struct SPacketGDLoginKey
  1083. {
  1084.     DWORD dwAccountID;
  1085.     DWORD dwLoginKey;
  1086. } TPacketGDLoginKey;
  1087.  
  1088. typedef struct SPacketGDAuthLogin
  1089. {
  1090.     DWORD   dwID;
  1091.     DWORD   dwLoginKey;
  1092.     char    szLogin[LOGIN_MAX_LEN + 1];
  1093.     char    szSocialID[SOCIAL_ID_MAX_LEN + 1];
  1094.     char    szLanguage[LANGUAGE_MAX_LEN + 1];
  1095.     DWORD   adwClientKey[4];
  1096.     BYTE    bBillType;
  1097.     DWORD   dwBillID;
  1098.     int     iPremiumTimes[PREMIUM_MAX_NUM];
  1099. } TPacketGDAuthLogin;
  1100.  
  1101. typedef struct SPacketGDLoginByKey
  1102. {
  1103.     char    szLogin[LOGIN_MAX_LEN + 1];
  1104.     DWORD   dwLoginKey;
  1105.     DWORD   adwClientKey[4];
  1106.     char    szIP[MAX_HOST_LENGTH + 1];
  1107. } TPacketGDLoginByKey;
  1108.  
  1109. /**
  1110.  * @version 05/06/08    Bang2ni - 지속시간 추가
  1111.  */
  1112. typedef struct SPacketGiveGuildPriv
  1113. {
  1114.     BYTE type;
  1115.     int value;
  1116.     DWORD guild_id;
  1117.     time_t duration_sec;    ///< 지속시간
  1118. } TPacketGiveGuildPriv;
  1119. typedef struct SPacketGiveEmpirePriv
  1120. {
  1121.     BYTE type;
  1122.     int value;
  1123.     BYTE empire;
  1124.     time_t duration_sec;
  1125. } TPacketGiveEmpirePriv;
  1126. typedef struct SPacketGiveCharacterPriv
  1127. {
  1128.     BYTE type;
  1129.     int value;
  1130.     DWORD pid;
  1131. } TPacketGiveCharacterPriv;
  1132. typedef struct SPacketRemoveGuildPriv
  1133. {
  1134.     BYTE type;
  1135.     DWORD guild_id;
  1136. } TPacketRemoveGuildPriv;
  1137. typedef struct SPacketRemoveEmpirePriv
  1138. {
  1139.     BYTE type;
  1140.     BYTE empire;
  1141. } TPacketRemoveEmpirePriv;
  1142.  
  1143. typedef struct SPacketDGChangeCharacterPriv
  1144. {
  1145.     BYTE type;
  1146.     int value;
  1147.     DWORD pid;
  1148.     BYTE bLog;
  1149. } TPacketDGChangeCharacterPriv;
  1150.  
  1151. /**
  1152.  * @version 05/06/08    Bang2ni - 지속시간 추가
  1153.  */
  1154. typedef struct SPacketDGChangeGuildPriv
  1155. {
  1156.     BYTE type;
  1157.     int value;
  1158.     DWORD guild_id;
  1159.     BYTE bLog;
  1160.     time_t end_time_sec;    ///< 지속시간
  1161. } TPacketDGChangeGuildPriv;
  1162.  
  1163. typedef struct SPacketDGChangeEmpirePriv
  1164. {
  1165.     BYTE type;
  1166.     int value;
  1167.     BYTE empire;
  1168.     BYTE bLog;
  1169.     time_t end_time_sec;
  1170. } TPacketDGChangeEmpirePriv;
  1171.  
  1172. typedef struct SPacketMoneyLog
  1173. {
  1174.     BYTE type;
  1175.     DWORD vnum;
  1176.     long long   gold;
  1177. } TPacketMoneyLog;
  1178.  
  1179. typedef struct SPacketGDGuildMoney
  1180. {
  1181.     DWORD dwGuild;
  1182.     long long iGold;
  1183. } TPacketGDGuildMoney;
  1184.  
  1185. typedef struct SPacketDGGuildMoneyChange
  1186. {
  1187.     DWORD dwGuild;
  1188.     long long iTotalGold;
  1189. } TPacketDGGuildMoneyChange;
  1190.  
  1191. typedef struct SPacketDGGuildMoneyWithdraw
  1192. {
  1193.     DWORD dwGuild;
  1194.     long long iChangeGold;
  1195. } TPacketDGGuildMoneyWithdraw;
  1196.  
  1197. typedef struct SPacketGDGuildMoneyWithdrawGiveReply
  1198. {
  1199.     DWORD dwGuild;
  1200.     long long iChangeGold;
  1201.     BYTE bGiveSuccess;
  1202. } TPacketGDGuildMoneyWithdrawGiveReply;
  1203.  
  1204. typedef struct SPacketSetEventFlag
  1205. {
  1206.     char    szFlagName[EVENT_FLAG_NAME_MAX_LEN + 1];
  1207.     long    lValue;
  1208. } TPacketSetEventFlag;
  1209.  
  1210. typedef struct SPacketBillingLogin
  1211. {
  1212.     DWORD   dwLoginKey;
  1213.     BYTE    bLogin;
  1214. } TPacketBillingLogin;
  1215.  
  1216. typedef struct SPacketBillingRepair
  1217. {
  1218.     DWORD   dwLoginKey;
  1219.     char    szLogin[LOGIN_MAX_LEN + 1];
  1220.     char    szHost[MAX_HOST_LENGTH + 1];
  1221. } TPacketBillingRepair;
  1222.  
  1223. typedef struct SPacketBillingExpire
  1224. {
  1225.     char    szLogin[LOGIN_MAX_LEN + 1];
  1226.     BYTE    bBillType;
  1227.     DWORD   dwRemainSeconds;
  1228. } TPacketBillingExpire;
  1229.  
  1230. typedef struct SPacketLoginOnSetup
  1231. {
  1232.     DWORD   dwID;
  1233.     char    szLogin[LOGIN_MAX_LEN + 1];
  1234.     char    szSocialID[SOCIAL_ID_MAX_LEN + 1];
  1235.     char    szLanguage[LANGUAGE_MAX_LEN + 1];
  1236.     char    szHost[MAX_HOST_LENGTH + 1];
  1237.     DWORD   dwLoginKey;
  1238.     DWORD   adwClientKey[4];
  1239. } TPacketLoginOnSetup;
  1240.  
  1241. typedef struct SPacketGDCreateObject
  1242. {
  1243.     DWORD   dwVnum;
  1244.     DWORD   dwLandID;
  1245.     INT     lMapIndex;
  1246.     INT     x, y;
  1247.     float   xRot;
  1248.     float   yRot;
  1249.     float   zRot;
  1250. } TPacketGDCreateObject;
  1251.  
  1252. typedef struct SPacketGDHammerOfTor
  1253. {
  1254.     DWORD   key;
  1255.     DWORD   delay;
  1256. } TPacketGDHammerOfTor;
  1257.  
  1258. typedef struct SPacketGDVCard
  1259. {
  1260.     DWORD   dwID;
  1261.     char    szSellCharacter[CHARACTER_NAME_MAX_LEN + 1];
  1262.     char    szSellAccount[LOGIN_MAX_LEN + 1];
  1263.     char    szBuyCharacter[CHARACTER_NAME_MAX_LEN + 1];
  1264.     char    szBuyAccount[LOGIN_MAX_LEN + 1];
  1265. } TPacketGDVCard;
  1266.  
  1267. typedef struct SGuildReserve
  1268. {
  1269.     DWORD       dwID;
  1270.     DWORD       dwGuildFrom;
  1271.     DWORD       dwGuildTo;
  1272.     DWORD       dwTime;
  1273.     BYTE        bType;
  1274.     long        lWarPrice;
  1275.     long        lInitialScore;
  1276.     bool        bStarted;
  1277.     DWORD   dwBetFrom;
  1278.     DWORD   dwBetTo;
  1279.     long    lPowerFrom;
  1280.     long    lPowerTo;
  1281.     long    lHandicap;
  1282. } TGuildWarReserve;
  1283.  
  1284. typedef struct
  1285. {
  1286.     DWORD   dwWarID;
  1287.     char    szLogin[LOGIN_MAX_LEN + 1];
  1288.     long long   dwGold;
  1289.     DWORD   dwGuild;
  1290. } TPacketGDGuildWarBet;
  1291.  
  1292. // Marriage
  1293.  
  1294. typedef struct
  1295. {
  1296.     DWORD dwPID1;
  1297.     DWORD dwPID2;
  1298.     time_t tMarryTime;
  1299.     char szName1[CHARACTER_NAME_MAX_LEN + 1];
  1300.     char szName2[CHARACTER_NAME_MAX_LEN + 1];
  1301. } TPacketMarriageAdd;
  1302.  
  1303. typedef struct
  1304. {
  1305.     DWORD dwPID1;
  1306.     DWORD dwPID2;
  1307.     INT  iLovePoint;
  1308.     BYTE  byMarried;
  1309. } TPacketMarriageUpdate;
  1310.  
  1311. typedef struct
  1312. {
  1313.     DWORD dwPID1;
  1314.     DWORD dwPID2;
  1315. } TPacketMarriageRemove;
  1316.  
  1317. typedef struct
  1318. {
  1319.     DWORD dwPID1;
  1320.     DWORD dwPID2;
  1321. } TPacketWeddingRequest;
  1322.  
  1323. typedef struct
  1324. {
  1325.     DWORD dwPID1;
  1326.     DWORD dwPID2;
  1327.     DWORD dwMapIndex;
  1328. } TPacketWeddingReady;
  1329.  
  1330. typedef struct
  1331. {
  1332.     DWORD dwPID1;
  1333.     DWORD dwPID2;
  1334. } TPacketWeddingStart;
  1335.  
  1336. typedef struct
  1337. {
  1338.     DWORD dwPID1;
  1339.     DWORD dwPID2;
  1340. } TPacketWeddingEnd;
  1341.  
  1342. /// 개인상점 가격정보의 헤더. 가변 패킷으로 이 뒤에 byCount 만큼의 TItemPriceInfo 가 온다.
  1343. typedef struct SPacketMyshopPricelistHeader
  1344. {
  1345.     DWORD   dwOwnerID;  ///< 가격정보를 가진 플레이어 ID
  1346.     BYTE    byCount;    ///< 가격정보 갯수
  1347. } TPacketMyshopPricelistHeader;
  1348.  
  1349. /// 개인상점의 단일 아이템에 대한 가격정보
  1350. typedef struct SItemPriceInfo
  1351. {
  1352.     DWORD   dwVnum;     ///< 아이템 vnum
  1353.     long long   dwPrice;    ///< 가격
  1354. } TItemPriceInfo;
  1355.  
  1356. /// 개인상점 아이템 가격정보 리스트 테이블
  1357. typedef struct SItemPriceListTable
  1358. {
  1359.     DWORD   dwOwnerID;  ///< 가격정보를 가진 플레이어 ID
  1360.     BYTE    byCount;    ///< 가격정보 리스트의 갯수
  1361.  
  1362.     TItemPriceInfo  aPriceInfo[SHOP_PRICELIST_MAX_NUM]; ///< 가격정보 리스트
  1363. } TItemPriceListTable;
  1364.  
  1365. typedef struct
  1366. {
  1367.     char szName[CHARACTER_NAME_MAX_LEN + 1];
  1368.     long lDuration;
  1369. } TPacketBlockChat;
  1370.  
  1371. // PCBANG_IP_LIST
  1372. typedef struct SPacketPCBangIP
  1373. {
  1374.     DWORD id;
  1375.     DWORD ip;
  1376. } TPacketPCBangIP;
  1377. // END_OF_PCBANG_IP_LIST
  1378.  
  1379.  
  1380. //ADMIN_MANAGER
  1381. typedef struct TAdminInfo
  1382. {
  1383.     int m_ID;               //고유ID
  1384.     char m_szAccount[32];   //계정
  1385.     char m_szName[32];      //캐릭터이름
  1386.     char m_szContactIP[16]; //접근아이피
  1387.     char m_szServerIP[16];  //서버아이피
  1388.     int m_Authority;        //권한
  1389. } tAdminInfo;
  1390. //END_ADMIN_MANAGER
  1391.  
  1392. //BOOT_LOCALIZATION
  1393. struct tLocale
  1394. {
  1395.     char szValue[32];
  1396.     char szKey[32];
  1397. };
  1398. //BOOT_LOCALIZATION
  1399.  
  1400. //RELOAD_ADMIN
  1401. typedef struct SPacketReloadAdmin
  1402. {
  1403.     char szIP[16];
  1404. } TPacketReloadAdmin;
  1405. //END_RELOAD_ADMIN
  1406.  
  1407. typedef struct TMonarchInfo
  1408. {
  1409.     DWORD pid[4];  // 군주의 PID
  1410.     int64_t money[4];  // 군주의 별개 돈 
  1411.     char name[4][32];  // 군주의 이름 
  1412.     char date[4][32];  // 군주 등록 날짜
  1413. } MonarchInfo;
  1414.  
  1415. typedef struct TMonarchElectionInfo
  1416. {
  1417.     DWORD pid;  // 투표 한사람 PID
  1418.     DWORD selectedpid; // 투표 당한 PID ( 군주 참가자 )
  1419.     char date[32]; // 투표 날짜
  1420. } MonarchElectionInfo;
  1421.  
  1422. // 군주 출마자
  1423. typedef struct tMonarchCandidacy
  1424. {
  1425.     DWORD pid;
  1426.     char name[32];
  1427.     char date[32];
  1428. } MonarchCandidacy;
  1429.  
  1430. typedef struct tChangeMonarchLord
  1431. {
  1432.     BYTE bEmpire;
  1433.     DWORD dwPID;
  1434. } TPacketChangeMonarchLord;
  1435.  
  1436. typedef struct tChangeMonarchLordACK
  1437. {
  1438.     BYTE bEmpire;
  1439.     DWORD dwPID;
  1440.     char szName[32];
  1441.     char szDate[32];
  1442. } TPacketChangeMonarchLordACK;
  1443.  
  1444. // Block Country Ip
  1445. typedef struct tBlockCountryIp
  1446. {
  1447.     DWORD   ip_from;
  1448.     DWORD   ip_to;
  1449. } TPacketBlockCountryIp;
  1450.  
  1451. enum EBlockExceptionCommand
  1452. {
  1453.     BLOCK_EXCEPTION_CMD_ADD = 1,
  1454.     BLOCK_EXCEPTION_CMD_DEL = 2,
  1455. };
  1456.  
  1457. // Block Exception Account
  1458. typedef struct tBlockException
  1459. {
  1460.     BYTE    cmd;    // 1 == add, 2 == delete
  1461.     char    login[LOGIN_MAX_LEN + 1];
  1462. }TPacketBlockException;
  1463.  
  1464. typedef struct tChangeGuildMaster
  1465. {
  1466.     DWORD dwGuildID;
  1467.     DWORD idFrom;
  1468.     DWORD idTo;
  1469. } TPacketChangeGuildMaster;
  1470.  
  1471. typedef struct tItemIDRange
  1472. {
  1473.     DWORD dwMin;
  1474.     DWORD dwMax;
  1475.     DWORD dwUsableItemIDMin;
  1476. } TItemIDRangeTable;
  1477.  
  1478. typedef struct tUpdateHorseName
  1479. {
  1480.     DWORD dwPlayerID;
  1481.     char szHorseName[CHARACTER_NAME_MAX_LEN + 1];
  1482. } TPacketUpdateHorseName;
  1483.  
  1484. typedef struct tDC
  1485. {
  1486.     char    login[LOGIN_MAX_LEN + 1];
  1487. } TPacketDC;
  1488.  
  1489. typedef struct tNeedLoginLogInfo
  1490. {
  1491.     DWORD dwPlayerID;
  1492. } TPacketNeedLoginLogInfo;
  1493.  
  1494. //독일 선물 알림 기능 테스트용 패킷 정보
  1495. typedef struct tItemAwardInformer
  1496. {
  1497.     char    login[LOGIN_MAX_LEN + 1];
  1498.     char    command[20];        //명령어
  1499.     unsigned int vnum;          //아이템
  1500. } TPacketItemAwardInfromer;
  1501. // 선물 알림 기능 삭제용 패킷 정보
  1502. typedef struct tDeleteAwardID
  1503. {
  1504.     DWORD dwID;
  1505. } TPacketDeleteAwardID;
  1506.  
  1507. typedef struct SChannelStatus
  1508. {
  1509.     short nPort;
  1510.     BYTE bStatus;
  1511. } TChannelStatus;
  1512.  
  1513. #ifdef __DUNGEON_FOR_GUILD__
  1514. typedef struct SPacketGDGuildDungeon
  1515. {
  1516.     DWORD   dwGuildID;
  1517.     BYTE    bChannel;
  1518.     long    lMapIndex;
  1519. } TPacketGDGuildDungeon;
  1520.  
  1521. typedef struct SPacketDGGuildDungeon
  1522. {
  1523.     DWORD   dwGuildID;
  1524.     BYTE    bChannel;
  1525.     long    lMapIndex;
  1526. } TPacketDGGuildDungeon;
  1527.  
  1528. typedef struct SPacketGDGuildDungeonCD
  1529. {
  1530.     DWORD   dwGuildID;
  1531.     DWORD   dwTime;
  1532. } TPacketGDGuildDungeonCD;
  1533.  
  1534. typedef struct SPacketDGGuildDungeonCD
  1535. {
  1536.     DWORD   dwGuildID;
  1537.     DWORD   dwTime;
  1538. } TPacketDGGuildDungeonCD;
  1539. #endif
  1540.  
  1541. #ifdef __SKILL_COLOR_SYSTEM__
  1542. typedef struct
  1543. {
  1544.     DWORD   player_id;
  1545.     DWORD   dwSkillColor[ESkillColorLength::MAX_SKILL_COUNT + ESkillColorLength::MAX_BUFF_COUNT][ESkillColorLength::MAX_EFFECT_COUNT];
  1546. } TSkillColor;
  1547. #endif
  1548.  
  1549. #pragma pack()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement