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_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)
g_QuestList.m_lpTriggerNode->m_lstFalseEvent.push_back(lpEventNode);
else
@@ -926,7 +931,7 @@ BOOL CQuestList::Load(const char *strQuestScriptFile)
_SE_RegisterFunction(Script, QuestAward, T_VOID, "QuestAward", T_STRING, 0);
_SE_RegisterFunction(Script, QuestSkillPointBonus, T_VOID, "QuestSkillPointBonus", T_INT, 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);
@@ -978,7 +983,7 @@ unsigned long QuestNode::CheckQuest(unsigned long dwLevel, unsigned long dwFame,
unsigned long count = 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 ;
if ( 0 == m_usNation )
{
@@ -1004,22 +1009,22 @@ unsigned long QuestNode::CheckQuest(unsigned long dwLevel, unsigned long dwFame,
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 ;
}
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 ;
}
// <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++)
{
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 ;
}
}
@@ -1028,7 +1033,7 @@ unsigned long QuestNode::CheckQuest(unsigned long dwLevel, unsigned long dwFame,
{
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 ;
}
}
@@ -1046,7 +1051,7 @@ unsigned long QuestNode::CheckQuest(unsigned long dwLevel, unsigned long dwFame,
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 ;
}
}
@@ -1055,42 +1060,42 @@ unsigned long QuestNode::CheckQuest(unsigned long dwLevel, unsigned long dwFame,
{
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 ;
}
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 ;
}
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 ;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>.
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>.
return QuestNode::RES_LOW_LEVEL ;
}
if(m_dwMinFame != 0 && m_dwMaxFame != 0)
{
// <20><><EFBFBD><EFBFBD>üũ
// <20><><EFBFBD><EFBFBD>üũ
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 ;
}
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 ;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
return QuestNode::RES_LOW_FAME;
}

View File

@@ -32,14 +32,14 @@
#include "RYLProfile.h"
/*
// Rodin : <20>׽<EFBFBD>Ʈ <20>ڵ<EFBFBD> #1
// Rodin : <20>׽<EFBFBD>Ʈ <20>ڵ<EFBFBD> #1
#include "../GUITextEdit.h"
#include "RYLChattingDlg.h"
#include "GMMemory.h"
*/
// <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD> <20>̺<EFBFBD>Ʈ <20>ڵ鷯
// <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD> <20>̺<EFBFBD>Ʈ <20>ڵ鷯
CGameEventHandler::CGameEventHandler()
{
@@ -57,7 +57,7 @@ int CGameEventHandler::OnOpen(int iErrorCode)
CRYLGameData* pGame = CRYLGameData::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; }
pGame->DeleteAllFieldItem();
@@ -89,10 +89,14 @@ int CGameEventHandler::OnClose()
int CGameEventHandler::OnDispatch(PktBase* lpPktBase, INET_Addr& peerAddr)
{
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
// => <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>Ŷ<EFBFBD><C5B6> Ŀ<>ǵ带 <20><><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD>.
// 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>.
if (0x2f != dwCmd &&
0x3d != dwCmd &&
0x49 != dwCmd)
@@ -105,7 +109,7 @@ int CGameEventHandler::OnDispatch(PktBase* lpPktBase, INET_Addr& peerAddr)
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* 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)))
{
//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 );
find->m_fnEvent(this, lpPktBase);
}
}
}
// 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>
// 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>
{
CRYLMessageBox *lpMessageBox = new CRYLMessageBox;
lpMessageBox->Create(CRYLStringTable::m_strString[296]);
// 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>.
// 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>.
lpMessageBox->SetModal(FALSE);
}

View File

