Advertisement
Guest User

Untitled

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