452 lines
10 KiB
C++
452 lines
10 KiB
C++
|
|
#include "PrivateMission.h"
|
|||
|
|
#include "PopScene.h"
|
|||
|
|
#include "Utility.h"
|
|||
|
|
#include "JniFun.h"
|
|||
|
|
|
|||
|
|
PrivateMission::PrivateMission()
|
|||
|
|
{
|
|||
|
|
m_pGameServerItem = nullptr;
|
|||
|
|
|
|||
|
|
m_wMeTableID = INVALID_TABLE;
|
|||
|
|
m_wMeChairID = INVALID_CHAIR;
|
|||
|
|
|
|||
|
|
zeromemory(&m_kCreatePrivateNet, sizeof(m_kCreatePrivateNet));
|
|||
|
|
zeromemory(&m_kAutoRoomInfo, sizeof(m_kAutoRoomInfo));
|
|||
|
|
zeromemory(&m_kDelAutoRoomInfo, sizeof(CMD_GP_DelAutoRoomInfo));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ûص<C3BB><D8B5>ӿ<EFBFBD>
|
|||
|
|
void PrivateMission::setMissionSink(IPrivateMissionSink* pSink)
|
|||
|
|
{
|
|||
|
|
m_pPrivateMissionSink = pSink;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void PrivateMission::onEventTCPSocketLink()
|
|||
|
|
{
|
|||
|
|
SendLogonPacket();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD>
|
|||
|
|
void PrivateMission::onEventTCPSocketShut()
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void PrivateMission::onEventTCPSocketError(int errorCode)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>ȡ
|
|||
|
|
bool PrivateMission::onEventTCPSocketRead(int main, int sub, void* data, int dataSize)
|
|||
|
|
{
|
|||
|
|
switch (main)
|
|||
|
|
{
|
|||
|
|
//<2F><>¼<EFBFBD><C2BC>Ϣ
|
|||
|
|
case MDM_GR_LOGON: return OnSocketMainLogon(sub, data, dataSize);
|
|||
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD>Ϣ
|
|||
|
|
case MDM_GR_USER: return OnSocketMainUser(sub, data, dataSize);
|
|||
|
|
//ϵͳ<CFB5><CDB3>Ϣ
|
|||
|
|
case MDM_CM_SYSTEM: return OnSocketMainSystem(sub, data, dataSize);
|
|||
|
|
//˽<>˳<EFBFBD><CBB3><EFBFBD>Ϣ
|
|||
|
|
case MDM_GR_PRIVATE:return OnSocketMainPrivate(sub, data, dataSize);
|
|||
|
|
|
|||
|
|
default:
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>¼<EFBFBD><C2BC>Ϣ
|
|||
|
|
bool PrivateMission::OnSocketMainLogon(int sub, void* data, int dataSize)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
switch (sub)
|
|||
|
|
{
|
|||
|
|
case SUB_GR_LOGON_FINISH:
|
|||
|
|
{
|
|||
|
|
if (m_wMeTableID != INVALID_TABLE)
|
|||
|
|
{
|
|||
|
|
EnterGameScene();
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (m_eLinkAction == Type_Link_Create)
|
|||
|
|
{
|
|||
|
|
SendSocketData(MDM_GR_PRIVATE, SUB_GR_CREATE_PRIVATE, &m_kCreatePrivateNet, sizeof(m_kCreatePrivateNet));
|
|||
|
|
zeromemory(&m_kCreatePrivateNet, sizeof(m_kCreatePrivateNet));
|
|||
|
|
}
|
|||
|
|
else if (m_eLinkAction == Type_Link_Join)
|
|||
|
|
{
|
|||
|
|
CMD_GR_Join_Private kSendNet;
|
|||
|
|
kSendNet.dwRoomNum = m_dwJoinRoomNum;
|
|||
|
|
SendSocketData(MDM_GR_PRIVATE, SUB_GR_JOIN_PRIVATE, &kSendNet, sizeof(kSendNet));
|
|||
|
|
}
|
|||
|
|
else if (Type_Link_Auto == m_eLinkAction)
|
|||
|
|
{
|
|||
|
|
SendSocketData(MDM_GR_PRIVATE, SUB_GR_CREATE_AUTO_ROOM, &m_kAutoRoomInfo, sizeof(m_kAutoRoomInfo));
|
|||
|
|
zeromemory(&m_kAutoRoomInfo, sizeof(m_kAutoRoomInfo));
|
|||
|
|
}
|
|||
|
|
else if (Type_Link_Del == m_eLinkAction)
|
|||
|
|
{
|
|||
|
|
SendSocketData(MDM_GR_PRIVATE, SUB_GR_DEL_AUTO_ROOM_INFO, &m_kDelAutoRoomInfo, sizeof(m_kDelAutoRoomInfo));
|
|||
|
|
zeromemory(&m_kDelAutoRoomInfo, sizeof(m_kDelAutoRoomInfo));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
m_eLinkAction = Type_Link_NULL;
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case SUB_GR_LOGON_FAILURE:
|
|||
|
|
{
|
|||
|
|
CMD_GR_LogonError* pGameServer = (CMD_GR_LogonError*)data;
|
|||
|
|
PopScene::Instance().show(utility::a_u8(pGameServer->szErrorDescribe));
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case SUB_GR_UPDATE_NOTIFY:
|
|||
|
|
{
|
|||
|
|
auto callback = []{
|
|||
|
|
Director::getInstance()->end();
|
|||
|
|
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
|
|||
|
|
exit(0);
|
|||
|
|
#endif
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
PopScene::Instance().show(utility::a_u8("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>°汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD><EFBFBD><EFBFBD>°<EFBFBD>װ<EFBFBD><EFBFBD>"), callback);
|
|||
|
|
|
|||
|
|
this->stop();
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
default:
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD>Ϣ
|
|||
|
|
bool PrivateMission::OnSocketMainUser(int sub, void* data, int dataSize)
|
|||
|
|
{
|
|||
|
|
if (sub == SUB_GR_USER_ENTER)
|
|||
|
|
{
|
|||
|
|
tagUserInfoHead* pUserInfoHead = (tagUserInfoHead*)data;
|
|||
|
|
|
|||
|
|
if (pUserInfoHead->dwUserID == m_dwMeUserID)
|
|||
|
|
{
|
|||
|
|
m_wMeTableID = pUserInfoHead->wTableID;
|
|||
|
|
m_wMeChairID = pUserInfoHead->wChairID;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else if (sub == SUB_GR_USER_STATUS)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CMD_GR_UserStatus * pUserStatus = (CMD_GR_UserStatus *)data;
|
|||
|
|
|
|||
|
|
if (pUserStatus->dwUserID == m_dwMeUserID &&
|
|||
|
|
(pUserStatus->UserStatus.wTableID != INVALID_TABLE || pUserStatus->UserStatus.wChairID != INVALID_CHAIR))
|
|||
|
|
{
|
|||
|
|
EnterGameScene();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else if (sub == SUB_GR_SIT_FAILED)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CMD_GR_RequestFailure * pRequestFailure = (CMD_GR_RequestFailure *)data;
|
|||
|
|
|
|||
|
|
//Ч<><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ASSERT(dataSize > (sizeof(CMD_GR_RequestFailure) - sizeof(pRequestFailure->szDescribeString)));
|
|||
|
|
if (dataSize <= (sizeof(CMD_GR_RequestFailure) - sizeof(pRequestFailure->szDescribeString))) return false;
|
|||
|
|
|
|||
|
|
PopScene::Instance().show(a_u8c(pRequestFailure->szDescribeString));
|
|||
|
|
|
|||
|
|
this->stop();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//ϵͳ<CFB5><CDB3>Ϣ
|
|||
|
|
bool PrivateMission::OnSocketMainSystem(int sub, void* data, int dataSize)
|
|||
|
|
{
|
|||
|
|
switch (sub)
|
|||
|
|
{
|
|||
|
|
//ϵͳ<CFB5><CDB3>Ϣ
|
|||
|
|
case SUB_CM_SYSTEM_MESSAGE: return OnSocketSubSystemMessage(data, dataSize);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ASSERT(FALSE);
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//ϵͳ<CFB5><CDB3>Ϣ
|
|||
|
|
bool PrivateMission::OnSocketSubSystemMessage(void* data, int wDataSize)
|
|||
|
|
{
|
|||
|
|
cocos2d::log(("PrivateMission::OnSocketSubSystemMessage\n"));
|
|||
|
|
|
|||
|
|
CMD_CM_SystemMessage * pSystemMessage = (CMD_CM_SystemMessage *)data;
|
|||
|
|
uint16 wHeadSize = sizeof(CMD_CM_SystemMessage) - sizeof(pSystemMessage->szString);
|
|||
|
|
|
|||
|
|
//Ч<><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ASSERT((wDataSize > wHeadSize) && (wDataSize == (wHeadSize + pSystemMessage->wLength*sizeof(char))));
|
|||
|
|
if ((wDataSize <= wHeadSize) || (wDataSize != (wHeadSize + pSystemMessage->wLength*sizeof(char)))) return false;
|
|||
|
|
|
|||
|
|
uint16 wType = pSystemMessage->wType;
|
|||
|
|
|
|||
|
|
this->stop();
|
|||
|
|
|
|||
|
|
PopScene::Instance().show(utility::a_u8(pSystemMessage->szString));
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//
|
|||
|
|
bool PrivateMission::OnSocketMainPrivate(int sub, void* data, int dataSize)
|
|||
|
|
{
|
|||
|
|
switch (sub)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD>ò<EFBFBD>ѯ
|
|||
|
|
case SUB_GR_PRIVATE_INFO:
|
|||
|
|
{
|
|||
|
|
return OnSocketSubPrivateInfo(data, dataSize);
|
|||
|
|
}
|
|||
|
|
case SUB_GR_CREATE_PRIVATE_SUCESS:
|
|||
|
|
{
|
|||
|
|
return OnSocketSubPrivateCreateSuceess(data, dataSize);
|
|||
|
|
}
|
|||
|
|
case SUB_GF_PRIVATE_ROOM_INFO:
|
|||
|
|
{
|
|||
|
|
return OnSocketSubPrivateRoomInfo(data, dataSize);
|
|||
|
|
}
|
|||
|
|
case SUB_GR_PRIVATE_HAS_CREATED:
|
|||
|
|
{
|
|||
|
|
EnterGameScene();
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
case SUB_GR_CREATE_AUTO_RESULTE:
|
|||
|
|
{
|
|||
|
|
return OnSocketSubCreateAutoResulte(data, dataSize);
|
|||
|
|
}
|
|||
|
|
case SUB_GR_DEL_AUTO_ROOM_INFO:
|
|||
|
|
{
|
|||
|
|
return OnSocketSubDelAutoResulte(data, dataSize);
|
|||
|
|
}
|
|||
|
|
case SUB_GR_AUTO_USER_READY:
|
|||
|
|
{
|
|||
|
|
return OnSocketSubAutoUserReady(data, dataSize);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//void PrivateMission::SendPrivateAgagin()
|
|||
|
|
//{
|
|||
|
|
// CMD_GR_Again_Private kNetInfo;
|
|||
|
|
// SendSocketData(MDM_GR_PRIVATE, SUB_GR_RRIVATE_AGAIN, &kNetInfo, sizeof(kNetInfo));
|
|||
|
|
//}
|
|||
|
|
|
|||
|
|
//
|
|||
|
|
bool PrivateMission::OnSocketSubPrivateInfo(void* data, int dataSize)
|
|||
|
|
{
|
|||
|
|
cocos2d::log("PrivateMission::OnSocketSubPrivateInfo\n");
|
|||
|
|
CMD_GR_Private_Info *pNetInfo = (CMD_GR_Private_Info*)data;
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
|
|||
|
|
bool PrivateMission::OnSocketSubPrivateCreateSuceess(void* data, int dataSize)
|
|||
|
|
{
|
|||
|
|
cocos2d::log("PrivateMission::OnSocketSubPrivateCreateSuceess\n");
|
|||
|
|
|
|||
|
|
ASSERT(dataSize == sizeof(CMD_GR_Create_Private_Sucess));
|
|||
|
|
if (dataSize != sizeof(CMD_GR_Create_Private_Sucess)) return false;
|
|||
|
|
|
|||
|
|
CMD_GR_Create_Private_Sucess *pNetInfo = (CMD_GR_Create_Private_Sucess*)data;
|
|||
|
|
|
|||
|
|
// <20>Ĵ<DEB8><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿͻ<C9BF><CDBB><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ(zhangxw 2017-08-24);
|
|||
|
|
CMD_GR_Join_Private kSendNet;
|
|||
|
|
kSendNet.dwRoomNum = pNetInfo->dwRoomNum;
|
|||
|
|
SendSocketData(MDM_GR_PRIVATE, SUB_GR_JOIN_PRIVATE, &kSendNet, sizeof(kSendNet));
|
|||
|
|
|
|||
|
|
//EnterGameScene();
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//˽<>˳<EFBFBD><CBB3><EFBFBD>Ϣ
|
|||
|
|
bool PrivateMission::OnSocketSubPrivateRoomInfo(void* data, int dataSize)
|
|||
|
|
{
|
|||
|
|
cocos2d::log("PrivateMission::OnSocketSubPrivateRoomInfo\n");
|
|||
|
|
|
|||
|
|
DataStream kDataStream(data, dataSize);
|
|||
|
|
CMD_GF_Private_Room_Info kNetInfo;
|
|||
|
|
kNetInfo.StreamValue(kDataStream, false);
|
|||
|
|
|
|||
|
|
EnterGameScene();
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
|
|||
|
|
bool PrivateMission::SendSocketData(uint16 wMainCmdID, uint16 wSubCmdID)
|
|||
|
|
{
|
|||
|
|
return SendSocketData(wMainCmdID, wSubCmdID, 0, 0);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
|
|||
|
|
bool PrivateMission::SendSocketData(uint16 wMainCmdID, uint16 wSubCmdID, void * data, uint16 dataSize)
|
|||
|
|
{
|
|||
|
|
return send(wMainCmdID, wSubCmdID, (unsigned char*)data, dataSize);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>͵<EFBFBD>¼
|
|||
|
|
bool PrivateMission::SendLogonPacket()
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CGlobalUserInfo * pGlobalUserInfo = CGlobalUserInfo::GetInstance();
|
|||
|
|
tagGlobalUserData * pGlobalUserData = pGlobalUserInfo->GetGlobalUserData();
|
|||
|
|
|
|||
|
|
m_dwMeUserID = pGlobalUserData->dwUserID;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CMD_GR_LogonUserID LogonUserID;
|
|||
|
|
zeromemory(&LogonUserID, sizeof(LogonUserID));
|
|||
|
|
|
|||
|
|
LogonUserID.wKindID = m_wGameKindID;
|
|||
|
|
//<2F><>Ϸ<EFBFBD>汾
|
|||
|
|
//LogonUserID.dwProcessVersion = Helps::Instance()->GetGameVersion();
|
|||
|
|
//LogonUserID.dwPlazaVersion = Helps::Instance()->GetPlazaVersion();
|
|||
|
|
LogonUserID.dwPlazaVersion = JniFun::getVersionCode();
|
|||
|
|
|
|||
|
|
//<2F><>¼<EFBFBD><C2BC>Ϣ
|
|||
|
|
LogonUserID.dwUserID = m_dwMeUserID;
|
|||
|
|
strncpy(LogonUserID.szPassword, pGlobalUserData->szPassword, countarray(LogonUserID.szPassword));
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
SendSocketData(MDM_GR_LOGON, SUB_GR_LOGON_USERID, &LogonUserID, sizeof(LogonUserID));
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool PrivateMission::onEventTCPHeartTick()
|
|||
|
|
{
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
|
|||
|
|
void PrivateMission::EnterGameScene()
|
|||
|
|
{
|
|||
|
|
stop();
|
|||
|
|
|
|||
|
|
if (m_pPrivateMissionSink)
|
|||
|
|
{
|
|||
|
|
m_pPrivateMissionSink->StartGameScene(m_pGameServerItem);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>˽<EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
void PrivateMission::SetCreateInfo(CMD_GR_Create_Private* pInfo)
|
|||
|
|
{
|
|||
|
|
memcpy(&m_kCreatePrivateNet, pInfo, sizeof(CMD_GR_Create_Private));
|
|||
|
|
m_eLinkAction = Type_Link_Create;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
void PrivateMission::SetCreateAutoInfo(CMD_GR_AutoRoomInfo* pInfo)
|
|||
|
|
{
|
|||
|
|
memcpy(&m_kAutoRoomInfo, pInfo, sizeof(CMD_GR_AutoRoomInfo));
|
|||
|
|
m_eLinkAction = Type_Link_Auto;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
void PrivateMission::SetDelAutoInfo(CMD_GP_DelAutoRoomInfo* pInfo)
|
|||
|
|
{
|
|||
|
|
memcpy(&m_kDelAutoRoomInfo, pInfo, sizeof(CMD_GP_DelAutoRoomInfo));
|
|||
|
|
m_eLinkAction = Type_Link_Del;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD>˽<EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
void PrivateMission::SetJoinInfo(uint32 dwJoinRoomNum)
|
|||
|
|
{
|
|||
|
|
m_dwJoinRoomNum = dwJoinRoomNum;
|
|||
|
|
m_eLinkAction = Type_Link_Join;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ӷ<EFBFBD><D3B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void PrivateMission::ConnectServerByServerID(uint16 wServerID)
|
|||
|
|
{
|
|||
|
|
CGameServerItem* pServer = CServerListData::shared()->SearchGameServer(wServerID);
|
|||
|
|
|
|||
|
|
ConnectServer(pServer, true);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ӷ<EFBFBD><D3B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void PrivateMission::ConnectServer(CGameServerItem* pServerItem, bool bServerID/* = false*/)
|
|||
|
|
{
|
|||
|
|
if (pServerItem)
|
|||
|
|
{
|
|||
|
|
m_pGameServerItem = pServerItem;
|
|||
|
|
m_wGameKindID = pServerItem->m_GameServer.wKindID;
|
|||
|
|
setUrl(pServerItem->m_GameServer.szServerAddr, pServerItem->m_GameServer.wServerPort);
|
|||
|
|
start();
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if (bServerID)
|
|||
|
|
{
|
|||
|
|
PopScene::Instance().show(utility::a_u8("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
PopScene::Instance().show(a_u8c("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>"));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
|||
|
|
bool PrivateMission::OnSocketSubCreateAutoResulte(void* data, int dataSize)
|
|||
|
|
{
|
|||
|
|
stop();
|
|||
|
|
|
|||
|
|
ASSERT(dataSize >= sizeof(SCORE));
|
|||
|
|
if (dataSize < sizeof(SCORE)) return false;
|
|||
|
|
|
|||
|
|
CMD_GR_AutoResulte *pNetInfo = (CMD_GR_AutoResulte*)data;
|
|||
|
|
|
|||
|
|
if (m_pPrivateMissionSink)
|
|||
|
|
{
|
|||
|
|
m_pPrivateMissionSink->CreateAutoRoomInfoResulte(pNetInfo);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
|||
|
|
bool PrivateMission::OnSocketSubDelAutoResulte(void* data, int dataSize)
|
|||
|
|
{
|
|||
|
|
stop();
|
|||
|
|
|
|||
|
|
ASSERT(dataSize >= sizeof(SCORE));
|
|||
|
|
if (dataSize < sizeof(SCORE)) return false;
|
|||
|
|
|
|||
|
|
CMD_GR_AutoResulte *pNetInfo = (CMD_GR_AutoResulte*)data;
|
|||
|
|
|
|||
|
|
if (m_pPrivateMissionSink)
|
|||
|
|
{
|
|||
|
|
m_pPrivateMissionSink->CreateAutoRoomInfoResulte(pNetInfo);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ״̬;
|
|||
|
|
bool PrivateMission::OnSocketSubAutoUserReady(void* data, int dataSize)
|
|||
|
|
{
|
|||
|
|
return true;
|
|||
|
|
}
|