#include "stdafx.h" #include #include #include #include #include #include #include #include #include "ParseCharBGServer.h" #include "GameClientDispatch.h" // ¹èƲ ±×¶ó¿îµå ¼­¹ö±º ¹æ ¸®½ºÆ® ¿äû bool GameClientParsePacket::ParseCharBGServerMapList(CGameClientDispatch& GameClientDispatch, PktBase* lpPktBase) { PktBGServerMapList* lpPktBGServerMapList = reinterpret_cast(lpPktBase); CCharacter* lpCharacter = GameClientDispatch.GetCharacter(); CHECK_CHARACTER_PTR(lpCharacter, GameClientDispatch, lpPktBase->GetCmd()); VirtualArea::CVirtualAreaMgr::GetInstance().SendBGServerMapList(lpCharacter); return true; } // ¹èƲ ±×¶ó¿îµå ¼­¹ö±º ¹æ °á°ú ¸®½ºÆ® bool GameClientParsePacket::ParseCharBGServerResultList(CGameClientDispatch& GameClientDispatch, PktBase* lpPktBase) { PktBGServerResultList* lpPktBGServerResultList = reinterpret_cast(lpPktBase); CCharacter* lpCharacter = GameClientDispatch.GetCharacter(); CHECK_CHARACTER_PTR(lpCharacter, GameClientDispatch, lpPktBase->GetCmd()); VirtualArea::CVirtualAreaMgr::GetInstance().SendBGServerResultList(lpCharacter); return true; } // ¹èƲ ±×¶ó¿îµå ¼­¹ö±º Á¸ À̵¿ bool GameClientParsePacket::ParseCharBGServerMoveZone(CGameClientDispatch& GameClientDispatch, PktBase* lpPktBase) { PktBGServerMoveZone* lpPktBGServerMoveZone = reinterpret_cast(lpPktBase); CCharacter* lpCharacter = GameClientDispatch.GetCharacter(); CHECK_CHARACTER_PTR(lpCharacter, GameClientDispatch, lpPktBase->GetCmd()); if (0 == lpPktBGServerMoveZone->m_wMapNumber) { // ´ë±â½Ç·Î À̵¿ VirtualArea::CVirtualAreaMgr::GetInstance().LeaveVirtualArea(lpCharacter); } else { // ÇØ´ç ¸Ê(¹æ) ¹øÈ£¿¡ ÇØ´çÇÏ´Â ¹èƲ ±×¶ó¿îµå ¸ÊÀ¸·Î À̵¿ unsigned short wMapIndex = lpPktBGServerMoveZone->m_wMapNumber | VirtualArea::BGSERVERMAP; // À̵¿ÇÏ·Á´Â MapIndex unsigned char cMoveType = lpPktBGServerMoveZone->m_cMoveType; VirtualArea::CVirtualAreaMgr::GetInstance().EnterVirtualArea(lpCharacter, wMapIndex, cMoveType); } return true; } // ¹èƲ ±×¶ó¿îµå ¼­¹ö±º ȯÀü¼Ò ¸í·É bool GameClientParsePacket::ParseCharBGServerMileageChange(CGameClientDispatch& GameClientDispatch, PktBase* lpPktBase) { PktBGServerMileageChange* lpPktBGServerMileageChange = reinterpret_cast(lpPktBase); CCharacter* lpCharacter = GameClientDispatch.GetCharacter(); CHECK_CHARACTER_PTR(lpCharacter, GameClientDispatch, lpPktBase->GetCmd()); unsigned long dwCID = lpPktBGServerMileageChange->m_dwCID; unsigned char cGroup = lpPktBGServerMileageChange->m_cGroup; unsigned char cCmd = lpPktBGServerMileageChange->m_cCmd; unsigned long dwMileage = lpPktBGServerMileageChange->m_dwMileage; switch (cCmd) { case PktBGServerMileageChange::MC_REQUEST: break; case PktBGServerMileageChange::MC_CHANGE: RegularAgentPacketParse::SendSetCharData(dwCID, dwMileage, cGroup); break; default: ERRLOG2(g_Log, "CID:0x%08x À߸øµÈ ȯÀü¼Ò ¸í·ÉÀÔ´Ï´Ù. Cmd:%d", dwCID, cCmd); break; } return true; } // ¹èƲ ±×¶ó¿îµå ¼­¹ö Á¤¼· ij¸¯ÅÍ Á¤º¸ ¿äû bool GameClientParsePacket::ParseCharBGServerCharSlot(CGameClientDispatch& GameClientDispatch, PktBase* lpPktBase) { PktBGServerCharSlot* lpPktBGServerCharSlot = reinterpret_cast(lpPktBase); CCharacter* lpCharacter = GameClientDispatch.GetCharacter(); CHECK_CHARACTER_PTR(lpCharacter, GameClientDispatch, lpPktBase->GetCmd()); unsigned long dwCID = lpPktBGServerCharSlot->m_dwCID; unsigned char cGroup = lpPktBGServerCharSlot->m_cGroup; RegularAgentPacketParse::SendGetCharSlot(dwCID, cGroup); return true; }