#include "stdafx.h" #include "ParseCharLevelUp.h" #include "SendCharLevelUp.h" #include "GameClientDispatch.h" #include #include #include // Ŭ·¡½º ¾÷±×·¹À̵å bool GameClientParsePacket::ParseCharClassUpgrade(CGameClientDispatch& GameClientDispatch, PktBase* lpPktBase) { CHECK_FIXED_PACKETSIZE(lpPktBase, sizeof(PktCU), GameClientDispatch); PktCU* lpPktCU = static_cast(lpPktBase); CCharacter* lpCharacter = GameClientDispatch.GetCharacter(); CHECK_CHARACTER_PTR(lpCharacter, GameClientDispatch, lpPktBase->GetCmd()); unsigned long dwCharID = lpPktCU->m_dwCharID; unsigned char cClass = lpPktCU->m_cClass; return lpCharacter->ChangeClass(cClass); } // IP Áõ°¡ ÆÐŶ bool GameClientParsePacket::ParseCharIncreasePoint(CGameClientDispatch& GameClientDispatch, PktBase* lpPktBase) { CHECK_FIXED_PACKETSIZE(lpPktBase, sizeof(PktIP), GameClientDispatch); PktIP* lpPktIP = static_cast(lpPktBase); CCharacter* lpCharacter = GameClientDispatch.GetCharacter(); CHECK_CHARACTER_PTR(lpCharacter, GameClientDispatch, lpPktBase->GetCmd()); unsigned long dwCharID = lpPktIP->m_dwCharID; unsigned char cStateType = lpPktIP->m_cStateType; // Æ÷ÀÎÆ® Áõ°¡ ChState State = {0,}; unsigned short usError = lpCharacter->AddState(cStateType, State); return GameClientSendPacket::SendCharIncreasePoint(GameClientDispatch.GetSendStream(), dwCharID, State, usError); } // ½ºÅÈ ÀçºÐ¹è (Ŭ·¡½º óÀ½ »óÅ·Î) bool GameClientParsePacket::ParseCharStateRedistribution(CGameClientDispatch& GameClientDispatch, PktBase* lpPktBase) { CHECK_FIXED_PACKETSIZE(lpPktBase, sizeof(PktSR), GameClientDispatch); PktSR* lpPktSR = static_cast(lpPktBase); CCharacter* lpCharacter = GameClientDispatch.GetCharacter(); CHECK_CHARACTER_PTR(lpCharacter, GameClientDispatch, lpPktBase->GetCmd()); ChState State = lpPktSR->m_State; return lpCharacter->StateRedistribution(State); } // ½ºÅ×ÀÌÅͽº ÀçÈÆ·Ã (½ºÅÈ ÀÏÁ¤·®À» ´Ù½Ã ºÐ¹è) bool GameClientParsePacket::ParseCharStatusRetrain(CGameClientDispatch& GameClientDispatch, PktBase* lpPktBase) { CHECK_FIXED_PACKETSIZE(lpPktBase, sizeof(PktSRT), GameClientDispatch); PktSRT* lpPktSRT = static_cast(lpPktBase); CCharacter* lpCharacter = GameClientDispatch.GetCharacter(); CHECK_CHARACTER_PTR(lpCharacter, GameClientDispatch, lpPktBase->GetCmd()); ChState State = lpPktSRT->m_State; Item::ItemPos InvenPos = lpPktSRT->m_ItemPos; return lpCharacter->StatusRetrain(State, InvenPos); }