Compare commits

..

3 Commits

9 changed files with 140 additions and 94 deletions

View File

@@ -0,0 +1,6 @@
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\Software\WOW6432Node\ROW\MP-Client]
"Folder"="F:\\YouxiLand\\ROW"
"TestFolder"="F:\\YouxiLand\\ROW"
"BGFolder"="F:\\YouxiLand\\ROW"

View File

@@ -616,6 +616,11 @@ static void Event_MonsterDrop(int nAmount, int nItemID)
lpEventNode->m_fPosZ = 0.0f; lpEventNode->m_fPosZ = 0.0f;
lpEventNode->m_strWord = NULL; lpEventNode->m_strWord = NULL;
// Add debug log for item drop event (English)
char logMsg[128];
sprintf(logMsg, "[ITEM] Item dropped: ItemID=%d, Amount=%d\n", nItemID, nAmount);
OutputDebugStringA(logMsg);
if (bFalseEvent) if (bFalseEvent)
g_QuestList.m_lpTriggerNode->m_lstFalseEvent.push_back(lpEventNode); g_QuestList.m_lpTriggerNode->m_lstFalseEvent.push_back(lpEventNode);
else else
@@ -926,7 +931,7 @@ BOOL CQuestList::Load(const char *strQuestScriptFile)
_SE_RegisterFunction(Script, QuestAward, T_VOID, "QuestAward", T_STRING, 0); _SE_RegisterFunction(Script, QuestAward, T_VOID, "QuestAward", T_STRING, 0);
_SE_RegisterFunction(Script, QuestSkillPointBonus, T_VOID, "QuestSkillPointBonus", T_INT, 0); _SE_RegisterFunction(Script, QuestSkillPointBonus, T_VOID, "QuestSkillPointBonus", T_INT, 0);
_SE_RegisterFunction(Script, QuestCancelItemDel, T_VOID, "QuestCancelItemDel", T_BOOL, 0); _SE_RegisterFunction(Script, QuestCancelItemDel, T_VOID, "QuestCancelItemDel", T_BOOL, 0);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ <20>ý<EFBFBD><C3BD><EFBFBD> // <20><><EFBFBD><EFBFBD><EFBFBD>Ƽ <20>ý<EFBFBD><C3BD><EFBFBD>
_SE_RegisterFunction(Script, QuestAbilityPoint, T_VOID, "QuestAbilityPoint", T_INT, 0); _SE_RegisterFunction(Script, QuestAbilityPoint, T_VOID, "QuestAbilityPoint", T_INT, 0);
@@ -978,7 +983,7 @@ unsigned long QuestNode::CheckQuest(unsigned long dwLevel, unsigned long dwFame,
unsigned long count = 0; unsigned long count = 0;
unsigned long i = 0; unsigned long i = 0;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ
bool bEnableQuest = false ; bool bEnableQuest = false ;
if ( 0 == m_usNation ) if ( 0 == m_usNation )
{ {
@@ -1004,22 +1009,22 @@ unsigned long QuestNode::CheckQuest(unsigned long dwLevel, unsigned long dwFame,
if ( !bEnableQuest ) if ( !bEnableQuest )
{ {
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʴ´<CAB4>. // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʴ´<CAB4>.
return QuestNode::RES_MISMATCH_NATION ; return QuestNode::RES_MISMATCH_NATION ;
} }
if ( !(m_dwClass & (0x00000001 << (dwClass - 1))) ) if ( !(m_dwClass & (0x00000001 << (dwClass - 1))) )
{ {
// Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʴ´<CAB4>. // Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʴ´<CAB4>.
return QuestNode::RES_MISMATCH_CLASS ; return QuestNode::RES_MISMATCH_CLASS ;
} }
// <20>̹<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20>˻<EFBFBD><CBBB><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20>ߴ<EFBFBD><DFB4><EFBFBD> <20>˻<EFBFBD> // <20>̹<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20>˻<EFBFBD><CBBB> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20>ߴ<EFBFBD><DFB4><EFBFBD> <20>˻<EFBFBD>
for (unsigned long t = 0; t < wNumCompleted ; t++) for (unsigned long t = 0; t < wNumCompleted ; t++)
{ {
if (lstCompleted[t] == m_wQuestID) if (lstCompleted[t] == m_wQuestID)
{ {
// <20>̹<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD>̴<EFBFBD>. // <20>̹<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD>̴<EFBFBD>.
return QuestNode::RES_ALREADY_TAKEN ; return QuestNode::RES_ALREADY_TAKEN ;
} }
} }
@@ -1028,7 +1033,7 @@ unsigned long QuestNode::CheckQuest(unsigned long dwLevel, unsigned long dwFame,
{ {
if (lstQuestList[t] == m_wQuestID) if (lstQuestList[t] == m_wQuestID)
{ {
// <20><><EFBFBD><EFBFBD> <20>ϰ<EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD>̴<EFBFBD>. // <20><><EFBFBD><EFBFBD> <20>ϰ<EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD>̴<EFBFBD>.
return QuestNode::RES_ALREADY_TAKEN ; return QuestNode::RES_ALREADY_TAKEN ;
} }
} }
@@ -1046,7 +1051,7 @@ unsigned long QuestNode::CheckQuest(unsigned long dwLevel, unsigned long dwFame,
if ( !bCompletePriorQuest ) if ( !bCompletePriorQuest )
{ {
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20>ʾҴ<CABE>. // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20>ʾҴ<CABE>.
return QuestNode::RES_NOT_COMPLETE_PRIOR_QUEST ; return QuestNode::RES_NOT_COMPLETE_PRIOR_QUEST ;
} }
} }
@@ -1055,42 +1060,42 @@ unsigned long QuestNode::CheckQuest(unsigned long dwLevel, unsigned long dwFame,
{ {
if (m_wMinLevel <= dwLevel && dwLevel <= m_wMaxLevel) if (m_wMinLevel <= dwLevel && dwLevel <= m_wMaxLevel)
{ {
// <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><> <20><> <20>ִ<EFBFBD>. // <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><> <20><> <20>ִ<EFBFBD>.
return QuestNode::RES_SUCCESS ; return QuestNode::RES_SUCCESS ;
} }
if ( dwLevel > m_wMaxLevel ) if ( dwLevel > m_wMaxLevel )
{ {
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ְ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ְ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
return QuestNode::RES_HIGH_THAN_MAX_LEVEL ; return QuestNode::RES_HIGH_THAN_MAX_LEVEL ;
} }
if ( dwLevel + 10 <= m_wMinLevel ) if ( dwLevel + 10 <= m_wMinLevel )
{ {
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10 <20><><EFBFBD><EFBFBD> <20>̻<EFBFBD> <20><><EFBFBD><EFBFBD>. // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10 <20><><EFBFBD><EFBFBD> <20>̻<EFBFBD> <20><><EFBFBD><EFBFBD>.
return QuestNode::RES_10_LOW_THAN_MIN_LEVEL ; return QuestNode::RES_10_LOW_THAN_MIN_LEVEL ;
} }
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>. // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>.
return QuestNode::RES_LOW_LEVEL ; return QuestNode::RES_LOW_LEVEL ;
} }
if(m_dwMinFame != 0 && m_dwMaxFame != 0) if(m_dwMinFame != 0 && m_dwMaxFame != 0)
{ {
// <20><><EFBFBD><EFBFBD>üũ // <20><><EFBFBD><EFBFBD>üũ
if (m_dwMinFame <= dwFame && dwFame <= m_dwMaxFame) if (m_dwMinFame <= dwFame && dwFame <= m_dwMaxFame)
{ {
// <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><> <20><> <20>ִ<EFBFBD>. // <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><> <20><> <20>ִ<EFBFBD>.
return QuestNode::RES_SUCCESS ; return QuestNode::RES_SUCCESS ;
} }
if ( dwFame > m_dwMaxFame ) if ( dwFame > m_dwMaxFame )
{ {
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ְ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ְ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
return QuestNode::RES_HIGH_THAN_MAX_FAME ; return QuestNode::RES_HIGH_THAN_MAX_FAME ;
} }
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
return QuestNode::RES_LOW_FAME; return QuestNode::RES_LOW_FAME;
} }

View File

@@ -32,14 +32,14 @@
#include "RYLProfile.h" #include "RYLProfile.h"
/* /*
// Rodin : <20>׽<EFBFBD>Ʈ <20>ڵ<EFBFBD> #1 // Rodin : <20>׽<EFBFBD>Ʈ <20>ڵ<EFBFBD> #1
#include "../GUITextEdit.h" #include "../GUITextEdit.h"
#include "RYLChattingDlg.h" #include "RYLChattingDlg.h"
#include "GMMemory.h" #include "GMMemory.h"
*/ */
// <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD> <20>̺<EFBFBD>Ʈ <20>ڵ鷯 // <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD> <20>̺<EFBFBD>Ʈ <20>ڵ鷯
CGameEventHandler::CGameEventHandler() CGameEventHandler::CGameEventHandler()
{ {
@@ -57,7 +57,7 @@ int CGameEventHandler::OnOpen(int iErrorCode)
CRYLGameData* pGame = CRYLGameData::Instance() ; CRYLGameData* pGame = CRYLGameData::Instance() ;
CRYLNetworkData* pNetworkData = CRYLNetworkData::Instance(); CRYLNetworkData* pNetworkData = CRYLNetworkData::Instance();
// <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. // <20><><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
if (pGame->m_lpPickItem) { delete pGame->m_lpPickItem; pGame->m_lpPickItem = 0; } if (pGame->m_lpPickItem) { delete pGame->m_lpPickItem; pGame->m_lpPickItem = 0; }
pGame->DeleteAllFieldItem(); pGame->DeleteAllFieldItem();
@@ -89,10 +89,14 @@ int CGameEventHandler::OnClose()
int CGameEventHandler::OnDispatch(PktBase* lpPktBase, INET_Addr& peerAddr) int CGameEventHandler::OnDispatch(PktBase* lpPktBase, INET_Addr& peerAddr)
{ {
unsigned long dwCmd = lpPktBase->GetCmd(); unsigned long dwCmd = lpPktBase->GetCmd();
// Debug log for packet dispatch
char logMsg[128];
sprintf(logMsg, "[PACKET] Dispatch: Cmd=0x%02lx, Len=%d\n", dwCmd, lpPktBase->GetLen());
OutputDebugStringA(logMsg);
/* /*
// Rodin : <20>׽<EFBFBD>Ʈ <20>ڵ<EFBFBD> #1 // Rodin : <20>׽<EFBFBD>Ʈ <20>ڵ<EFBFBD> #1
// => <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>Ŷ<EFBFBD><C5B6> Ŀ<>ǵ带 <20><><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD>. // => <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>Ŷ<EFBFBD><C5B6> Ŀ<>ǵ带 <20><><EFBFBD><EFBFBD>ش<EFBFBD>.
if (0x2f != dwCmd && if (0x2f != dwCmd &&
0x3d != dwCmd && 0x3d != dwCmd &&
0x49 != dwCmd) 0x49 != dwCmd)
@@ -105,7 +109,7 @@ int CGameEventHandler::OnDispatch(PktBase* lpPktBase, INET_Addr& peerAddr)
if (dwCmd == CmdCompressedPacket) if (dwCmd == CmdCompressedPacket)
{ {
// <20><><EFBFBD><20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD>. // <20><><EFBFBD><20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD>.
char* szPacketPos = reinterpret_cast<char*>(lpPktBase + 1); char* szPacketPos = reinterpret_cast<char*>(lpPktBase + 1);
char* szPacketEnd = reinterpret_cast<char*>(lpPktBase) + lpPktBase->GetLen(); char* szPacketEnd = reinterpret_cast<char*>(lpPktBase) + lpPktBase->GetLen();
@@ -151,20 +155,20 @@ int CGameEventHandler::OnDispatch(PktBase* lpPktBase, INET_Addr& peerAddr)
{ {
if(0 == (find->m_dwIgnoreStatus & BIT(CRYLGameData::Instance()->m_dwClientMode))) if(0 == (find->m_dwIgnoreStatus & BIT(CRYLGameData::Instance()->m_dwClientMode)))
{ {
//by Hades Kang <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Cmd<6D><64> <20>ִٸ<D6B4> <20><><EFBFBD>⼭ ó<><C3B3> <20>ؾ<EFBFBD> <20>ҵ<EFBFBD>. //by Hades Kang <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Cmd<6D><64> <20>ִٸ<D6B4> <20><><EFBFBD>⼭ ó<><C3B3> <20>ؾ<EFBFBD> <20>ҵ<EFBFBD>.
ClientSocket::SetNSFlagOff( dwCmd ); ClientSocket::SetNSFlagOff( dwCmd );
find->m_fnEvent(this, lpPktBase); find->m_fnEvent(this, lpPktBase);
} }
} }
} }
// rc<72><63> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ŷ ó<><C3B3> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>θ<EFBFBD> <20>ľ<EFBFBD>. // rc<72><63> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ŷ ó<><C3B3> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>θ<EFBFBD> <20>ľ<EFBFBD>.
if(CRYLNetworkData::Instance()->m_dwNetworkError == 1) //1 = <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> if(CRYLNetworkData::Instance()->m_dwNetworkError == 1) //1 = <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
{ {
CRYLMessageBox *lpMessageBox = new CRYLMessageBox; CRYLMessageBox *lpMessageBox = new CRYLMessageBox;
lpMessageBox->Create(CRYLStringTable::m_strString[296]); lpMessageBox->Create(CRYLStringTable::m_strString[296]);
// edith 2009.01.29 Server Error Modal <20><><EFBFBD><EFBFBD> // edith 2009.01.29 Server Error Modal <20><><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> Server Error<6F><72> <20>߰ԵǸ<D4B5> <20><><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD> <20><><EFBFBD><20>װԵǹǷ<C7B9> <20><><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD> <20>ְ<EFBFBD> <20><><EFBFBD><EFBFBD>. // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> Server Error<6F><72> <20>߰ԵǸ<D4B5> <20><><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD> <20><><EFBFBD><20>װԵǹǷ<C7B9> <20><><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD> <20>ְ<EFBFBD> <20><><EFBFBD><EFBFBD>.
lpMessageBox->SetModal(FALSE); lpMessageBox->SetModal(FALSE);
} }

View File

@@ -95,8 +95,8 @@ GAME_EVENT_FUNC(ParseCharLogin)
&cRealmWarFlag, &cRealmWarFlag,
&cRealmPoint, &cRealmPoint,
&cTacticsFlag, &cTacticsFlag,
&dwPlayTime, // <20>߰<EFBFBD>. &dwPlayTime, // <20>߰<EFBFBD>.
&lPremiumTime, // <20><><EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD><CCBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD> &lPremiumTime, // <20><><EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD><CCBE><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD>
&iPremiumType, &iPremiumType,
&pGame->m_csStatus.m_Info, &pGame->m_csStatus.m_Info,
&pGame->m_csStatus.m_Skill, &pGame->m_csStatus.m_Skill,
@@ -118,7 +118,8 @@ GAME_EVENT_FUNC(ParseCharLogin)
if (0 == CRYLNetworkData::Instance()->m_dwNetworkError) if (0 == CRYLNetworkData::Instance()->m_dwNetworkError)
{ {
// Broadcast <20><><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD> <20>ʱ<EFBFBD>ȭ<EFBFBD>Ѵ<EFBFBD>. OutputDebugStringA("[GAME] Login successful\n");
// Broadcast <20><><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD> <20>ʱ<EFBFBD>ȭ<EFBFBD>Ѵ<EFBFBD>.
g_ClientCellMgr.Clear(); g_ClientCellMgr.Clear();
GRYLTimer.m_dwStartTime = timeGetTime() ; GRYLTimer.m_dwStartTime = timeGetTime() ;
@@ -130,11 +131,11 @@ GAME_EVENT_FUNC(ParseCharLogin)
CRYLCommunityData::Instance()->m_bCheckRelation = bCheckRelation ; CRYLCommunityData::Instance()->m_bCheckRelation = bCheckRelation ;
pGame->m_vecStartPosition.x = Pos.LastPoint.fPointX * 100.0f; pGame->m_vecStartPosition.x = Pos.LastPoint.fPointX * 100.0f;
// edith 2009.05.19 <20>α<EFBFBD><CEB1>ν<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>°<EFBFBD> <20><><EFBFBD><EFBFBD>. // edith 2009.05.19 <20>α<EFBFBD><CEB1>ν<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>°<EFBFBD> <20><><EFBFBD><EFBFBD>.
pGame->m_vecStartPosition.y = (Pos.LastPoint.fPointY+2.0f) * 100.0f; pGame->m_vecStartPosition.y = (Pos.LastPoint.fPointY+2.0f) * 100.0f;
pGame->m_vecStartPosition.z = Pos.LastPoint.fPointZ * 100.0f; pGame->m_vecStartPosition.z = Pos.LastPoint.fPointZ * 100.0f;
// edith 2009.05.19 <20><><EFBFBD>̰<EFBFBD> 1<><31><EFBFBD><EFBFBD> <20><><EFBFBD>ϸ<EFBFBD> 10<31><30><EFBFBD>ͷ<EFBFBD> <20>ٲ<EFBFBD>. // edith 2009.05.19 <20><><EFBFBD>̰<EFBFBD> 1<><31><EFBFBD><EFBFBD> <20><><EFBFBD>ϸ<EFBFBD> 10<31><30><EFBFBD>ͷ<EFBFBD> <20>ٲ<EFBFBD>.
if(pGame->m_vecStartPosition.y < 100.0f) if(pGame->m_vecStartPosition.y < 100.0f)
pGame->m_vecStartPosition.y = 1000.0f; pGame->m_vecStartPosition.y = 1000.0f;
@@ -144,7 +145,7 @@ GAME_EVENT_FUNC(ParseCharLogin)
pGame->m_cTempAdminFlag = cAdminFlag; pGame->m_cTempAdminFlag = cAdminFlag;
// <20>ӽ÷<D3BD> <20><><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>.. <20><><EFBFBD>߿<EFBFBD> SelfCreature <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD>. // <20>ӽ÷<D3BD> <20><><EFBFBD><EFBFBD>ص<EFBFBD>.. <20><><EFBFBD>߿<EFBFBD> SelfCreature <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD>.
pGame->m_cTempGuildWarFlag = cGuildWarFlag; pGame->m_cTempGuildWarFlag = cGuildWarFlag;
pGame->m_cTempRealmWarFlag = cRealmWarFlag; pGame->m_cTempRealmWarFlag = cRealmWarFlag;
pGame->m_cTempRealmPoint = cRealmPoint; pGame->m_cTempRealmPoint = cRealmPoint;
@@ -157,7 +158,7 @@ GAME_EVENT_FUNC(ParseCharLogin)
CRYLGameData::Instance()->m_cChangeNameCount = cNameChangeCount; CRYLGameData::Instance()->m_cChangeNameCount = cNameChangeCount;
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned short wBufferSize = 0; unsigned short wBufferSize = 0;
while(wBufferSize < wEquipSize) while(wBufferSize < wEquipSize)
{ {
@@ -175,7 +176,7 @@ GAME_EVENT_FUNC(ParseCharLogin)
} }
} }
// <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
wBufferSize = 0; wBufferSize = 0;
while(wBufferSize < wInvenSize) while(wBufferSize < wInvenSize)
{ {
@@ -190,7 +191,7 @@ GAME_EVENT_FUNC(ParseCharLogin)
pGame->m_csStatus.AddInventoryItem(lpItem, FALSE); pGame->m_csStatus.AddInventoryItem(lpItem, FALSE);
} }
// Extra <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // Extra <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
wBufferSize = 0; wBufferSize = 0;
while(wBufferSize < wExtraSize) while(wBufferSize < wExtraSize)
{ {
@@ -213,7 +214,7 @@ GAME_EVENT_FUNC(ParseCharLogin)
break; break;
} }
} }
// <20>ӽ<EFBFBD> <20>κ<EFBFBD><CEBA> // <20>ӽ<EFBFBD> <20>κ<EFBFBD><CEBA>
wBufferSize = 0; wBufferSize = 0;
while( wBufferSize < wTempInvenSize ) while( wBufferSize < wTempInvenSize )
{ {
@@ -242,7 +243,7 @@ GAME_EVENT_FUNC(ParseCharLogin)
} }
} }
// Exchange <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // Exchange <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
wBufferSize = 0; wBufferSize = 0;
while(wBufferSize < wExchangeSize) while(wBufferSize < wExchangeSize)
{ {
@@ -347,17 +348,17 @@ GAME_EVENT_FUNC(ParseCharLogin)
CRYLMessageBox *lpMessageBox; CRYLMessageBox *lpMessageBox;
switch(CRYLNetworkData::Instance()->m_dwNetworkError) switch(CRYLNetworkData::Instance()->m_dwNetworkError)
{ {
case 2: //2 = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> case 2: //2 = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
lpMessageBox = new CRYLMessageBox; lpMessageBox = new CRYLMessageBox;
lpMessageBox->Create(CRYLStringTable::m_strString[307]); lpMessageBox->Create(CRYLStringTable::m_strString[307]);
break; break;
case 4: //4 = <20>̹<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> case 4: //4 = <20>̹<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
lpMessageBox = new CRYLMessageBox; lpMessageBox = new CRYLMessageBox;
lpMessageBox->Create(CRYLStringTable::m_strString[308]); lpMessageBox->Create(CRYLStringTable::m_strString[308]);
break; break;
case 24: // <20><><EFBFBD><EFBFBD>Ʈ ī<><C4AB> <20><><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <20>ƴ<EFBFBD> case 24: // <20><><EFBFBD><EFBFBD>Ʈ ī<><C4AB> <20><><EFBFBD><EFBFBD>ڰ<EFBFBD> <20>ƴ<EFBFBD>
lpMessageBox = new CRYLMessageBox; lpMessageBox = new CRYLMessageBox;
lpMessageBox->Create(CRYLStringTable::m_strString[445]); lpMessageBox->Create(CRYLStringTable::m_strString[445]);
break; break;
@@ -433,8 +434,8 @@ GAME_EVENT_FUNC(ParseCharMoveZone)
} }
else else
{ {
// edith 2008.07.08 1<><31> ä<>θ<EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD> 8, 16<31><36><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20>־ <20><> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. // edith 2008.07.08 1<><31> ä<>θ<EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD> 8, 16<31><36><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ϰ<EFBFBD> <20>־ <20><> <20><><EFBFBD><EFBFBD><EFBFBD>.
// edith 2009.07.21 <20><><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 17, 18<31><38> <20><> <20>߰<EFBFBD> // edith 2009.07.21 <20><><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 17, 18<31><38> <20><> <20>߰<EFBFBD>
if (CRYLNetworkData::Instance()->m_dwNextZone == 8 || CRYLNetworkData::Instance()->m_dwNextZone == 16 || if (CRYLNetworkData::Instance()->m_dwNextZone == 8 || CRYLNetworkData::Instance()->m_dwNextZone == 16 ||
CRYLNetworkData::Instance()->m_dwNextZone == 17 || CRYLNetworkData::Instance()->m_dwNextZone == 18) CRYLNetworkData::Instance()->m_dwNextZone == 17 || CRYLNetworkData::Instance()->m_dwNextZone == 18)
{ {
@@ -468,29 +469,29 @@ GAME_EVENT_FUNC(ParseCharMoveZone)
CRYLMessageBox *lpMessageBox; CRYLMessageBox *lpMessageBox;
switch(CRYLNetworkData::Instance()->m_dwNetworkError) switch(CRYLNetworkData::Instance()->m_dwNetworkError)
{ {
case 1: //1 = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ͼӵ<CDBC> <20><><EFBFBD><EFBFBD> case 1: //1 = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ͼӵ<CDBC> <20><><EFBFBD><EFBFBD>
lpMessageBox = new CRYLMessageBox; lpMessageBox = new CRYLMessageBox;
lpMessageBox->Create(CRYLStringTable::m_strString[388]); lpMessageBox->Create(CRYLStringTable::m_strString[388]);
break; break;
case 3: //3 = <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. case 3: //3 = <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
lpMessageBox = new CRYLMessageBox; lpMessageBox = new CRYLMessageBox;
lpMessageBox->Create(CRYLStringTable::m_strString[482]); lpMessageBox->Create(CRYLStringTable::m_strString[482]);
break; break;
case 5: //5 = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> case 5: //5 = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
lpMessageBox = new CRYLMessageBox; lpMessageBox = new CRYLMessageBox;
lpMessageBox->Create(CRYLStringTable::m_strString[388]); lpMessageBox->Create(CRYLStringTable::m_strString[388]);
break; break;
// ichabod code // ichabod code
// 6 error : <20><>Ʋ<EFBFBD>׶<EFBFBD><D7B6><EFBFBD><EFBFBD><EFBFBD> <20>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD><EFBFBD>. // 6 error : <20><>Ʋ<EFBFBD>׶<EFBFBD><D7B6><EFBFBD> <20>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD><EFBFBD>.
case 6: case 6:
lpMessageBox = new CRYLMessageBox; lpMessageBox = new CRYLMessageBox;
lpMessageBox->Create( CRYLStringTable::m_strString[1581]); lpMessageBox->Create( CRYLStringTable::m_strString[1581]);
break; break;
// hackermz code // hackermz code
// 7 error : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD><EFBFBD>. // 7 error : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD><EFBFBD>.
case 7: case 7:
lpMessageBox = new CRYLMessageBox; lpMessageBox = new CRYLMessageBox;
lpMessageBox->Create( CRYLStringTable::m_strString[4120]); lpMessageBox->Create( CRYLStringTable::m_strString[4120]);
@@ -520,18 +521,18 @@ GAME_EVENT_FUNC(ParseServerZone)
pGame->FadeIn(); pGame->FadeIn();
pGame->m_bSelectChar = TRUE; pGame->m_bSelectChar = TRUE;
// LagreMap <20>ݱ<EFBFBD> // LagreMap <20>ݱ<EFBFBD>
CRYLGameScene* pGameScene = static_cast<CRYLGameScene*>( CRYLSceneManager::Instance()->FindScene( GAME_SCENE ) ) ; CRYLGameScene* pGameScene = static_cast<CRYLGameScene*>( CRYLSceneManager::Instance()->FindScene( GAME_SCENE ) ) ;
pGameScene->GetLargeMapDlg()->SetVisible( FALSE ) ; pGameScene->GetLargeMapDlg()->SetVisible( FALSE ) ;
// ä<><C3A4> <20>ݱ<EFBFBD> // ä<><C3A4> <20>ݱ<EFBFBD>
CRYLCharacterSelectScene* pCharacterSelectScene = CRYLCharacterSelectScene* pCharacterSelectScene =
static_cast<CRYLCharacterSelectScene*>( CRYLSceneManager::Instance()->FindScene( CHARACTERSELECT_SCENE ) ) ; static_cast<CRYLCharacterSelectScene*>( CRYLSceneManager::Instance()->FindScene( CHARACTERSELECT_SCENE ) ) ;
pCharacterSelectScene->GetChannelDlg()->SetVisible( FALSE ) ; pCharacterSelectScene->GetChannelDlg()->SetVisible( FALSE ) ;
g_pClientSocket->SetStatusFlag(NS_SERVERMOVE); g_pClientSocket->SetStatusFlag(NS_SERVERMOVE);
// Disconnect() <20>ϰ<EFBFBD> <20>Ϸ<EFBFBD><EFBFBD>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD> // Disconnect() <20>ϰ<EFBFBD> <20>Ϸ<EFBFBD>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD>
g_pClientSocket->Disconnect(ClientSocket::GameEventHandler); g_pClientSocket->Disconnect(ClientSocket::GameEventHandler);
ClientNet::CClientEventHandler* lpGameHandler = CGameEventHandler::Create(); ClientNet::CClientEventHandler* lpGameHandler = CGameEventHandler::Create();
@@ -552,17 +553,17 @@ GAME_EVENT_FUNC(ParseServerZone)
CRYLMessageBox *lpMessageBox; CRYLMessageBox *lpMessageBox;
switch(CRYLNetworkData::Instance()->m_dwNetworkError) switch(CRYLNetworkData::Instance()->m_dwNetworkError)
{ {
case 2: // 2 = ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>߸<EFBFBD> <20>Ǿ<EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>. case 2: // 2 = ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>߸<EFBFBD> <20>Ǿ<EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
lpMessageBox = new CRYLMessageBox; lpMessageBox = new CRYLMessageBox;
lpMessageBox->Create(CRYLStringTable::m_strString[389]); lpMessageBox->Create(CRYLStringTable::m_strString[389]);
break; break;
case 4: // 4 = <20>ο<EFBFBD><CEBF><EFBFBD> <20>ʰ<EFBFBD> case 4: // 4 = <20>ο<EFBFBD><CEBF><EFBFBD> <20>ʰ<EFBFBD>
lpMessageBox = new CRYLMessageBox; lpMessageBox = new CRYLMessageBox;
lpMessageBox->Create(CRYLStringTable::m_strString[390]); lpMessageBox->Create(CRYLStringTable::m_strString[390]);
break; break;
case 5: // 5 = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> case 5: // 5 = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
lpMessageBox = new CRYLMessageBox; lpMessageBox = new CRYLMessageBox;
lpMessageBox->Create(CRYLStringTable::m_strString[388]); lpMessageBox->Create(CRYLStringTable::m_strString[388]);
break; break;
@@ -591,7 +592,7 @@ GAME_EVENT_FUNC(ParseCSAuth)
{ {
// DWORD result1 = lpNPGameLib->Auth( dwAuthCode ) ; // AUTH 1.0 // DWORD result1 = lpNPGameLib->Auth( dwAuthCode ) ; // AUTH 1.0
// DWORD result2 = lpNPGameLib->Auth2( &authCode2 ) ; // AUTH 2.0 // DWORD result2 = lpNPGameLib->Auth2( &authCode2 ) ; // AUTH 2.0
// edith 2009.08.11 <20><><EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD> 2.5 <20><><EFBFBD>׷<EFBFBD><D7B7>̵<EFBFBD> // edith 2009.08.11 <20><><EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD> 2.5 <20><><EFBFBD>׷<EFBFBD><D7B7>̵<EFBFBD>
DWORD result1 = 0; DWORD result1 = 0;
DWORD result2 = lpNPGameLib->Auth2( &authCode2 ) ; // AUTH 2.0 DWORD result2 = lpNPGameLib->Auth2( &authCode2 ) ; // AUTH 2.0
/* /*

View File

@@ -59,6 +59,16 @@ CItemInstance::CItemInstance()
m_cCountCooldown = 0; m_cCountCooldown = 0;
m_wGrade = 0; m_wGrade = 0;
// Output detailed info if possible
if (m_lpItemBase) {
const Item::ItemInfo& info = m_lpItemBase->GetItemInfo();
char logMsg[256];
sprintf(logMsg, "[ITEM] CItemInstance created: UID=%lld, Type=%d, Name=%s, TypeName=%s\n", m_lpItemBase->GetUID(), info.m_DetailData.m_cItemType, info.m_StringData.m_szTypeName, info.m_StringData.m_szItemDescribe);
OutputDebugStringA(logMsg);
} else {
OutputDebugStringA("[ITEM] CItemInstance created\n");
}
m_wPutX = 0; m_wPutX = 0;
m_wPutY = 0; m_wPutY = 0;
@@ -96,6 +106,16 @@ CItemInstance::~CItemInstance()
{ {
GM_DELETE( ( *it ) ) ; GM_DELETE( ( *it ) ) ;
} }
// Output detailed info if possible
if (m_lpItemBase) {
const Item::ItemInfo& info = m_lpItemBase->GetItemInfo();
char logMsg[256];
sprintf(logMsg, "[ITEM] CItemInstance destroyed: UID=%lld, Type=%d, Name=%s, TypeName=%s\n", m_lpItemBase->GetUID(), info.m_DetailData.m_cItemType, info.m_StringData.m_szTypeName, info.m_StringData.m_szItemDescribe);
OutputDebugStringA(logMsg);
} else {
OutputDebugStringA("[ITEM] CItemInstance destroyed\n");
}
} }
Skill::ProtoType* CItemInstance::Render(LPDIRECT3DDEVICE8 lpD3DDevice, bool bAlterSkill ) Skill::ProtoType* CItemInstance::Render(LPDIRECT3DDEVICE8 lpD3DDevice, bool bAlterSkill )
@@ -111,13 +131,13 @@ Skill::ProtoType* CItemInstance::Render(LPDIRECT3DDEVICE8 lpD3DDevice, bool bAlt
{ {
if (m_bSkill) if (m_bSkill)
{ {
// edith 2008.01.21 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Desable <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>۾<EFBFBD> <20>߰<EFBFBD><DFB0>۾<EFBFBD><DBBE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. // edith 2008.01.21 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Desable <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>۾<EFBFBD> <20>߰<EFBFBD><DFB0>۾<EFBFBD><DBBE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
m_lpSprite->m_lpTexture = g_ItemStorage.GetSkillTexture(GetItemInfo().m_SpriteData.m_szSpriteName, true); m_lpSprite->m_lpTexture = g_ItemStorage.GetSkillTexture(GetItemInfo().m_SpriteData.m_szSpriteName, true);
if (!m_lpDSprite->m_lpTexture) if (!m_lpDSprite->m_lpTexture)
{ {
// edith 2008.01.21 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Desable <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>۾<EFBFBD> <20>߰<EFBFBD><DFB0>۾<EFBFBD><DBBE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>. // edith 2008.01.21 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Desable <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>۾<EFBFBD> <20>߰<EFBFBD><DFB0>۾<EFBFBD><DBBE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
// desable <20>ؽ<EFBFBD><D8BD><EFBFBD> // desable <20>ؽ<EFBFBD><D8BD><EFBFBD>
m_lpDSprite->m_lpTexture = g_ItemStorage.GetSkillTexture(GetItemInfo().m_SpriteData.m_szSpriteName, false); m_lpDSprite->m_lpTexture = g_ItemStorage.GetSkillTexture(GetItemInfo().m_SpriteData.m_szSpriteName, false);
} }
} }
@@ -130,7 +150,7 @@ Skill::ProtoType* CItemInstance::Render(LPDIRECT3DDEVICE8 lpD3DDevice, bool bAlt
CRYLSprite* lpSprite = m_lpSprite; CRYLSprite* lpSprite = m_lpSprite;
if(m_bSkill && !m_bSkillEnable) if(m_bSkill && !m_bSkillEnable)
{ {
// <20><>ų<EFBFBD>̰<EFBFBD> <20><>ų<EFBFBD><C5B3> Deable <20>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD> // <20><>ų<EFBFBD>̰<EFBFBD> <20><>ų<EFBFBD><C5B3> Deable <20>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD>
lpSprite = m_lpDSprite; lpSprite = m_lpDSprite;
} }
@@ -434,11 +454,17 @@ int CItemInstance::SetItemInfo(const char* lpSerializedItem_In, size_t& nParseLe
GetItemInfo().m_SpriteData.m_nSpriteMaxX, GetItemInfo().m_SpriteData.m_nSpriteMaxX,
GetItemInfo().m_SpriteData.m_nSpriteMaxY, NULL ) ; GetItemInfo().m_SpriteData.m_nSpriteMaxY, NULL ) ;
std::vector<CRYLSpriteEx*> m_vecSpriteEx ; std::vector<CRYLSpriteEx*> m_vecSpriteEx ;
m_lpTooltip = new CGUITooltipItem; m_lpTooltip = new CGUITooltipItem;
((CGUITooltipItem *)m_lpTooltip)->SetItem(this); ((CGUITooltipItem *)m_lpTooltip)->SetItem(this);
// Output detailed info
const Item::ItemInfo& info = m_lpItemBase->GetItemInfo();
char logMsg[256];
sprintf(logMsg, "[ITEM] SetItemInfo: UID=%lld, Type=%d, Name=%s, TypeName=%s\n", m_dwItemUID, GetItemType(), info.m_StringData.m_szTypeName, info.m_StringData.m_szItemDescribe);
OutputDebugStringA(logMsg);
if (GetItemType() == Item::ItemType::POTION) if (GetItemType() == Item::ItemType::POTION)
{ {
m_lCoolDownTime = 14000; m_lCoolDownTime = 14000;
@@ -625,7 +651,7 @@ BOOL CItemInstance::SetSkillInfo(unsigned short wSkillID, unsigned char cGrade,
((Item::CSkillItem *)m_lpItemBase)->SetMaxNumOrDurability(cGrade); ((Item::CSkillItem *)m_lpItemBase)->SetMaxNumOrDurability(cGrade);
SetNowDurability(cLevel); SetNowDurability(cLevel);
// <20>̵<EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD> // <20>̵<EFBFBD> <20>߰<EFBFBD>
m_wGrade = cGrade; m_wGrade = cGrade;
m_lCoolDownTime = lpSkillProtoType->m_dwCoolDownTime; m_lCoolDownTime = lpSkillProtoType->m_dwCoolDownTime;
@@ -726,7 +752,7 @@ bool CItemInstance::GetIsEnableUpgrade(void)
cItemType == Item::ItemType::SKILL_A_GUARD || cItemType == Item::ItemType::SKILL_A_ATTACK || cItemType == Item::ItemType::SKILL_A_GUARD || cItemType == Item::ItemType::SKILL_A_ATTACK ||
cItemType == Item::ItemType::SKILL_A_GUN || cItemType == Item::ItemType::SKILL_A_KNIFE || cItemType == Item::ItemType::SKILL_A_GUN || cItemType == Item::ItemType::SKILL_A_KNIFE ||
// edith 2008.01.14 edith <20><><EFBFBD>׷<EFBFBD><D7B7>̵<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD> // edith 2008.01.14 edith <20><><EFBFBD>׷<EFBFBD><D7B7>̵<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD>
cItemType == Item::ItemType::CON_HELM || cItemType == Item::ItemType::DEX_HELM || cItemType == Item::ItemType::CON_HELM || cItemType == Item::ItemType::DEX_HELM ||
cItemType == Item::ItemType::CON_HEAD || cItemType == Item::ItemType::DEX_HEAD || cItemType == Item::ItemType::CON_HEAD || cItemType == Item::ItemType::DEX_HEAD ||
@@ -743,7 +769,7 @@ bool CItemInstance::GetIsEnableUpgrade(void)
bool CItemInstance::GetIsEnableAddOption(void) bool CItemInstance::GetIsEnableAddOption(void)
{ {
// edith 2008.01.14 <20><><EFBFBD><EFBFBD> <20><><EFBFBD>׷<EFBFBD><D7B7>̵<EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD>ؼ<EFBFBD> <20>ּ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD>. // edith 2008.01.14 <20><><EFBFBD><EFBFBD> <20><><EFBFBD>׷<EFBFBD><D7B7>̵<EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD>ؼ<EFBFBD> <20>ּ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD>.
if (true == GetIsEnableUpgrade() if (true == GetIsEnableUpgrade()
// || // ||
// GetItemType() == Item::ItemType::CON_HELM || // GetItemType() == Item::ItemType::CON_HELM ||
@@ -936,7 +962,7 @@ unsigned short CItemInstance::GetSkillID( bool bAlterSkill )
{ {
const Skill::ProtoType* lpSkillBase = g_SkillMgr.GetSkillProtoType(m_lpItemBase->GetPrototypeID()); const Skill::ProtoType* lpSkillBase = g_SkillMgr.GetSkillProtoType(m_lpItemBase->GetPrototypeID());
// <20><><EFBFBD>ͳ<EFBFBD>Ƽ<EFBFBD><C6BC> <20><>ų // <20><><EFBFBD>ͳ<EFBFBD>Ƽ<EFBFBD><C6BC> <20><>ų
if ( 0 != lpSkillBase->m_usChildSkill ) if ( 0 != lpSkillBase->m_usChildSkill )
{ {
m_wPreProtoTypeID = lpSkillBase->m_usChildSkill; m_wPreProtoTypeID = lpSkillBase->m_usChildSkill;

View File

@@ -8,7 +8,7 @@
<LocalDebuggerCommand>F:\YouxiLand\ROW\Client.exe</LocalDebuggerCommand> <LocalDebuggerCommand>F:\YouxiLand\ROW\Client.exe</LocalDebuggerCommand>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor> <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerCommandArguments>192.168.219.226</LocalDebuggerCommandArguments> <LocalDebuggerCommandArguments>192.168.219.226</LocalDebuggerCommandArguments>
<ShowAllFiles>true</ShowAllFiles> <ShowAllFiles>false</ShowAllFiles>
<LocalDebuggerWorkingDirectory>F:\YouxiLand\ROW</LocalDebuggerWorkingDirectory> <LocalDebuggerWorkingDirectory>F:\YouxiLand\ROW</LocalDebuggerWorkingDirectory>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@@ -64,11 +64,11 @@ void CSkillSystem::Update()
{ {
bActive = CSceneManager::m_EffectManager.ProcessScript(scnt); bActive = CSceneManager::m_EffectManager.ProcessScript(scnt);
if (bActive == 2)// S - M - E <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Script <20>϶<EFBFBD> target<65><74> <20><><EFBFBD><EFBFBD> <20><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> if (bActive == 2)// S - M - E <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Script <20>϶<EFBFBD> target<65><74> <20><><EFBFBD><EFBFBD> <20><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>
{ {
/* char *esf_name = NULL; /* char *esf_name = NULL;
esf_name = CSceneManager::m_EffectManager.GetEsfName(scnt); esf_name = CSceneManager::m_EffectManager.GetEsfName(scnt);
if (esf_name != NULL) { //ȭ<><C8AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȿ<><C8BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> if (esf_name != NULL) { //ȭ<><C8AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȿ<><C8BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
if (strstr(esf_name,"arrow_normal")!= NULL) { if (strstr(esf_name,"arrow_normal")!= NULL) {
for (int cChr = 0; cChr < g_CharacterData.m_lstCharData.num; cChr++) { for (int cChr = 0; cChr < g_CharacterData.m_lstCharData.num; cChr++) {
if (!g_CharacterData.m_lstCharData[cChr]->m_lpChrModel) continue; if (!g_CharacterData.m_lstCharData[cChr]->m_lpChrModel) continue;
@@ -88,12 +88,12 @@ void CSkillSystem::Update()
if (CSceneManager::m_EffectManager.CheckScript(scnt, (*it)->m_lpEffectIndex)) if (CSceneManager::m_EffectManager.CheckScript(scnt, (*it)->m_lpEffectIndex))
{ {
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> effect setting(<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ѵ<EFBFBD> effect script <20>ȿ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>) // <20><><EFBFBD> <20><><EFBFBD>̾<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> effect setting(<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ѵ<EFBFBD> effect script <20>ȿ<EFBFBD> <20><><EFBFBD><EEB0A1> <20><> <20><><EFBFBD><EFBFBD>)
char *esf_name = NULL; char *esf_name = NULL;
esf_name = CSceneManager::m_EffectManager.GetEsfName(scnt); esf_name = CSceneManager::m_EffectManager.GetEsfName(scnt);
if (esf_name != NULL) if (esf_name != NULL)
{ {
// ȭ<><C8AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȿ<><C8BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> // ȭ<><C8AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȿ<><C8BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
int arrow_value = -1; int arrow_value = -1;
if (strstr(esf_name,"A_Dfire1.esf") != NULL) { arrow_value = 1; } if (strstr(esf_name,"A_Dfire1.esf") != NULL) { arrow_value = 1; }
@@ -169,8 +169,8 @@ void CSkillSystem::Update()
} }
} }
BOOL bGod = TRUE; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> BOOL bGod = TRUE; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
BOOL bCanDead = FALSE; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> BOOL bCanDead = FALSE; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD>
if (lpSkillNode->m_wSkill & 0x8000) if (lpSkillNode->m_wSkill & 0x8000)
{ {
if (lpSkillProtoType) if (lpSkillProtoType)
@@ -192,19 +192,19 @@ void CSkillSystem::Update()
if (lpSkillNode->m_wSkill == 0x9502 || lpSkillNode->m_wSkill == 0x9506) if (lpSkillNode->m_wSkill == 0x9502 || lpSkillNode->m_wSkill == 0x9506)
{ {
// <20><><EFBFBD>̾/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> źȯ <20>Һ<EFBFBD> // <20><><EFBFBD>̾/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><>ų <20><><EFBFBD><EFBFBD> źȯ <20>Һ<EFBFBD>
unsigned short wAmmo = 4003; unsigned short wAmmo = 4003;
CItemInstance *lpItem = pGame->m_csStatus.GetInventoryItemfromID(wAmmo); CItemInstance *lpItem = pGame->m_csStatus.GetInventoryItemfromID(wAmmo);
if (lpItem && !ClientSocket::IsNSFlagChainChecked(CmdCharUseItem) ) if (lpItem && !ClientSocket::IsNSFlagChainChecked(CmdCharUseItem) )
{ {
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>߻<EFBFBD> <20><><EFBFBD><EFBFBD> // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴ<EFBFBD> <20><><EFBFBD> <20>߻<EFBFBD> <20><><EFBFBD><EFBFBD>
SendPacket::CharUseItem(g_GameSession, SendPacket::CharUseItem(g_GameSession,
CRYLNetworkData::Instance()->m_dwMyChrID, CRYLNetworkData::Instance()->m_dwMyChrID,
CRYLNetworkData::Instance()->m_dwMyChrID, CRYLNetworkData::Instance()->m_dwMyChrID,
&lpItem->m_lpItemBase->GetPos()); &lpItem->m_lpItemBase->GetPos());
// <20><><EFBFBD>̾ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ų <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> <20>κ<EFBFBD>. // <20><><EFBFBD>̾ <20><><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD>Ǵ<EFBFBD> <20>κ<EFBFBD>.
g_CharacterData.MakeSkillAttackInfo(lpSkillNode->m_dwTargetChrID, g_CharacterData.MakeSkillAttackInfo(lpSkillNode->m_dwTargetChrID,
lpSkillNode->m_wSkill, lpSkillNode->m_wSkillGrade, lpSkillNode->m_wSkill, lpSkillNode->m_wSkillGrade,
lpSkillNode->m_cLevel, lpSkillNode->m_wNumAttack, bGod, bCanDead); lpSkillNode->m_cLevel, lpSkillNode->m_wNumAttack, bGod, bCanDead);
@@ -214,7 +214,7 @@ void CSkillSystem::Update()
{ {
if (NULL != lpSkillNode->m_lpUseItem) if (NULL != lpSkillNode->m_lpUseItem)
{ {
// <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> <20><>ų<EFBFBD><C5B3> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> // <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ؼ<EFBFBD> <20><>ų<EFBFBD><C5B3> <20><><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD>
g_pClientSocket->SetStatusFlag( NS_USEITEM ) ; g_pClientSocket->SetStatusFlag( NS_USEITEM ) ;
SendPacket::CharUseItem( g_GameSession, SendPacket::CharUseItem( g_GameSession,
CRYLNetworkData::Instance()->m_dwMyChrID, lpSkillNode->m_dwTargetChrID, CRYLNetworkData::Instance()->m_dwMyChrID, lpSkillNode->m_dwTargetChrID,
@@ -223,7 +223,7 @@ void CSkillSystem::Update()
else else
{ {
// edith // edith
// <20>Ϲ<EFBFBD><CFB9><EFBFBD><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // <20>Ϲ<EFBFBD><CFB9><EFBFBD><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD>
g_CharacterData.MakeSkillAttackInfo(lpSkillNode->m_dwTargetChrID, g_CharacterData.MakeSkillAttackInfo(lpSkillNode->m_dwTargetChrID,
lpSkillNode->m_wSkill, lpSkillNode->m_wSkillGrade, lpSkillNode->m_wSkill, lpSkillNode->m_wSkillGrade,
lpSkillNode->m_cLevel, lpSkillNode->m_wNumAttack, bGod, bCanDead); lpSkillNode->m_cLevel, lpSkillNode->m_wNumAttack, bGod, bCanDead);
@@ -234,7 +234,7 @@ void CSkillSystem::Update()
} }
} }
} }
// Ȱ<>κп<CEBA> <20><><EFBFBD><EFBFBD>. <20><>ų <20>ʱ<EFBFBD>ȭ. // Ȱ<>κп<CEBA> <20><><EFBFBD><EFBFBD>. <20><>ų <20>ʱ<EFBFBD>ȭ.
pGame->m_bSkillFlag = FALSE; pGame->m_bSkillFlag = FALSE;
CRYLGameScene* pScene = (CRYLGameScene*)CRYLSceneManager::Instance()->FindScene(GAME_SCENE); CRYLGameScene* pScene = (CRYLGameScene*)CRYLSceneManager::Instance()->FindScene(GAME_SCENE);
@@ -250,7 +250,7 @@ void CSkillSystem::Update()
lpSkillNode->m_wSkill != 0x8805 && lpSkillNode->m_wSkill != 0x8805 &&
Skill::Type::CHANT != lpSkillProtoType->m_eSkillType) Skill::Type::CHANT != lpSkillProtoType->m_eSkillType)
{ {
// ForceFeedback : <20><><EFBFBD>̾/<2F><><EFBFBD>ڽ<EFBFBD><><C4B3><EFBFBD>ö<EFBFBD><C3B6><EFBFBD>/æƮ <20><><EFBFBD><EFBFBD> <20>Ϲ<EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD> // ForceFeedback : <20><><EFBFBD>̾/<2F><><EFBFBD>ڽ<EFBFBD><><C4B3><EFBFBD>ö<EFBFBD><C3B6><EFBFBD>/æƮ <20><><EFBFBD><EFBFBD> <20>Ϲ<EFBFBD> <20><>ų <20><><EFBFBD>
KeyControl::StartForceFeedback(2000, 2000, 1000); KeyControl::StartForceFeedback(2000, 2000, 1000);
} }
} }
@@ -320,16 +320,17 @@ void CSkillSystem::Update()
if ( !pSelfModel ) if ( !pSelfModel )
return; return;
int nResult = CSceneManager::GetCharacterEvent( pSelfModel, EVENT_SHOT ); int nResult = CSceneManager::GetCharacterEvent( pSelfModel, EVENT_SHOT );
if ( nResult ) if ( nResult )
{ {
OutputDebugStringA("[GAME] Monster attack event triggered\n");
if ( pGame->m_lpInterface->m_dwRangedWeaponTargetChrID != 0xFFFFFFFF ) if ( pGame->m_lpInterface->m_dwRangedWeaponTargetChrID != 0xFFFFFFFF )
{ {
BOOL bAttackable = FALSE; BOOL bAttackable = FALSE;
if ( pGame->m_csStatus.m_lstEquipment[ Item::EquipmentPos::WEAPON_HAND1 + pGame->m_csStatus.m_cWeaponPos ] ) if ( pGame->m_csStatus.m_lstEquipment[ Item::EquipmentPos::WEAPON_HAND1 + pGame->m_csStatus.m_cWeaponPos ] )
{ {
unsigned long dwType = pGame->m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND1 + pGame->m_csStatus.m_cWeaponPos]->GetItemType(); unsigned long dwType = pGame->m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND1 + pGame->m_csStatus.m_cWeaponPos]->GetItemType();
if ( pGame->m_csStatus.m_lstEquipment[ Item::EquipmentPos::SHIELD_HAND1 + pGame->m_csStatus.m_cWeaponPos ] ) if ( pGame->m_csStatus.m_lstEquipment[ Item::EquipmentPos::SHIELD_HAND1 + pGame->m_csStatus.m_cWeaponPos ] )
@@ -339,23 +340,23 @@ void CSkillSystem::Update()
switch(dwType) switch(dwType)
{ {
case Item::ItemType::BOW: case Item::ItemType::BOW:
{ {
if ( dwArrowType == Item::ItemType::ARROW ) if ( dwArrowType == Item::ItemType::ARROW )
{ {
lpSkillNode = new CSkillNode; lpSkillNode = new CSkillNode;
lpSkillNode->Create( pGame->m_lpInterface->m_dwRangedWeaponTargetChrID, AtType::BOW, 0, 0, NULL ); lpSkillNode->Create( pGame->m_lpInterface->m_dwRangedWeaponTargetChrID, AtType::BOW, 0, 0, NULL );
} }
} }
break; break;
case Item::ItemType::CROSSBOW: case Item::ItemType::CROSSBOW:
{ {
if (dwArrowType == Item::ItemType::BOLT) if (dwArrowType == Item::ItemType::BOLT)
{ {
lpSkillNode = new CSkillNode; lpSkillNode = new CSkillNode;
lpSkillNode->Create( pGame->m_lpInterface->m_dwRangedWeaponTargetChrID, AtType::CROSSBOW, 0, 0, NULL ); lpSkillNode->Create( pGame->m_lpInterface->m_dwRangedWeaponTargetChrID, AtType::CROSSBOW, 0, 0, NULL );
} }
} }
break; break;
} }
} }
@@ -363,8 +364,11 @@ void CSkillSystem::Update()
} }
} }
nResult = CSceneManager::GetCharacterEvent( pSelfModel, EVENT_JUST); nResult = CSceneManager::GetCharacterEvent( pSelfModel, EVENT_JUST);
if ( nResult ) {
OutputDebugStringA("[GAME] Monster attack judgement event\n");
}
#ifdef _NEW_KEY_ #ifdef _NEW_KEY_
if ( nResult && (g_DeviceInput.GetSkillHold() || KeyControl::IsKeyState(KeyControl::KEY_COLUM_CASTING)) ) if ( nResult && (g_DeviceInput.GetSkillHold() || KeyControl::IsKeyState(KeyControl::KEY_COLUM_CASTING)) )
#else #else
@@ -384,7 +388,7 @@ void CSkillSystem::Update()
if ( pSelfCreature->GetUpperActionID() + 1 == ulAction ) if ( pSelfCreature->GetUpperActionID() + 1 == ulAction )
{ {
// <20><> <20><>ų<EFBFBD><C5B3> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>õȰ<C3B5> <20><><EFBFBD><EFBFBD> <20><>ų<EFBFBD>϶<EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD> // <20><> <20><>ų<EFBFBD><C5B3> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>õȰ<C3B5> <20><><EFBFBD><EFBFBD> <20><>ų<EFBFBD>϶<EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD>
g_CharacterData.m_bComboSuccess = TRUE; g_CharacterData.m_bComboSuccess = TRUE;
if ( strcmp( lpSkill->m_szCastingFileName, "NULL" ) ) if ( strcmp( lpSkill->m_szCastingFileName, "NULL" ) )
@@ -392,7 +396,7 @@ void CSkillSystem::Update()
pSelfCreature->EndSkill( (char *)lpSkill->m_szCastingFileName ); pSelfCreature->EndSkill( (char *)lpSkill->m_szCastingFileName );
} }
// <20><>ų<EFBFBD><C5B3> <20><><EFBFBD><EFBFBD><EFBFBD>ִ´<EFBFBD>. // <20><>ų<EFBFBD><C5B3> <20><><EFBFBD><EFBFBD>ִ´<D6B4>.
unsigned long ulGrade, ulLevel; unsigned long ulGrade, ulLevel;
ulGrade = pSelfCreature->m_ulSkillComboCount; ulGrade = pSelfCreature->m_ulSkillComboCount;
@@ -460,7 +464,7 @@ void CSkillSystem::Update()
lpSkillNode = GetNormalSkillNode(); lpSkillNode = GetNormalSkillNode();
if (!lpSkillNode) if (!lpSkillNode)
{ {
// <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD> // <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD>
lpSkillNode = new CSkillNode; lpSkillNode = new CSkillNode;
if ( isLeftAttack ) if ( isLeftAttack )
{ {
@@ -474,7 +478,7 @@ void CSkillSystem::Update()
if (!lpSkillNode->m_bFirstAttack) if (!lpSkillNode->m_bFirstAttack)
{ {
// ó<><C3B3> <20><><EFBFBD><EFBFBD> <20>϶<EFBFBD> <20><>Ŷ<EFBFBD><C5B6> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. // ó<><C3B3> <20><><EFBFBD><EFBFBD> <20>϶<EFBFBD> <20><>Ŷ<EFBFBD><C5B6> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
float fAttackRotation[6]; float fAttackRotation[6];
fAttackRotation[0] = -55.0f; fAttackRotation[0] = -55.0f;
fAttackRotation[1] = 30.0f; fAttackRotation[1] = 30.0f;
@@ -526,7 +530,7 @@ void CSkillSystem::Update()
if ( lpSkillNode->m_wNumAttack <= lpSkillNode->m_wNumAttackCount || lpSkillNode->m_wSkill == 0x9305 ) if ( lpSkillNode->m_wNumAttack <= lpSkillNode->m_wNumAttackCount || lpSkillNode->m_wSkill == 0x9305 )
{ {
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ų <20><><EFBFBD><20><><EFBFBD>ش<EFBFBD>. // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ų <20><><20><><EFBFBD>ش<EFBFBD>.
for ( it = m_lstSkillNode.begin(); it != m_lstSkillNode.end(); it++ ) for ( it = m_lstSkillNode.begin(); it != m_lstSkillNode.end(); it++ )
{ {
if ( (*it) == lpSkillNode ) if ( (*it) == lpSkillNode )
@@ -554,9 +558,9 @@ void CSkillSystem::Update()
} }
else else
{ {
if ( bAttack && ( g_DeviceInput.GetIsLeftMousePress() || g_CharacterData.m_bAutoTargetAttack || KeyControl::IsKeyState(KeyControl::KEY_COLUM_ATTACK)) ) // Ÿ<>̹<EFBFBD><CCB9><EFBFBD> <20>¾<EFBFBD><C2BE><EFBFBD><EFBFBD><EFBFBD> if ( bAttack && ( g_DeviceInput.GetIsLeftMousePress() || g_CharacterData.m_bAutoTargetAttack || KeyControl::IsKeyState(KeyControl::KEY_COLUM_ATTACK)) ) // Ÿ<>̹<EFBFBD><CCB9><EFBFBD> <20>¾<EFBFBD><C2BE><EFBFBD><EFBFBD><EFBFBD>
{ {
// <20><><EFBFBD><EFBFBD> <20>޺<EFBFBD><DEBA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>. // <20><><EFBFBD> <20>޺<EFBFBD><DEBA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>.
if ( pGame->m_csStatus.m_lstEquipment[ 11 + pGame->m_csStatus.m_cWeaponPos ] ) if ( pGame->m_csStatus.m_lstEquipment[ 11 + pGame->m_csStatus.m_cWeaponPos ] )
{ {
if ( ++pSelfCreature->m_ulAttackCombo >= g_CharacterData.m_dwMaxCombo ) if ( ++pSelfCreature->m_ulAttackCombo >= g_CharacterData.m_dwMaxCombo )
@@ -595,7 +599,7 @@ void CSkillSystem::Update()
{ {
(*itEffect)->m_lpEffect->SetStartPos( pSelfCreature->GetPosition()->x, pSelfCreature->GetPosition()->y, pSelfCreature->GetPosition()->z); (*itEffect)->m_lpEffect->SetStartPos( pSelfCreature->GetPosition()->x, pSelfCreature->GetPosition()->y, pSelfCreature->GetPosition()->z);
// <20><>ų <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> // <20><>ų <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
if ( CRYLGameData::GetClientIdentity( pSelfCreature->GetCharID() ) == Creature::CT_MONSTER ) if ( CRYLGameData::GetClientIdentity( pSelfCreature->GetCharID() ) == Creature::CT_MONSTER )
{ {
const CMonsterMgr::MonsterProtoType *lpMonster = g_MonsterMgr.GetMonsterProtoType( pSelfCreature->GetCharID() & 0x0000FFFF ); const CMonsterMgr::MonsterProtoType *lpMonster = g_MonsterMgr.GetMonsterProtoType( pSelfCreature->GetCharID() & 0x0000FFFF );