#ifndef _CHAR_ADMIN_PACKET_H_ #define _CHAR_ADMIN_PACKET_H_ // CharAdminPacket.h #include #include #include #include #include #pragma pack(1) typedef struct PktAdmin* LPPktAdmin; struct PktAdmin : public PktBase { enum { MAX_NAME_LEN = 16 }; enum CMD { NONE = 0, // ¿î¿µÀÚ ¸í·É MOVE_ZONE_CHAR = 1, // ij¸¯ÅÍ Á¸ À̵¿ MOVE_ZONE_PARTY = 2, // ÆÄƼ Á¸ À̵¿ MOVE_CHAR = 3, // ij¸¯ÅÍ À̵¿ MOVE_PARTY = 4, // ÆÄƼ À̵¿ RESPAWN_CHAR = 5, // ij¸¯ÅÍ ¸®½ºÆù RESPAWN_PARTY = 6, // ÆÄƼ ¸®½ºÆù KILL_CHAR = 7, // ij¸¯ÅÍ Å³ KILL_PARTY = 8, // ÆÄƼ ų DUEL_INIT = 9, // µà¾ó ÃʱâÈ­ CREATE_ITEM = 10, // ¾ÆÀÌÅÛ µå·Ó CREATE_MON = 11, // ¸ó½ºÅÍ »ý¼º INFO_CHAR = 12, // ij¸¯ÅÍ Á¤º¸ GET_EXP = 13, // °æÇèÄ¡ ¾ò±â GET_GOLD = 14, // µ· ¾ò±â LEVEL_UP = 15, // ·¹º§¾÷ PEACE_MODE = 16, // ¹ÝÀü´Üü °¡ÀÔ WAR_MODE = 17, // ¹ÝÀü´Üü Å»Åð GET_FAME = 18, // ¸í¼º ¾ò±â GET_MILEAGE = 19, // ¸¶Àϸ®Áö ¾ò±â TRACE_CHAR = 20, // ij¸¯ÅÍ ÃßÀû HIDE_CHAR = 21, // ij¸¯ÅÍ Åõ¸í SHOW_CHAR = 22, // ij¸¯ÅÍ Åõ¸í ÇØÁ¦ INVINCIBLE_CHAR = 23, // ij¸¯ÅÍ ¹«Àû NORMAL_CHAR = 24, // ij¸¯ÅÍ ¹«Àû ÇØÁ¦ LOGOUT_CHAR = 25, // ij¸¯ÅÍ °­Á¦ ·Î±×¾Æ¿ô APOCALYPSE = 26, // ÁÖÀ§ »ý¹°Ã¼ ¸ðµÎ ų CREATE_EQUIP = 27, // ·£´ý ¿É¼ÇÀÌ ºÙ´Â Àåºñ µå·Ó ELITE_BONUS = 28, // ¿¤¸®Æ® º¸³Ê½º Á¶Àý STATUE_INIT = 29, // ¸í¿¹ÀÇ ¼®»ó ÃʱâÈ­ RESPAWN_ALL = 30, // ¸ðµç ij¸¯ÅÍ ¸®½ºÆù CHANGE_CLASS = 31, // ÀüÁ÷ Çϱâ LEARN_SKILL = 32, // ÇØ´ç ½ºÅ³ ¹è¿ì±â ERASE_SKILL = 33, // ÇØ´ç ½ºÅ³ Áö¿ì±â LEVEL_DOWN = 34, // ·¹º§ ´Ù¿î GET_QUEST = 35, // Äù½ºÆ® ¹ÞÀ½ ADD_QUEST = 36, // ¿Ï·á Äù½ºÆ®¿¡ Ãß°¡ DELETE_QUEST = 37, // ¼öÇà/¿Ï·á Äù½ºÆ®¸¦ »èÁ¦ // BATTLEGROUND_SERVER ¿î¿µÀÚ ¸í·É FINISH_GAME = 38, // ÇØ´ç ¹æÀÇ °æ±â Á¾·á (½ÂÆÐ °áÁ¤) DRAW_GAME = 39, // ÇØ´ç ¹æÀÇ °æ±â Á¾·á (¹«½ÂºÎ) IGNORE_GAME = 40, // ÇØ´ç ¹æÀÇ °æ±â Á¾·á (½ÂÆÐ ¹«½Ã) SET_MAX = 41, // ÇØ´ç ¹æÀÇ ÃÖ´ë Àοø¼ö ¼³Á¤ SET_SCORE = 42, // ÇØ´ç ¹æÀÇ ¸ñÇ¥ Á¡¼ö ¼³Á¤ SET_LIMIT_TIME = 43, // ÇØ´ç ¹æÀÇ ½Ã°£ Á¦ÇÑ ¼³Á¤ SET_REST_TIME = 44, // ÇØ´ç ¹æÀÇ ½¬´Â ½Ã°£ ¼³Á¤ SET_ITEM_TEMP_INVEN = 45, // Àӽà Àκ¥Å丮¿¡ ¾ÆÀÌÅÛ ³Ö±â ADD_SPELL = 46, // ÇØ´ç ½ºÆçÀ» ºÎ¿© DELETE_SPELL = 47, // ºÎ¿©µÈ ÇØ´ç ½ºÆçÀ» ÆÄ±« STOP = 48, // ÇØ´ç ij¸¯ÅÍ ¹­¾îµÎ±â STOP_OFF = 49, // ¹­¾îµÐ ÇØ´ç ij¸¯Å͸¦ Ç®¾îÁÖ±â CHAT_BAN = 50, // äÆÃ ±ÝÁö CHAT_OK = 51, // ä±Ý ÇØÁ¦ NEO = 52, // ³×¿À SMITH = 53, // ½º¹Ì½º RELATION = 55, // Àû¾Æ±º ½Äº°. GM_FORM = 56, // PC ¿¡¼­ GM À¸·Î. PC_FORM = 57, // GM ¿¡¼­ PC ·Î. REALM_POINT = 58, // ±¹°¡ ÀüÀï °øÇå ÈÆÀå. DBAGENT_KILL = 59, // Áß°è ¼­¹ö °­Á¦ Á¾·á LEARN_ABILITY = 60, // ÇØ´ç ½ºÅ³ ¹è¿ì±â ERASE_ABILITY = 61, // ÇØ´ç ½ºÅ³ Áö¿ì±â REQUEST_TRACE_POS = 100 // DBAgent °¡ °ÔÀÓ ¼­¹ö¿¡°Ô ÃßÀûÇÒ Ä³¸¯ÅÍÀÇ À§Ä¡¸¦ ¿äûÇÏ´Â ¸í·É // ÇØ´ç °ÔÀÓ ¼­¹ö°¡ DBAgent ¿¡°Ô ÃßÀûÇÑ Ä³¸¯ÅÍÀÇ ÁÂÇ¥¸¦ ³Ñ°ÜÁÙ¶§ÀÇ ¸í·É }; enum eError { E_LOGOUT_CHAR = 2, // ·Î±×¾Æ¿ôÇÑ Ä³¸¯ÅÍ ÀÔ´Ï´Ù. }; unsigned short m_usCmd; // ¿î¿µÀÚ ¸í·É char m_stName[MAX_NAME_LEN]; // À̸§ union { struct ZoneInfo { char m_cZone; // Á¸ ¹øÈ£ char m_cChannel; // ä³Î ¹øÈ£ } m_ZoneInfo; struct EliteBonusInfo { char m_cNation; // ±¹°¡ char m_cLevel; // ·¹º§ } m_EliteBonusInfo; unsigned short m_usProtoTypeID; // ŸÀÔ ¾ÆÀ̵ð }; POS m_Position; // À§Ä¡ unsigned long m_dwAmount; // ¾ç unsigned long m_dwAdminCID; // Action ÀÇ ÁÖü°¡ µÇ´Â Admin ij¸¯ÅÍÀÇ CID unsigned long m_dwAmount2; // ¾ç2 unsigned long m_dwAmount3; // ¾ç3 }; // ¾îµå¹Î Åø¿¡ µ¥ÀÌÅÍ ¾÷µ¥ÀÌÆ®Çϱâ. struct PktAdminToolGetData : public PktBase { enum GetDataType { // DBÁß°è -> ¿î¿µ¼­¹ö CHAR_BASIC_DATA = 10, // ij¸¯ÅÍ Á¤º¸. ´ÙÀ½ Á¤º¸µéÀÌ µé¾î°¨. // CHAR_INFOST ij¸¯ÅÍ ±âº» Á¤º¸ // CHAR_POS ij¸¯ÅÍ À§Ä¡ Á¤º¸ // SKILL ij¸¯ÅÍ ½ºÅ³ Á¤º¸ // QUICK ij¸¯ÅÍ Äü ½½·Ô // EQUIP ij¸¯ÅÍ Àåºñ // INVEN ij¸¯ÅÍ Àκ¥ // EXTRA ij¸¯ÅÍ ¿©ºÐ // EXCHANGE ij¸¯ÅÍ ±³È¯ CHAR_EXTRA_DATA = 11, // ij¸¯ÅÍ Ãß°¡ Á¤º¸µé. ´ÙÀ½ Á¤º¸µéÀÌ µé¾î°¨. // CHAR_INFOEX ij¸¯ÅÍ Ãß°¡ Á¤º¸ // QUEST Äù½ºÆ® // HISTORY È÷½ºÅ丮 // CONFIG ¼³Á¤ // STORE_INFO â°í Á¤º¸ CHAR_FRIEND_DATA = 12, // ij¸¯ÅÍ Ä£±¸ Á¤º¸ CHAR_BAN_DATA = 13, // ij¸¯ÅÍ °ÅºÎ Á¤º¸ STORE_12_DATA = 14, // â°í 1, 2ÅÇ µ¥ÀÌÅÍ STORE_34_DATA = 15, // â°í 3, 4ÅÇ µ¥ÀÌÅÍ FINISH_GET_DATA = 19, // DBÁß°è¿¡¼­ ¿î¿µ¼­¹ö·Î µ¥ÀÌÅ͸¦ ÀüºÎ º¸³ÂÀ½. // ¿î¿µ¼­¹ö -> DBÁß°è GET_CHAR_DATA = 20, // ij¸¯ÅÍ µ¥ÀÌÅÍ ¿äû ÆÐŶ CHANGE_CHAR_NAME = 30 // ij¸¯ÅÍ À̸§ ¹Ù²Ù±â }; enum GetError { UNKNOWN_ERROR = 1, // ¾Ë ¼ö ¾ø´Â ¿¡·¯ INVALID_REQUEST = 2, // À߸øµÈ µ¥ÀÌÅÍ ÆÐŶ GET_UIDCID_QUERY_FAILED = 3, // DB¿¡¼­ À̸§À¸·Î UID, CID¸¦ ¾ò¾î¿À´Â µ¥ ½ÇÆÐÇß´Ù. INVALID_UID_CID_DATA = 4, // DB¿¡¼­ À̸§À¸·Î ¾ò¾î¿Â UID, CIDµ¥ÀÌÅͰ¡ ÀÌ»óÇÏ´Ù. GET_STORE_QUERY_FAILED = 5, // DB¿¡¼­ â°í µ¥ÀÌÅ͸¦ ¾ò¾î¿À´Â µ¥ ½ÇÆÐÇß´Ù. GET_CHAR_DATA_QUERY_FAILED = 6 // DB¿¡¼­ ij¸¯ÅÍ µ¥ÀÌÅ͸¦ ¾ò¾î¿À´Â µ¥ ½ÇÆÐÇß´Ù. }; char m_szName[CHAR_INFOST::MAX_NAME_LEN]; unsigned long m_dwRequestKey; unsigned long m_dwUID; unsigned long m_dwCID; unsigned char m_cType; unsigned char m_cOldServerGroupID; }; struct PktAdminToolGetDataAck : public PktBase { unsigned long m_dwRequestKey; unsigned long m_dwUID; unsigned long m_dwCID; unsigned char m_cType; unsigned char m_cOldServerGroupID; }; // ¾îµå¹Î Åø¿¡¼­ µ¥ÀÌÅÍ ¾÷µ¥ÀÌÆ®Çϱâ. (µÚ¿¡ µ¥ÀÌÅ͸¦ ³ÖÀ½) struct PktAdminToolSetData : public PktBase { enum SetDataType { CHAR_BASIC_DATA = 10, // ij¸¯ÅÍ Á¤º¸. ´ÙÀ½ Á¤º¸µéÀÌ µé¾î°¨. // CHAR_INFOST ij¸¯ÅÍ ±âº» Á¤º¸ // CHAR_POS ij¸¯ÅÍ À§Ä¡ Á¤º¸ // SKILL ij¸¯ÅÍ ½ºÅ³ Á¤º¸ // QUICK ij¸¯ÅÍ Äü ½½·Ô // EQUIP ij¸¯ÅÍ Àåºñ // INVEN ij¸¯ÅÍ Àκ¥ // EXTRA ij¸¯ÅÍ ¿©ºÐ // EXCHANGE ij¸¯ÅÍ ±³È¯ CHAR_EXTRA_DATA = 11, // ij¸¯ÅÍ Ãß°¡ Á¤º¸µé. ´ÙÀ½ Á¤º¸µéÀÌ µé¾î°¨. // CHAR_INFOEX ij¸¯ÅÍ Ãß°¡ Á¤º¸ // QUEST Äù½ºÆ® // HISTORY È÷½ºÅ丮 // CONFIG ¼³Á¤ // STORE_INFO â°í Á¤º¸ CHAR_FRIEND_DATA = 12, // ij¸¯ÅÍ Ä£±¸ Á¤º¸ CHAR_BAN_DATA = 13, // ij¸¯ÅÍ °ÅºÎ Á¤º¸ STORE_12_DATA = 14, // â°í 1, 2ÅÇ µ¥ÀÌÅÍ STORE_34_DATA = 15, // â°í 3, 4ÅÇ µ¥ÀÌÅÍ OPEN_UPDATE_DATA = 20, // ¼¼¼ÇÀ» ¿­°í DB¿¡ ¾÷µ¥ÀÌÆ®ÇÏ·Á ½ÃµµÇÑ´Ù. FINISH_UPDATE_DATA = 21, // µ¥ÀÌÅ͸¦ DB¿¡ ¾÷µ¥ÀÌÆ®ÇÏ°í ¼¼¼ÇÀ» ´Ý´Â´Ù. RELOAD_ADMINLIST = 30 }; enum SetError { UNKNOWN_ERROR = 1, // ¾Ë ¼ö ¾ø´Â ¿¡·¯. INVALID_UID_CID_ERROR = 2, // ¾Ë ¼ö ¾ø´Â UID/CID LOGIN_ANOTHER_GAMESERVER = 3, // ´Ù¸¥ °ÔÀÓ ¼­¹ö¿¡ ·Î±×ÀÎ ÇØ À־ ¾÷µ¥ÀÌÆ® ºÒ°¡. SESSION_OPEN_FAILED = 4, // ¼¼¼Ç ¿­±â ½ÇÆÐ ALREADY_LOGIN_USER_SESSION_OPEN = 5, // ÀÌ¹Ì ·Î±×ÀÎ µÇ¾î ÀÖ´Â À¯Àú ¼¼¼ÇÀ» ¿­·Á°í ÇßÀ½ ANOTHER_CHAR_LOAD_FAILED = 6, // ij¸¯ÅÍ Á¤º¸¸¦ DB¿¡¼­ Àоî¿À´Â µ¥ ½ÇÆÐ SETTING_DATA_FAILED = 7, // µ¥ÀÌÅÍ ¼¼ÆÃ ½ÇÆÐ (µ¥ÀÌÅÍ ±æÀ̵îÀÌ ¸ÂÁö ¾ÊÀ½) SESSION_START_FAILED = 8 // ¼¼¼Ç ½ÃÀÛ ½ÇÆÐ. }; unsigned __int64 m_dwSerial; unsigned long m_dwRequestKey; unsigned long m_dwUID; unsigned long m_dwCID; unsigned char m_cType; unsigned char m_cOldServerGroupID; }; struct PktAdminToolSetDataAck : public PktBase { unsigned long m_dwRequestKey; unsigned char m_cType; }; struct PktNewAdminToolSetDataAck : public PktBase { unsigned long m_dwRequestKey; unsigned long m_dwUID; unsigned long m_dwCID; unsigned char m_cType; }; struct GiveItemInfo { enum GiveItemType { MIN_DAMAGE = 0, MAX_DAMAGE = 1, ARMOR = 2, HIT_RATE = 3, EVADE = 4, MAX_HP = 5, HP_REGEN = 6, MAX_MP = 7, MP_REGEN = 8, CRITICAL = 9, BLOCK = 10, SPEED = 11, MAGIC_POWER = 12, MAGIC_RESIST = 13, MAX_GIVEITEM_ATTRIBUTE = 14 }; unsigned long m_dwCreateID; unsigned long m_dwUID; unsigned long m_dwCID; unsigned short m_usPrototypeID; unsigned char m_cAmount; unsigned char m_cAttribute[MAX_GIVEITEM_ATTRIBUTE]; unsigned __int64 m_dwItemUID; }; struct UpdateItemUID { unsigned __int64 m_dwItemUID; unsigned long m_dwCreateID; }; struct PktGiveItemToTempInven : public PktBase { enum Const { MAX_GIVE_ITEM = 10 }; GiveItemInfo m_GiveItemInfo[MAX_GIVE_ITEM]; unsigned char m_cGiveItemNum; }; struct PktCharNameChange : public PktBase { enum Error { ERR_SERVER = 1, // ¼­¹ö ¿¡·¯ ERR_CANNOT_FIND_CHARACTER = 2, // ij¸¯ÅÍ Ã£À» ¼ö ¾øÀ½(·Î±×ÀÎµÈ Ä³¸¯ÅͰ¡ ¾Æ´Ô) ERR_NAMECHANGE_ITEM = 3, // À̸§ º¯°æ ¾ÆÀÌÅÛ ¾øÀ½ ERR_INVALID_NAME = 4, // ¸¸µé ¼ö ¾ø´Â À̸§(Ư¼ö¹®ÀÚµîÀÌ µé¾î°£ ÀÌ»óÇÑ À̸§) ERR_CANNOT_USE_NAME = 5, // »ç¿ëÇÒ ¼ö ¾ø´Â À̸§ ERR_ALREADY_USE_NAME = 6 // ÀÌ¹Ì »ç¿ëÇϰí ÀÖ´Â À̸§ }; char m_szCharName[CHAR_INFOST::MAX_NAME_LEN]; // ¹Ù²Ü À̸§ unsigned long m_dwUID; // ÀÚ±â ij¸¯ÅÍ UID unsigned long m_dwCID; // ÀÚ±â ij¸¯ÅÍ CID unsigned char m_cNameChangeCount; // °»½ÅµÈ À̸§ º¯°æ Ä«¿îÆ® ¼ýÀÚ. Item::ItemPos m_ItemPos; // °è¸íÇã°¡¼­ (Ãß°¡ÀÛ¾÷µÊ) }; struct PktAdminCommandLog : public PktBase { enum Const { MAX_COMMAND_SIZE = 128 }; unsigned long m_dwAdminCID; // ÇØ´ç GM UID unsigned long m_dwCID; // ÇØ´ç ij¸¯ÅÍ CID. char m_szCommand[MAX_COMMAND_SIZE]; // ÇØ´ç ¸í·É¾î ÅØ½ºÆ®. }; #pragma pack() #endif