void MMatchRuleAssassinate::OnRoundBegin() { MMatchServer* pServer = MMatchServer::GetInstance(); MMatchStage* pStage = GetStage(); if (pServer==NULL || pStage==NULL) return; m_uidRedCommander = ChooseCommander(MMT_RED); m_uidBlueCommander = ChooseCommander(MMT_BLUE); if ( (m_uidRedCommander == MUID(0,0)) || (m_uidBlueCommander == MUID(0,0)) ) { // Wait the game SetRoundState(MMATCH_ROUNDSTATE_FREE); return; } // Let players know the commander... MCommand* pCmd = pServer->CreateCommand(MC_MATCH_ASSIGN_COMMANDER, MUID(0,0)); pCmd->AddParameter(new MCmdParamUID(m_uidRedCommander)); pCmd->AddParameter(new MCmdParamUID(m_uidBlueCommander)); pServer->RouteToStage(pStage->GetUID(), pCmd); // OutputDebugString("Assassinate::OnRoundBegin() \n"); }
void CCMatchRuleAssassinate::ChooseAdminAsCommander() { m_bIsAdminCommander = !m_bIsAdminCommander; CCMatchServer* pServer = CCMatchServer::GetInstance(); CCMatchStage* pStage = GetStage(); if (pServer==NULL || pStage==NULL) return; m_uidRedCommander = ChooseCommander(CCMT_RED); m_uidBlueCommander = ChooseCommander(CCMT_BLUE); if ( (m_uidRedCommander == CCUID(0,0)) || (m_uidBlueCommander == CCUID(0,0)) ) { // Wait the game SetRoundState(CCMATCH_ROUNDSTATE_FREE); return; } // Let players know the commander... CCCommand* pCmd = pServer->CreateCommand(MC_MATCH_ASSIGN_COMMANDER, CCUID(0,0)); pCmd->AddParameter(new CCCmdParamCCUID(m_uidRedCommander)); pCmd->AddParameter(new CCCmdParamCCUID(m_uidBlueCommander)); pServer->RouteToStage(pStage->GetUID(), pCmd); }