#include "stdafx.h" #include "ParseCharSkill.h" #include "SendCharSkill.h" #include "GameClientDispatch.h" #include #include #include #include #include // ½ºÅ³ »ç¿ë bool GameClientParsePacket::ParseCharUseSkill(CGameClientDispatch& GameClientDispatch, PktBase* lpPktBase) { return true; } // ½ºÅ³ Áö¿ì±â bool GameClientParsePacket::ParseCharSkillErase(CGameClientDispatch& GameClientDispatch, PktBase* lpPktBase) { CHECK_FIXED_PACKETSIZE(lpPktBase, sizeof(PktSk), GameClientDispatch); PktSk* lpPktSk = static_cast(lpPktBase); CCharacter* lpCharacter = GameClientDispatch.GetCharacter(); CHECK_CHARACTER_PTR(lpCharacter, GameClientDispatch, lpPktBase->GetCmd()); unsigned long dwCharID = lpPktSk->m_dwCharID; unsigned short usSkill = lpPktSk->m_wSkill; unsigned char cIndex = lpPktSk->m_cIndex; Item::ItemPos ItemPos = lpPktSk->m_ItemPos; // ¸Á°¢ÀÇ µ¹ À§Ä¡ if(0x1000 <= usSkill && usSkill < 0x2000) { if (false == lpCharacter->AbilityErase(cIndex, ItemPos)) { GameClientSendPacket::SendCharSkillCommand(GameClientDispatch.GetSendStream(), dwCharID, CmdCharSkillErase, cIndex, usSkill, PktSk::SERVER_ERROR); ERRLOG3(g_Log, "CID:0x%08x ½ºÅ³ Áö¿ì±â ÆÐŶ 󸮿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù. Skill: %d, Index: %d", dwCharID, usSkill, cIndex); } } else { // edith 2008.02.14 ½ºÅ³ »èÁ¦ºÎºÐ (À¯·á¾ÆÀÌÅÛÀÌ ÀÖ¾î¾ß Áö¿ï¼ö ÀÖ°Ô ÇÏÀÚ??) if (false == lpCharacter->SkillErase(cIndex, ItemPos)) { GameClientSendPacket::SendCharSkillCommand(GameClientDispatch.GetSendStream(), dwCharID, CmdCharSkillErase, cIndex, usSkill, PktSk::SERVER_ERROR); ERRLOG3(g_Log, "CID:0x%08x ½ºÅ³ Áö¿ì±â ÆÐŶ 󸮿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù. Skill: %d, Index: %d", dwCharID, usSkill, cIndex); } } return true; }