Pcrow Leak and Shpwmax Integration
Pcrow Leak and Shpwmax Integration
h"
#include "shlobj.h"
#include "SUBPATH.h"
#include "GLOGIC.h"
#include "../../Lib_ClientUI/Interface/GameTextControl.h"
#include "../../Lib_ClientUI/Interface/InnerInterface.h"
#include "../../Lib_ClientUI/Interface/UITextControl.h"
//#include <strstream>
#include "DxShadowMap.h"
#include "DxGlobalStage.h"
#include "DxViewPort.h"
#include "COLLISION.h"
#include "stl_Func.h"
#include "DxSimpleMeshMan.h"
#include "GLItemMan.h"
#include "DxEffectMan.h"
#include "GLPeriod.h"
#include "DxResponseMan.h"
#include "../../Lib_ClientUI/Interface/LoadingThread.h"
#include "DxSkinMeshMan.h"
#include "GLCrowRenList.h"
#include "GLPartyClient.h"
#include "DxClubMan.h"
#include "DxSoundLib.h"
#include "stringutils.h"
#include "DxEffGroupPlayer.h"
#include "GLFriendClient.h"
#include "GLGaeaClient.h"
#include "../../Lib_ClientUI/Interface/MiniMap.h"
#include "../Lib_ClientUI/Interface/ModalCallerID.h"
#include "../Lib_ClientUI/Interface/MapRequireCheck.h"
#include "../Lib_ClientUI/Interface/ModalWindow.h"
#include "../Lib_ClientUI/Interface/DamageDisplay.h"
#include "GLGaeaServer.h" /* RSiLENT*/
#include "GLFactEffect.h"
#include "PKRankData.h"
#include "DxEffectMan.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
GLGaeaClient& GLGaeaClient::GetInstance()
{
static GLGaeaClient Instance;
return Instance;
}
GLGaeaClient::GLGaeaClient(void)
: m_hWnd(NULL)
, nSelectedGate(-1) /* add auto slot event , -RSiLENT 12/12/2020 */
, m_fAge(0.0f)
, m_pd3dDevice(NULL)
, m_pLandMClient(NULL)
, m_vCharPos(0,0,0)
, m_bSCHOOL_FREEPK(false)
, m_bBRIGHTEVENT(false)
, m_bCLUBBATTLE(false)
, m_fCLUBBATTLETimer(0.0f)
, m_bClubDeathMatch(false)
, m_fClubDeathMatchTimer(0.0f)
{
memset(m_szAppPath, 0, sizeof(char) * (MAX_PATH));
memset(m_szShopInfoFile, 0, sizeof(char) * (MAX_PATH));
m_vecDetectID.reserve(200);
}
GLGaeaClient::~GLGaeaClient(void)
{
// Note : ���� ��� Ŭ����.
//
SAFE_DELETE(m_pLandMClient);
}
return S_OK;
}
GLPET sPet;
sPet.m_emTYPE = pNetMsg->m_emTYPE;
sPet.m_dwGUID = pNetMsg->m_dwGUID;
sPet.m_sPetID = pNetMsg->m_sPetID;
sPet.m_dwOwner = pNetMsg->m_dwOwner;
sPet.m_wStyle = pNetMsg->m_wStyle;
sPet.m_wColor = pNetMsg->m_wColor;
sPet.m_fWalkSpeed = pNetMsg->m_fWalkSpeed;
sPet.m_fRunSpeed = pNetMsg->m_fRunSpeed;
sPet.m_nFull = pNetMsg->m_nFull;
sPet.m_sMapID = pNetMsg->m_sMapID;
sPet.m_dwCellID = pNetMsg->m_dwCellID;
StringCchCopy ( sPet.m_szName, PETNAMESIZE+1, pNetMsg->m_szName );
sPet.m_dwPetID = pNetMsg->m_dwPetID;
WORD i(0);
for ( ; i < pNetMsg->m_wSkillNum; ++i )
{
sPet.m_ExpSkills.insert ( std::make_pair ( pNetMsg-
>m_Skills[i].[Link],
pNetMsg->m_Skills[i] ) );
}
m_Character.m_llPetCardGenNum, m_Character.m_sPetCardNativeID,
m_Character.m_cPetCardGenType );
if ( pInvenItem )
{
GLMSG::SNETPET_REQ_UNUSEPETCARD NetMsg;
[Link] = sPet.m_dwGUID;
[Link] = sPet.m_dwPetID;
NETSENDTOFIELD ( &NetMsg );
}
// ���н� GenNum ó��
m_Character.m_llPetCardGenNum = 0;
return FALSE;
}
// �� ȿ��
D3DXMATRIX matEffect;
D3DXVECTOR3 vPos = m_Pet.GetPosition ();
D3DXMatrixTranslation ( &matEffect, vPos.x, vPos.y, vPos.z );
return S_OK;
}
return pLandMClient;
}
return pLandMClient;
}
return pLandMClient;
}
return S_OK;
}
return S_OK;
}
PLANDMANCLIENT GLGaeaClient::GetActiveMap ()
{
return m_pLandMClient;
}
SNATIVEID GLGaeaClient::GetActiveMapID ()
{
if ( !m_pLandMClient ) return NATIVEID_NULL();
return m_pLandMClient->GetMapID();
}
CInnerInterface::GetInstance().ClearNameList();
// MEMO : ��� ̵��� ���� ����츦 � ߴ��߰� ��ݱـ� ��ؼـ. ���� â�� ����� �����
���Ѻ�
�߰�ڴ.
// �Ʒ� �Լ� �Ȯ�� �ǹ̷� ���̴��� ��ڴ.
CInnerInterface::GetInstance().CloseAllWindow();
// Note : ��ġ �������
��� .
//
DxResponseMan::GetInstance().DoInterimClean ( m_pd3dDevice );
DxSkinCharDataContainer::GetInstance().LoadData( GLCONST_CHAR::szCharSkin[i],
m_pd3dDevice, TRUE );
return S_OK;
}
CInnerInterface::GetInstance().ClearNameList();
// MEMO : ���̵��� ���� ����츦 �ߴ��߰� ��ݱ� ��ؼ. ���� â�� ����� �����
���Ѻ�
�߰�ڴ.
// �Ʒ� �Լ� �Ȯ�� �ǹ̷� ���̴��� ��ڴ.
CInnerInterface::GetInstance().CloseAllWindow();
DxSkinCharDataContainer::GetInstance().LoadData( GLCONST_CHAR::szCharSkin[i],
m_pd3dDevice, TRUE );
// Note : �� �ڱɸ��� ��Ų� �� �ٽо� �´�.
//
m_Character.SkinLoad ( m_pd3dDevice );
return S_OK;
}
/*if ( m_Summon.IsVALID() )
{
m_Summon.DeleteDeviceObjects();
}*/
HRESULT hr=S_OK;
m_Character.m_vecMarketClick.clear();
m_Character.ReSetSTATE(EM_REQ_GATEOUT);
if ( pNetMsg->emFB!=EMCHAR_GATEOUT_OK )
{
CDebugSet::ToListView ( "[MSG] SNETREQ_GATEOUT_FB FAIL : %d", pNetMsg-
>emFB );
switch(pNetMsg->emFB)
{
case EMCHAR_GATEOUT_FAIL:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("REQ_GATEOUT_FB_FAIL"), pNetMsg->emFB );
break;
case EMCHAR_GATEOUT_MAPID:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("REQ_GATEOUT_FB_DATA_ERR"), pNetMsg-
>emFB );
break;
case EMCHAR_GATEOUT_GATEID:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("REQ_GATEOUT_FB_DATA_ERR"), pNetMsg-
>emFB );
break;
case EMCHAR_GATEOUT_TARMAPID:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("REQ_GATEOUT_FB_DATA_ERR"), pNetMsg-
>emFB );
break;
case EMCHAR_GATEOUT_TARGATEID:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("REQ_GATEOUT_FB_DATA_ERR"), pNetMsg-
>emFB );
break;
case EMCHAR_GATEOUT_FIELDSVR:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("REQ_GATEOUT_FB_SVR_ERR"), pNetMsg-
>emFB );
break;
case EMCHAR_GATEOUT_HOLD:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMCHAR_GATEOUT_HOLD") );
break;
case EMCHAR_GATEOUT_CONDITION:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMCHAR_GATEOUT_CONDITION"), pNetMsg->emFB
);
break;
case EMCHAR_GATEOUT_OTHERCLUB_NOTALLOWED_INPARTY:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE,
ID2GAMEINTEXT("EMCHAR_GATEOUT_OTHERCLUB_NOTALLOWED_INPARTY") );
break;
case EMCHAR_GATEOUT_CLUBBATTLE:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMCHAR_GATEOUT_CLUBBATTLE"),
GLCONST_CHAR::dwCLUB_BATTLE_GUID_TIME );
break;
case EMCHAR_GATEOUT_CLUBBATTLE2:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMCHAR_GATEOUT_CLUBBATTLE2") );
break;
return S_FALSE;
}
DWORD dwColorArg1(NULL),dwOldMod(NULL);
m_pd3dDevice->GetTextureStageState( 0, D3DTSS_COLORARG1, &dwColorArg1 );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
if ( m_Character.m_bVehicle )
{
m_Character.ReqSetVehicle( false );
m_Character.SetVehicle ( false );
m_Character.m_bIsVehicleActive = TRUE;
}
m_Character.m_vecMarketClick.clear();
m_Character.m_sVehicle.SetActiveValue( false );
m_Character.m_sVehicle.RESET();
LOADINGSTEP::SETSTEP ( 1 );
m_pLandMClient->ClearDropObj ();
LOADINGSTEP::SETSTEP ( 3 );
DxResponseMan::GetInstance().SetRenderState ();
LOADINGSTEP::SETSTEP ( 7 );
LOADINGSTEP::SETSTEP ( 11 );
NLOADINGTHREAD::EndThread();
return S_OK;
}
/*if ( m_Summon.IsVALID() )
{
m_Summon.DeleteDeviceObjects();
}*/
HRESULT hr=S_OK;
GLMSG::SNETREQ_CREATE_INSTANT_MAP_FB *pNetMsg =
(GLMSG::SNETREQ_CREATE_INSTANT_MAP_FB *) nmg;
m_Character.ReSetSTATE(EM_REQ_GATEOUT);
if ( pNetMsg->emFB!=EMCHAR_CREATE_INSTANT_MAP_OK )
{
CDebugSet::ToListView ( "[MSG] SNETREQ_GATEOUT_FB FAIL : %d", pNetMsg-
>emFB );
switch(pNetMsg->emFB)
{
case EMCHAR_CREATE_INSTANT_MAP_FAIL:
case EMCHAR_CREATE_INSTANT_MAP_FAIL_CREATE:
case EMCHAR_CREATE_INSTANT_MAP_FAIL_MAPID:
case EMCHAR_CREATE_INSTANT_MAP_FAIL_GATEID:
case EMCHAR_CREATE_INSTANT_MAP_FAIL_TARMAPID:
case EMCHAR_CREATE_INSTANT_MAP_FAIL_CONDITION:
case EMCHAR_CREATE_INSTANT_MAP_FAIL_FIELDSVR:
case EMCHAR_CREATE_INSTANT_MAP_FAIL_NOT:
case EMCHAR_CREATE_INSTANT_MAP_FAIL_CREATEMAX:
{
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMCHAR_CREATE_INSTANT_MAP_FAIL") );
}break;
};
return S_FALSE;
}
DWORD dwColorArg1(NULL),dwOldMod(NULL);
m_pd3dDevice->GetTextureStageState( 0, D3DTSS_COLORARG1, &dwColorArg1 );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
if ( m_Character.m_bVehicle )
{
m_Character.ReqSetVehicle( false );
m_Character.SetVehicle ( false );
m_Character.m_bIsVehicleActive = TRUE;
}
m_Character.m_sVehicle.SetActiveValue( false );
m_Character.m_sVehicle.RESET();
LOADINGSTEP::SETSTEP ( 1 );
m_pLandMClient->ClearDropObj ();
LOADINGSTEP::SETSTEP ( 3 );
// ���̵��� � ڽſ��� �ɸ� ����� �����̻
� ���
m_Character.InitAllSkillFact ();
m_Character.DISABLEALLLANDEFF();
SMAPNODE smap_node;
smap_node = *pMapNode;
smap_node.sLEVEL_REQUIRE = pMapNode->sLEVEL_REQUIRE;
smap_node.sLEVEL_ETC_FUNC = pMapNode->sLEVEL_ETC_FUNC;
smap_node.sNativeID = pNetMsg->sInstantMapID;
BOOL bInsert = InsertMapList( smap_node );
DxResponseMan::GetInstance().SetRenderState ();
LOADINGSTEP::SETSTEP ( 7 );
LOADINGSTEP::SETSTEP ( 11 );
NLOADINGTHREAD::EndThread();
return S_OK;
}
/*if ( m_Summon.IsVALID() )
{
m_Summon.DeleteDeviceObjects();
}*/
HRESULT hr=S_OK;
DWORD dwColorArg1(NULL),dwOldMod(NULL);
m_pd3dDevice->GetTextureStageState( 0, D3DTSS_COLORARG1, &dwColorArg1 );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
LOADINGSTEP::SETSTEP ( 1 );
m_pLandMClient->ClearDropObj ();
LOADINGSTEP::SETSTEP ( 3 );
LOADINGSTEP::SETSTEP ( 7 );
// ��Ȱó��.
m_Character.ReBirth ( pNetMsg->wNowHP, pNetMsg->wNowMP, pNetMsg->wNowSP,
pNetMsg->vPos, false );
if( pNetMsg->bRegenEntryFailed )
{
DoModal( ID2GAMEINTEXT("REGEN_ENTRY_FAIL"), MODAL_INFOMATION, OK );
}
LOADINGSTEP::SETSTEP ( 11 );
NLOADINGTHREAD::EndThread();
return S_OK;
}
GLMSG::SNETPC_REQ_MUST_LEAVE_MAP_FB *pNetMsg =
(GLMSG::SNETPC_REQ_MUST_LEAVE_MAP_FB *) nmg;
if ( pNetMsg->emFB != EMREQ_MUST_LEAVE_MAP_FB_OK )
{
CInnerInterface::GetInstance().PrintMsgText ( NS_UITEXTCOLOR::DISABLE,
ID2GAMEINTEXT("EMREQ_MUST_LEAVE_MAP_FB_FAIL") );
return S_OK;
}
/*if ( m_Summon.IsVALID() )
{
m_Summon.DeleteDeviceObjects();
}*/
if ( m_Character.m_bVehicle )
{
m_Character.ReqSetVehicle( false );
m_Character.SetVehicle ( false );
m_Character.m_bIsVehicleActive = TRUE;
}
m_Character.ResetAction();
DWORD dwColorArg1(NULL),dwOldMod(NULL);
m_pd3dDevice->GetTextureStageState( 0, D3DTSS_COLORARG1, &dwColorArg1 );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
LOADINGSTEP::SETSTEP ( 1 );
m_pLandMClient->ClearDropObj ();
LOADINGSTEP::SETSTEP ( 4 );
LOADINGSTEP::SETSTEP ( 9 );
LOADINGSTEP::SETSTEP ( 11 );
NLOADINGTHREAD::EndThread();
case EMREQ_RECALL_FB_ITEM:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMREQ_RECALL_FB_ITEM") );
return S_OK;
case EMREQ_RECALL_FB_CONDITION:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMREQ_RECALL_FB_CONDITION") );
return S_OK;
case EMREQ_RECALL_FB_NOTLASTCALL:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMREQ_RECALL_FB_NOTLASTCALL") );
return S_OK;
case EMREQ_RECALL_FB_JOINCON:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMREQ_RECALL_FB_JOINCON") );
return S_OK;
case EMREQ_RECALL_FB_IMMOVABLE:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMREQ_RECALL_FB_IMMOVABLE") );
return S_OK;
};
}
/*if ( m_Summon.IsVALID() )
{
m_Summon.DeleteDeviceObjects();
}*/
if ( m_Character.m_bVehicle )
{
m_Character.ReqSetVehicle( false );
m_Character.SetVehicle ( false );
m_Character.m_bIsVehicleActive = TRUE;
}
m_Character.ResetAction();
DWORD dwColorArg1(NULL),dwOldMod(NULL);
m_pd3dDevice->GetTextureStageState( 0, D3DTSS_COLORARG1, &dwColorArg1 );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
LOADINGSTEP::SETSTEP ( 1 );
m_pLandMClient->ClearDropObj ();
LOADINGSTEP::SETSTEP ( 4 );
LOADINGSTEP::SETSTEP ( 11 );
NLOADINGTHREAD::EndThread();
return S_OK;
}
case EMREQ_TELEPORT_FB_ITEM:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMREQ_TELEPORT_FB_ITEM") );
return S_OK;
case EMREQ_TELEPORT_FB_CONDITION:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMREQ_TELEPORT_FB_CONDITION") );
return S_OK;
case EMREQ_TELEPORT_FB_JOINCON:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMREQ_TELEPORT_FB_JOINCON") );
return S_OK;
case EMREQ_TELEPORT_FB_IMMOVABLE:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMREQ_TELEPORT_FB_IMMOVABLE") );
return S_OK;
};
}
/*if ( m_Summon.IsVALID() )
{
m_Summon.DeleteDeviceObjects();
}*/
if ( m_Character.m_bVehicle )
{
m_Character.ReqSetVehicle( false );
m_Character.SetVehicle ( false );
m_Character.m_bIsVehicleActive = TRUE;
}
DWORD dwColorArg1(NULL),dwOldMod(NULL);
m_pd3dDevice->GetTextureStageState( 0, D3DTSS_COLORARG1, &dwColorArg1 );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
LOADINGSTEP::SETSTEP ( 1 );
m_pLandMClient->ClearDropObj ();
LOADINGSTEP::SETSTEP ( 4 );
LOADINGSTEP::SETSTEP ( 9 );
LOADINGSTEP::SETSTEP ( 11 );
NLOADINGTHREAD::EndThread();
return S_OK;
}
return S_OK;
}
return S_OK;
STARID sTARID;
BYTE cNUM = pNetMsg->GETAMOUNT();
for ( BYTE i=0; i<cNUM; ++i )
{
bool bOK = pNetMsg->POP_CROW( sTARID );
if ( !bOK ) return E_FAIL;
switch ( [Link] )
{
case CROW_PC:
m_pLandMClient->DropOutChar ( [Link] );
break;
case CROW_NPC:
case CROW_MOB:
m_pLandMClient->DropOutCrow ( [Link] );
break;
case CROW_MATERIAL:
m_pLandMClient->DropOutMaterial ( [Link] );
break;
case CROW_ITEM:
m_pLandMClient->DropOutItem ( [Link] );
break;
case CROW_MONEY:
m_pLandMClient->DropOutMoney ( [Link] );
break;
case CROW_PET:
m_pLandMClient->DropOutPet ( [Link] );
break;
case CROW_SUMMON:
m_pLandMClient->DropOutSummon ( [Link] );
break;
};
}
return S_OK;
}
if ( [Link] == CROW_PC )
{
PGLCHARCLIENT pChar = m_pLandMClient->GetChar ( [Link] );
if ( pChar ) return pChar->IsCollisionVolume();
if ( GLGaeaClient::GetInstance().GetCharacter()->m_dwGaeaID ==
[Link] )
return TRUE;
}
else if ( [Link] == CROW_NPC || [Link] == CROW_MOB )
{
PGLCROWCLIENT pCrow = m_pLandMClient->GetCrow ( [Link] );
if ( pCrow ) return pCrow->IsCollisionVolume();
}
else if ( [Link] == CROW_MATERIAL )
{
PGLMATERIALCLIENT pMaterial = m_pLandMClient->GetMaterial
( [Link] );
if ( pMaterial ) return pMaterial->IsCollisionVolume();
}
else if ( [Link] == CROW_SUMMON )
{
PGLANYSUMMON pSummon = m_pLandMClient->GetSummon ( [Link] );
if ( pSummon ) return pSummon->IsCollisionVolume();
}
else
GASSERT(0&&"emCrow�� �߸�� ����� �Դϴ�." );
return FALSE;
}
if ( [Link] == CROW_PC )
{
PGLCHARCLIENT pChar = m_pLandMClient->GetChar ( [Link] );
if ( pChar ) return TRUE;
if ( GLGaeaClient::GetInstance().GetCharacter()->m_dwGaeaID ==
[Link] )
return TRUE;
}
else if ( [Link] == CROW_NPC || [Link] == CROW_MOB )
{
PGLCROWCLIENT pCrow = m_pLandMClient->GetCrow ( [Link] );
if ( pCrow ) return TRUE;
}
else if ( [Link] == CROW_MATERIAL )
{
PGLMATERIALCLIENT pMaterial = m_pLandMClient->GetMaterial
( [Link] );
if ( pMaterial ) return TRUE;
}
else if ( [Link] == CROW_SUMMON )
{
PGLANYSUMMON pSummon = m_pLandMClient->GetSummon ( [Link] );
if ( pSummon ) return TRUE;
//if ( GLGaeaClient::GetInstance().GetSummonClient()->m_dwGUID ==
[Link] )
// return TRUE;
}
else
GASSERT(0&&"emCrow�� �߸�� ����� �Դϴ�." );
return FALSE;
}
if ( GetCharacter()->m_dwGaeaID == [Link] )
return GetCharacterPos();
}
else if ( [Link] == CROW_NPC || [Link] == CROW_MOB )
{
PGLCROWCLIENT pCrow = m_pLandMClient->GetCrow ( [Link] );
if ( pCrow ) return pCrow->GetPosition();
}
else if ( [Link] == CROW_MATERIAL )
{
PGLMATERIALCLIENT pMaterial = m_pLandMClient->GetMaterial
( [Link] );
if ( pMaterial ) return pMaterial->GetPosition();
}
else if ( [Link] == CROW_ITEM )
{
PITEMCLIENTDROP pItem = m_pLandMClient->GetItem ( [Link] );
if ( pItem ) return pItem->vPos;
}
else if ( [Link] == CROW_MONEY )
{
PMONEYCLIENTDROP pMoney = m_pLandMClient->GetMoney ( [Link] );
if ( pMoney ) return pMoney->vPos;
}
else if ( [Link] == CROW_PET )
{
if ( GetPetClient()->m_dwGUID == [Link] ) return
GetPetClient()->GetPosition ();
else
{
PGLANYPET pAnyPet = m_pLandMClient->GetPet ( [Link] );
if ( pAnyPet ) return pAnyPet->GetPosition ();
}
}
else if ( [Link] == CROW_SUMMON )
{
//if ( GetSummonClient()->m_dwGUID == [Link] ) return
GetPetClient()->GetPosition ();
namespace
{
void MINDETECTAABB ( D3DXVECTOR3 &vMax, D3DXVECTOR3 &vMin, const float fRate,
const float fMinLeng )
{
float fLength(0);
fLength = vMax.x - vMin.x;
vMax.x += ( fLength*fRate - fLength ) / 2.0f;
vMin.x -= ( fLength*fRate - fLength ) / 2.0f;
// DetectID Ŭ����.
if ( !m_vecDetectID.empty() ) m_vecDetectID.erase ( m_vecDetectID.begin(),
m_vecDetectID.end() );
STARGETID findTargetID;
// ��.
{
GLCROWCLIENTLIST *pCrowList = m_pLandMClient->GetCrowList ();
GLCROWCLIENTNODE *pCrowCur = pCrowList->m_pHead;
for ( ; pCrowCur; pCrowCur = pCrowCur->pNext )
{
PGLCROWCLIENT pCrow= pCrowCur->Data;
if ( !pCrow->IsDie() ) continue;
m_vecDetectID.push_back ( findTargetID );
}
}
}
// ij����.
{
GLCHARCLIENTLIST *pCharList = m_pLandMClient->GetCharList ();
GLCHARCLIENTNODE *pCharCur = pCharList->m_pHead;
for ( ; pCharCur; pCharCur = pCharCur->pNext )
{
PGLCHARCLIENT pChar = pCharCur->Data;
if ( !pChar->IsVisibleDetect() ) continue;
if ( !pChar->IsDie() ) continue;
m_vecDetectID.push_back ( findTargetID );
}
}
}
STARGETID findTargetID;
// ��.
if ( emCrow & CROW_EX_MOB )
{
GLCROWCLIENTLIST *pCrowList = m_pLandMClient->GetCrowList ();
GLCROWCLIENTNODE *pCrowCur = pCrowList->m_pHead;
for ( ; pCrowCur; pCrowCur = pCrowCur->pNext )
{
PGLCROWCLIENT pCrow= pCrowCur->Data;
if ( !pCrow->IsValidBody() )
continue;
m_vecDetectID.push_back ( findTargetID );
}
}
}
// Material
if ( emCrow & CROW_EX_MATERIAL )
{
GLMATERIALCLIENTLIST *pMaterialList = m_pLandMClient->GetMaterialList
();
GLMATERIALCLIENTNODE *pMaterialCur = pMaterialList->m_pHead;
for ( ; pMaterialCur; pMaterialCur = pMaterialCur->pNext )
{
PGLMATERIALCLIENT pMaterial= pMaterialCur->Data;
if ( !pMaterial->IsValidBody() )
continue;
m_vecDetectID.push_back ( findTargetID );
}
}
}
// ij����.
if ( emCrow & CROW_EX_PC )
{
GLCHARCLIENTLIST *pCharList = m_pLandMClient->GetCharList ();
GLCHARCLIENTNODE *pCharCur = pCharList->m_pHead;
for ( ; pCharCur; pCharCur = pCharCur->pNext )
{
PGLCHARCLIENT pChar = pCharCur->Data;
if ( !pChar->IsVisibleDetect() ) continue;
if ( !pChar->IsValidBody() ) continue;
m_vecDetectID.push_back ( findTargetID );
}
}
}
// ��ȯ��
if ( emCrow & CROW_EX_SUMMON )
{
GLANYSUMMONLIST *pSummonList = m_pLandMClient->GetSummonList();
GLANYSUMMONNODE *pSummonCur = pSummonList->m_pHead;
for ( ; pSummonCur; pSummonCur = pSummonCur->pNext )
{
PGLANYSUMMON pSummon = pSummonCur->Data;
if ( !pSummon->IsValidBody() ) continue;
m_vecDetectID.push_back ( findTargetID );
}
}
}
// Item.
if ( emCrow & CROW_EX_ITEM )
{
ITEMCLIENTDROPLIST *pItemList = m_pLandMClient->GetItemList();
ITEMCLIENTDROPNODE *pItemCur = pItemList->m_pHead;
for ( ; pItemCur; pItemCur = pItemCur->pNext )
{
const CItemClientDrop &sItemDrop = *pItemCur->Data;
m_vecDetectID.push_back ( findTargetID );
}
}
}
// Money.
if ( emCrow & CROW_EX_MONEY )
{
MONEYCLIENTDROPLIST *pMoneyList = m_pLandMClient->GetMoneyList();
MONEYCLIENTDROPNODE *pMoneyCur = pMoneyList->m_pHead;
for ( ; pMoneyCur; pMoneyCur = pMoneyCur->pNext )
{
const CMoneyClientDrop &sMoneyDrop = *pMoneyCur->Data;
m_vecDetectID.push_back ( findTargetID );
}
}
}
// DetectID Ŭ����.
if ( !m_vecDetectID.empty() ) m_vecDetectID.erase ( m_vecDetectID.begin(),
m_vecDetectID.end() );
STARGETID findTargetID;
// ��.
if ( emCrow & CROW_EX_MOB )
{
GLCROWCLIENTLIST *pCrowList = m_pLandMClient->GetCrowList ();
GLCROWCLIENTNODE *pCrowCur = pCrowList->m_pHead;
for ( ; pCrowCur; pCrowCur = pCrowCur->pNext )
{
PGLCROWCLIENT pCrow= pCrowCur->Data;
if ( !pCrow->IsValidBody() ) continue;
m_vecDetectID.push_back ( findTargetID );
}
}
}
// Material
if ( emCrow & CROW_EX_MATERIAL )
{
GLMATERIALCLIENTLIST *pMaterialList = m_pLandMClient->GetMaterialList
();
GLMATERIALCLIENTNODE *pMaterialCur = pMaterialList->m_pHead;
for ( ; pMaterialCur; pMaterialCur = pMaterialCur->pNext )
{
PGLMATERIALCLIENT pMaterial= pMaterialCur->Data;
if ( !pMaterial->IsValidBody() ) continue;
m_vecDetectID.push_back ( findTargetID );
}
}
}
// ij����.
if ( emCrow & CROW_EX_PC )
{
GLCHARCLIENTLIST *pCharList = m_pLandMClient->GetCharList ();
GLCHARCLIENTNODE *pCharCur = pCharList->m_pHead;
for ( ; pCharCur; pCharCur = pCharCur->pNext )
{
PGLCHARCLIENT pChar = pCharCur->Data;
if ( !pChar->IsVisibleDetect() ) continue;
if ( !pChar->IsValidBody() ) continue;
BOOL bCol = COLLISION::IsSpherePointCollision ( pChar-
>GetPosition(), vTarPos, fLength );
if ( bCol )
{
// Note : ����� Ÿ�� ���.
[Link] = CROW_PC;
[Link] = pChar->m_dwGaeaID;
[Link] = pChar->GetPosition ();
m_vecDetectID.push_back ( findTargetID );
}
}
}
// Item.
if ( emCrow & CROW_EX_ITEM )
{
ITEMCLIENTDROPLIST *pItemList = m_pLandMClient->GetItemList();
ITEMCLIENTDROPNODE *pItemCur = pItemList->m_pHead;
for ( ; pItemCur; pItemCur = pItemCur->pNext )
{
CItemClientDrop &sItemDrop = *pItemCur->Data;
m_vecDetectID.push_back ( findTargetID );
}
}
}
// Money.
if ( emCrow & CROW_EX_MONEY )
{
MONEYCLIENTDROPLIST *pMoneyList = m_pLandMClient->GetMoneyList();
MONEYCLIENTDROPNODE *pMoneyCur = pMoneyList->m_pHead;
for ( ; pMoneyCur; pMoneyCur = pMoneyCur->pNext )
{
CMoneyClientDrop &sMoneyDrop = *pMoneyCur->Data;
m_vecDetectID.push_back ( findTargetID );
}
}
}
m_vecDetectID.push_back ( findTargetID );
}
}
}
if (!m_vecDetectID.empty()) m_vecDetectID.erase(m_vecDetectID.begin(),
m_vecDetectID.end());
STARGETID findTargetID;
if (!pCrow->IsValidBody()) continue;
m_vecDetectID.push_back(findTargetID);
}
}
}
vDist.y = 0.0f;
float fDist = D3DXVec3Length ( &vDist );
return FALSE;
}
if ( m_pLandMClient )
{
m_pLandMClient->ActiveMap();
m_pLandMClient->InitDeviceObjects ( m_pd3dDevice );
}
DxEffectMan::GetInstance().SetCrowTracer ( this );
DxSoundLib::GetInstance()->CreateSound ( "GRINDING_SUCCEED",
GLCONST_CHAR::strGRINDING_SUCCEED.c_str(), SFX_SOUND );
DxSoundLib::GetInstance()->CreateSound ( "GRINDING_FAIL",
GLCONST_CHAR::strGRINDING_FAIL.c_str(), SFX_SOUND );
DxSoundLib::GetInstance()->CreateSound ( "GRINDING_RESET",
GLCONST_CHAR::strGRINDING_RESET.c_str(), SFX_SOUND );
DxSoundLib::GetInstance()->CreateSound ( "GRINDING_BROKEN",
GLCONST_CHAR::strGRINDING_BROKEN.c_str(), SFX_SOUND );
DxSoundLib::GetInstance()->CreateSound ( "ITEMDROP_SUIT",
GLCONST_CHAR::strITEMDROP_SUIT.c_str(), SFX_SOUND );
DxSoundLib::GetInstance()->CreateSound ( "ITEMDROP_WAPON",
GLCONST_CHAR::strITEMDROP_WAPON.c_str(), SFX_SOUND );
DxSoundLib::GetInstance()->CreateSound ( "ITEMDROP_SHOES",
GLCONST_CHAR::strITEMDROP_SHOES.c_str(), SFX_SOUND );
DxSoundLib::GetInstance()->CreateSound ( "ITEMDROP_RING",
GLCONST_CHAR::strITEMDROP_RING.c_str(), SFX_SOUND );
DxSoundLib::GetInstance()->CreateSound ( "ITEMDROP_?BOX",
GLCONST_CHAR::strITEMDROP_QBOX.c_str(), SFX_SOUND );
DxSoundLib::GetInstance()->CreateSound ( "ITEMDROP_SCROLL",
GLCONST_CHAR::strITEMDROP_SCROLL.c_str(), SFX_SOUND );
DxSoundLib::GetInstance()->CreateSound ( "ITEMDROP_COIN",
GLCONST_CHAR::strITEMDROP_COIN.c_str(), SFX_SOUND );
DxSoundLib::GetInstance()->CreateSound ( "ITEMDROP_DRUGS",
GLCONST_CHAR::strITEMDROP_DRUGS.c_str(), SFX_SOUND );
DxSoundLib::GetInstance()->CreateSound ( "PICKUP_ITEM",
GLCONST_CHAR::strPICKUP_ITEM.c_str(), SFX_SOUND );
DxSoundLib::GetInstance()->CreateSound ( "QITEM_FACT",
GLCONST_CHAR::strQITEM_FACT.c_str(), SFX_SOUND );
DxSoundLib::GetInstance()->CreateSound ( "GAMBLING_SHUFFLE",
GLCONST_CHAR::strGAMBLING_SHUFFLE.c_str(), SFX_SOUND ); //Monster7j
DxSoundLib::GetInstance()->CreateSound ( "GAMBLING_WIN",
GLCONST_CHAR::strGAMBLING_WIN.c_str(), SFX_SOUND );
DxSoundLib::GetInstance()->CreateSound ( "GAMBLING_LOSE",
GLCONST_CHAR::strGAMBLING_LOSE.c_str(), SFX_SOUND );
DxSoundLib::GetInstance()->CreateSound ( "PKCOMBO_FIRSTBLOOD",
GLCONST_CHAR::strPKCOMBO_FIRSTBLOOD.c_str(), SFX_SOUND ); //1
DxSoundLib::GetInstance()->CreateSound ( "PKCOMBO_DOUBLE",
GLCONST_CHAR::strPKCOMBO_DOUBLE.c_str(), SFX_SOUND ); //2
DxSoundLib::GetInstance()->CreateSound ( "PKCOMBO_TRIPLE",
GLCONST_CHAR::strPKCOMBO_TRIPLE.c_str(), SFX_SOUND ); //3
DxSoundLib::GetInstance()->CreateSound ( "PKCOMBO_ULTRA",
GLCONST_CHAR::strPKCOMBO_ULTRA.c_str(), SFX_SOUND );
//4
DxSoundLib::GetInstance()->CreateSound ( "PKCOMBO_KILLINGSPREE",
GLCONST_CHAR::strPKCOMBO_KILLINGSPREE.c_str(), SFX_SOUND ); //5
DxSoundLib::GetInstance()->CreateSound ( "PKCOMBO_MEGAKILL",
GLCONST_CHAR::strPKCOMBO_MEGAKILL.c_str(), SFX_SOUND ); //6
DxSoundLib::GetInstance()->CreateSound ( "PKCOMBO_DOMINATING",
GLCONST_CHAR::strPKCOMBO_DOMINATING.c_str(), SFX_SOUND ); //7
DxSoundLib::GetInstance()->CreateSound ( "PKCOMBO_GODLIKE",
GLCONST_CHAR::strPKCOMBO_GODLIKE.c_str(), SFX_SOUND ); //8
DxSoundLib::GetInstance()->CreateSound ( "PKCOMBO_MONSTERKILL",
GLCONST_CHAR::strPKCOMBO_MONSTERKILL.c_str(), SFX_SOUND ); //9
DxSoundLib::GetInstance()->CreateSound ( "PKCOMBO_UNSTOPPABLE",
GLCONST_CHAR::strPKCOMBO_UNSTOPPABLE.c_str(), SFX_SOUND ); //10
DxSoundLib::GetInstance()->CreateSound ( "PKCOMBO_OWNAGE",
GLCONST_CHAR::strPKCOMBO_OWNAGE.c_str(), SFX_SOUND ); //11
DxSoundLib::GetInstance()->CreateSound ( "PKCOMBO_RAMPAGE",
GLCONST_CHAR::strPKCOMBO_RAMPAGE.c_str(), SFX_SOUND ); //12
DxSoundLib::GetInstance()->CreateSound ( "PKCOMBO_HOLYSHIT",
GLCONST_CHAR::strPKCOMBO_HOLYSHIT.c_str(), SFX_SOUND ); //13
DxSoundLib::GetInstance()->CreateSound ( "PKCOMBO_WHICKEDSICK",
GLCONST_CHAR::strPKCOMBO_WHICKEDSICK.c_str(), SFX_SOUND ); //14
DxSoundLib::GetInstance()->CreateSound ( "PKCOMBO_COMBOWHORE",
GLCONST_CHAR::strPKCOMBO_COMBOWHORE.c_str(), SFX_SOUND ); //15
return S_OK;
}
HRESULT GLGaeaClient::RestoreDeviceObjects ()
{
GASSERT(m_pd3dDevice&&"m_pd3dDevice �� �ʱ�ȭ ���� �ʾҽ�ϴ�.");
if ( m_pLandMClient )
{
m_pLandMClient->RestoreDeviceObjects ();
}
m_Character.RestoreDeviceObjects ( m_pd3dDevice );
m_Pet.RestoreDeviceObjects ( m_pd3dDevice );
//m_Summon.RestoreDeviceObjects ( m_pd3dDevice );
return S_OK;
}
HRESULT GLGaeaClient::InvalidateDeviceObjects ()
{
if ( m_pLandMClient )
{
m_pLandMClient->InvalidateDeviceObjects ();
}
m_Character.InvalidateDeviceObjects ();
m_Pet.InvalidateDeviceObjects ();
//m_Summon.InvalidateDeviceObjects();
return S_OK;
}
HRESULT GLGaeaClient::DeleteDeviceObjects ()
{
if ( m_pLandMClient )
{
m_pLandMClient->DeleteDeviceObjects ();
SAFE_DELETE(m_pLandMClient);
}
m_Character.DeleteDeviceObjects();
m_Pet.DeleteDeviceObjects ();
//m_Summon.DeleteDeviceObjects ();
return S_OK;
}
PROFILE_BEGIN("GLCharacter::FrameMove");
m_Character.FrameMove ( fTime, fElapsedTime );
PROFILE_END("GLCharacter::FrameMove");
// PET
PROFILE_BEGIN("GLPetClient::FrameMove");
if ( m_Pet.IsVALID () ) m_Pet.FrameMove ( fTime, fElapsedTime );
PROFILE_END("GLPetClient::FrameMove");
// SUMMON
//if ( m_Summon.IsVALID () ) m_Summon.FrameMove ( fTime, fElapsedTime );
if ( m_bClubDeathMatch )
{
m_fClubDeathMatchTimer -= fElapsedTime;
if ( m_fAge > 1.0f )
CInnerInterface::GetInstance().UpdateClubBattleTime( m_fClubDeathMatchTimer );
}
// ���� ����ð�
if ( m_fAge > 1.0f )
{
CTimeSpan cElapsedTime(0,0,0,1);
m_cServerTime += cElapsedTime;
return S_OK;
}
// Note : � ���Clear
PROFILE_BEGIN2("DxShadowMap::Render");
DxShadowMap::GetInstance().ClearShadow( m_pd3dDevice );
PROFILE_END2("DxShadowMap::Render");
g_bPREVIEW_CHAR_RENDER = FALSE;
PROFILE_BEGIN2("m_Character::Render");
m_Character.Render( m_pd3dDevice );
PROFILE_END2("m_Character::Render");
PROFILE_BEGIN2("m_Character::RenderShadow,RenderReflect");
m_Character.RenderShadow( m_pd3dDevice );
m_Character.RenderReflect( m_pd3dDevice );
PROFILE_END2("m_Character::RenderShadow,RenderReflect");
// PET
PROFILE_BEGIN2("m_Pet::Render,RenderShadow,RenderReflect");
m_Pet.Render ( m_pd3dDevice );
m_Pet.RenderShadow ( m_pd3dDevice );
m_Pet.RenderReflect ( m_pd3dDevice );
PROFILE_END2("m_Pet::Render,RenderShadow,RenderReflect");
//m_Summon.Render ( m_pd3dDevice );
//m_Summon.RenderShadow ( m_pd3dDevice );
//m_Summon.RenderReflect ( m_pd3dDevice );
PROFILE_BEGIN2("m_pLandMClient::char,crow,item");
if ( m_pLandMClient )
{
m_pLandMClient->Render_MobItem ( CV );
}
PROFILE_END2("m_pLandMClient::char,crow,item");
return S_OK;
}
if ( m_pLandMClient )
{
m_pLandMClient->Render_EFF ( CV );
}
return S_OK;
}
void GLGaeaClient::RenderPickAlpha()
{
if ( m_pLandMClient )
{
m_pLandMClient->RenderPickAlpha();
}
}
switch ( nmg->nType )
{
CInnerInterface::GetInstance().TowerDownSET(13);
GLMSG::SNET_MOVE2MAPPOS NetMsg;
[Link] = 49; ////ini mid map nya
contoh 22 itu marketplace ,49 ini dipakai slot event map.
[Link] = 0;
[Link] = 201;
NETSEND(&NetMsg);
GLMSG::SNETPC_NET_AT_SLOTEVENT_SHOUTNREWARD
pRewardMsg;
[Link] = m_Character.m_dwCharID;
[Link] = m_Character.m_dwGaeaID;
[Link] = pNetMsg->sID;
[Link] = pNetMsg->wWinners;
[Link] = pNetMsg->wAmount;
[Link] = (m_Character.DetectGateIn());
StringCchCopy ( [Link], CHAR_SZNAME,
m_Character.m_szName );
NETSENDTOFIELD(&pRewardMsg);
CString strName;
[Link]("%s Won! the SLOT EVENT
Conratulations!",m_Character.m_szName);
CInnerInterface::GetInstance().TowerDownSET(11);
}
else
{
CInnerInterface::GetInstance().TowerDownSET(12);
PLANDMANCLIENT pLand = GetActiveMap();
if ( (m_Character.DetectGateIn() >= 101 &&
m_Character.DetectGateIn() <= 200) && (pLand && pLand->GetMapID().wMainID ==
49) )
{
GLMSG::SNET_MOVE2MAPPOS NetMsg;
[Link] = 49;
[Link] = 0;
[Link] = 201;
NETSEND( &NetMsg );
}
}
//CanSelectWinner = false;
}
//CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DODGERBLUE,"Received Selected Gate %d",nSelectedGate);
//CInnerInterface::GetInstance().SET_COUNTWIN_MSG( nSelectedGate );
CInnerInterface::GetInstance().SET_COUNTWIN_MSG( nSelectedGate );
}break;
/*END AUTO SLOT EVENT BY EJSAYAAAA*/
case NET_MSG_GCTRL_PERIOD:
{
GLMSG::SNET_PERIOD *pNetMsg = reinterpret_cast<GLMSG::SNET_PERIOD
*> ( nmg );
GLPeriod::GetInstance().SetPeriod ( pNetMsg->sPRERIODTIME );
}
break;
case NET_MSG_GCTRL_WEATHER:
{
GLMSG::SNETPC_WEATHER *pNetMsg =
reinterpret_cast<GLMSG::SNETPC_WEATHER *> ( nmg );
GLPeriod::GetInstance().SetWeather ( pNetMsg->dwWeather );
}
break;
case NET_MSG_GCTRL_MAPWEATHER:
{
GLMSG::SNETPC_MAPWEATHER *pNetMsg =
reinterpret_cast<GLMSG::SNETPC_MAPWEATHER *> ( nmg );
DWORD i;
GLPeriod::GetInstance().ResetOneMapWeather();
for( i = 0; i < pNetMsg->dwMapWeatherSize; i++ )
{
GLPeriod::GetInstance().SetOneMapActiveWeather( pNetMsg-
>MapWeather[i], FALSE );
}
}
break;
case NET_MSG_GCTRL_WHIMSICAL:
{
GLMSG::SNETPC_WHIMSICALWEATHER *pNetMsg =
reinterpret_cast<GLMSG::SNETPC_WHIMSICALWEATHER *> ( nmg );
DxWeatherMan::GetInstance()->ReceiveWhimsical ( pNetMsg-
>dwWhimsical );
}
break;
case NET_MSG_GCTRL_MAPWHIMSICAL:
{
GLMSG::SNETPC_MAPWHIMSICALWEATHER *pNetMsg =
reinterpret_cast<GLMSG::SNETPC_MAPWHIMSICALWEATHER *> ( nmg );
DxWeatherMan::GetInstance()->ReceiveMapWhimsical ( pNetMsg-
>MapWeather.map_mID, pNetMsg->MapWeather.map_sID,
pNetMsg->[Link] );
}
break;
case NET_MSG_GCTRL_DROP_ITEM:
{
GLMSG::SNETDROP_ITEM *pNetMsg =
reinterpret_cast<GLMSG::SNETDROP_ITEM *> ( nmg );
m_pLandMClient->DropItem ( &pNetMsg->Data );
}
break;
case NET_MSG_GCTRL_DROP_MONEY:
{
GLMSG::SNETDROP_MONEY *pNetMsg =
reinterpret_cast<GLMSG::SNETDROP_MONEY *> ( nmg );
m_pLandMClient->DropMoney ( pNetMsg->lnAmount, pNetMsg->vPos,
pNetMsg->dwGlobID, pNetMsg->fAge );
}
break;
case NET_MSG_GCTRL_DROP_PC:
{
GLMSG::SNETDROP_PC *pNetMsg = (GLMSG::SNETDROP_PC*) nmg;
SDROP_CHAR &sDropChar = pNetMsg->Data;
if ( [Link] == m_pLandMClient->GetMapID() )
{
if ( [Link] == GETMYGAEAID() )
{
CDebugSet::ToListView ( "[ERROR] Drop Char : %s, %d �
�̵��� ���ڱ��ڽ.", [Link], [Link] );
}
else
{
//CDebugSet::ToListView ( "Drop Char : %s, %d",
[Link], [Link] );
m_pLandMClient->DropChar ( &sDropChar );
}
}
else
{
CDebugSet::ToListView ( "[Link] !=
m_pLandMClient->GetMapID()" );
}
}
break;
case NET_MSG_GCTRL_DROP_CROW:
{
GLMSG::SNETDROP_CROW *pNetMsg = (GLMSG::SNETDROP_CROW*) nmg;
SDROP_CROW &sDropCrow = pNetMsg->Data;
if ( [Link] == m_pLandMClient->GetMapID() )
{
//CDebugSet::ToListView ( "Drop Crow : [%d,%d], GLOB ID
%d",
// [Link],
[Link], [Link]);
m_pLandMClient->DropCrow ( &sDropCrow );
}
else
{
CDebugSet::ToListView ( "[Link] !=
m_pLandMClient->GetMapID()" );
}
}
break;
case NET_MSG_GCTRL_DROP_MATERIAL:
{
GLMSG::SNETDROP_MATERIAL *pNetMsg = (GLMSG::SNETDROP_MATERIAL*)
nmg;
SDROP_MATERIAL &sDropMaterial = pNetMsg->Data;
if ( [Link] == m_pLandMClient->GetMapID() )
{
m_pLandMClient->DropMaterial ( &sDropMaterial );
}
else
{
CDebugSet::ToListView ( "[Link] !=
m_pLandMClient->GetMapID()" );
}
}
break;
case NET_MSG_GCTRL_CHANGE_NAMEMAP:
{
GLMSG::SNETPC_CHANGE_NAMEMAP *pNetMsg =
(GLMSG::SNETPC_CHANGE_NAMEMAP*) nmg;
m_pLandMClient->ChangeCharMap ( pNetMsg->szOldName, pNetMsg-
>szNewName );
}
break;
case NET_MSG_AT_SLOTEVENT_SHUFFLE:
{
m_Character.MsgProcess ( nmg );
}
break;
case NET_MSG_ALLIANCE_BATTLE_BEGIN:
{
GLMSG::SNET_ALLIANCE_BATTLE_BEGIN *pNetMsg1 =
(GLMSG::SNET_ALLIANCE_BATTLE_BEGIN*) nmg;
[Link] ( ID2SERVERTEXT("ALLIANCE_BATTLE_BEGIN"),
pNetMsg1->szParty1, pNetMsg1->szParty2 );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_ALLIANCE_BATTLE_BEGIN_REFUSE:
{
GLMSG::SNET_ALLIANCE_BATTLE_BEGIN_REFUSE *pNetMsg2 =
(GLMSG::SNET_ALLIANCE_BATTLE_BEGIN_REFUSE*) nmg;
[Link] ( ID2SERVERTEXT("ALLIANCE_BATTLE_BEGIN_REFUSE"),
pNetMsg2->szParty1, pNetMsg2->szParty2 );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_ALLIANCE_BATTLE_OVER_ARMISTICE:
{
GLMSG::SNET_ALLIANCE_BATTLE_OVER_ARMISTICE *pNetMsg3 =
(GLMSG::SNET_ALLIANCE_BATTLE_OVER_ARMISTICE*) nmg;
[Link] ( ID2SERVERTEXT("ALLIANCE_BATTLE_OVER_ARMISTICE"),
pNetMsg3->szParty1, pNetMsg3->szParty2 );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_ALLIANCE_BATTLE_OVER_ARMISTICE_RESULT:
{
GLMSG::SNET_ALLIANCE_BATTLE_OVER_ARMISTICE_RESULT *pNetMsg4 =
(GLMSG::SNET_ALLIANCE_BATTLE_OVER_ARMISTICE_RESULT*) nmg;
[Link]
( ID2SERVERTEXT("ALLIANCE_BATTLE_OVER_ARMISTICE_RESULT"),
pNetMsg4->dwRes1, pNetMsg4->dwRes1 );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_ALLIANCE_BATTLE_OVER_DRAW:
{
GLMSG::SNET_ALLIANCE_BATTLE_OVER_DRAW *pNetMsg5 =
(GLMSG::SNET_ALLIANCE_BATTLE_OVER_DRAW*) nmg;
[Link] ( ID2SERVERTEXT("ALLIANCE_BATTLE_OVER_DRAW"),
pNetMsg5->szParty1, pNetMsg5->szParty2 );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_ALLIANCE_BATTLE_OVER_SUBMISSION:
{
GLMSG::SNET_ALLIANCE_BATTLE_OVER_SUBMISSION *pNetMsg6 =
(GLMSG::SNET_ALLIANCE_BATTLE_OVER_SUBMISSION*) nmg;
[Link]
( ID2SERVERTEXT("ALLIANCE_BATTLE_OVER_SUBMISSION"),
pNetMsg6->szParty1, pNetMsg6->szParty2 );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_ALLIANCE_BATTLE_OVER_WIN:
{
GLMSG::SNET_ALLIANCE_BATTLE_OVER_WIN *pNetMsg7 =
(GLMSG::SNET_ALLIANCE_BATTLE_OVER_WIN*) nmg;
[Link] ( ID2SERVERTEXT("ALLIANCE_BATTLE_OVER_WIN"),
pNetMsg7->szParty1, pNetMsg7->szParty2 );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_ALLIANCE_BATTLE_RESULT:
{
GLMSG::SNET_ALLIANCE_BATTLE_RESULT *pNetMsg8 =
(GLMSG::SNET_ALLIANCE_BATTLE_RESULT*) nmg;
[Link] ( ID2SERVERTEXT("ALLIANCE_BATTLE_RESULT"),
pNetMsg8->szString1, pNetMsg8->dwWinner, pNetMsg8->dwLose,
pNetMsg8->dwDraw );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_CLUB_BATTLE_BEGIN:
{
GLMSG::SNET_CLUB_BATTLE_BEGIN *pNetMsg9 =
(GLMSG::SNET_CLUB_BATTLE_BEGIN*) nmg;
[Link] ( ID2SERVERTEXT("CLUB_BATTLE_BEGIN"),
pNetMsg9->szGuild1, pNetMsg9->szGuild2 );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_CLUB_BATTLE_BEGIN_REFUSE:
{
GLMSG::SNET_CLUB_BATTLE_BEGIN_REFUSE *pNetMsg10 =
(GLMSG::SNET_CLUB_BATTLE_BEGIN_REFUSE*) nmg;
[Link] ( ID2GAMEINTEXT("CLUB_BATTLE_BEGIN_REFUSE"),
pNetMsg10->szGuild1, pNetMsg10->szGuild2 );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_CLUB_BATTLE_OVER_ARMISTICE:
{
GLMSG::SNET_CLUB_BATTLE_OVER_ARMISTICE *pNetMsg11 =
(GLMSG::SNET_CLUB_BATTLE_OVER_ARMISTICE*) nmg;
[Link] ( ID2SERVERTEXT("CLUB_BATTLE_OVER_ARMISTICE"),
pNetMsg11->szGuild1, pNetMsg11->szGuild2 );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_CLUB_BATTLE_OVER_ARMISTICE_RESULT:
{
GLMSG::SNET_CLUB_BATTLE_OVER_ARMISTICE_RESULT *pNetMsg12 =
(GLMSG::SNET_CLUB_BATTLE_OVER_ARMISTICE_RESULT*) nmg;
[Link]
( ID2SERVERTEXT("CLUB_BATTLE_OVER_ARMISTICE_RESULT"),
pNetMsg12->dwRes1, pNetMsg12->dwRes2 );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_CLUB_BATTLE_OVER_SUBMISSION:
{
GLMSG::SNET_CLUB_BATTLE_OVER_SUBMISSION *pNetMsg13 =
(GLMSG::SNET_CLUB_BATTLE_OVER_SUBMISSION*) nmg;
[Link] ( ID2SERVERTEXT("CLUB_BATTLE_OVER_SUBMISSION"),
pNetMsg13->szGuild1, pNetMsg13->szGuild2 );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_CLUB_BATTLE_OVER_WIN:
{
GLMSG::SNET_CLUB_BATTLE_OVER_WIN *pNetMsg14 =
(GLMSG::SNET_CLUB_BATTLE_OVER_WIN*) nmg;
[Link] ( ID2SERVERTEXT("CLUB_BATTLE_OVER_WIN"),
pNetMsg14->szGuild1, pNetMsg14->szGuild2 );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_CLUB_BATTLE_RESULT:
{
GLMSG::SNET_CLUB_BATTLE_RESULT *pNetMsg15 =
(GLMSG::SNET_CLUB_BATTLE_RESULT*) nmg;
[Link] ( ID2SERVERTEXT("CLUB_BATTLE_RESULT"),
pNetMsg15->szString1, pNetMsg15->dwWin, pNetMsg15->dwLose,
pNetMsg15->dwDraw );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_EMCONFRONT_END_CDRAWN:
{
GLMSG::SNET_EMCONFRONT_END_CDRAWN *pNetMsg16 =
(GLMSG::SNET_EMCONFRONT_END_CDRAWN*) nmg;
[Link] ( ID2GAMEINTEXT("EMCONFRONT_END_CDRAWN"),
pNetMsg16->szMapName, pNetMsg16->szGuild1, pNetMsg16-
>szGuild2 );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_EMCONFRONT_END_CWIN:
{
GLMSG::SNET_EMCONFRONT_END_CWIN *pNetMsg17 =
(GLMSG::SNET_EMCONFRONT_END_CWIN*) nmg;
[Link] ( ID2GAMEINTEXT("EMCONFRONT_END_CWIN"),
pNetMsg17->szMapName, pNetMsg17->szGuild1, pNetMsg17-
>szGuild2, pNetMsg17->szWinner );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_EMCONFRONT_END_PDRAWN:
{
GLMSG::SNET_EMCONFRONT_END_PDRAWN *pNetMsg18 =
(GLMSG::SNET_EMCONFRONT_END_PDRAWN*) nmg;
[Link] ( ID2GAMEINTEXT("EMCONFRONT_END_PDRAWN"),
pNetMsg18->szMapName, pNetMsg18->szGuild1, pNetMsg18-
>szGuild2 );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_EMCONFRONT_END_PWIN:
{
GLMSG::SNET_EMCONFRONT_END_PWIN *pNetMsg19 =
(GLMSG::SNET_EMCONFRONT_END_PWIN*) nmg;
[Link] ( ID2GAMEINTEXT("EMCONFRONT_END_PWIN"),
pNetMsg19->szMapName, pNetMsg19->szGuild1, pNetMsg19-
>szGuild2, pNetMsg19->szWinner );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_EMCONFRONT_START_PARTY:
{
GLMSG::SNET_EMCONFRONT_START_PARTY *pNetMsg20 =
(GLMSG::SNET_EMCONFRONT_START_PARTY*) nmg;
[Link] ( ID2GAMEINTEXT("EMCONFRONT_START_PARTY"),
pNetMsg20->szMapName, pNetMsg20->szGuild1, pNetMsg20-
>szGuild2 );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_EMCROWACT_KNOCK:
{
GLMSG::SNET_EMCROWACT_KNOCK *pNetMsg21 =
(GLMSG::SNET_EMCROWACT_KNOCK*) nmg;
[Link] ( ID2GAMEINTEXT("EMGUIDCLUB_CERTIFIED"),
pNetMsg23->szGuildName, pNetMsg23->szMapName );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
//located @ innerinterfaceModalMsg
/*case NET_MSG_GBR_UPGRADE_SUCCESS_NOTIFY:
{
GLMSG::SNET_GBR_UPGRADE_SUCCESS_NOTIFY *pNetMsg24 =
(GLMSG::SNET_GBR_UPGRADE_SUCCESS_NOTIFY*) nmg;
[Link] ( ID2GAMEINTEXT("GBR_UPGRADE_SUCCESS_NOTIFY"),
pNetMsg24->szCharName, pNetMsg24->szItemName, pNetMsg24-
>dwUpgrade, pNetMsg24->szUsedItem );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;*/
case NET_MSG_BRIGHT_EVENT_MSG:
{
GLMSG::SNET_BRIGHT_EVENT_MSG *pNetMsg25 =
(GLMSG::SNET_BRIGHT_EVENT_MSG*) nmg;
[Link] ( ID2GAMEINTEXT("BRIGHT_EVENT_MSG"));
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
case NET_MSG_CLUB_BATTLE_OVER_DRAW:
{
GLMSG::SNET_CLUB_BATTLE_OVER_DRAW *pNetMsg26 =
(GLMSG::SNET_CLUB_BATTLE_OVER_DRAW*) nmg;
[Link] ( ID2SERVERTEXT("CLUB_BATTLE_OVER_DRAW"),
pNetMsg26->szGuild1, pNetMsg26->szGuild2 );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_CTRL_GLOBAL, "", strTEXT );
}
break;
// pc client����.
//
case NET_MSG_GCTRL_MOVESTATE_BRD:
case NET_MSG_GCTRL_JUMP_POS_BRD:
case NET_MSG_GCTRL_GOTO_BRD:
case NET_MSG_GCTRL_ATTACK_BRD:
case NET_MSG_GCTRL_ATTACK_CANCEL_BRD:
case NET_MSG_GCTRL_ATTACK_AVOID_BRD:
case NET_MSG_GCTRL_ATTACK_DAMAGE_BRD:
case NET_MSG_GCTRL_PUTON_RELEASE_BRD:
case NET_MSG_GCTRL_PUTON_UPDATE_BRD:
case NET_MSG_GCTRL_PUTON_CHANGE_BRD:
case NET_MSG_GCTRL_REQ_LEVELUP_BRD:
case NET_MSG_GCTRL_CONFRONT_END2_CLT_BRD:
case NET_MSG_GCTRL_UPDATE_STATE_BRD:
case NET_MSG_GCTRL_PARTY_BRD:
case NET_MSG_GCTRL_UPDATE_PASSIVE_BRD:
case NET_MSG_GCTRL_UPDATE_FLAGS:
case NET_MSG_GCTRL_REQ_GESTURE_BRD:
case NET_MSG_GCTRL_PMARKET_OPEN_BRD:
case NET_MSG_GCTRL_PMARKET_CLOSE_BRD:
case NET_MSG_GCTRL_PMARKET_ITEM_INFO_BRD:
case NET_MSG_GCTRL_PMARKET_ITEM_UPDATE_BRD:
case NET_MSG_GCTRL_CLUB_INFO_BRD:
case NET_MSG_GCTRL_CLUB_INFO_MARK_BRD:
case NET_MSG_GCTRL_CLUB_INFO_NICK_BRD:
case NET_MSG_GCTRL_CLUB_DEL_BRD:
case NET_MSG_GCTRL_CLUB_AUTHORITY_BRD:
case NET_MSG_GCTRL_UPDATE_BRIGHT_BRD:
case NET_MSG_GCTRL_INVEN_HAIR_CHANGE_BRD:
case NET_MSG_GCTRL_INVEN_HAIRCOLOR_CHANGE_BRD:
case NET_MSG_GCTRL_INVEN_FACE_CHANGE_BRD:
case NET_MSG_GCTRL_INVEN_RENAME_BRD:
case NET_MSG_GCTRL_QITEMFACT_BRD:
case NET_MSG_GCTRL_QITEMFACT_END_BRD:
case NET_MSG_GCTRL_PKCOMBO_BRD:
case NET_MSG_GCTRL_PKCOMBO_END_BRD:
case NET_MSG_GCTRL_EVENTFACT_BRD:
case NET_MSG_GCTRL_EVENTFACT_END_BRD:
case NET_MSG_GCTRL_ACTIVE_VEHICLE_BRD:
case NET_MSG_GCTRL_PASSENGER_BRD:
case NET_MSG_GCTRL_GET_VEHICLE_BRD:
case NET_MSG_GCTRL_UNGET_VEHICLE_BRD:
case NET_MSG_VEHICLE_ACCESSORY_DELETE_BRD:
case NET_MSG_VEHICLE_REQ_SLOT_EX_HOLD_BRD:
case NET_MSG_VEHICLE_REMOVE_SLOTITEM_BRD:
case NET_MSG_GCTRL_ITEMSHOPOPEN_BRD:
case NET_MSG_GCTRL_SKILL_CANCEL_BRD:
case NET_MSG_REQ_GATHERING_BRD:
case NET_MSG_REQ_GATHERING_RESULT_BRD:
case NET_MSG_REQ_GATHERING_CANCEL_BRD:
case NET_MSG_GCTRL_LANDEFFECT:
if ( pNetMsg->dwGaeaID==m_Character.m_dwGaeaID )
{
m_Character.MsgProcess ( nmg );
}
else
{
PGLCHARCLIENT pChar = m_pLandMClient->GetChar ( pNetMsg-
>dwGaeaID );
if ( !pChar )
{
CDebugSet::ToListView ( "[PGLCHARCLIENT NULL] ���
PC�� ��� �� � � ��. gaeaid %d", pNetMsg->dwGaeaID );
return;
}
pChar->MsgProcess ( nmg );
}
}
break;
case NET_MSG_GCTRL_UPDATE_STATE:
case NET_MSG_GCTRL_UPDATE_EXP:
case NET_MSG_GCTRL_UPDATE_MONEY:
case NET_MSG_GCTRL_UPDATE_SP:
case NET_MSG_GCTRL_UPDATE_LP:
case NET_MSG_GCTRL_UPDATE_SKP:
case NET_MSG_GCTRL_UPDATE_BRIGHT:
case NET_MSG_GCTRL_UPDATE_STATS:
case NET_MSG_GCTRL_PICKUP_MONEY:
case NET_MSG_GCTRL_PICKUP_ITEM:
case NET_MSG_GCTRL_REQ_HOLD_FB:
case NET_MSG_GCTRL_INVEN_INSERT:
case NET_MSG_GCTRL_REQ_VNINVEN_TO_INVEN_FB:
case NET_MSG_GCTRL_INVEN_DELETE:
case NET_MSG_GCTRL_INVEN_DEL_INSERT:
case NET_MSG_GCTRL_ITEM_COOLTIME_UPDATE:
case NET_MSG_GCTRL_ITEM_COOLTIME_ERROR:
case NET_MSG_GCTRL_PUTON_RELEASE:
case NET_MSG_GCTRL_PUTON_UPDATE:
case NET_MSG_GCTRL_PUTON_CHANGE:
case NET_MSG_GCTRL_REQ_SKILLQ_FB:
case NET_MSG_GCTRL_REQ_ACTIONQ_FB:
case NET_MSG_GCTRL_ATTACK_AVOID:
case NET_MSG_GCTRL_ATTACK_DAMAGE:
case NET_MSG_GCTRL_DEFENSE_SKILL_ACTIVE:
case NET_MSG_GCTRL_SUMMON_ATTACK_AVOID:
case NET_MSG_GCTRL_SUMMON_ATTACK_DAMAGE:
case NET_MSG_GCTRL_REQ_LEVELUP_FB:
case NET_MSG_GCTRL_REQ_STATSUP_FB:
case NET_MSG_GCTRL_REQ_LEARNSKILL_FB:
case NET_MSG_GCTRL_REQ_LEARNSKILL_NONINVEN_FB: //Activate Skill w/o Scroll -
NaJ May 08, 2015
case NET_MSG_GCTRL_REQ_SKILLUP_FB:
case NET_MSG_GCTRL_REQ_STATSUPCMD_FB:
case NET_MSG_GCTRL_INVEN_DRUG_UPDATE:
case NET_MSG_GCTRL_PUTON_DRUG_UPDATE:
case NET_MSG_GCTRL_REQ_SKILL_FB:
case NET_MSG_REQ_SKILL_REVIVEL_FAILED:
case NET_MSG_GCTRL_SKILLCONSUME_FB:
case NET_QBOX_OPTION_MEMBER:
case NET_MSG_GCTRL_REQ_GETSTORAGE_FB:
case NET_MSG_GCTRL_REQ_GETSTORAGE_ITEM:
case NET_MSG_GCTRL_STORAGE_INSERT:
case NET_MSG_GCTRL_STORAGE_DELETE:
case NET_MSG_GCTRL_STORAGE_ITEM_UPDATE:
case NET_MSG_GCTRL_STORAGE_DEL_INSERT:
case NET_MSG_GCTRL_STORAGE_DRUG_UPDATE:
case NET_MSG_GCTRL_STORAGE_UPDATE_MONEY:
case NET_MSG_GCTRL_TRADE_FB:
case NET_MSG_GCTRL_TRADE_AGREE_TAR:
case NET_MSG_GCTRL_TRADE_LOCK_TAR: /*trade lock, Juver, 2018/01/02 */
case NET_MSG_GCTRL_TRADE_ITEM_REGIST_TAR:
case NET_MSG_GCTRL_TRADE_ITEM_REMOVE_TAR:
case NET_MSG_GCTRL_TRADE_MONEY_TAR:
case NET_MSG_GCTRL_TRADE_COMPLETE_TAR:
case NET_MSG_GCTRL_TRADE_CANCEL_TAR:
case NET_MSG_GCTRL_PASSENGER_FB:
case NET_MSG_GCTRL_PASSENGER_CANCEL_TAR:
case NET_MSG_GCTRL_INVEN_ITEM_UPDATE:
case NET_MSG_GCTRL_INVEN_GRINDING_FB:
case NET_MSG_GCTRL_INVEN_BOXOPEN_FB:
case NET_MSG_GCTRL_INVEN_DISGUISE_FB:
case NET_MSG_GCTRL_INVEN_CLEANSER_FB:
case NET_MSG_GCTRL_INVEN_DEL_ITEM_TIMELMT:
case NET_MSG_GCTRL_CHARGED_ITEM_GET_FB:
case NET_MSG_GCTRL_CHARGED_ITEM_DEL:
case NET_MSG_GCTRL_INVEN_RESET_SKST_FB:
case NET_MSG_GCTRL_GET_CHARGEDITEM_FROMDB_FB:
case NET_MSG_GCTRL_GET_ITEMSHOP_FROMDB_FB:/*ITEMSHOP 12-15-2020*/
case NET_MSG_GCTRL_INVEN_HAIR_CHANGE_FB:
case NET_MSG_GCTRL_INVEN_HAIRCOLOR_CHANGE_FB:
case NET_MSG_GCTRL_INVEN_FACE_CHANGE_FB:
case NET_MSG_GCTRL_INVEN_GENDER_CHANGE_FB:
case NET_MSG_GCTRL_INVEN_RENAME_FB:
case NET_MSG_GCTRL_REGEN_GATE_FB:
case NET_MSG_GCTRL_CONFRONT_FB:
case NET_MSG_GCTRL_CONFRONT_START2_CLT:
case NET_MSG_GCTRL_CONFRONT_FIGHT2_CLT:
case NET_MSG_GCTRL_CONFRONT_END2_CLT:
case NET_MSG_GCTRL_CONFRONTPTY_START2_CLT:
case NET_MSG_GCTRL_CONFRONTPTY_END2_CLT:
case NET_MSG_GCTRL_CONFRONTCLB_START2_CLT:
case NET_MSG_GCTRL_CONFRONTCLB_END2_CLT:
case NET_MSG_GCTRL_CONFRONT_RECOVE:
case NET_MSG_GCTRL_CURE_FB:
case NET_MSG_GCTRL_CHARRESET_FB:
case NET_MSG_GCTRL_INVEN_CHARCARD_FB:
case NET_MSG_GCTRL_INVEN_STORAGECARD_FB:
case NET_MSG_GCTRL_INVEN_STORAGEOPEN_FB:
case NET_MSG_GCTRL_INVEN_REMODELOPEN_FB:
case NET_MSG_GCTRL_INVEN_GARBAGEOPEN_FB:
case NET_MSG_GCTRL_GARBAGE_RESULT_FB:
case NET_MSG_GCTRL_INVEN_PREMIUMSET_FB:
case NET_MSG_CHAT_LOUDSPEAKER_FB:
case NET_MSG_GCTRL_INVEN_INVENLINE_FB:
case NET_MSG_GCTRL_INVEN_RANDOMBOXOPEN_FB:
case NET_MSG_GCTRL_INVEN_DISJUNCTION_FB:
case NET_MSG_GCTRL_PREMIUM_STATE:
case NET_MSG_GCTRL_STORAGE_STATE:
case NET_MSG_GCTRL_REVIVE_FB:
case NET_MSG_GCTRL_GETEXP_RECOVERY_FB:
case NET_MSG_GCTRL_GETEXP_RECOVERY_NPC_FB:
case NET_MSG_GCTRL_RECOVERY_FB:
case NET_MSG_GCTRL_RECOVERY_NPC_FB:
case NET_MSG_GCTRL_FIRECRACKER_FB:
case NET_MSG_GCTRL_FIRECRACKER_BRD:
case NET_MSG_GM_MOVE2GATE_FB:
case NET_MSG_MOVE2MAPPOS_FB:
case NET_MSG_GCTRL_2_FRIEND_FB:
case NET_MSG_GM_SHOWMETHEMONEY:
case NET_MSG_GCTRL_NPC_ITEM_TRADE_FB:
case NET_MSG_GCTRL_REQ_QUEST_START_FB:
case NET_MSG_GCTRL_QUEST_PROG_STREAM:
case NET_MSG_GCTRL_QUEST_PROG_DEL:
case NET_MSG_GCTRL_QUEST_PROG_STEP_STREAM:
case NET_MSG_GCTRL_QUEST_PROG_INVEN:
case NET_MSG_GCTRL_QUEST_END_STREAM:
case NET_MSG_GCTRL_QUEST_END_DEL:
case NET_MSG_GCTRL_QUEST_PROG_NPCTALK_FB:
case NET_MSG_GCTRL_QUEST_PROG_MOBKILL:
case NET_MSG_GCTRL_QUEST_PARTY_PROG_MOBKILL:
case NET_MSG_GCTRL_QUEST_PROG_QITEM:
case NET_MSG_GCTRL_QUEST_PARTY_PROG_QITEM:
case NET_MSG_GCTRL_QUEST_PROG_REACHZONE:
case NET_MSG_GCTRL_QUEST_PROG_TIMEOVER:
case NET_MSG_GCTRL_QUEST_PROG_TIME:
case NET_MSG_GCTRL_QUEST_PROG_NONDIE:
case NET_MSG_GCTRL_QUEST_PROG_LEAVEMAP:
case NET_MSG_GCTRL_QUEST_PROG_INVEN_INSERT:
case NET_MSG_GCTRL_QUEST_PROG_INVEN_DELETE:
case NET_MSG_GCTRL_QUEST_PROG_INVEN_TURN:
case NET_MSG_GCTRL_QUEST_PROG_INVEN_PICKUP:
case NET_MSG_GCTRL_QUEST_COMPLETE_FB:
case NET_MSG_GCTRL_PMARKET_TITLE_FB:
case NET_MSG_GCTRL_PMARKET_REGITEM_FB:
case NET_MSG_GCTRL_PMARKET_DISITEM_FB:
case NET_MSG_GCTRL_PMARKET_OPEN_FB:
case NET_MSG_GCTRL_PMARKET_BUY_FB:
case NET_MSG_GCTRL_CLUB_INFO_2CLT:
case NET_MSG_GCTRL_CLUB_DEL_2CLT:
case NET_MSG_GCTRL_CLUB_INFO_DISSOLUTION:
case NET_MSG_GCTRL_CLUB_MEMBER_2CLT:
case NET_MSG_GCTRL_CLUB_NEW_FB:
case NET_MSG_GCTRL_CLUB_DISSOLUTION_FB:
case NET_MSG_GCTRL_CLUB_MEMBER_REQ_ASK:
case NET_MSG_GCTRL_CLUB_MEMBER_REQ_FB:
case NET_MSG_GCTRL_CLUB_MEMBER_DEL_2CLT:
case NET_MSG_GCTRL_CLUB_MEMBER_DEL_FB:
case NET_MSG_GCTRL_CLUB_MEMBER_SECEDE_FB:
case NET_MSG_GCTRL_CLUB_AUTHORITY_REQ_ASK:
case NET_MSG_GCTRL_CLUB_AUTHORITY_REQ_FB:
case NET_MSG_GCTRL_CLUB_AUTHORITY_CLT:
case NET_MSG_GCTRL_CLUB_MARK_CHANGE_2CLT:
case NET_MSG_GCTRL_CLUB_RANK_2CLT:
case NET_MSG_GCTRL_CLUB_RANK_FB:
case NET_MSG_GCTRL_CLUB_MEMBER_NICK_FB:
case NET_MSG_GCTRL_CLUB_MEMBER_STATE:
case NET_MSG_GCTRL_CLUB_MEMBER_POS:
case NET_MSG_GCTRL_CONFRONT_END2_CLT_MBR:
case NET_MSG_GCTRL_CLUB_CD_CERTIFY_FB:
case NET_MSG_GCTRL_CLUB_COMMISSION_FB:
case NET_MSG_GCTRL_CLUB_STORAGE_RESET:
case NET_MSG_GCTRL_CLUB_GETSTORAGE_ITEM:
case NET_MSG_GCTRL_CLUB_STORAGE_INSERT:
case NET_MSG_GCTRL_CLUB_STORAGE_DELETE:
case NET_MSG_GCTRL_CLUB_STORAGE_DEL_INS:
case NET_MSG_GCTRL_CLUB_STORAGE_UPDATE_ITEM:
case NET_MSG_GCTRL_CLUB_STORAGE_UPDATE_MONEY:
case NET_MSG_GCTRL_CLUB_NOTICE_FB:
case NET_MSG_GCTRL_CLUB_NOTICE_CLT:
case NET_MSG_GCTRL_CLUB_SUBMASTER_FB:
case NET_MSG_GCTRL_CLUB_SUBMASTER_BRD:
case NET_MSG_GCTRL_CLUB_ALLIANCE_REQ_ASK:
case NET_MSG_GCTRL_CLUB_ALLIANCE_ADD_CLT:
case NET_MSG_GCTRL_CLUB_ALLIANCE_DEL_CLT:
case NET_MSG_GCTRL_CLUB_ALLIANCE_DIS_CLT:
case NET_MSG_GCTRL_CLUB_ALLIANCE_REQ_FB:
case NET_MSG_GCTRL_CLUB_ALLIANCE_DEL_FB:
case NET_MSG_GCTRL_CLUB_ALLIANCE_SEC_FB:
case NET_MSG_GCTRL_CLUB_ALLIANCE_DIS_FB:
case NET_MSG_GCTRL_CLUB_BATTLE_REQ_FB:
case NET_MSG_GCTRL_CLUB_BATTLE_REQ_ASK:
case NET_MSG_GCTRL_CLUB_BATTLE_BEGIN_CLT:
case NET_MSG_GCTRL_CLUB_BATTLE_BEGIN_CLT2:
case NET_MSG_GCTRL_CLUB_BATTLE_ARMISTICE_REQ_FB:
case NET_MSG_GCTRL_CLUB_BATTLE_ARMISTICE_REQ_ASK:
case NET_MSG_GCTRL_CLUB_BATTLE_OVER_CLT:
case NET_MSG_GCTRL_CLUB_BATTLE_SUBMISSION_REQ_FB:
case NET_MSG_GCTRL_CLUB_BATTLE_KILL_UPDATE:
case NET_MSG_GCTRL_CLUB_BATTLE_POINT_UPDATE:
case NET_MSG_GCTRL_ALLIANCE_BATTLE_REQ_FB:
case NET_MSG_GCTRL_ALLIANCE_BATTLE_REQ_ASK:
case NET_MSG_GCTRL_ALLIANCE_BATTLE_ARMISTICE_REQ_FB:
case NET_MSG_GCTRL_ALLIANCE_BATTLE_ARMISTICE_REQ_ASK:
case NET_MSG_GCTRL_ALLIANCE_BATTLE_SUBMISSION_REQ_FB:
case NET_MSG_GCTRL_PLAYERKILLING_ADD:
case NET_MSG_GCTRL_PLAYERKILLING_DEL:
case NET_MSG_GCTRL_CLUB_MBR_RENAME_CLT:
case NET_MSG_GCTRL_UPDATE_LASTCALL:
case NET_MSG_GCTRL_UPDATE_STARTCALL:
case NET_MSG_SMS_PHONE_NUMBER_FB:
case NET_MSG_SMS_SEND_FB:
case NET_MSG_GM_LIMIT_EVENT_APPLY_START:
case NET_MSG_GM_LIMIT_EVENT_APPLY_END:
case NET_MSG_GM_LIMIT_EVENT_BEGIN_FB:
case NET_MSG_GM_LIMIT_EVENT_END_FB:
case NET_MSG_GCTRL_PMARKET_SEARCH_ITEM_RESULT:
case NET_MSG_GCTRL_EVENTFACT_INFO:
case NET_MSG_GM_LIMIT_EVENT_TIME_REQ_FB:
case NET_MSG_GCTRL_ACTIVE_VEHICLE_FB:
case NET_MSG_GCTRL_GET_VEHICLE_FB:
case NET_MSG_GCTRL_UNGET_VEHICLE_FB:
case NET_MSG_VEHICLE_REQ_SLOT_EX_HOLD_FB:
case NET_MSG_VEHICLE_REQ_HOLD_TO_SLOT_FB:
case NET_MSG_VEHICLE_REQ_SLOT_TO_HOLD_FB:
case NET_MSG_VEHICLE_REMOVE_SLOTITEM_FB:
case NET_MSG_VEHICLE_ACCESSORY_DELETE:
case NET_MSG_VEHICLE_UPDATE_CLIENT_BATTERY:
case NET_MSG_VEHICLE_REQ_GIVE_BATTERY_FB:
case NET_MSG_VEHICLE_REQ_ITEM_INFO_FB:
case NET_MSG_UPDATE_TRACING_CHARACTER:
case NET_MSG_REQ_ATTENDLIST_FB:
case NET_MSG_REQ_ATTENDANCE_FB:
case NET_MSG_REQ_ATTEND_REWARD_CLT:
case NET_MSG_GCTRL_NPC_RECALL_FB:
case NET_MSG_GCTRL_INVEN_ITEM_MIX_FB:
case NET_MSG_REQ_GATHERING_FB:
case NET_MSG_REQ_GATHERING_RESULT:
case NET_MSG_GCTRL_REQ_AUTOSYSTEM_FB:
/////////////////////////////////////////////////////////////////////////////
// LG-7 ItemMall
case NET_MSG_GCTRL_UPDATE_VIPPOINT:
case NET_MSG_GCTRL_REQ_IM_INFO_1_FB:
case NET_MSG_GCTRL_REQ_IM_INFO_2_FB:
case NET_MSG_GCTRL_REQ_IM_INFO_3_FB:
case NET_MSG_GCTRL_REQ_IM_INFO_4_FB:
case NET_MSG_GCTRL_REQ_IM_INFO_5_FB:
case NET_MSG_GCTRL_REQ_PURCHASE_IM:
/////////////////////////////////////////////////////////////////////////////
//Added UpdateMoney
case NET_MSG_GCTRL_UPDATE_MONEYTYPE:
/*itemfood system, Juver, 2017/05/25 */
case NET_MSG_GCTRL_INVEN_CONSUME_FOOD_FB:
case NET_MSG_GCTRL_INVEN_UNLOCK_FOOD_FB:
case NET_MSG_AT_SLOTEVENT_SHOUTNREWARD:
case NET_MSG_GCTRL_ACTION_BRD:
case NET_MSG_GCTRL_SKILLFACT_BRD:
case NET_MSG_GCTRL_SKILLHOLD_BRD:
case NET_MSG_GCTRL_STATEBLOW_BRD:
case NET_MSG_GCTRL_CURESTATEBLOW_BRD:
case NET_MSG_GCTRL_REQ_SKILL_BRD:
case NET_MSG_GCTRL_SKILLHOLD_RS_BRD:
case NET_MSG_GCTRL_SKILLHOLDEX_BRD:
case NET_MSG_GCTRL_PUSHPULL_BRD:
case NET_MSG_GCTRL_POSITIONCHK_BRD:
{
GLMSG::SNETCROW_BROAD *pNetMsg = (GLMSG::SNETCROW_BROAD *) nmg;
GLCOPY* pCopy = GetCopyActor ( pNetMsg->emCrow, pNetMsg->dwID );
if ( !pCopy ) return;
pCopy->MsgProcess ( nmg );
}
break;
case NET_MSG_GCTRL_CROW_MOVETO:
case NET_MSG_GCTRL_CROW_ATTACK:
case NET_MSG_GCTRL_CROW_AVOID:
case NET_MSG_GCTRL_CROW_DAMAGE:
case NET_MSG_GCTRL_CROW_SKILL:
{
GLMSG::SNETCROW *pNetMsg = (GLMSG::SNETCROW *) nmg;
PGLCROWCLIENT pGLCrow = m_pLandMClient->GetCrow ( pNetMsg-
>dwGlobID );
if ( !pGLCrow ) return;
pGLCrow->MsgProcess ( nmg );
}
break;
case NET_MSG_GCTRL_ETNRY_FAILED:
{
CInnerInterface::GetInstance().GetRequireCheck()-
>SetMapCheckType( EMMAPCHECK_ENTRYFAIL );
CInnerInterface::GetInstance().ShowGroupFocus ( MAP_REQUIRE_CHECK
);
}
break;
case NET_MSG_GCTRL_LIMITTIME_OVER:
{
GLMSG::SNETLIMITTIME_OVER *pNetMsg = (GLMSG::SNETLIMITTIME_OVER
*) nmg;
if( pNetMsg->nRemainTime != 0 )
{
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("LIMITTIME_REMAINTIME"), pNetMsg-
>nRemainTime );
}else{
CInnerInterface::GetInstance().GetRequireCheck()-
>SetMapCheckType( EMMAPCHECK_LIMITTIME );
CInnerInterface::GetInstance().ShowGroupFocus
( MAP_REQUIRE_CHECK );
}
}
break;
case NET_MSG_CYBERCAFECLASS_UPDATE:
{
GLMSG::SNET_CYBERCAFECLASS_UPDATE *pNetMsg =
(GLMSG::SNET_CYBERCAFECLASS_UPDATE *)nmg;
GetCharacter()->m_dwThaiCCafeClass = pNetMsg->dwCyberCafeClass;
GetCharacter()->m_nMyCCafeClass = pNetMsg-
>dwCyberCafeClass;
CInnerInterface::GetInstance().SetThaiCCafeClass( pNetMsg-
>dwCyberCafeClass );
}
break;
case NET_MSG_DROPCHAR_TOCHEATER:
{
GLMSG::SNET_DROPCHAR_TOCHEATER *pNetMsg =
(GLMSG::SNET_DROPCHAR_TOCHEATER *) nmg;
CInnerInterface::GetInstance().WARNING_MSG_ON();
switch ( pNetMsg->nCheatType )
{
case 1:
//
CInnerInterface::GetInstance().PrintMsgText( NS_UITEXTCOLOR::NEGATIVE,
ID2GAMEINTEXT("CHEAT_DETECTION_NOTICE_MULTIHIT"));
break;
case 2:
//
CInnerInterface::GetInstance().PrintMsgText( NS_UITEXTCOLOR::NEGATIVE,
ID2GAMEINTEXT("CHEAT_DETECTION_NOTICE_SELFBUFF"));
break;
case 3:
//
CInnerInterface::GetInstance().PrintMsgText( NS_UITEXTCOLOR::NEGATIVE,
ID2GAMEINTEXT("CHEAT_DETECTION_NOTICE_PARTYBUFF"));
break;
case 4:
//CInnerInterface::GetInstance().PrintMsgText( NS_UITEXTCOLOR::NEGATIVE,
"We've warned you already, yet you still persisted. You have been kicked out of the
game and won't be able to login for a few minutes due to auto potion usage.");
//
CInnerInterface::GetInstance().PrintMsgText( NS_UITEXTCOLOR::NEGATIVE, "We've
warned you already, yet you still persisted. You have been kicked out of the game
due to auto potion usage.");
break;
}
DxGlobalStage::GetInstance().GetNetClient()->CloseConnect();
}
break;
case NET_MSG_GM_EVENT_EXP_FB:
{
GLMSG::SNET_GM_EVENT_EXP_FB *pNetMsg =
(GLMSG::SNET_GM_EVENT_EXP_FB *) nmg;
if ( pNetMsg->bFAIL )
CInnerInterface::GetInstance().PrintConsoleText
( "Experience Event Start Failed! Set Proper Rate!" );
else
CInnerInterface::GetInstance().PrintConsoleText
( "Experience Event Start New Rate : %3.2f", pNetMsg->fRATE );
}break;
case NET_MSG_GM_EVENT_EXP_END_FB:
{
GLMSG::SNET_GM_EVENT_EXP_END_FB *pNetMsg =
(GLMSG::SNET_GM_EVENT_EXP_END_FB *) nmg;
CInnerInterface::GetInstance().PrintConsoleText ( "Experience
Event End! Restore to original Rate : %3.2f", pNetMsg->fRATE );
}break;
case NET_MSG_GM_EVENT_ITEM_GEN_FB:
{
GLMSG::SNET_GM_EVENT_ITEM_GEN_FB *pNetMsg =
(GLMSG::SNET_GM_EVENT_ITEM_GEN_FB *) nmg;
if ( pNetMsg->bFAIL )
CInnerInterface::GetInstance().PrintConsoleText ( "Item
Drop Rate Event Start Failed! Set Proper Rate!" );
else
CInnerInterface::GetInstance().PrintConsoleText ( "Item
Drop Rate Event Start New Rate : %3.2f", pNetMsg->fRATE );
}break;
case NET_MSG_GM_EVENT_ITEM_GEN_END_FB:
{
GLMSG::SNET_GM_EVENT_ITEM_GEN_END_FB *pNetMsg =
(GLMSG::SNET_GM_EVENT_ITEM_GEN_END_FB *) nmg;
CInnerInterface::GetInstance().PrintConsoleText ( "Item Drop
Event End! Restore to original Rate : %3.2f", pNetMsg->fRATE );
}break;
case NET_MSG_GM_EVENT_MONEY_GEN_FB:
{
GLMSG::SNET_GM_EVENT_MONEY_GEN_FB *pNetMsg =
(GLMSG::SNET_GM_EVENT_MONEY_GEN_FB *) nmg;
if ( pNetMsg->bFAIL )
CInnerInterface::GetInstance().PrintConsoleText ( "Money
Drop Rate Event Start Failed! Set Proper Rate!" );
else
CInnerInterface::GetInstance().PrintConsoleText ( "Money
Drop Rate Event Start New Rate : %3.2f", pNetMsg->fRATE );
}break;
case NET_MSG_GM_EVENT_MONEY_GEN_END_FB:
{
GLMSG::SNET_GM_EVENT_MONEY_GEN_END_FB *pNetMsg =
(GLMSG::SNET_GM_EVENT_MONEY_GEN_END_FB *) nmg;
CInnerInterface::GetInstance().PrintConsoleText ( "Money Drop
Event End! Restore to original Rate : %3.2f", pNetMsg->fRATE );
}break;
case NET_MSG_GM_BIGHEAD_BRD:
{
GLMSG::SNET_GM_BIGHEAD *pNetMsg = (GLMSG::SNET_GM_BIGHEAD *) nmg;
DxSkinAniControl::m_bBIGHEAD = pNetMsg->bBIGHEAD;
}
break;
case NET_MSG_GM_BIGHAND_BRD:
{
GLMSG::SNET_GM_BIGHAND *pNetMsg = (GLMSG::SNET_GM_BIGHAND *) nmg;
DxSkinAniControl::m_bBIGHAND = pNetMsg->bBIGHAND;
}
break;
case NET_MSG_GM_FREEPK_BRD:
{
// Ŭ���̾�Ʈ�� ���� ������ �ִ�ڵ� ��� �ٸ
GLMSG::SNET_GM_FREEPK_BRD *pNetMsg = (GLMSG::SNET_GM_FREEPK_BRD
*) nmg;
if ( pNetMsg->bSTATEUPDATE == false )
{
if ( pNetMsg->dwPKTIME != 0 )
{
m_bBRIGHTEVENT = true;
CInnerInterface::GetInstance().PrintConsoleText
( ID2GAMEINTEXT("BRIGHT_EVENT_START") );
}
else
{
m_bBRIGHTEVENT = false;
CInnerInterface::GetInstance().PrintConsoleText
( ID2GAMEINTEXT("BRIGHT_EVENT_END") );
case NET_MSG_GM_SHOP_INFO_FB:
{
GLMSG::SNET_GM_SHOP_INFO_FB *pNetMsg =
(GLMSG::SNET_GM_SHOP_INFO_FB *)nmg;
CTime curTime =
GLGaeaClient::GetInstance().GetCurrentTime();
FILE* fp = NULL;
fp = fopen( m_szShopInfoFile, "a+" );
if( fp )
{
if( pNetMsg->bSTATE == GLMSG::SNET_GM_SHOP_INFO_FB::FIRST )
{
if( pNetMsg->bBasicInfo )
{
char szHeader[] =
"UserNum,CharNum,ItemMid,ItemSid,Price\n";
fprintf( fp, szHeader );
}else{
char szHeader[] =
"UserNum,CharNum,ItemMid,ItemSid,Price,RanOptType1,RandValue1,RanOptType2,RandValue
2,RanOptType3,RandValue3,RanOptType4,RandValue4,DAMAGE,DEFENSE,RESIST_FIRE,RESIST_I
CE,RESIST_ELEC,RESIST_POISON,RESIST_SPIRIT\n";
fprintf( fp, szHeader );
fclose( fp );
}
}
break;
if( pNetMsg->dwPlayerNum != 0 )
CInnerInterface::GetInstance().PrintConsoleText ( "Player
Count : %d", pNetMsg->dwPlayerNum + 1 );
else
CInnerInterface::GetInstance().PrintConsoleText ( "%s :
charid = %d", pNetMsg->szCHARNAME, pNetMsg->dwCHARID );
}
break;
case NET_MSG_GM_VIEWWORKEVENT_FB:
{
GLMSG::SNET_GM_VIEWWORKEVENT_FB *pNetMsg =
(GLMSG::SNET_GM_VIEWWORKEVENT_FB *)nmg;
case NET_MSG_GCTRL_CLUB_MARK_INFO_FB:
{
GLMSG::SNET_CLUB_MARK_INFO_FB *pNetMsg =
(GLMSG::SNET_CLUB_MARK_INFO_FB *)nmg;
// Note : �̹
��� ���.
DWORD dwServerID = GLGaeaClient::GetInstance().GetCharacter()-
>m_dwServerID;
DxClubMan::GetInstance().SetClubData
( DxGlobalStage::GetInstance().GetD3dDevice(), dwServerID, pNetMsg->dwClubID,
pNetMsg->dwMarkVER, pNetMsg->aryMark );
}
break;
case NET_MSG_GCTRL_CLUB_BATTLE_START_BRD:
{
GLMSG::SNET_CLUB_BATTLE_START_BRD *pNetMsg =
(GLMSG::SNET_CLUB_BATTLE_START_BRD *)nmg;
if ( pNetMsg->nTIME==0 )
{
CInnerInterface::GetInstance().PrintConsoleTextDlg
( ID2GAMEINTEXT("CLUB_BATTLE_START"), pNetMsg->szName );
m_bCLUBBATTLE = true;
CMiniMap * pMiniMap =
CInnerInterface::GetInstance().GetMiniMap();
if( pMiniMap ) pMiniMap->StartClubTime();
}
else
{
CInnerInterface::GetInstance().PrintConsoleTextDlg
( ID2GAMEINTEXT("CLUB_BATTLE_MIN_START"), pNetMsg->szName, pNetMsg->nTIME );
}
}
break;
case NET_MSG_GCTRL_CLUB_DEATHMATCH_START_BRD:
{
GLMSG::SNET_CLUB_DEATHMATCH_START_BRD *pNetMsg =
(GLMSG::SNET_CLUB_DEATHMATCH_START_BRD *)nmg;
if ( pNetMsg->nTIME==0 )
{
CInnerInterface::GetInstance().PrintConsoleTextDlg
( ID2GAMEINTEXT("CLUB_DEATHMATCH_START"), pNetMsg->szName );
m_bClubDeathMatch = true;
CMiniMap * pMiniMap =
CInnerInterface::GetInstance().GetMiniMap();
if( pMiniMap ) pMiniMap->StartClubTime();
}
else
{
CInnerInterface::GetInstance().PrintConsoleTextDlg
( ID2GAMEINTEXT("CLUB_DEATHMATCH_MIN_START"), pNetMsg->szName, pNetMsg->nTIME );
}
}
break;
case NET_MSG_GCTRL_CLUB_DEATHMATCH_END_BRD:
{
GLMSG::SNET_CLUB_DEATHMATCH_END_BRD *pNetMsg =
(GLMSG::SNET_CLUB_DEATHMATCH_END_BRD *)nmg;
CInnerInterface::GetInstance().PrintConsoleTextDlg
( ID2GAMEINTEXT("CLUB_DEATHMATCH_END"), pNetMsg->szName, pNetMsg->szClubName );
m_bClubDeathMatch = false;
m_fClubDeathMatchTimer = 0.0f;
CMiniMap * pMiniMap =
CInnerInterface::GetInstance().GetMiniMap();
if( pMiniMap ) pMiniMap->EndClubTime();
case NET_MSG_GCTRL_CLUB_DEATHMATCH_REMAIN_BRD:
{
GLMSG::SNET_CLUB_DEATHMATCH_REMAIN_BRD *pNetMsg =
(GLMSG::SNET_CLUB_DEATHMATCH_REMAIN_BRD*)nmg;
m_fClubDeathMatchTimer = (float)pNetMsg->dwTime;
}
break;
case NET_MSG_GCTRL_CLUB_DEATHMATCH_POINT_UPDATE:
{
GLMSG::SNET_CLUB_DEATHMATCH_POINT_UPDATE *pNetMsg =
(GLMSG::SNET_CLUB_DEATHMATCH_POINT_UPDATE*)nmg;
if ( pNetMsg->bKillPoint ) m_sMyCdmRank.wKillNum++;
else m_sMyCdmRank.wDeathNum++;
// UI Refrash
CInnerInterface::GetInstance().VisibleCDMRanking(true);
CInnerInterface::GetInstance().RefreshCDMRanking();
}
break;
case NET_MSG_GCTRL_CLUB_DEATHMATCH_MYRANK_UPDATE:
{
GLMSG::SNET_CLUB_DEATHMATCH_MYRANK_UPDATE *pNetMsg =
(GLMSG::SNET_CLUB_DEATHMATCH_MYRANK_UPDATE*)nmg;
m_sMyCdmRank = pNetMsg->sMyCdmRank;
// UI Refrash �� ����
CInnerInterface::GetInstance().VisibleCDMRanking(true);
CInnerInterface::GetInstance().RefreshCDMRanking();
}
break;
case NET_MSG_GCTRL_CLUB_DEATHMATCH_RANKING_UPDATE:
{
GLMSG::SNET_CLUB_DEATHMATCH_RANKING_UPDATE *pNetMsg =
(GLMSG::SNET_CLUB_DEATHMATCH_RANKING_UPDATE*)nmg;
// UI Refrash �� ����
CInnerInterface::GetInstance().VisibleCDMRanking(true);
CInnerInterface::GetInstance().RefreshCDMRanking();
}
break;
case NET_MSG_GCTRL_CLUB_CD_CERTIFY_BRD:
{
GLMSG::SNET_CLUB_CD_CERTIFY_BRD *pNetMsg =
(GLMSG::SNET_CLUB_CD_CERTIFY_BRD *)nmg;
if ( strlen ( pNetMsg->szAlliance ) != 0 )
{
CInnerInterface::GetInstance().PrintConsoleTextDlg
( ID2GAMEINTEXT("CLUB_BATTLE_CERTIFY_START_EX"), pNetMsg->szZone, pNetMsg-
>szAlliance, pNetMsg->szClub, pNetMsg->szName );
}
else
{
CInnerInterface::GetInstance().PrintConsoleTextDlg
( ID2GAMEINTEXT("CLUB_BATTLE_CERTIFY_START"), pNetMsg->szZone, pNetMsg->szClub,
pNetMsg->szName );
}
}
break;
case NET_MSG_GCTRL_CLUB_CD_CERTIFY_ING_BRD:
{
GLMSG::SNET_CLUB_CD_CERTIFY_ING_BRD *pNetMsg =
( GLMSG::SNET_CLUB_CD_CERTIFY_ING_BRD* ) nmg;
switch ( pNetMsg->emFB )
{
case EMCDCERTIFY_ING_DIE:
{
if ( strlen ( pNetMsg->szAlliance ) != 0 )
{
CInnerInterface::GetInstance().PrintConsoleTextDlg
( ID2GAMEINTEXT("EMCDCERTIFY_ING_DIE_EX_ALLI"), pNetMsg->szZone, pNetMsg-
>szAlliance, pNetMsg->szClub, pNetMsg->szName );
}
else
{
CInnerInterface::GetInstance().PrintConsoleTextDlg
( ID2GAMEINTEXT("EMCDCERTIFY_ING_DIE_EX"), pNetMsg->szZone, pNetMsg->szClub,
pNetMsg->szName );
}
}
break;
case EMCDCERTIFY_ING_TIMEOUT:
{
if ( strlen ( pNetMsg->szAlliance ) != 0 )
{
CInnerInterface::GetInstance().PrintConsoleTextDlg
( ID2GAMEINTEXT("EMCDCERTIFY_ING_TIMEOUT_EX_ALLI"), pNetMsg->szZone, pNetMsg-
>szAlliance, pNetMsg->szClub, pNetMsg->szName );
}
else
{
CInnerInterface::GetInstance().PrintConsoleTextDlg
( ID2GAMEINTEXT("EMCDCERTIFY_ING_TIMEOUT_EX"), pNetMsg->szZone, pNetMsg->szClub,
pNetMsg->szName );
}
}
break;
case EMCDCERTIFY_ING_DISTANCE:
{
if ( strlen ( pNetMsg->szAlliance ) != 0 )
{
CInnerInterface::GetInstance().PrintConsoleTextDlg
( ID2GAMEINTEXT("EMCDCERTIFY_ING_DISTANCE_EX_ALLI"), pNetMsg->szZone, pNetMsg-
>szAlliance, pNetMsg->szClub, pNetMsg->szName );
}
else
{
CInnerInterface::GetInstance().PrintConsoleTextDlg
( ID2GAMEINTEXT("EMCDCERTIFY_ING_DISTANCE_EX"), pNetMsg->szZone, pNetMsg->szClub,
pNetMsg->szName );
}
}
break;
}
}
break;
case NET_MSG_GCTRL_CLUB_BATTLE_END_BRD:
{
GLMSG::SNET_CLUB_BATTLE_END_BRD *pNetMsg =
(GLMSG::SNET_CLUB_BATTLE_END_BRD *)nmg;
CInnerInterface::GetInstance().PrintConsoleTextDlg
( ID2GAMEINTEXT("CLUB_BATTLE_END"), pNetMsg->szName, pNetMsg->szClubName );
m_bCLUBBATTLE = false;
m_fCLUBBATTLETimer = 0.0f;
CMiniMap * pMiniMap =
CInnerInterface::GetInstance().GetMiniMap();
if( pMiniMap ) pMiniMap->EndClubTime();
case NET_MSG_GCTRL_CLUB_BATTLE_REMAIN_BRD:
{
GLMSG::SNET_CLUB_BATTLE_REMAIN_BRD *pNetMsg =
(GLMSG::SNET_CLUB_BATTLE_REMAIN_BRD*)nmg;
m_fCLUBBATTLETimer = (float)pNetMsg->dwTime;
}
break;
case NET_MSG_GCTRL_LAND_INFO:
{
GLMSG::SNETPC_LAND_INFO *pNetMsg = (GLMSG::SNETPC_LAND_INFO
*)nmg;
pLand->m_dwGuidClub = pNetMsg->dwGuidClub;
pLand->m_dwGuidClubMarkVer = pNetMsg->dwGuidClubMarkVer;
StringCchCopy ( pLand->m_szGuidClubName, CHAR_SZNAME,
pNetMsg->szGuidClubName );
CInnerInterface::GetInstance().ShowGroupBottom( PVP_TYRANNY_TOWER_CAPTURE );
else
CInnerInterface::GetInstance().HideGroup( PVP_TYRANNY_TOWER_CAPTURE );
CInnerInterface::GetInstance().ShowGroupBottom( PVP_SCHOOLWARS_SCORE );
else
CInnerInterface::GetInstance().HideGroup( PVP_SCHOOLWARS_SCORE );
CInnerInterface::GetInstance().HideGroup( PVP_CAPTURE_THE_FLAG_SCORE );
if ( pLand->m_bClubBattle )
CInnerInterface::GetInstance().PrintConsoleTextDlg
( ID2GAMEINTEXT("CLUB_BATTLE_LAND") );
CInnerInterface::GetInstance().VisibleCDMRanking( false );
}
CString str;
[Link]( ID2GAMEINTEXT("LAND_TRADE_COMMISSION"), pLand-
>m_fCommission );
if ( m_bBRIGHTEVENT )
{
str += _T("\r\n");
str += ID2GAMEINTEXT("BRIGHT_EVENT_MSG");
}
if ( m_bSCHOOL_FREEPK )
{
str += _T("\r\n");
str += ID2GAMEINTEXT("OTHER_SCHOOL_FREEPK_ON");
}
CInnerInterface::GetInstance().PrintConsoleTextDlg( str );
if
( CInnerInterface::GetInstance().PVPTyrannyToShowRanking() )
CInnerInterface::GetInstance().PVPTyrannyShowRanking();
if ( !
GLPVPTyrannyClient::GetInstance().m_bShowStartNotice &&
GLPVPTyrannyClient::GetInstance().IsBattle() )
{
CInnerInterface::GetInstance().PVPTyrannyShowStartNotice();
GLPVPTyrannyClient::GetInstance().m_bShowStartNotice = TRUE;
}
}
GLPVPSchoolWarsClient::GetInstance().RequestScoreInfo();
if
( CInnerInterface::GetInstance().PVPSchoolWarsToShowRanking() )
CInnerInterface::GetInstance().PVPSchoolWarsShowRanking();
if ( !
GLPVPSchoolWarsClient::GetInstance().m_bShowStartNotice &&
GLPVPSchoolWarsClient::GetInstance().IsBattle()
)
{
CInnerInterface::GetInstance().PVPSchoolWarsShowStartNotice();
GLPVPSchoolWarsClient::GetInstance().m_bShowStartNotice = TRUE;
}
}
GLPVPCaptureTheFlagClient::GetInstance().RequestScoreInfo();
if
( CInnerInterface::GetInstance().PVPCaptureTheFlagToShowRanking() )
CInnerInterface::GetInstance().PVPCaptureTheFlagShowRanking();
if ( !
GLPVPCaptureTheFlagClient::GetInstance().m_bShowStartNotice &&
GLPVPCaptureTheFlagClient::GetInstance().IsBattle() )
{
CInnerInterface::GetInstance().PVPCaptureTheFlagShowStartNotice();
GLPVPCaptureTheFlagClient::GetInstance().m_bShowStartNotice = TRUE;
}
}
case NET_MSG_GCTRL_SERVER_INFO:
{
GLMSG::SNETPC_SERVER_INFO *pNetMsg = (GLMSG::SNETPC_SERVER_INFO
*)nmg;
if ( m_bSCHOOL_FREEPK != pNetMsg->bSCHOOL_FREEPK )
{
if ( pNetMsg->bSCHOOL_FREEPK )
{
CInnerInterface::GetInstance().PrintConsoleTextDlg
( ID2GAMEINTEXT("OTHER_SCHOOL_FREEPK_ON") );
}
else
{
CInnerInterface::GetInstance().PrintConsoleTextDlg
( ID2GAMEINTEXT("OTHER_SCHOOL_FREEPK_OFF") );
m_bSCHOOL_FREEPK = pNetMsg->bSCHOOL_FREEPK;
}
break;
case NET_MSG_GCTRL_SERVER_BRIGHTEVENT_INFO:
{
GLMSG::SNETPC_SERVER_BRIGHTEVENT_INFO *pNetMsg =
( GLMSG::SNETPC_SERVER_BRIGHTEVENT_INFO *)nmg;
m_bBRIGHTEVENT = pNetMsg->bBRIGHTEVENT;
}
break;
case NET_MSG_GCTRL_SERVER_CLUB_BATTLE_INFO:
{
GLMSG::SNETPC_SERVER_CLUB_BATTLE_INFO* pNetMsg =
( GLMSG::SNETPC_SERVER_CLUB_BATTLE_INFO* )nmg;
m_bCLUBBATTLE = pNetMsg->bClubBattle;
}
break;
case NET_MSG_GCTRL_SERVER_CLUB_DEATHMATCH_INFO:
{
GLMSG::SNETPC_SERVER_CLUB_DEATHMATCH_INFO* pNetMsg =
( GLMSG::SNETPC_SERVER_CLUB_DEATHMATCH_INFO* )nmg;
m_bClubDeathMatch = pNetMsg->bClubDeathMatch;
}
break;
case NET_MSG_GCTRL_CLUB_COMMISSION_BRD:
{
GLMSG::SNET_CLUB_GUID_COMMISSION_BRD *pNetMsg =
(GLMSG::SNET_CLUB_GUID_COMMISSION_BRD *)nmg;
case NET_MSG_GCTRL_CLUB_COMMISSION_RV_BRD:
{
GLMSG::SNET_CLUB_GUID_COMMISSION_RESERVE_BRD *pNetMsg =
(GLMSG::SNET_CLUB_GUID_COMMISSION_RESERVE_BRD *)nmg;
CInnerInterface::GetInstance().PrintConsoleTextDlg
( ID2GAMEINTEXT("LAND_TRADE_NEW_RV_COMMISSION"), pNetMsg->fCommission );
}
break;
case NET_MSG_GM_WHERE_NPC_FB:
{
GLMSG::SNET_GM_WHERE_NPC_FB *pNetMsg =
(GLMSG::SNET_GM_WHERE_NPC_FB *) nmg;
case NET_MSG_GM_PRINT_CROWLIST_FB:
{
GLMSG::SNET_GM_PRINT_CROWLIST_FB *pNetMsg =
(GLMSG::SNET_GM_PRINT_CROWLIST_FB *) nmg;
PCROWDATA pCrow =
GLCrowDataMan::GetInstance().GetCrowData( pNetMsg->mID, pNetMsg->sID );
if ( !pCrow ) break;
CInnerInterface::GetInstance().PrintMsgText(
NS_UITEXTCOLOR::PALEGREEN, "type : npc, mid : %d, SID
: %d, num : %d, name : %s",
pNetMsg->mID, pNetMsg->sID, pNetMsg->wNum, pCrow-
>GetName() );
}else{
CInnerInterface::GetInstance().PrintMsgText(
NS_UITEXTCOLOR::RED, "type : monster, mid : %d, SID :
%d, num : %d, name : %s",
pNetMsg->mID, pNetMsg->sID, pNetMsg->wNum, pCrow-
>GetName() );
}
}
break;
case NET_MSG_GM_WHERE_PC_MAP_FB:
{
GLMSG::SNET_GM_WHERE_PC_MAP_FB *pNetMsg =
(GLMSG::SNET_GM_WHERE_PC_MAP_FB *) nmg;
case NET_MSG_GM_WHERE_PC_POS_FB:
{
GLMSG::SNET_GM_WHERE_PC_POS_FB *pNetMsg =
(GLMSG::SNET_GM_WHERE_PC_POS_FB *) nmg;
if ( pNetMsg->bFOUND )
CInnerInterface::GetInstance().PrintConsoleText ( "pc_pos : %d, %d", pNetMsg-
>nPosX, pNetMsg->nPosY );
else
CInnerInterface::GetInstance().PrintConsoleText ( "pc_pos : not found" );
}
break;
case NET_MSG_GM_MOVE2CHAR_FB:
{
GLMSG::SNETPC_GM_MOVE2CHAR_FB *pNetMsg =
(GLMSG::SNETPC_GM_MOVE2CHAR_FB *) nmg;
switch ( pNetMsg->emFB )
{
case EMGM_MOVE2CHAR_FB_FAIL:
CInnerInterface::GetInstance().PrintConsoleText
( ID2GAMEINTEXT("EMGM_MOVE2CHAR_FB_FAIL") );
break;
case EMGM_MOVE2CHAR_FB_OK:
CInnerInterface::GetInstance().PrintConsoleText
( ID2GAMEINTEXT("EMGM_MOVE2CHAR_FB_OK") );
break;
case EMGM_MOVE2CHAR_FB_TO_CONDITION:
CInnerInterface::GetInstance().PrintConsoleText
( ID2GAMEINTEXT("EMGM_MOVE2CHAR_FB_TO_CONDITION") );
break;
case EMGM_MOVE2CHAR_FB_MY_CONDITION:
CInnerInterface::GetInstance().PrintConsoleText
( ID2GAMEINTEXT("EMGM_MOVE2CHAR_FB_MY_CONDITION") );
break;
case EMGM_MOVE2CHAR_FB_CHANNEL:
CInnerInterface::GetInstance().PrintConsoleText
( ID2GAMEINTEXT("EMGM_MOVE2CHAR_FB_CHANNEL"), pNetMsg->nChannel );
break;
};
}
break;
case NET_MSG_GM_CHAT_BLOCK_FB:
{
GLMSG::SNET_GM_CHAT_BLOCK_FB *pNetMsg =
(GLMSG::SNET_GM_CHAT_BLOCK_FB *) nmg;
CInnerInterface::GetInstance().PrintConsoleText ( "block :
%s", bool2sz(pNetMsg->bBLOCK) );
CInnerInterface::GetInstance().PrintConsoleText ( "user account :
%s", pNetMsg->szUACCOUNT );
CInnerInterface::GetInstance().PrintConsoleText ( "char name :
%s", pNetMsg->szCHARNAME );
CInnerInterface::GetInstance().PrintConsoleText ( "block minute :
%d", pNetMsg->dwBLOCK_MINUTE );
}
break;
case NET_MSG_GM_CHAR_INFO_AGT_FB:
{
GLMSG::SNET_GM_CHAR_INFO_AGT_FB *pNetMsg =
(GLMSG::SNET_GM_CHAR_INFO_AGT_FB *) nmg;
case NET_MSG_USER_CHAR_INFO_AGT_FB:
{
GLMSG::SNET_USER_CHAR_INFO_AGT_FB *pNetMsg =
(GLMSG::SNET_USER_CHAR_INFO_AGT_FB *) nmg;
CInnerInterface::GetInstance().PrintConsoleText ( "charid :
%d", pNetMsg->dwCHARID );
CInnerInterface::GetInstance().PrintConsoleText ( "mapid :
%d/%d", pNetMsg->[Link], pNetMsg->[Link] );
CInnerInterface::GetInstance().PrintConsoleText ( "position :
%d/%d", pNetMsg->wPOSX, pNetMsg->wPOSY );
CInnerInterface::GetInstance().PrintConsoleText ( "level :
%d", pNetMsg->wLEVEL );
CInnerInterface::GetInstance().PrintConsoleText ( "hp :
%d/%d", pNetMsg->[Link], pNetMsg->[Link] );
CInnerInterface::GetInstance().PrintConsoleText ( "mp :
%d/%d", pNetMsg->[Link], pNetMsg->[Link] );
CInnerInterface::GetInstance().PrintConsoleText ( "sp :
%d/%d", pNetMsg->[Link], pNetMsg->[Link] );
CInnerInterface::GetInstance().PrintConsoleText ( "cp :
%d/%d", pNetMsg->[Link], pNetMsg->[Link] ); /*combatpoint logic, Juver,
2017/05/29 */
//std::strstream strSTREAM;
//strSTREAM << pNetMsg->[Link] << '/' << pNetMsg->[Link]
<< std::ends;
CInnerInterface::GetInstance().PrintConsoleText ( "exp :
%I64d/%I64d", pNetMsg->[Link], pNetMsg->[Link] );
CInnerInterface::GetInstance().PrintConsoleText ( "club :
%s", pNetMsg->szCLUB );
case NET_MSG_USER_CHAR_INFO_FLD_FB:
{
GLMSG::SNET_USER_CHAR_INFO_FLD_FB *pNetMsg =
(GLMSG::SNET_USER_CHAR_INFO_FLD_FB *) nmg;
case NET_MSG_GM_WARNING_MSG_BRD:
{
GLMSG::SNET_GM_WARNING_MSG_BRD* pNetMsg =
(GLMSG::SNET_GM_WARNING_MSG_BRD*) nmg;
if ( pNetMsg->bOn )
{
CInnerInterface::GetInstance().WARNING_MSG_ON();
}
else
{
CInnerInterface::GetInstance().WARNING_MSG_OFF();
}
}
break;
case NET_MSG_GM_COUNTDOWN_MSG_BRD:
{
GLMSG::SNET_GM_COUNTDOWN_MSG_BRD* pNetMsg =
(GLMSG::SNET_GM_COUNTDOWN_MSG_BRD*) nmg;
CInnerInterface::GetInstance().SET_COUNT_MSG( pNetMsg->nCount );
}
case NET_MSG_GCTRL_SERVERTEST_FB:
{
m_pLandMClient->ResetClientObjects ();
CString strCombine;
[Link] ( "%s", ID2GAMEINTEXT("SERVER_STOP_SOON") );
CInnerInterface::GetInstance().DisplayChatMessage
( CHAT_TYPE_GLOBAL, NULL, [Link]() );
m_Pet.DeleteDeviceObjects ();
}
break;
case NET_MSG_SERVERTIME_BRD:
{
GLMSG::SNET_MSG_SERVERTIME_BRD* pNetMsg =
(GLMSG::SNET_MSG_SERVERTIME_BRD*) nmg;
m_cServerTime = pNetMsg->t64Time;
}
break;
//---------------------------------------------------------------------------------
-------------------------------
// Message Processing about PET (START)
//---------------------------------------------------------------------------------
-------------------------------
case NET_MSG_PET_REQ_USECARD_FB:
{
GLMSG::SNETPET_REQ_USEPETCARD_FB* pNetMsg =
( GLMSG::SNETPET_REQ_USEPETCARD_FB* ) nmg;
switch ( pNetMsg->emFB )
{
case EMPET_USECARD_FB_OK:
{
// ���ʻ��� ��� ���������� ���� �ؼŬ���̾
�Ʈ�� ������ۿ
�ֹ�ȣ ����
SINVENITEM* pItem = m_Character.m_cInventory.GetItem
( m_Character.m_wInvenPosX1, m_Character.m_wInvenPosY1 );
if ( !pItem ) return;
if ( pItem->[Link] == 0 ) pItem-
>[Link] = pNetMsg->m_dwPetID;
m_Pet.m_sPetSkinPackState.bUsePetSkinPack = pNetMsg-
>m_sPetSkinPackData.bUsePetSkinPack;
m_Pet.m_sPetSkinPackState.petSkinMobID = pNetMsg-
>m_sPetSkinPackData.sMobID;
m_Pet.m_sPetSkinPackState.fPetScale = pNetMsg-
>m_sPetSkinPackData.fScale;
// ��
if ( !FAILED( CreatePET ( nmg ) ) )
{
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::WHITESMOKE,
ID2GAMEINTEXT("EMPET_USECARD_FB_OK"), m_Pet.m_szName );
CInnerInterface::GetInstance().ShowPetStatus( TRUE );
if ( m_Pet.IsUsePetSkinPack() )
{
CInnerInterface::GetInstance().PrintMsgTextDlg
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMINVEN_PETSKINPACK_FB_OK") );
}
}
break;
case EMPET_USECARD_FB_FAIL:
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::NEGATIVE,
ID2GAMEINTEXT("EMPET_USECARD_FB_FAIL") );
// ���н� GenNum ó��
m_Character.m_llPetCardGenNum = 0;
break;
case EMPET_USECARD_FB_INVALIDCARD:
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::NEGATIVE,
ID2GAMEINTEXT("EMPET_USECARD_FB_INVALIDCARD") );
// ���н� GenNum ó��
m_Character.m_llPetCardGenNum = 0;
break;
case EMPET_USECARD_FB_NOITEM:
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::NEGATIVE,
ID2GAMEINTEXT("EMPET_USECARD_FB_NOITEM") );
// ���н� GenNum ó��
m_Character.m_llPetCardGenNum = 0;
break;
case EMPET_USECARD_FB_NOTENOUGHFULL:
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::NEGATIVE,
ID2GAMEINTEXT("EMPET_USECARD_FB_NOTENOUGHFULL") );
// ���н� GenNum ó��
m_Character.m_llPetCardGenNum = 0;
break;
case EMPET_USECARD_FB_INVALIDZONE:
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::NEGATIVE,
ID2GAMEINTEXT("EMPET_USECARD_FB_INVALIDZONE") );
// ���н� GenNum ó��
m_Character.m_llPetCardGenNum = 0;
break;
case EMPET_USECARD_FB_NODATA:
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::NEGATIVE,
ID2GAMEINTEXT("EMPET_USECARD_FB_NODATA") );
m_Character.m_llPetCardGenNum = 0;
break;
}
}
break;
case NET_MSG_PET_PETSKINPACKOPEN_FB:
{
GLMSG::SNETPET_SKINPACKOPEN_FB *pNetMsg =
(GLMSG::SNETPET_SKINPACKOPEN_FB *)nmg;
m_Pet.m_sPetSkinPackState.Init();
m_Pet.m_sPetSkinPackState.bUsePetSkinPack = pNetMsg-
>[Link];
m_Pet.m_sPetSkinPackState.petSkinMobID = pNetMsg-
>[Link];
m_Pet.m_sPetSkinPackState.fPetScale = pNetMsg-
>[Link];
if( pNetMsg->emFB == EMPET_PETSKINPACKOPEN_FB_OK )
{
CInnerInterface::GetInstance().PrintMsgTextDlg
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMINVEN_PETSKINPACK_FB_OK") );
}
if( pNetMsg->emFB == EMPET_PETSKINPACKOPEN_FB_END )
{
CInnerInterface::GetInstance().PrintMsgTextDlg
( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMINVEN_PETSKINPACK_FB_END") );
}
PetSkinPackApplyEffect();
}
break;
case NET_MSG_PET_REQ_UNUSECARD_FB:
{
GLMSG::SNETPET_REQ_UNUSEPETCARD_FB *pNetMsg =
( GLMSG::SNETPET_REQ_UNUSEPETCARD_FB* ) nmg;
m_Pet.DeleteDeviceObjects ();
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::RED,
ID2GAMEINTEXT("EMPET_UNUSECARD_FB_OK"), m_Pet.m_szName );
case NET_MSG_PET_REQ_GIVEFOOD_FB:
{
GLMSG::SNETPET_REQ_GIVEFOOD_FB* pNetMsg =
( GLMSG::SNETPET_REQ_GIVEFOOD_FB* ) nmg;
SITEM* pItem = GLItemMan::GetInstance().GetItem ( pNetMsg-
>sNativeID );
if ( pItem )
{
// ����� ����
if ( m_Pet.IsVALID () ) m_Pet.IncreaseFull ( pItem-
>[Link], pItem->[Link] );
if ( DxGlobalStage::GetInstance().IsEmulator() )
{
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::PALEGREEN,
ID2GAMEINTEXT("EMPET_REQ_GIVEFOOD_FB_OK"), m_Pet.m_szName, pItem->GetName (),
pItem->[Link] );
break;
}
PETCARDINFO_MAP_ITER iter =
m_Character.m_mapPETCardInfo.find ( pNetMsg->dwPetID );
if ( iter!=m_Character.m_mapPETCardInfo.end() )
{
SPETCARDINFO& sPet = (*iter).second;
// ����� ��� ����
sPet.m_nFull = pNetMsg->nFull;
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::PALEGREEN,
ID2GAMEINTEXT("EMPET_REQ_GIVEFOOD_FB_OK"), sPet.m_szName, pItem->GetName (), pItem-
>[Link] );
}
}
}
break;
case NET_MSG_PET_REQ_PETCARDINFO_FB:
{
GLMSG::SNETPET_REQ_PETCARDINFO_FB* pNetMsg =
( GLMSG::SNETPET_REQ_PETCARDINFO_FB* ) nmg;
SPETCARDINFO sPetCardInfo;
sPetCardInfo.m_emTYPE = pNetMsg->emTYPE;
sPetCardInfo.m_nFull = pNetMsg->nFull;
m_Character.m_mapPETCardInfo.insert
( std::make_pair(pNetMsg->dwPetID, sPetCardInfo) );
}
else
{
m_Character.m_mapPETCardInfoTemp.insert
( std::make_pair(pNetMsg->dwPetID, sPetCardInfo) );
}
}
break;
case NET_MSG_PET_REQ_PETREVIVEINFO_FB:
{
GLMSG::SNETPET_REQ_PETREVIVEINFO_FB* pNetMsg =
( GLMSG::SNETPET_REQ_PETREVIVEINFO_FB* ) nmg;
m_Character.m_mapPETReviveInfo.clear();
for ( WORD i = 0; i < pNetMsg->wPetReviveNum; ++i )
{
m_Character.m_mapPETReviveInfo.insert (
std::make_pair(pNetMsg->arryPetReviveInfo[i].dwPetID,
pNetMsg->arryPetReviveInfo[i] ) );
}
}
break;
case NET_MSG_PET_REQ_REVIVE_FB:
{
GLMSG::SNETPET_REQ_REVIVE_FB* pNetMsg =
( GLMSG::SNETPET_REQ_REVIVE_FB* ) nmg;
PETREVIVEINFO sPetRevInfo;
PETREVIVEINFO_MAP_ITER iter = m_Character.m_mapPETReviveInfo.find
( pNetMsg->dwPetID );
if ( iter != m_Character.m_mapPETReviveInfo.end() ) sPetRevInfo =
(*iter).second;
else
break;
switch ( pNetMsg->emFB )
{
case EMPET_REQ_REVIVE_FB_OK:
{
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::PALEGREEN,
ID2GAMEINTEXT("EMPET_REQ_REVIVE_FB_OK"), [Link] );
SINVENITEM* pINVENITEM =
m_Character.m_cInventory.GetItem ( m_Character.m_wInvenPosX1,
m_Character.m_wInvenPosY1 );
if ( pINVENITEM ) pINVENITEM->[Link] =
[Link];
m_Character.m_mapPETReviveInfo.erase ( iter );
}
break;
case EMPET_REQ_REVIVE_FB_FAIL:
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::NEGATIVE,
ID2GAMEINTEXT("EMPET_REQ_REVIVE_FB_FAIL"), [Link] );
break;
case EMPET_REQ_REVIVE_FB_DBFAIL:
CInnerInterface::GetInstance().PrintMsgText (
NS_UITEXTCOLOR::NEGATIVE,
ID2GAMEINTEXT("EMPET_REQ_REVIVE_FB_DBFAIL"), [Link] );
break;
}
}
break;
case NET_MSG_PET_NOTENOUGHINVEN:
{
CInnerInterface::GetInstance().PrintConsoleTextDlg( ID2GAMEINTEXT("EMPET_NOTENOUGHI
NVEN") );
}
break;
D3DXMATRIX matEffect;
D3DXVECTOR3 vPos = m_Pet.GetPosition ();
D3DXMatrixTranslation ( &matEffect,
vPos.x, vPos.y, vPos.z );
STARGETID sTargetID(CROW_PET,
m_Pet.m_dwGUID, vPos );
DxEffGroupPlayer::GetInstance().NewEffGroup( GLCONST_CHAR::strSKILL_LEARN_EFFECT.c_
str(), matEffect, &sTargetID );
}
if
( DxGlobalStage::GetInstance().IsEmulator() )
{
CInnerInterface::GetInstance().PrintMsgText ( NS_UITEXTCOLOR::PALEGREEN,
ID2GAMEINTEXT("EMPET_REQ_ENABLE_DUAL_SKILL_FB_OK"), m_Pet.m_szName );
}
else
{
PETCARDINFO_MAP_ITER iter =
m_Character.m_mapPETCardInfo.find ( pNetMsg->dwPetID );
if ( iter!
=m_Character.m_mapPETCardInfo.end() )
{
SPETCARDINFO& sPet =
(*iter).second;
sPet.m_bDualSkill = pNetMsg-
>bDualSkill;
CInnerInterface::GetInstance().PrintMsgText ( NS_UITEXTCOLOR::PALEGREEN,
ID2GAMEINTEXT("EMPET_REQ_ENABLE_DUAL_SKILL_FB_OK"), sPet.m_szName );
}
}
}
}break;
case EMPET_REQ_ENABLE_DUAL_SKILL_FB_FAIL:
{
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::NEGATIVE, ID2GAMEINTEXT("EMPET_REQ_ENABLE_DUAL_SKILL_FB_FAIL") );
}break;
case EMPET_REQ_ENABLE_DUAL_SKILL_INVALID_ITEM:
{
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::NEGATIVE,
ID2GAMEINTEXT("EMPET_REQ_ENABLE_DUAL_SKILL_INVALID_ITEM") );
}break;
case EMPET_REQ_ENABLE_DUAL_SKILL_INVALID_CARD:
{
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::NEGATIVE,
ID2GAMEINTEXT("EMPET_REQ_ENABLE_DUAL_SKILL_INVALID_CARD") );
}break;
case EMPET_REQ_ENABLE_DUAL_SKILL_ALREADY_ENABLED:
{
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::NEGATIVE,
ID2GAMEINTEXT("EMPET_REQ_ENABLE_DUAL_SKILL_ALREADY_ENABLED") );
}break;
case EMPET_REQ_ENABLE_DUAL_SKILL_NOT_ACTIVE:
{
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::NEGATIVE, ID2GAMEINTEXT("EMPET_REQ_ENABLE_DUAL_SKILL_NOT_ACTIVE")
);
}break;
};
}break;
case NET_MSG_PET_REQ_UPDATE_MOVE_STATE_FB:
case NET_MSG_PET_UPDATECLIENT_FULL:
case NET_MSG_PET_REQ_RENAME_FB:
case NET_MSG_PET_REQ_CHANGE_COLOR_FB:
case NET_MSG_PET_REQ_CHANGE_STYLE_FB:
case NET_MSG_PET_REQ_SLOT_EX_HOLD_FB:
case NET_MSG_PET_REQ_HOLD_TO_SLOT_FB:
case NET_MSG_PET_REQ_SLOT_TO_HOLD_FB:
case NET_MSG_PET_REQ_LEARNSKILL_FB:
case NET_MSG_PET_REMOVE_SLOTITEM_FB:
case NET_MSG_PET_ATTACK:
case NET_MSG_PET_SAD:
case NET_MSG_PET_ACCESSORY_DELETE:
{
if ( m_Pet.IsVALID () )
{
m_Pet.MsgProcess ( nmg );
}
}
break;
case NET_MSG_SUMMON_END_REST:
{
/*skill summon, Juver, 2017/10/09 */
GLMSG::SNET_SUMMON_END_REST* pNetMsg =
( GLMSG::SNET_SUMMON_END_REST* ) nmg;
GLSummonClient* psummon_client = GetSummonClient( pNetMsg->dwGUID
);
if ( psummon_client ) psummon_client->MsgProcess ( nmg );
}break;
case NET_MSG_SUMMON_END_LIFE:
{
/*skill summon, Juver, 2017/10/09 */
GLMSG::SNET_SUMMON_END_LIFE* pNetMsg =
( GLMSG::SNET_SUMMON_END_LIFE* ) nmg;
GLSummonClient* psummon_client = GetSummonClient( pNetMsg->dwGUID
);
if ( psummon_client ) psummon_client->MsgProcess ( nmg );
}break;
case NET_MSG_SUMMON_RESET_TARGET:
{
/*skill summon, Juver, 2017/10/09 */
GLMSG::SNET_SUMMON_RESET_TARGET* pNetMsg =
( GLMSG::SNET_SUMMON_RESET_TARGET* ) nmg;
GLSummonClient* psummon_client = GetSummonClient( pNetMsg->dwGUID
);
if ( psummon_client ) psummon_client->MsgProcess ( nmg );
}break;
case NET_MSG_PET_DROPPET:
{
GLMSG::SNETPET_DROP_PET* pNetMsg = ( GLMSG::SNETPET_DROP_PET* )
nmg;
SDROPPET& sDropPet = pNetMsg->Data;
if ( sDropPet.m_sMapID == m_pLandMClient->GetMapID() )
{
m_pLandMClient->DropPet ( &sDropPet );
}
else
{
CDebugSet::ToListView ( "[Link] !=
m_pLandMClient->GetMapID()" );
}
}
break;
case NET_MSG_CREATE_ANYPET:
{
GLMSG::SNETPET_CREATE_ANYPET* pNetMsg =
( GLMSG::SNETPET_CREATE_ANYPET* ) nmg;
SDROPPET& sDropPet = pNetMsg->Data;
if ( sDropPet.m_sMapID == m_pLandMClient->GetMapID() )
{
m_pLandMClient->CreateAnyPet ( &sDropPet );
}
else
{
CDebugSet::ToListView ( "[Link] !=
m_pLandMClient->GetMapID()" );
}
}
break;
case NET_MSG_PET_GOTO_BRD:
case NET_MSG_PET_REQ_UPDATE_MOVE_STATE_BRD:
case NET_MSG_PET_STOP_BRD:
case NET_MSG_PET_REQ_RENAME_BRD:
case NET_MSG_PET_REQ_CHANGE_COLOR_BRD:
case NET_MSG_PET_REQ_CHANGE_STYLE_BRD:
case NET_MSG_PET_REQ_SLOT_EX_HOLD_BRD:
case NET_MSG_PET_REQ_LEARNSKILL_BRD:
case NET_MSG_PET_REQ_FUNNY_BRD:
case NET_MSG_PET_REMOVE_SLOTITEM_BRD:
case NET_MSG_PET_ATTACK_BRD:
case NET_MSG_PET_SAD_BRD:
case NET_MSG_PET_ACCESSORY_DELETE_BRD:
case NET_MSG_PET_PETSKINPACKOPEN_BRD:
{
GLMSG::SNETPET_BROAD *pNetMsg = (GLMSG::SNETPET_BROAD *) nmg;
pPet->MsgProcess ( nmg );
}
break;
// ======= Message Processing about AnyPet (END) ======= //
case NET_MSG_DROP_ANYSUMMON:
{
GLMSG::SNET_SUMMON_DROP_SUMMON* pNetMsg =
( GLMSG::SNET_SUMMON_DROP_SUMMON* ) nmg;
SDROPSUMMON& sDropSummon = pNetMsg->Data;
if ( sDropSummon.m_sMapID == m_pLandMClient->GetMapID() )
{
m_pLandMClient->DropSummon ( &sDropSummon );
}
else
{
CDebugSet::ToListView ( "[Link] !=
m_pLandMClient->GetMapID()" );
}
}
break;
case NET_MSG_CREATE_ANYSUMMON:
{
GLMSG::SNET_SUMMON_CREATE_ANYSUMMON* pNetMsg =
( GLMSG::SNET_SUMMON_CREATE_ANYSUMMON* ) nmg;
SDROPSUMMON& sDropSummon = pNetMsg->Data;
if ( sDropSummon.m_sMapID == m_pLandMClient->GetMapID() )
{
m_pLandMClient->CreateAnySummon ( &sDropSummon );
}
else
{
CDebugSet::ToListView ( "[Link] !=
m_pLandMClient->GetMapID()" );
}
}
break;
case NET_MSG_SUMMON_ATTACK_BRD:
case NET_MSG_SUMMON_REQ_STOP_BRD:
case NET_MSG_SUMMON_GOTO_BRD:
case NET_MSG_SUMMON_REQ_UPDATE_MOVE_STATE_BRD:
pSummon->MsgProcess ( nmg );
}
break;
//---------------------------------------------------------------------------------
-------------------------------
// Message Processing about PET (END)
//---------------------------------------------------------------------------------
-------------------------------
//---------------------------------------------------------------------------------
-------------------------------
// Message Processing about SUMMON (START)
//---------------------------------------------------------------------------------
-------------------------------
case NET_MSG_REQ_USE_SUMMON_FB:
{
GLMSG::SNETPC_REQ_USE_SUMMON_FB* pNetMsg =
( GLMSG::SNETPC_REQ_USE_SUMMON_FB* ) nmg;
switch ( pNetMsg->emFB )
{
case EMUSE_SUMMON_FB_OK:
{
// ��
if ( !FAILED( CreateSummon ( nmg ) ) )
{
//CInnerInterface::GetInstance().ShowGroupBottom( SUMMON_HP );
//CInnerInterface::GetInstance().ShowGroupBottom( SUMMON_POSION_DISPLAY );
}
}
break;
case EMUSE_SUMMON_FB_FAIL_INVALIDZONE:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::NEGATIVE, ID2GAMEINTEXT("EMSUMMON_FB_INVALIDZONE") );
break;
case EMUSE_SUMMON_FB_FAIL_NODATA:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::NEGATIVE, ID2GAMEINTEXT("EMSUMMON_FB_NODATA") );
break;
case EMUSE_SUMMON_FB_FAIL_VEHICLE:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::NEGATIVE, ID2GAMEINTEXT("EMSUMMON_FB_VEHICLE") );
break;
case EMUSE_SUMMON_FB_FAIL_CONFRONT:
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::NEGATIVE, ID2GAMEINTEXT("EMSUMMON_FB_CONFRONT") );
break;
case NET_MSG_REQ_USE_SUMMON_DEL:
{
/*skill summon, Juver, 2017/10/08 */
GLMSG::SNETPC_REQ_USE_SUMMON_DEL* pNetMsg =
( GLMSG::SNETPC_REQ_USE_SUMMON_DEL* ) nmg;
GLSummonClient* psummon_client = GetSummonClient( pNetMsg->dwGUID
);
if ( psummon_client )
psummon_client->DeleteDeviceObjects();
//m_Summon.DeleteDeviceObjects ();
}break;
case NET_MSG_PK_RANK_HISTORY_UPDATE:
{
GLMSG::SNET_PK_RANK_HISTORY_UPDATE* pNetMsg =
( GLMSG::SNET_PK_RANK_HISTORY_UPDATE* ) nmg;
m_vecPKHistory.push_back( pNetMsg->sPKHistory );
case NET_MSG_GCTRL_DEATHTIMER_FB_FLD:
{
GLMSG::SNETPC_REQ_REVIVE_DEATHTIMER_FB *pNetMsg =
(GLMSG::SNETPC_REQ_REVIVE_DEATHTIMER_FB *) nmg;
CInnerInterface::GetInstance().PrintMsgText
( NS_UITEXTCOLOR::NEGATIVE, ID2GAMEINTEXT("DEATH_TIMER_NOTIME") );
CInnerInterface::GetInstance().HideGroup ( REBIRTH_DIALOGUE );
}break;
PROCESS_INFO_DATA_MAP_CLIENT_ITER iterfind =
m_mapProcessInfo.find( std::string(pNetMsg->szCHARNAME) );
if ( iterfind != m_mapProcessInfo.end() )
{
SPROCESS_INFO_DATA_CLIENT& sDataClient =
(*iterfind).second;
for( WORD i=0; i<pNetMsg->wNUM; ++i )
{
}break;
PROCESS_INFO_DATA_MAP_CLIENT_ITER iterfind =
m_mapProcessInfo.find( std::string(pNetMsg->szCHARNAME) );
if ( iterfind != m_mapProcessInfo.end() )
{
SPROCESS_INFO_DATA_CLIENT& sDataClient =
(*iterfind).second;
if ( pNetMsg->dwTOTAL !=
(DWORD)[Link]() )
{
CInnerInterface::GetInstance().PrintConsoleText
( "WARNING:get process received list(%u) is not equal with gather list(%u)",
(DWORD)[Link](), pNetMsg->dwTOTAL );
}
CString strLogFileName("");
[Link]( "[%s][Link]", pNetMsg-
>szCHARNAME );
CDebugSet::ToFileWithTime( [Link](),
"=====================================================" );
CDebugSet::ToFileWithTime( [Link](),
"=====================================================" );
PROCESS_INFO_DATA_MAP_ITER iterData =
[Link]();
for( ; iterData != [Link](); ++iterData )
{
SPROCESS_INFO_DATA& sProcData = (*iterData).second;
CInnerInterface::GetInstance().OpenProcessListDisplay();
}break;
default:
CDebugSet::ToListView ( "GLGaeaClient::MsgProcess() TYPE[%d] massage
leak", nmg->nType );
break;
};
}
return NULL;
}
return NULL;
};
m_vCharPos = pCharClient->GetPosition();
return &m_vCharPos;
}
return &m_vCharPos;
}
m_vCharPos = pCharClient->GetPosBodyHeight();
return &m_vCharPos;
}
return &m_vCharPos;
}
m_vCharPos = pCharClient->GetPosBodyHeight();
return &m_vCharPos;
}
m_vCharPos = pMaterialClient->GetPosBodyHeight();
return &m_vCharPos;
}
return NULL;
}
return 0.0f;
}
if ( pCROW->m_pCrowData->m_emCrow == CROW_NPC )
{
dwCOLOR = CROWCOLOR::MOB_COLOR_GRAY;
}
else
{
WORD wMY_LEVEL = m_Character.GETLEVEL();
WORD wMOB_LEVEL = pCROW->m_pCrowData->m_wLevel;
float fEXP_RATE = GLCONST_CHAR::GETEXP_RATE ( wMY_LEVEL, wMOB_LEVEL );
return dwCOLOR;
}
LPDXFRAME pFrame(NULL);
BOOL bCollision(FALSE);
D3DXVECTOR3 vCollision( 0.f, 0.f, 0.f );
pLandMan->IsCollision( vTargetPt, vFromPt, vCollision, bCollision, pFrame,
FALSE );
return bCollision;
}
void GLGaeaClient::PetSkinPackApplyEffect()
{
if( m_Pet.IsVALID() )
{
// �� ȿ��
D3DXMATRIX matEffect;
D3DXVECTOR3 vPos = m_Pet.GetPosition ();
D3DXMatrixTranslation ( &matEffect, vPos.x, vPos.y, vPos.z );
m_Summon[pNetMsg->wIndex].DeleteDeviceObjects();
GLSUMMON sSummon;
sSummon.m_emTYPE = pNetMsg->emTYPE;
sSummon.m_dwGUID = pNetMsg->dwGUID;
sSummon.m_sSummonID = pNetMsg->sSummonID;
sSummon.m_dwOwner = pNetMsg->dwOwner;
sSummon.m_sMapID = pNetMsg->sMapID;
sSummon.m_dwCellID = pNetMsg->dwCellID;
sSummon.m_dwNowHP = pNetMsg->dwNowHP;
sSummon.m_wNowMP = pNetMsg->wNowMP;
/*skill summon, Juver, 2017/10/09 */
sSummon.m_wArrayIndex = pNetMsg->wIndex;
sSummon.m_Summon = pNetMsg->sSummon;
// �� ȿ��
D3DXMATRIX matEffect;
D3DXVECTOR3 vPos = m_Summon[pNetMsg->wIndex].GetPosition ();
D3DXMatrixTranslation ( &matEffect, vPos.x, vPos.y, vPos.z );
return S_OK;
HRESULT GLGaeaClient::ReqClubDeathMatchInfo()
{
PLANDMANCLIENT pLand = GetActiveMap();
if ( !pLand || !pLand->m_bClubDeathMatch ) return E_FAIL;
GLMSG::SNET_CLUB_DEATHMATCH_RANKING_REQ NetMsg;
[Link] = pLand->GetMapID().dwID;
NETSENDTOFIELD ( &NetMsg );
return TRUE;
}
return NULL;
}
Dual skill states for pets are managed through specific feedback responses. When a request to enable dual skill is processed, the system checks the validity of related items and cards before confirming changes. Successful changes trigger visual updates in the interface, showing details about enabled skills through the pet's state and item interactions. This is confirmed by messages like `EMPET_REQ_ENABLE_DUAL_SKILL_FB_OK` showcasing the successful state change .
The system employs Axis-Aligned Bounding Box (AABB) collision detection to determine whether a line intersects with the bounding volumes of entities. For each entity type, like mobs, materials, and characters, it calculates potential collisions using `COLLISION::IsCollisionLineToAABB()` function where it checks against the entity's maximum and minimum boundary points (`m_vMax` and `m_vMin`). If a collision is detected, it gets noted for further processing .
The architecture employs a collision detection mechanism using `IsCollisionLineToAABB` to determine if a character lies within specified boundaries when deceased. The system then logs this data into a detectable ID list used to manage in-game effects, such as respawning mechanics or death notifications. By sorting and maintaining a detailed list of deceased characters, the system prepares these entities for respawn triggers and interface updates, supporting smooth transitions in gameplay scenarios .
Entity visibility is ensured by querying the client object lists based on identifier types (e.g., `CROW_ITEM`, `CROW_MOB`). The system checks if the client instance for the target ID is valid and within a visible state. For items, it retrieves the position from `GetItem()`. For pets and summoning entities, it checks the global ID and retrieves position using `GetPosition()`, facilitating precise management of visibility states .
The system checks if the pet or summon is valid using `IsVALID()` before calling `DeleteDeviceObjects()`. This ensures that any active device objects are properly deleted before proceeding with further operations. For pets, this is indicated by `m_Pet.DeleteDeviceObjects()`, and for summons, a similar approach is applied for each summon instance. This method is used to manage resources effectively by clearing up device objects that are no longer needed .
Pet revival requests are handled by verifying the stored revival information, and then erasing this information post-revival to prevent repeat operations. Success is determined by the feedback status `EMPET_REQ_REVIVE_FB_OK`, which triggers a pale green UI message, informing the user of the successful revival. Failed attempts due to database issues or procedures are presented with negative messages to outline issues. The process relies on matching revival data to pet IDs in the revival map for correct execution .
Network messages for character information updates are processed by parsing message types like `NET_MSG_GM_CHAR_INFO_FLD_FB`, which convey data such as character ID, map ID, position, level, HP, MP, SP, CP, experience, and club information. These details update the client interface, reflecting the character's current status and conditions in real-time, facilitating seamless game interactions and player experience updates .
Managing texture stage states affects how textures are processed for rendering, directly impacting visual quality. The system modifies states like `D3DTSS_COLORARG1` and `D3DTSS_COLOROP`, allowing it to selectively manipulate how textures are combined and rendered, enhancing the environment's visual details. For example, setting `D3DTSS_COLOROP` to `D3DTOP_SELECTARG1` ensures that specific texture effects are showcased, improving the game's aesthetic appearance .
Character movement is processed through the `MoveActiveMap` function, transitioning the character to the new map position. Validation ensures that the new position matches the expected map ID and position vector, which is confirmed through successful `S_OK` operations. Additionally, loading steps are incremented to ensure operations are aligned with the character's new location .
The system manages feedback for taxi and bus interactions through categories like take failure, successful take (OK), ticket issues, financial conditions, and map or station failures. Each category triggers a UI response with specific messages that inform users of the situation. For instance, `EMTAXI_TAKE_FAIL` results in a disabled text message, while `EMTAXI_TAKE_OK` results in a pale green success notification, guiding users through outcomes with contextual feedback .