@@ -95,8 +95,8 @@ GAME_EVENT_FUNC(ParseCharLogin)
&cRealmWarFlag,
&cRealmPoint,
&cTacticsFlag,
&dwPlayTime, // <20>߰<EFBFBD>.
&lPremiumTime, // <20><><EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD><CCBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD>
&dwPlayTime, // <20>߰<EFBFBD>.
&lPremiumTime, // <20><><EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD><CCBE><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD>
&iPremiumType,
&pGame->m_csStatus.m_Info,
&pGame->m_csStatus.m_Skill,
@@ -118,7 +118,8 @@ GAME_EVENT_FUNC(ParseCharLogin)
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();
GRYLTimer.m_dwStartTime = timeGetTime() ;
@@ -130,11 +131,11 @@ GAME_EVENT_FUNC(ParseCharLogin)
CRYLCommunityData::Instance()->m_bCheckRelation = bCheckRelation ;
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.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)
pGame->m_vecStartPosition.y = 1000.0f;
@@ -144,7 +145,7 @@ GAME_EVENT_FUNC(ParseCharLogin)
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_cTempRealmWarFlag = cRealmWarFlag;
pGame->m_cTempRealmPoint = cRealmPoint;
@@ -157,7 +158,7 @@ GAME_EVENT_FUNC(ParseCharLogin)
CRYLGameData::Instance()->m_cChangeNameCount = cNameChangeCount;
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned short wBufferSize = 0;
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;
while(wBufferSize < wInvenSize)
{
@@ -190,7 +191,7 @@ GAME_EVENT_FUNC(ParseCharLogin)
pGame->m_csStatus.AddInventoryItem(lpItem, FALSE);
}
// Extra <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// Extra <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
wBufferSize = 0;
while(wBufferSize < wExtraSize)
{
@@ -213,7 +214,7 @@ GAME_EVENT_FUNC(ParseCharLogin)
break;
}
}
// <20>ӽ<EFBFBD> <20>κ<EFBFBD><CEBA>
// <20>ӽ<EFBFBD> <20>κ<EFBFBD><CEBA>
wBufferSize = 0;
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;
while(wBufferSize < wExchangeSize)
{
@@ -347,17 +348,17 @@ GAME_EVENT_FUNC(ParseCharLogin)
CRYLMessageBox *lpMessageBox;
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->Create(CRYLStringTable::m_strString[307]);
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->Create(CRYLStringTable::m_strString[308]);
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->Create(CRYLStringTable::m_strString[445]);
break;
@@ -433,8 +434,8 @@ GAME_EVENT_FUNC(ParseCharMoveZone)
}
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 2009.07.21 <20><><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 17, 18<31><38> <20><> <20>߰<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>
if (CRYLNetworkData::Instance()->m_dwNextZone == 8 || CRYLNetworkData::Instance()->m_dwNextZone == 16 ||
CRYLNetworkData::Instance()->m_dwNextZone == 17 || CRYLNetworkData::Instance()->m_dwNextZone == 18)
{
@@ -468,29 +469,29 @@ GAME_EVENT_FUNC(ParseCharMoveZone)
CRYLMessageBox *lpMessageBox;
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->Create(CRYLStringTable::m_strString[388]);
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->Create(CRYLStringTable::m_strString[482]);
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->Create(CRYLStringTable::m_strString[388]);
break;
// 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:
lpMessageBox = new CRYLMessageBox;
lpMessageBox->Create( CRYLStringTable::m_strString[1581]);
break;
// 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:
lpMessageBox = new CRYLMessageBox;
lpMessageBox->Create( CRYLStringTable::m_strString[4120]);
@@ -520,18 +521,18 @@ GAME_EVENT_FUNC(ParseServerZone)
pGame->FadeIn();
pGame->m_bSelectChar = TRUE;
// LagreMap <20>ݱ<EFBFBD>
// LagreMap <20>ݱ<EFBFBD>
CRYLGameScene* pGameScene = static_cast<CRYLGameScene*>( CRYLSceneManager::Instance()->FindScene( GAME_SCENE ) ) ;
pGameScene->GetLargeMapDlg()->SetVisible( FALSE ) ;
// ä<><C3A4> <20>ݱ<EFBFBD>
// ä<><C3A4> <20>ݱ<EFBFBD>
CRYLCharacterSelectScene* pCharacterSelectScene =
static_cast<CRYLCharacterSelectScene*>( CRYLSceneManager::Instance()->FindScene( CHARACTERSELECT_SCENE ) ) ;
pCharacterSelectScene->GetChannelDlg()->SetVisible( FALSE ) ;
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);
ClientNet::CClientEventHandler* lpGameHandler = CGameEventHandler::Create();
@@ -552,17 +553,17 @@ GAME_EVENT_FUNC(ParseServerZone)
CRYLMessageBox *lpMessageBox;
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->Create(CRYLStringTable::m_strString[389]);
break;
case 4: // 4 = <20>ο<EFBFBD><CEBF><EFBFBD> <20>ʰ<EFBFBD>
case 4: // 4 = <20>ο<EFBFBD><CEBF><EFBFBD> <20>ʰ<EFBFBD>
lpMessageBox = new CRYLMessageBox;
lpMessageBox->Create(CRYLStringTable::m_strString[390]);
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->Create(CRYLStringTable::m_strString[388]);
break;
@@ -591,7 +592,7 @@ GAME_EVENT_FUNC(ParseCSAuth)
{
// DWORD result1 = lpNPGameLib->Auth( dwAuthCode ) ; // AUTH 1.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 result2 = lpNPGameLib->Auth2( &authCode2 ) ; // AUTH 2.0
/*

View File

@@ -59,6 +59,16 @@ CItemInstance::CItemInstance()
m_cCountCooldown = 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_wPutY = 0;
@@ -96,6 +106,16 @@ CItemInstance::~CItemInstance()
{
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 )
@@ -111,13 +131,13 @@ Skill::ProtoType* CItemInstance::Render(LPDIRECT3DDEVICE8 lpD3DDevice, bool bAlt
{
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);
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>.
// desable <20>ؽ<EFBFBD><D8BD><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>
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;
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;
}
@@ -439,6 +459,12 @@ int CItemInstance::SetItemInfo(const char* lpSerializedItem_In, size_t& nParseLe
m_lpTooltip = new CGUITooltipItem;
((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)
{
m_lCoolDownTime = 14000;
@@ -625,7 +651,7 @@ BOOL CItemInstance::SetSkillInfo(unsigned short wSkillID, unsigned char cGrade,
((Item::CSkillItem *)m_lpItemBase)->SetMaxNumOrDurability(cGrade);
SetNowDurability(cLevel);
// <20>̵<EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD>
// <20>̵<EFBFBD> <20>߰<EFBFBD>
m_wGrade = cGrade;
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_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_HEAD || cItemType == Item::ItemType::DEX_HEAD ||
@@ -743,7 +769,7 @@ bool CItemInstance::GetIsEnableUpgrade(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()
// ||
// 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());
// <20><><EFBFBD>ͳ<EFBFBD>Ƽ<EFBFBD><C6BC> <20><>ų
// <20><><EFBFBD>ͳ<EFBFBD>Ƽ<EFBFBD><C6BC> <20><>ų
if ( 0 != lpSkillBase->m_usChildSkill )
{
m_wPreProtoTypeID = lpSkillBase->m_usChildSkill;

View File

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

View File

@@ -64,11 +64,11 @@ void CSkillSystem::Update()
{
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;
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) {
for (int cChr = 0; cChr < g_CharacterData.m_lstCharData.num; cChr++) {
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))
{
// <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;
esf_name = CSceneManager::m_EffectManager.GetEsfName(scnt);
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;
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 bCanDead = FALSE; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
BOOL bGod = TRUE; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
BOOL bCanDead = FALSE; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD>
if (lpSkillNode->m_wSkill & 0x8000)
{
if (lpSkillProtoType)
@@ -192,19 +192,19 @@ void CSkillSystem::Update()
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;
CItemInstance *lpItem = pGame->m_csStatus.GetInventoryItemfromID(wAmmo);
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,
CRYLNetworkData::Instance()->m_dwMyChrID,
CRYLNetworkData::Instance()->m_dwMyChrID,
&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,
lpSkillNode->m_wSkill, lpSkillNode->m_wSkillGrade,
lpSkillNode->m_cLevel, lpSkillNode->m_wNumAttack, bGod, bCanDead);
@@ -214,7 +214,7 @@ void CSkillSystem::Update()
{
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 ) ;
SendPacket::CharUseItem( g_GameSession,
CRYLNetworkData::Instance()->m_dwMyChrID, lpSkillNode->m_dwTargetChrID,
@@ -223,7 +223,7 @@ void CSkillSystem::Update()
else
{
// 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,
lpSkillNode->m_wSkill, lpSkillNode->m_wSkillGrade,
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;
CRYLGameScene* pScene = (CRYLGameScene*)CRYLSceneManager::Instance()->FindScene(GAME_SCENE);
@@ -250,7 +250,7 @@ void CSkillSystem::Update()
lpSkillNode->m_wSkill != 0x8805 &&
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);
}
}
@@ -324,6 +324,7 @@ void CSkillSystem::Update()
if ( nResult )
{
OutputDebugStringA("[GAME] Monster attack event triggered\n");
if ( pGame->m_lpInterface->m_dwRangedWeaponTargetChrID != 0xFFFFFFFF )
{
BOOL bAttackable = FALSE;
@@ -365,6 +366,9 @@ void CSkillSystem::Update()
nResult = CSceneManager::GetCharacterEvent( pSelfModel, EVENT_JUST);
if ( nResult ) {
OutputDebugStringA("[GAME] Monster attack judgement event\n");
}
#ifdef _NEW_KEY_
if ( nResult && (g_DeviceInput.GetSkillHold() || KeyControl::IsKeyState(KeyControl::KEY_COLUM_CASTING)) )
#else
@@ -384,7 +388,7 @@ void CSkillSystem::Update()
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;
if ( strcmp( lpSkill->m_szCastingFileName, "NULL" ) )
@@ -392,7 +396,7 @@ void CSkillSystem::Update()
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;
ulGrade = pSelfCreature->m_ulSkillComboCount;
@@ -460,7 +464,7 @@ void CSkillSystem::Update()
lpSkillNode = GetNormalSkillNode();
if (!lpSkillNode)
{
// <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD>
// <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD>
lpSkillNode = new CSkillNode;
if ( isLeftAttack )
{
@@ -474,7 +478,7 @@ void CSkillSystem::Update()
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];
fAttackRotation[0] = -55.0f;
fAttackRotation[1] = 30.0f;
@@ -526,7 +530,7 @@ void CSkillSystem::Update()
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++ )
{
if ( (*it) == lpSkillNode )
@@ -554,9 +558,9 @@ void CSkillSystem::Update()
}
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 ( ++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);
// <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 )
{
const CMonsterMgr::MonsterProtoType *lpMonster = g_MonsterMgr.GetMonsterProtoType( pSelfCreature->GetCharID() & 0x0000FFFF );