コード例 #1
0
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");
}
コード例 #2
0
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);
}