Beispiel #1
0
        public bool HandlePacket(Peer peer, byte[] data, Game game)
        {
            var loadInfo = new PingLoadInfo(data);
            var peerInfo = game.GetPeerInfo(peer);

            if (peerInfo == null)
            {
                return(false);
            }
            var response = new PingLoadInfo(loadInfo, peerInfo.UserId);

            //Logging->writeLine("loaded: %f, ping: %f, %f", loadInfo->loaded, loadInfo->ping, loadInfo->f3);
            return(game.PacketHandlerManager.broadcastPacket(response, Channel.CHL_LOW_PRIORITY, PacketFlags.None));
        }
Beispiel #2
0
        private void OnSyncVersionAns(byte[] packet, Channel channel)
        {
            if (!_gameStarted)
            {
                var answer = Serialize <SynchVersionAns>(packet);

                //Log.Write("Setting up for game mode: {0}", answer.GameMode);

                _isOdin = answer.GameMode.Equals("ODIN");

                // yay linq!
                var player = answer.players.ToList().Find(p => p.userId == _mySummonerId);
                _isOrder = player.teamId == 0x64;

                Send(Deserialize <PacketHeader>(PacketHeader.Create(PacketCommand.C2S_ClientReady, 0)), Channel.LoadingScreen);

                var ping = PingLoadInfo.Create(100, 2, _mySummonerId);
                Send(Deserialize <PingLoadInfo>(ping));
                Send(Deserialize <PacketHeader>(PacketHeader.Create(PacketCommand.C2S_CharLoaded, 0)));
                Send(Deserialize <StartGame>(StartGame.Create()));
            }
        }