📄 charselect.cpp
字号:
}
return;
case MP_USERCONN_CHANNELINFO_ACK:
{
MSG_CHANNEL_INFO * pmsg = (MSG_CHANNEL_INFO*)pMsg;
GetChannelDialog()->SetChannelList(pmsg);
SetDisablePick(TRUE);
// 眉澄捞 窍唱捞搁 官肺 甸绢啊霸 窃
if(pmsg->Count == 1)
{
GetChannelDialog()->OnConnect();
GetChannelDialog()->SetActive(FALSE);
}
}
return;
case MP_USERCONN_CHANNELINFO_NACK:
{
MSG_BYTE* msg = (MSG_BYTE*)pMsg;
if( msg->bData == 0 )
{
//甘捞 摧躯促.
//急琶芒捞 disable登绢乐唱?
WINDOWMGR->MsgBox( MBI_MAPSERVER_CLOSE, MBT_OK, CHATMGR->GetChatMsg(449) );
}
else
{
//某腐沥焊 肋给登菌促.
WINDOWMGR->MsgBox( MBI_MAPSERVER_CLOSE, MBT_OK, CHATMGR->GetChatMsg(450) );
}
}
return;
}
}
break;
}
// LOG(EC_UNKNOWN_PROTOCOL);
}
void CCharSelect::InitCameraInCharSelect()
{
//弥辆 技泼瞪 搬苞
VECTOR3 vPivot;
//* 墨皋扼 捞悼
if(CAMERA->IsMoved() == FALSE)
{
vPivot.x = 27740;
vPivot.y = 4960;
vPivot.z = 9104;
CAMERA->InitCamera(0, -2.0f, 17.0f, 2000, &vPivot);// 芭府 炼沥
//
MHCAMERAPOS CPos;
CPos.m_AngleX = -2.0f;
CPos.m_AngleY = 17.0f;
CPos.m_Dist = 2000;
CPos.m_Pivot = vPivot;
CAMERA->SetMovePos(eCP_CHARSEL, &CPos);
vPivot.x = 24480;
vPivot.y = 6045;
vPivot.z = 9854;
CPos.m_AngleX = -6.0f;
CPos.m_AngleY = 0.0f;
CPos.m_Dist = 2000;
CPos.m_Pivot = vPivot;
CAMERA->SetMovePos(eCP_CHARMAKE, &CPos);
}
//*/
/* 捞悼救矫懦订 捞吧风..
vPivot.x = 27740;
vPivot.y = 4960;
vPivot.z = 9104;
CAMERA->InitCamera(0, -2.0f, 17.0f, 2000, &vPivot);// 芭府 炼沥
//*/
CAMERA->SetCameraMode(eCM_LOGIN);
CAMERA->SetCurCamera(0);
//墨皋扼 扁瓷... 鸥百困摹肺狼 局聪皋捞记(墨皋扼, 乔哈) 鞘夸.
/*
VECTOR3 vPivot;
vPivot.x = 23558;
vPivot.y = 671;
vPivot.z = 31780;
CAMERA->InitCamera(0, 0.0f, 90.0f, 5115, &vPivot);// 芭府 炼沥
CAMERA->SetCameraMode(eCM_LOGIN);
*/ /// 皋牢鸥捞撇狼 技泼惑炔
/*
VECTOR3 pos;
// pos.x = 25400; //蔼阑 疵捞搁 快螟栏肺
pos.x = 25750;
// pos.y = -100;
pos.y = -70;
pos.z = 39900;
CAMERA->InitCamera(0, 0.17f, 0, 10500, &pos);// 芭府 炼沥
// CAMERA->InitCamera(0, 2.0, 0, 10500, &pos);// 芭府 炼沥
CAMERA->SetCameraMode(eCM_LOGIN);
CAMERA->SetCurCamera(0);
if(m_bReturnOfCharMake == FALSE)
{
// CAMERA->ZoomDistance(0, -1200.f, 1700);
CAMERA->ZoomDistance(0, -0550.f, 1700);
CAMERA->SetTargetAngleX(0,0.8f,1700);
CAMERA->SetTargetAngleY(0,0.25f,1700);
CAMERA->SetTargetAngleY(0,0.6f,0);
}
else
{
// CAMERA->ZoomDistance(0, 900, 1700); // pjs 墨皋扼 第肺 捞悼 [5/13/2003]
CAMERA->ZoomDistance(0, 1200, 1700);
}
*/
}
void CCharSelect::SetCurSelctedPlayer(int num)
{
cPushupButton * charBtn[4];
if(num == -1)
{
for(int n=0;n<4;++n)
{
charBtn[n] = (cPushupButton *)WINDOWMGR->GetWindowForIDEx(MT_FIRSTCHOSEBTN+n);
charBtn[n]->SetPush(FALSE);
}
m_CurSelectedPlayer = -1;
return;
}
for(int n=0;n<4;++n)
{
charBtn[n] = (cPushupButton *)WINDOWMGR->GetWindowForIDEx(MT_FIRSTCHOSEBTN+n);
if(n == num)
charBtn[n]->SetPush(TRUE);
else
charBtn[n]->SetPush(FALSE);
}
m_CurSelectedPlayer = num;
}
void CCharSelect::SelectPlayer(int num)
{
if( GetCurSelectedPlayer() )
if( GetCurSelectedPlayer()->GetEngineObject()->GetCurMotion() != eMotion_Sel1Afterstop )
{
cPushupButton * charBtn = (cPushupButton *)WINDOWMGR->GetWindowForIDEx(MT_FIRSTCHOSEBTN + num);
charBtn->SetPush( FALSE );
return;
}
if( num == m_CurSelectedPlayer)
{
return;
}
if(num != -1)
if(m_pPlayer[num] == NULL)
{
cPushupButton * charBtn[4];
charBtn[num] = (cPushupButton *)WINDOWMGR->GetWindowForIDEx(MT_FIRSTCHOSEBTN+num);
charBtn[num]->SetPush(FALSE);
return;
// cPushupButton * charBtn[4];
// charBtn[num] = (cPushupButton *)WINDOWMGR->GetWindowForIDEx(MT_FIRSTCHOSEBTN+num);
// charBtn[num]->SetPush(FALSE);
// return;
}
/*
if(num == m_CurSelectedPlayer)
{
//辑乐绰 局甫 第倒酒啊霸 窍绊
SetCurSelctedPlayer(-1);
PlayDeselectedMotion(num);
return;
}
*/
PlayDeselectedMotion(m_CurSelectedPlayer);
PlaySelectedMotion(num);
SetCurSelctedPlayer(num);
}
BOOL CCharSelect::IsFull()
{
for(int n=0;n<MAX_CHARACTER_NUM;++n)
{
if(m_pPlayer[n] == NULL)
return FALSE;
}
return TRUE;
}
BOOL CCharSelect::EnterGame()
{
CPlayer* pPlayer = GetCurSelectedPlayer();
if(pPlayer == NULL)
return FALSE;
GameLoadingParam loadingParam;
loadingParam.selectedCharNum = pPlayer->GetID();
loadingParam.m_MapNum = pPlayer->GetCharacterTotalInfo()->LoginMapNum;
MAINGAME->SetGameState(eGAMESTATE_GAMELOADING, (void *)&loadingParam, sizeof(GameLoadingParam));
return TRUE;
}
void CCharSelect::DeleteCharacter()
{
CPlayer* pPlayer = GetCurSelectedPlayer();
if(pPlayer == NULL)
return;
MSG_DWORD msg;
msg.Category = MP_USERCONN;
msg.Protocol = MP_USERCONN_CHARACTER_REMOVE_SYN;
msg.dwData = pPlayer->GetID();
NETWORK->Send(&msg,sizeof(msg));
}
void CCharSelect::PlaySelectedMotion(int num)
{
if(num == -1)
return;
if(m_pPlayer[num] == NULL)
return;
m_pPlayer[num]->ChangeMotion(eMotion_sel1After,0);//+4*num,0);
m_pPlayer[num]->ChangeBaseMotion(eMotion_Sel1Afterstop);//+4*num);
//KES 030904
// m_pPlayer[num]->DisPlayObjectName(RGB_HALF(255,255,0), 1000000000 );
}
void CCharSelect::PlayDeselectedMotion(int num)
{
if(num == -1)
return;
if(m_pPlayer[num] == NULL)
return;
m_pPlayer[num]->ChangeMotion(eMotion_Sel1Back,0);//+4*num, 0);
m_pPlayer[num]->ChangeBaseMotion(eMotion_Sel1Before);//+4*num);
//KES 030904
// m_pPlayer[num]->DisPlayObjectName(RGB_HALF(255,255,255), 1000000000 );
}
void CCharSelect::DisplayNotice(int MsgNum)
{
WINDOWMGR->MsgBox( MBI_CHARSELERROR, MBT_OK, CHATMGR->GetChatMsg(MsgNum) );
SetDisablePick( TRUE );
}
void CCharSelect::SetDisablePick( BOOL val )
{
m_bDiablePick = val;
if( m_pSelectDlg )
m_pSelectDlg->SetDisable( val );
}
void CCharSelect::BackToMainTitle()
{
MSGBASE msg;
msg.Category = MP_USERCONN;
msg.Protocol = MP_USERCONN_DISCONNECT_SYN;
NETWORK->Send(&msg,sizeof(msg));
SetBlock(TRUE);
gUserID = 0;
SetDisablePick(TRUE);
m_bBackToMainTitle = TRUE;
}
void CCharSelect::OnDisconnect()
{
// if( !m_bBlockScreen ) //backtomaintitle老锭绰 救嘛绰促.
// CGameState::OnDisconnect();
if( m_bBackToMainTitle )
{
SetBlock(FALSE);
OBJECTMGR->RemoveAllObject(); //咯扁辑 救瘤快绊 release俊辑 瘤快搁 maintitle拳搁俊 泪矫 焊牢促.
MAINGAME->SetGameState(eGAMESTATE_TITLE); //俊捞怜飘啊 谗唱搁..
m_bBackToMainTitle = FALSE;
NETWORK->ReleaseKey();
}
else
{
CGameState::OnDisconnect();
}
// do nothing
}
void CCharSelect::SendMsgGetChannelInfo()
{
CPlayer* pPlayer = GetCurSelectedPlayer();
if(pPlayer == NULL)
{
DisplayNotice(18);
return;
}
MSGBASE msg;
msg.Category = MP_USERCONN;
msg.Protocol = MP_USERCONN_CHANNELINFO_SYN;
msg.dwObjectID = pPlayer->GetID();
NETWORK->Send( &msg, sizeof(msg) );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -