#ifndef _CHAR_ITEM_PACKET_H_ #define _CHAR_ITEM_PACKET_H_ // CharItemPacket.h // ItemStructure.hÀ» Æ÷ÇÔÇØ¾ß ÇÑ´Ù. (Áý±â, ¶³±¸±â µîµî) #include #include #include #include "CharItemPacketStruct.h" #pragma pack(1) // Áý±â (ÀÀ´ä ÇÊ¿ä) struct PktPU : public PktBase { unsigned __int64 m_nObjectID; // ¿ÀºêÁ§Æ® ¾ÆÀ̵ð unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð Item::ItemPos m_itemPos; // ¾ÆÀÌÅÛ À§Ä¡ }; // Áý±â Ack struct PktPUAck : public PktBase { enum ObjectType { Item = 0, Gold = 1 }; enum PktPUAckError { NO_SERVER_ERR = 0, SERVER_ERROR = 1, FAIL_GET_CELL = 2, FAIL_GET_ITEM = 3, FAIL_PICKUP_INVEN = 4, FAIL_NOT_OWNER_OF_ITEM = 5, FAIL_NOT_ITEM = 6, FAIL_CREATE_ITEM = 7, FAIL_AUTO_ROUTING = 8, FAIL_GOLD_OVERFLOW = 9 }; unsigned __int64 m_nObjectID; // ¿ÀºêÁ§Æ® ¾ÆÀ̵ð unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð unsigned long m_dwSize; // ObjectÅ©±â(ȤÀº µ· ¾ç) Item::ItemPos m_itemPos; // ¾ÆÀÌÅÛÀÌ ³õÀÏ À§Ä¡ unsigned char m_cType; // ObjectÁ¾·ù(¾ÆÀÌÅÛ È¤Àº µ·) unsigned char m_cNum; // ¾ÆÀÌÅÛ °¹¼ö }; // Áý±â Á¤º¸ struct PktPUInfo : public PktBase { unsigned __int64 m_nObjectID; // ¿ÀºêÁ§Æ® ¾ÆÀ̵ð unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð }; // ¿ÀÅä ·çÆÃ struct PktAutoRouting : public PktBase { enum PktARCmd { ARC_ORDER = 0, ARC_POSSIBLE = 1, ARC_IMPOSSIBLE = 2 }; unsigned __int64 m_nObjectID; // ¿ÀºêÁ§Æ® ¾ÆÀ̵ð unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð unsigned short m_wItemID; // ¾ÆÀÌÅÛ ¾ÆÀ̵ð unsigned char m_cNum; // ¾ÆÀÌÅÛ °¹¼ö Item::ItemPos m_itemPos; // ¾ÆÀÌÅÛ À§Ä¡ unsigned char m_cCmd; // ¸í·É }; // ¶³±¸±â (ÀÀ´ä ÇÊ¿ä) struct PktPD : public PktBase { unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð Item::ItemPos m_itemPos; // ¾ÆÀÌÅÛ À§Ä¡ ¹× À妽º unsigned char m_cNum; // ¾ÆÀÌÅÛ °¹¼ö }; // ¶³±¸±â Ack struct PktPDAck : public PktBase { enum PktPDAckError { SERVER_ERROR = 1, FAIL_GET_CELL = 2, FAIL_DROP_INVEN = 3, FAIL_DROP_FIELD = 4, FAIL_ZERO_ITEM = 5 }; unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð FieldObject m_FieldObject; // FieldObject Item::ItemPos m_itemPos; // ¾ÆÀÌÅÛ À§Ä¡ ¹× À妽º }; // ¶³±¸±â Á¤º¸ struct PktPDInfo : public PktBase { unsigned long m_dwCharID; FieldObject m_FieldObject; }; // »ç¶óÁö±â struct PktDisappearItem : public PktBase { enum PktDICmd { DIC_DEFAULT = 0, // ÀϹÝÀûÀÎ ¾ÆÀÌÅÛ »èÁ¦ DIC_LINKED_QUEST = 1 // Äù½ºÆ® Á¾¼Ó ¾ÆÀÌÅÛÀÇ »èÁ¦ (¸Þ¼¼Áö Ãâ·Â ÇÊ¿ä) }; unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð Item::ItemPos m_itemPos; // ¾ÆÀÌÅÛ À§Ä¡ ¹× À妽º unsigned char m_cNum; // ¾ÆÀÌÅÛ °¹¼ö unsigned char m_cCmd; // ¸í·É }; /* TODO : REMOVE HERE ¼¿ Á¤º¸ struct PktCeInfo : public PktBase { struct Stall_Info { enum { MAX_STALL_NAME = 32 }; unsigned long m_dwCID; char m_szStallName[MAX_STALL_NAME]; }; unsigned char m_cItemNum; // µÚ¿¡ µû¶ó¿À´Â ¾ÆÀÌÅÛ °³¼ö. unsigned char m_cStallNum; // µÚ¿¡ µû¶ó¿À´Â »óÁ¡ À̸§ °³¼ö. }; */ // ¾ÆÀÌÅÛ Ã³¸® (ÀÀ´ä ÇÊ¿ä) struct PktTI : public PktBase { enum PktTIError { SERVER_ERROR = 1, FAIL_MOVE = 2, FAIL_MOVE_FIFTHSKILL_LOCKITEM = 3 }; unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð TakeType m_TakeType; // ¾ÆÀÌÅÛ Áý±â ±¸Á¶Ã¼ }; // µ· ó¸® (ÀÀ´ä ÇÊ¿ä) struct PktTG : public PktBase { enum PktTGError { SERVER_ERROR = 1, FAIL_MOVE = 2, GOLD_OVERFLOW = 3 }; unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð unsigned long m_dwGold; // µ· ¾×¼ö unsigned char m_cSrcPos : 4; // SrcÀ§Ä¡ - TakeType ÂüÁ¶ unsigned char m_cDstPos : 4; // DstÀ§Ä¡ - TakeType ÂüÁ¶ }; // ¾ÆÀÌÅÛ Ã³¸® (ÀÀ´ä ÇÊ¿ä) struct PktTIs : public PktBase { enum PktTlsError { SERVER_ERROR = 1 }; unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð unsigned char m_TakeNum; // ¾ÆÀÌÅÛ Áý±â ¼ýÀÚ }; // ¾ÆÀÌÅÛ ½º¿Ò struct PktSwI : public PktBase { enum PktSwlError { SERVER_ERROR = 1, FAIL_SRC_MOVE = 2, FAIL_DST_MOVE = 3, CANT_SWAP = 4 }; unsigned long m_dwCharID; // - ij¸¯ÅÍ ¾ÆÀ̵ð TakeType m_SwapSrc; // - ½º¿Ò ¼Ò½º ¾ÆÀÌÅÛ Áý±â ±¸Á¶Ã¼ TakeType m_SwapDst; // - ½º¿Ò ´ë»ó ¾ÆÀÌÅÛ Áý±â ±¸Á¶Ã¼ }; // ¾ÆÀÌÅÛ °Å·¡ struct PktTr : public PktBase { enum PktTrError { FAIL_DROP_INVEN = 2, // Àκ¥Å丮¿¡ ¾ÆÀÌÅÛÀÌ ¾ø¾î ÆÈ±â ½ÇÆÐ FAIL_WRONG_NPC = 3, // À߸øµÈ NPC FAIL_ITEM_BUY = 4, // ¾ÆÀÌÅÛ ±¸ÀÔ ½ÇÆÐ FAIL_PUT_INVEN = 5, // Àκ¥Å丮¿¡ ¾ÆÀÌÅÛ ³õ±â ½ÇÆÐ FAIL_FULL_INVEN = 6, // Àκ¥Å丮°¡ ²Ë Âù »óÅ FAIL_ENEMY_ITEM = 7, // °ø¼º½Ã°£¿¡ Àû´ë ±æµå ¿ä»õ »óÁ¡¿¡¼­ ¾ÆÀÌÅÛ ±¸¸Å ½ÇÆÐ. FAIL_GOLD_OVERFLOW = 8 // °Å·¡ÈÄ ÃÖ´ë ¼ÒÁö±Ý Ãʰú }; enum PktTrCmd { TRC_BUY_WITH_GOLD = 0, // ¾ÆÀÌÅÛ ±¸ÀÔ (ÀÏ¹Ý »óÁ¡) TRC_BUY_WITH_MILEAGE = 1, // ¾ÆÀÌÅÛ ±¸ÀÔ (¸Þ´Þ »óÁ¡) TRC_SELL = 2, // ¾ÆÀÌÅÛ ÆÇ¸Å TRC_BUY_EQUIP = 3, // ·£´ý ¿É¼ÇÀÌ ºÙÀº Àåºñ ±¸ÀÔ TRC_BUY_WITH_SKILL_COUPON = 4 // ¾ÆÀÌÅÛ ±¸ÀÔ (»óÀ§ Æ®·¹À̳Ê) }; unsigned long m_dwCustomerID; // ¼Õ´Ô ¾ÆÀ̵ð unsigned long m_dwOwnerID; // »óÁ¡ ÁÖÀÎ ¾ÆÀ̵ð (NPC ¶Ç´Â ij¸¯ÅÍ) unsigned char m_cCmd; // ¸í·É unsigned short m_wBuyItemID; // »ç·Á°í ÇÏ´Â ¾ÆÀÌÅÛ Á¾·ù ID TakeType m_TakeType; // ¾ÆÀÌÅÛ Áý±â ±¸Á¶Ã¼ Item::ItemPos m_CouponPos; // ½ºÅ³ºÏ ÄíÆù À§Ä¡ (TRC_BUY_WITH_SKILL_COUPON ¸í·ÉÀÇ °æ¿ì µ· ´ë½Å ÄíÆùÀ» »ç¿ëÇÑ´Ù.) unsigned short m_wSize; // ¾ÆÀÌÅÛ Å©±â (TRC_BUY_EQUIP ¸í·ÉÀÇ °æ¿ì '°¡º¯±æÀÌ ¾ÆÀÌÅÛ'ÀÌ µ¡ºÙ´Â´Ù.) // Rodin : ¾ÆÀÌÅÛ Àüü°¡ ¾Æ´Ñ ¼Ó¼º ¹è¿­À» ³Ö¾î ÆÐŶ ±æÀÌ Ã¼Å©¿Í ´õºÒ¾î ÇØÅ· À§ÇèÀ» ÁÙÀ̵µ·Ï ¼öÁ¤ÇսôÙ. }; // ¾ÆÀÌÅÛ °Å·¡ Ack (+ °¡º¯±æÀÌ ¾ÆÀÌÅÛ) struct PktTrAck : public PktBase { unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð unsigned long m_dwNPCID; // »óÁ¡ NPC ¾ÆÀ̵ð unsigned long m_dwGold; // ÇöÀç ¼ÒÁö±Ý unsigned long m_dwMileage; // ÇöÀç ¸¶Àϸ®Áö Item::ItemPos m_CouponPos; // ½ºÅ³ºÏ ÄíÆù À§Ä¡ (TRC_BUY_WITH_SKILL_COUPON ¸í·ÉÀÇ °æ¿ì µ· ´ë½Å ÄíÆùÀ» »ç¿ëÇÑ´Ù.) unsigned short m_wSize; // ¾ÆÀÌÅÛ Å©±â Item::ItemPos m_itemPos; // ¾ÆÀÌÅÛ À§Ä¡ unsigned char m_cNum; // ¾ÆÀÌÅÛ °¹¼ö }; // NPC Àåºñ »óÁ¡ Á¤º¸ (+ Ack½Ã¿£ °¡º¯ ±æÀÌ ¾ÆÀÌÅÛ ¸ñ·Ï) struct PktEquipShopInfo : public PktBase { unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð unsigned long m_dwNPCID; // NPC ¾ÆÀ̵ð unsigned long m_dwTime; // ¹°Ç° ÀçÁø¿­ ½Ã°£ (±×·¹À̵尡 »õ·Î Ã¥Á¤µÈ ½Ã°£) unsigned char m_cRace; // Á¾Á· unsigned char m_cTabPage; // ÅÇ unsigned char m_cNum; // ¾ÆÀÌÅÛ °¹¼ö }; // ¾ÆÀÌÅÛÀÇ ¼ö¸® (ÀÀ´ä ÇÊ¿ä) struct PktRpI : public PktBase { enum Err { NOT_ENOUGH_GOLD = 2, // °¡Áö°í ÀÖ´Â µ·ÀÌ ºÎÁ· FAIL_NOT_CREATURE = 10, // Å©¸®¿¡ÀÌÃİ¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. FAIL_NOT_NPCZONE = 11, // NPCÀÇ Á¸¹øÈ£°¡ ´Ù¸¨´Ï´Ù. FAIL_NOT_REPAIR = 12, // ¸®Æä¾î¾ÆÀÌÅÛÀ̾ø´Ù. FAIL_NOT_POSITEM = 13, // ¾ÆÀÌÅÛÀÌ À§Ä¡¿¡¾ø´Ù. FAIL_NOT_STACKABLE = 14, // ¼Ò¸ð¼º¾ÆÀÌÅÛÀÌ´Ù. FAIL_NOT_EQUIP = 15, // Àåºñ¾ÆÀÌÅÛÀ̾ƴϴÙ. FAIL_FULL_DRUA = 16, // ³»±¸µµ°¡ Ç®ÀÌ´Ù. }; enum Pos { EQUIPMENT = 1, INVENTORY = 2, EQUIPMENT_ALL = 3, INVENTORY_ALL = 4, }; unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð unsigned long m_dwGold; // ¼ö¸® ºñ¿ë Item::ItemPos m_itemPos; // ¼ö¸® ¾ÆÀÌÅÛ À§Ä¡ }; // ÀåºñÇϰí ÀÖ´Â ¸ðµç ¾ÆÀÌÅÛ ¼ö¸® (ÀÀ´ä ÇÊ¿ä) struct PktRpAI : public PktBase { enum Err { NOT_ENOUGH_GOLD = 2, // °¡Áö°í ÀÖ´Â µ·ÀÌ ºÎÁ· FAIL_NOT_CREATURE = 10, // Å©¸®¿¡ÀÌÃİ¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. FAIL_NOT_NPCZONE = 11, // NPCÀÇ Á¸¹øÈ£°¡ ´Ù¸¨´Ï´Ù. FAIL_NOT_REPAIR = 12, // ¸®Æä¾î¾ÆÀÌÅÛÀ̾ø´Ù. }; unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð unsigned long m_dwGold; // ¼ö¸® ºñ¿ë }; // ¾ÆÀÌÅÛÀÇ »ç¿ë (ÀÀ´ä ÇÊ¿ä) struct PktUI : public PktBase { enum PktUIAck { USE_FAILED = 2, /* °ø¼º °ü·Ã ¾ÆÀÌÅÛ »ç¿ë ¿¡·¯ */ NOT_SIEGE_TIME = 3, // °ø¼º ½Ã°£ÀÌ ¾Æ´Ô NOT_EXIST_GUILD = 4, // ±æµå°¡ ¾ø°Å³ª, ±æµå¿¡ °¡ÀÔÇÏÁö ¾Ê¾ÒÀ½ NOT_MASTER = 5, // ±æµå ¸¶½ºÅͰ¡ ¾Æ´Ô NOT_ENOUGH_FAME = 6, // ±æµå ¸í¼º ºÎÁ· ANOTHER_DEV_CAMP = 7, // ±¸ÃàÁß, Ãë¼ÒÁß, ÆÄ±«ÁßÀÎ ´Ù¸¥ ÁøÁö°¡ ÀÖÀ½ INNER_RADIUS = 8, // ´Ù¸¥ ÁøÁö³ª ¼ºÀÇ ¹Ý°æ ¾È¿¡ ÀÖÀ½ OUTER_RADIUS = 9, // ¾Æ±º ÁøÁöÀÇ ¿µ¿ª ¹Û¿¡ ÀÖÀ½ NOT_ENOUGH_MATERIAL = 10, // °ø¼º º´±â »ý¼º ÀÚÀç ºÎÁ· IN_SAFETYZONE = 11, // ÁøÁö¸¦ ¼¼¿ï¼ö ¾ø´Â °÷ÀÓ FAIL_PEACE_GUILD = 12, // ÆòÈ­ ¸ðµå ±æµå FAIL_CAPITAL_ZONE = 13, // Ä«³ª¹ø¿¡¸¸ »ý¼º °¡´É // FAIL_ALMIGHTY_GROUND = 13, // ½ÅÀÇ ´ëÁö¿¡´Â »ý¼º ÇÒ¼ö ¾øÀ½ FAIL_STONE_BATTLE = 14, // ´ÙÅ© Ä«³ª¹ø¿¡´Â »ý¼º ÇÒ¼ö ¾øÀ½ FAIL_EXIST_ANOTHER_WEAPON = 15, // ÀÌ¹Ì ¿ùµå ¿þÆùÀÌ Á¸ÀçÇÔ FAIL_ALMIGHTY_PIRATE = 16, // ½ÅÀÇ ÇØÀû´ÜÀº »ý¼º ºÒ°¡ FAIL_REMAIN_3_DAY = 17, // 3¹øÀÇ °ø¼º ½Ã°£ÈÄ¿¡ °¡´É FAIL_REMAIN_2_DAY = 18, // 2¹øÀÇ °ø¼º ½Ã°£ÈÄ¿¡ °¡´É FAIL_REMAIN_1_DAY = 19, // 1¹øÀÇ °ø¼º ½Ã°£ÈÄ¿¡ °¡´É FAIL_POSITION = 20, // À§Ä¡°¡ ÀÌ»óÇÔ NOT_EXIST_QUEST = 21, // Äù½ºÆ®°¡ Á¸ÀçÇÏÁö ¾ÊÀ½ FAIL_HAS_QUEST = 22, // ÀÌ¹Ì °¡Áö°í ÀÖ´Â Äù½ºÆ® FAIL_FULL_QUEST = 23, // ¹ÞÀ» ¼ö ÀÖ´Â Äù½ºÆ®¼ö°¡ ²Ë áÀ½ FAIL_QUEST_LEVEL = 24, // Äù½ºÆ®¸¦ ¼öÇàÇÒ¼ö ÀÖ´Â ·¹º§ ¾Æ´Ô FAIL_NOT_GT_GUILD_WAR_TIME = 25, // ±æµåÀü ½Ã°£ÀÌ ¾Æ´Ô OUTER_RADIUS_SIEGE = 26, // ¿µ¿ª ¹Û¿¡¼­ °ø¼º º´±â¸¦ »ý¼º FAIL_HAS_SIEGE_ARMS = 27, // 1°³ ÀÌ»ó¿¡ °ø¼º º´±â¸¦ »ý¼º ÇÏ·Á°í ÇÒ¶§. FAIL_MATERIAL_COUNT = 28, // °ø¼º¿ë ÀÚÀç°¡ ºÎÁ·ÇÒ¶§. NOT_GUILD_MASTER = 29, // ±æµå ¸¶½ºÅͰ¡ ¾Æ´Ò °æ¿ì. NOT_CASTLE_NATION = 30, // °ø¼ºÃøÀÏ °æ¿ì. FAIL_MAX_SIEGE_OBJECT = 31, // ÃæÂ÷°¡ ÃÖ´ë°ªÀ¸·Î »ý¼ºµÇ¾úÀ» °æ¿ì. FAIL_NEWZONE = 32, // ½Å±ÔÁ¸¿¡¼­´Â »ý¼º ÇÒ¼ö ¾øÀ½ NOT_LIMIT_LEVEL = 33 // 80 ·¹º§ ¹Ì¸¸ ÀÏ °æ¿ì. }; unsigned long m_dwSender; // »ç¿ëÀÚ ¾ÆÀ̵ð unsigned long m_dwRecver; // ´ë»óÀÚ ¾ÆÀ̵ð Item::ItemPos m_itemPos; // »ç¿ë ¾ÆÀÌÅÛ À§Ä¡ unsigned char m_cRemainItemNum; // ³²Àº ¾ÆÀÌÅÛ °³¼ö. ¼­¹ö->Ŭ¶óÀÌ¾ðÆ®·Î º¸³»´Â ÆÐŶÀÏ °æ¿ì¿¡¸¸ ÀÇ¹Ì ÀÖÀ½. }; // ¿ÀºêÁ§Æ® ´øÁö±â ( ÀÀ´ä ÇÊ¿ä ) struct PktCO : public PktBase { CastObject m_sCastObject; unsigned long m_dwSenderID; // ´øÁö´Â »ç¶÷ unsigned long m_dwReceiverID; // ¹Þ´Â »ç¶÷ }; // ¿ÀºêÁ§Æ® ´øÁö±â (Cast Object) struct PktCOInfo : public PktBase { CastObject m_sCastObject; unsigned long m_dwSenderID; // ´øÁö´Â »ç¶÷ unsigned long m_dwReceiverID; // ¹Þ´Â »ç¶÷ }; // ¼ÒÄÏ ¼³Ä¡ struct PktIS : public PktBase { unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð Item::ItemPos m_equipPos; // Àåºñ À§Ä¡ Item::ItemPos m_gemPos; // º¸¼® À§Ä¡ }; // ¼ÒÄÏ ¼³Ä¡ Ack (+ ¼ÒÄÏÀÌ ¼³Ä¡µÈ Àåºñ ¾ÆÀÌÅÛ) struct PktISAck : public PktBase { unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð Item::ItemPos m_equipPos; // Àåºñ À§Ä¡ Item::ItemPos m_gemPos; // º¸¼® À§Ä¡ unsigned char m_cSize; // ¾ÆÀÌÅÛ Å©±â }; // ·é ¼³Ä¡/Á¦°Å. struct PktIRS : public PktBase { enum { RUNE_INSTALL = 0x02, RUNE_UNINSTALL = 0x03, }; unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð. Item::ItemPos m_equipPos; // Àåºñ À§Ä¡. Item::ItemPos m_runePos; // ·é À§Ä¡. unsigned char m_cType; // ÆÐŶ ŸÀÔ(¼³Ä¡/Á¦°Å). }; // ·é ¼³Ä¡/Á¦°Å Ack. struct PktIRSAck : public PktBase { enum { RUNE_INSTALL = 0x02, RUNE_UNINSTALL = 0x03, }; unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð Item::ItemPos m_equipPos; // Àåºñ À§Ä¡. Item::ItemPos m_runePos; // ·é À§Ä¡. unsigned char m_cSize; // ¾ÆÀÌÅÛ Å©±â. unsigned char m_cType; // ÆÐŶ ŸÀÔ(¼³Ä¡/Á¦°Å). }; // ¾ÆÀÌÅÛ ÇÕ¼º struct PktItemChemical : public PktBase { unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð Item::ItemPos m_pickkingPos; // µé°í ÀÖ´Â ¾ÆÀÌÅÛ À§Ä¡ Item::ItemPos m_targetPos; // ÇÕ¼º ´ë»ó ¾ÆÀÌÅÛ À§Ä¡ unsigned char m_cPickkingNum; // µé°í ÀÖ´Â ¾ÆÀÌÅÛ °¹¼ö }; // ¾ÆÀÌÅÛ ÇÕ¼º Ack struct PktItemChemicalAck : public PktBase { unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð Item::ItemPos m_pickkingPos; // µé°í ÀÖ´Â ¾ÆÀÌÅÛ À§Ä¡ Item::ItemPos m_targetPos; // ÇÕ¼º ´ë»ó ¾ÆÀÌÅÛ À§Ä¡ unsigned short m_wPickkingID; // µé°í ÀÖ´Â ¾ÆÀÌÅÛ ¾ÆÀ̵ð unsigned char m_cPickkingNum; // µé°í ÀÖ´Â ¾ÆÀÌÅÛÀÇ ³²Àº °¹¼ö unsigned char m_cResultSize; // ÇÕ¼º °á°ú¹° Å©±â }; // ¾÷±×·¹ÀÌµå ¾ÆÀÌÅÛ struct PktUgI : public PktBase { unsigned long m_dwNPCID; // ´ëÀåÀåÀÌ NPC ¾ÆÀ̵ð }; // ¾÷±×·¹ÀÌµå ¾ÆÀÌÅÛ Ack (+ ¾ÆÀÌÅÛ ±¸Á¶Ã¼) struct PktUgIAck : public PktBase { unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð unsigned long m_dwCurrentGold; // ÇöÀç Àκ¥Å丮¿¡ ³²Àº ±Ý¾×, ¿¡·¯½Ã ÀÇ¹Ì ¾øÀ½ unsigned char m_cCurrentMineralNum; // ÇöÀç ³²Àº ±¤¹° °¹¼ö, ¿¡·¯½Ã ÀÇ¹Ì ¾øÀ½. unsigned char m_cValue; // ¾÷±×·¹À̵å Ãß°¡ ½ºÅÝ unsigned char m_cSize; // Àåºñ ¾ÆÀÌÅÛ Å©±â }; // ¾ÆÀÌÅÛ ¿É¼Ç ÀÌ½Ä struct PktItemOptionGraft : public PktBase { unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð unsigned char m_cAttributeType; // À̽ÄÇÒ ¿É¼Ç Á¾·ù }; // ¾ÆÀÌÅÛ ¿É¼Ç ÀÌ½Ä Ack (+ ¾ÆÀÌÅÛ ±¸Á¶Ã¼) struct PktItemOptionGraftAck : public PktBase { unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð unsigned long m_dwGold; // ³²Àº ±Ý¾× unsigned char m_cSize; // °á°ú ¾ÆÀÌÅÛ Å©±â }; // ¾ÆÀÌÅÛ º¸»ó ÆÇ¸Å struct PktItemCompensation : public PktBase { unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð }; // ¾ÆÀÌÅÛ ½ºÇø´ ¿äû (ÀÀ´ä ÇÊ¿ä) struct PktSplt : public PktBase { unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð TakeType m_TakeType; // ¾ÆÀÌÅÛ Áý±â ±¸Á¶Ã¼ // ( Src : ³ª´­ ¾ÆÀÌÅÛ, Dst : ³ª´©¾î¼­ ³õÀ» ÀÚ¸®(Ç×»ó ºñ¾î ÀÖ¾î¾ß ÇÔ), // Num : ³ª´­ ¾ÆÀÌÅÛ °¹¼ö) }; // ¾ÆÀÌÅÛ ½ºÇø´ Ack (ÀÀ´ä ÇÊ¿ä) (+ °¡º¯±æÀÌ ¾ÆÀÌÅÛ ±¸Á¶Ã¼ (³ª´©¾î¼­ »ý±ä ¾ÆÀÌÅÛ Á¤º¸)) struct PktSpItAck : public PktBase { enum PktSpltAckError { SERVER_ERROR = 1, FAIL_SPLIT = 2 }; unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð TakeType m_TakeType; // ¾ÆÀÌÅÛ Áý±â ±¸Á¶Ã¼ unsigned char m_cSize; // ¾ÆÀÌÅÛ Å©±â }; // Äü ½½·Ô À̵¿ (ÀÀ´ä ÇÊ¿ä) struct PktQSM : public PktBase { enum PktQSMError { SERVER_ERROR = 1, FAIL_MOVE = 2 }; TakeType m_TakeType; unsigned short m_usSkillID; unsigned char m_cLockCount; unsigned char m_cSkillLevel; }; // ½ºÀ§Ä¡ Àåºñ struct PktSwEQ : public PktBase { unsigned char m_cType; // 0 : ÇÚµå, 1 : ¸» unsigned char m_cSelect; // ¼±Åà ÇÚµå ( 1 = ¹«±â1 & ¹æÆÐ1, 2 = ¹«±â2 & ¹æÆÐ2 ) }; // ±³È¯ ¸í·É struct PktExC : public PktBase { enum ExchageCmd { EXC_PROPOSE = 0, // Á¦¾È EXC_ACCEPT = 1, // ¼ö¶ô EXC_REFUSE = 2, // °ÅÀý EXC_OK = 3, // È®ÀÎ EXC_CANCEL = 4, // È®ÀÎ Ãë¼Ò EXC_EXCHANGE = 5, // °Å·¡ ¼º¸³ EXC_QUIT = 6, // °Å·¡ Ãë¼Ò EXC_LOCK = 7, // ¶ô EXC_UNLOCK = 8 // ¾ð¶ô }; enum PktExCError { FAIL_EXCHANGING_CHAR = 2, // ´Ù¸¥ ij¸¯ÅÍ¿Í ±³È¯ÁßÀΠij¸¯ÅÍ¿¡°Ô ±³È¯ ½Åû FAIL_NOT_ALL_OK = 3, // ¾çÂÊ ¸ðµÎ È®ÀÎÇÏÁö ¾ÊÀº »óÅ¿¡¼­ °Å·¡ ¼º¸³ FAIL_REJECT = 4, // °ÅºÎ ¿É¼ÇÀÌ ÄÑÁø »óÅ FAIL_EXCHANGING_ID = 5 // ¼ö¶ôÇßÀ»¶§¿Í °Å·¡¼º¸³¶§¿¡ ¾ÆÀ̵𰡠Ʋ¸±°æ¿ì. }; unsigned long m_dwSenderID; // º¸³½ÀÌ ¾ÆÀ̵ð unsigned long m_dwRecverID; // ¹Þ´ÂÀÌ ¾ÆÀ̵ð unsigned char m_cCmd; // ¸í·É }; // ±³È¯ ¾ÆÀÌÅÛ (+ ¾ÆÀÌÅÛ ±¸Á¶Ã¼) struct PktExI : public PktBase { enum Type { Item = 0, Gold = 1, Remove = 2 }; unsigned long m_dwCharID; // ij¸¯ÅÍ ¾ÆÀ̵ð unsigned long m_dwSize; // ¾ÆÀÌÅÛ µ¥ÀÌÅÍ Å©±â(ȤÀº µ· ¾ç) Item::ItemPos m_itemPos; // ¾ÆÀÌÅÛ À§Ä¡ unsigned char m_cType; // ¾ÆÀÌÅÛ Á¾·ù(¾ÆÀÌÅÛ = 0, µ· = 1) unsigned char m_cNum; // ¾ÆÀÌÅÛ °¹¼ö(stack¾ÆÀÌÅÛÀÎ °æ¿ì, °³¼ö¸¸ º¸³¿) }; namespace Deposit { enum Const { PASSWORD_LENGTH = 4 }; }; // â°í (GameServer <--> DBAgent) // ·Î±×Àνÿ¡, PktDBUpdate¸¦ º¸³½ ÈÄ, PktDepositUpdateDB¸¦ ¿©·¯°³ ÁØ´Ù. // ¸¶Áö¸· ÆÐŶ¿¡ m_bUpdateComplete¸¦ true·Î SetÇØ ÁØ´Ù. // °ÔÀÓ Áß¿¡´Â °ÔÀÓ ¼­¹ö°¡ ¼ö½Ã·Î Update¸¦ ÇÑ´Ù. struct PktDepositUpdateDB : public PktDD { enum TabFlag { ITEM_TAB1 = ( 1 << 0 ), ITEM_TAB2 = ( 1 << 1 ), ITEM_TAB3 = ( 1 << 2 ), ITEM_TAB4 = ( 1 << 3 ), USED_DEPOSIT = ( 1 << 30), // 0 : â°í »ç¿ë X, 1 : â°í »ç¿ëÇÔ. SAVED_PASSWORD = ( 1 << 31) // 0 : NOSAVE 1 : SAVE }; enum TabNum { TAB_12 = 0, TAB_34 = 1, }; unsigned long m_dwUID; // ij¸¯ÅÍ UID unsigned long m_dwCID; // ij¸¯ÅÍ CID unsigned long m_dwTabFlag; // ÇöÀç ÅÇÀÇ ±¸ÀÔ »óŸ¦ ³ªÅ¸³»´Â bitset unsigned short m_usDataSize; // ÅÇ(ȤÀº ¾ÏÈ£) µ¥ÀÌÅÍ Å©±â. ¾ÏÈ£ÀÎ °æ¿ì´Â Deposit::PASSWORD_LENGTH¿Í °°¾Æ¾ß ÇÑ´Ù. unsigned char m_cTabNum; // passwordÀÎ °æ¿ì´Â PASSWORD_TABNUMÀÓ bool m_bUpdateComplete; // ¾÷µ¥ÀÌÆ®°¡ ¿Ï·áµÇ´Â °æ¿ì, true·Î set. }; // â°í (Client <--> GameServer) struct PktDeposit : public PktDD { enum CMD { LOGIN = 1, // AckÀÖÀ½(Ackµ¥ÀÌÅÍ ¾øÀ½) (Client<->GameServer) szData[0]~[3]´Â password, ±× ´ÙÀ½¿¡ ¾ÏÈ£ ÀúÀå ¿©ºÎ 1byte (0, 1) BUY_TAB = 2, // AckÀÖÀ½(Ackµ¥ÀÌÅÍ ¾øÀ½) (Client<->GameServer) szData[0]¿¡ »ç¿ëÇÒ ÅÇ ¹øÈ£¸¦ ³Ö¾î ÁÜ RETURN_TAB = 3, // AckÀÖÀ½(Ackµ¥ÀÌÅÍ ¾øÀ½) (Client<->GameServer) szData[0]¿¡ »ç¿ëÇÒ ÅÇ ¹øÈ£¸¦ ³Ö¾î ÁÜ, ¾ÆÁ÷ ±¸ÇöµÇÁö ¾ÊÀ½ LOGOUT = 4, // AckÀÖÀ½ (Client->GameServer) µ¥ÀÌÅÍ ¾øÀ½. CHANGE_PASS = 5, // AckÀÖÀ½ (Client->GameServer) szData[0]~[3]´Â password. ÀÎÁõµÈ »óÅ¿¡¼­¸¸ °¡´É. SAVED_PASS = 6, // Ack¾øÀ½ (GameServer -> Client) °ÔÀÓ ·Î±×Àνà ÁÜ. szData[0]~[3]´Â Gold, [4]´Â ¾ÏÈ£ ÀúÀå ¿©ºÎ 1byte (0, 1) PASSWORD = 7, // AgentServer -> GameServer (CID, Password), GameServer -> AgentServer (UID, Password) GOLD = 8 // AgentServer -> GameServer (CID, Gold), GameServer -> AgentServer (UID, Gold) }; enum DepositError { INSUFFICIENT_MONEY = 2, AUTH_FAILED = 3, INVALID_ARGUMENT = 4 }; enum { MIN_DATA_SIZE = Deposit::PASSWORD_LENGTH + 4 }; unsigned char m_cCmd; char m_szData[MIN_DATA_SIZE]; }; // º¹±Ç °á°ú struct PktLotteryResult : public PktBase { enum PktLRErr { FAIL_BLANK = 2 // Á¸ÀçÇÏÁö ¾Ê´Â »óǰ }; unsigned long m_dwCharID; unsigned long m_dwSize; Item::ItemPos m_itemPos; }; #pragma pack() #endif