private void CreateServerGame(ServerGameInfo sgi) { Serv.GameServer gs = new Yad.Net.GameServer.Server.GameServer(sgi); gs.EnterMsgHandlerChange(this._server); lock (((ICollection)_gameServerList).SyncRoot) { _gameServerList.Add(gs); } gs.OnGameEnd += new GameEndDelegate(OnGameServerEnd); gs.OnPlayerLeave += new PlayerGameLeaveDelegate(OnPlayerGameLeave); gs.StartGameServer(); }
private void OnGameServerEnd(object sender, GameEndEventArgs args) { Serv.GameServer gs = sender as Serv.GameServer; Player[] players = gs.GetPlayersArray(); gs.LeaveMsgHandlerChange(this._server); for (int i = 0; i < players.Length; ++i) { players[i].State = PlayerStateMachine.Transform(players[i].State, MenuAction.GameEnd); _server.Chat.AddPlayer(players[i]); } _gameServerList.Remove(gs); }