//--------------------------------------------------------------------------- // 功能:设定队伍状态:打开(允许接受新成员) //--------------------------------------------------------------------------- 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; }
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; }