//---------------------------------------------------------------------------
//	功能:设定队伍状态:打开(允许接受新成员)
//---------------------------------------------------------------------------
BOOL	KTeam::SetTeamOpen()
{
#ifdef _SERVER
	if (CheckFull())
		return FALSE;
	m_nState = Team_S_Open;

	PLAYER_TEAM_OPEN_CLOSE	sTeamState;
	sTeamState.ProtocolType = (BYTE)s2c_teamopenclose;
	sTeamState.m_btOpenClose = Team_S_Open;
	g_pServer->PackDataToClient(Player[m_nCaptain].m_nNetConnectIdx, (BYTE*)&sTeamState, sizeof(PLAYER_TEAM_OPEN_CLOSE));

	Player[m_nCaptain].m_cMenuState.SetState(m_nCaptain, PLAYER_MENU_STATE_TEAMOPEN);

	NPC_SET_MENU_STATE_SYNC	sSync;
	sSync.ProtocolType = s2c_npcsetmenustate;
	sSync.m_dwID = Npc[Player[m_nCaptain].m_nIndex].m_dwID;
	sSync.m_btState = PLAYER_MENU_STATE_TEAMOPEN;
	sSync.m_wLength = sizeof(NPC_SET_MENU_STATE_SYNC) - 1 - sizeof(sSync.m_szSentence);
	Npc[Player[m_nCaptain].m_nIndex].SendDataToNearRegion((LPVOID)&sSync, sSync.m_wLength + 1);

	return TRUE;
#else
	m_nState = Team_S_Open;
	Player[CLIENT_PLAYER_INDEX].m_cTeam.UpdateInterface();
	return TRUE;
#endif
}
//---------------------------------------------------------------------------
//	功能:添加一个队伍成员
//---------------------------------------------------------------------------
BOOL	KTeam::AddMember(int nPlayerIndex)
{
	// 队伍是否为空
	if (m_nCaptain < 0)
		return FALSE;
	// 阵营是否相同
	if ( !CheckAddCondition(nPlayerIndex) )
		return FALSE;
	// 是否已经满员
	if (CheckFull())
		return FALSE;

	int n;
	n = FindFree();
	if (n < 0)
		return FALSE;
	m_nMember[n] = nPlayerIndex;
	m_nMemNum++;

	return TRUE;
}
示例#3
0
文件: Game.cpp 项目: mpgaillard/Games
int GameUpdate(TGAME* Juego){
	Juego->GanadorEncontrado = CheckFull();

	Keyboard_Update(&(Juego->Teclado));

	if(Keyboard_Check(&(Juego->Teclado), eKey_Esc)){
		Juego->EstadoActual = Terminado;
		return 0;
	}

	if(Juego->GanadorEncontrado){
		Juego->EstadoActual = Lleno;
		if(Keyboard_Check(&(Juego->Teclado), eKey_Enter)){
			GameInit(Juego);
		}
		return 0;
	}

	if(!(Juego->pos_o_linea)){
		CheckForWin(Juego);
	}

	if(Keyboard_Check(&(Juego->Teclado), eKey_Enter) && Juego->pos_o_linea==false){
		Sleep(200);
		Juego->pos_o_linea = !(Juego->pos_o_linea);
		//GraphicManager_WriteChar(&(Juego->Pantalla), pos_cursor[0], pos_cursor[1], ' ');
		if(pos_cursor[0]<48)
			Juego->eLinea = Right;
		else Juego->eLinea = Left;
	}

	else if(Keyboard_Check(&(Juego->Teclado), eKey_Enter) && Juego->pos_o_linea==true){
		Juego->pos_o_linea = !(Juego->pos_o_linea);
	//	GraphicManager_WriteChar(&(Juego->Pantalla), pos_cursor[0], pos_cursor[1], ' ');
	}


	return 0;
}