public bool HandlePacket(Peer peer, byte[] data, Game game) { if (game.IsStarted()) { return(true); } game.IncrementReadyPlayers(); if (game.GetReadyPlayers() == game.GetPlayers().Count) { var start = new StatePacket(PacketCmdS2C.PKT_S2C_StartGame); game.PacketHandlerManager.broadcastPacket(start, Channel.CHL_S2C); foreach (var player in game.GetPlayers()) { if (player.Item2.GetPeer() == peer && !player.Item2.IsVersionMatch()) { var dm = new DebugMessage("Your client version does not match the server. Check the server log for more information."); game.PacketHandlerManager.sendPacket(peer, dm, Channel.CHL_S2C); } game.PacketNotifier.notifyUpdatedStats(player.Item2.GetChampion(), false); } game.SetStarted(true); } if (game.IsStarted()) { foreach (var p in game.GetPlayers()) { var map = game.GetMap(); map.AddObject(p.Item2.GetChampion()); // Send the initial game time sync packets, then let the map send another float gameTime = map.GetGameTime() / 1000.0f; var timer = new GameTimer(gameTime); // 0xC1 game.PacketHandlerManager.sendPacket(p.Item2.GetPeer(), timer, Channel.CHL_S2C); var timer2 = new GameTimerUpdate(gameTime); // 0xC2 game.PacketHandlerManager.sendPacket(p.Item2.GetPeer(), timer2, Channel.CHL_S2C); } } return(true); }
public bool HandlePacket(Peer peer, byte[] data) { if (_game.IsRunning) { return(true); } _game.IncrementReadyPlayers(); if (_game.PlayersReady == _playerManager.GetPlayers().Count) { var start = new StatePacket(PacketCmdS2C.PKT_S2C_StartGame); _game.PacketHandlerManager.broadcastPacket(start, Channel.CHL_S2C); foreach (var player in _playerManager.GetPlayers()) { if (player.Item2.Peer == peer && !player.Item2.IsMatchingVersion) { var dm = new DebugMessage("Your client version does not match the server. Check the server log for more information."); _game.PacketHandlerManager.sendPacket(peer, dm, Channel.CHL_S2C); } _game.PacketNotifier.notifyUpdatedStats(player.Item2.Champion, false); } _game.Start(); } if (_game.IsRunning) { foreach (var p in _playerManager.GetPlayers()) { var map = _game.Map; map.AddObject(p.Item2.Champion); // Send the initial game time sync packets, then let the map send another float gameTime = map.GameTime / 1000.0f; var timer = new GameTimer(gameTime); // 0xC1 _game.PacketHandlerManager.sendPacket(p.Item2.Peer, timer, Channel.CHL_S2C); var timer2 = new GameTimerUpdate(gameTime); // 0xC2 _game.PacketHandlerManager.sendPacket(p.Item2.Peer, timer2, Channel.CHL_S2C); } } return(true); }
public unsafe bool HandlePacket(ENetPeer *peer, byte[] data, Game game) { game.IncrementReadyPlayers(); if (game.getReadyPlayers() == game.getPlayers().Count) { var start = new StatePacket(PacketCmdS2C.PKT_S2C_StartGame); PacketHandlerManager.getInstace().broadcastPacket(start, Channel.CHL_S2C); foreach (var player in game.getPlayers()) { if (player.Item2.getPeer() == peer && !player.Item2.isVersionMatch()) { var dm = new SpawnParticle.DebugMessage("Your client version does not match the server. Check the server log for more information."); PacketHandlerManager.getInstace().sendPacket(peer, dm, Channel.CHL_S2C); } } game.setStarted(true); } if (game.isStarted()) { foreach (var p in game.getPlayers()) { var map = game.getMap(); map.addObject(p.Item2.getChampion()); // Send the initial game time sync packets, then let the map send another float gameTime = map.getGameTime() / 1000.0f; var timer = new GameTimer(gameTime); // 0xC1 PacketHandlerManager.getInstace().sendPacket(p.Item2.getPeer(), timer, Channel.CHL_S2C); var timer2 = new GameTimerUpdate(gameTime); // 0xC2 PacketHandlerManager.getInstace().sendPacket(p.Item2.getPeer(), timer2, Channel.CHL_S2C); } } return(true); }
public void NotifyGameTimerUpdate(int userId, float time) { var timer = new GameTimerUpdate(time / 1000.0f); _packetHandlerManager.SendPacket(userId, timer, Channel.CHL_S2C); }
public bool HandlePacket(Peer peer, byte[] data) { var peerInfo = _playerManager.GetPeerInfo(peer); if (!peerInfo.IsDisconnected) { _game.IncrementReadyPlayers(); } /* if (_game.IsRunning) * return true; */ if (_game.PlayersReady == _playerManager.GetPlayers().Count) { var start = new StatePacket(PacketCmd.PKT_S2C_StartGame); _game.PacketHandlerManager.broadcastPacket(start, Channel.CHL_S2C); foreach (var player in _playerManager.GetPlayers()) { if (player.Item2.Peer == peer && !player.Item2.IsMatchingVersion) { var dm = new DebugMessage("Your client version does not match the server. Check the server log for more information."); _game.PacketHandlerManager.sendPacket(peer, dm, Channel.CHL_S2C); } _game.PacketNotifier.NotifySetHealth(player.Item2.Champion); _game.PacketNotifier.NotifyUpdatedStats(player.Item2.Champion, false); } _game.Start(); } if (_game.IsRunning) { var map = _game.Map; if (peerInfo.IsDisconnected) { foreach (var player in _playerManager.GetPlayers()) { if (player.Item2.Team == peerInfo.Team) { var heroSpawnPacket = new HeroSpawn2(player.Item2.Champion); _game.PacketHandlerManager.sendPacket(peer, heroSpawnPacket, Channel.CHL_S2C); /* This is probably not the best way * of updating a champion's level, but it works */ var levelUpPacket = new LevelUp(player.Item2.Champion); _game.PacketHandlerManager.sendPacket(peer, levelUpPacket, Channel.CHL_S2C); if (_game.IsPaused) { var pausePacket = new PauseGame((int)_game.PauseTimeLeft, true); _game.PacketHandlerManager.sendPacket(peer, pausePacket, Channel.CHL_S2C); } } } peerInfo.IsDisconnected = false; _game.PacketNotifier.NotifyUnitAnnounceEvent(UnitAnnounces.SummonerReconnected, peerInfo.Champion); // Send the initial game time sync packets, then let the map send another float gameTime = map.GameTime / 1000.0f; var timer = new GameTimer(gameTime); // 0xC1 _game.PacketHandlerManager.sendPacket(peer, timer, Channel.CHL_S2C); var timer2 = new GameTimerUpdate(gameTime); // 0xC2 _game.PacketHandlerManager.sendPacket(peer, timer2, Channel.CHL_S2C); return(true); } foreach (var p in _playerManager.GetPlayers()) { map.AddObject(p.Item2.Champion); // Send the initial game time sync packets, then let the map send another float gameTime = map.GameTime / 1000.0f; var timer = new GameTimer(gameTime); // 0xC1 _game.PacketHandlerManager.sendPacket(p.Item2.Peer, timer, Channel.CHL_S2C); var timer2 = new GameTimerUpdate(gameTime); // 0xC2 _game.PacketHandlerManager.sendPacket(p.Item2.Peer, timer2, Channel.CHL_S2C); } } return(true); }