示例#1
0
    public void Read(BitStream stream)
    {
        GameType    = stream.Read <E_MPGameType>();
        Team        = stream.Read <E_Team>();
        Winner      = stream.ReadBoolean();
        Place       = stream.ReadChar();
        Experience  = stream.ReadInt16();
        Money       = stream.ReadInt16();
        Gold        = stream.ReadInt16();
        NewRank     = stream.ReadBoolean();
        MissionExp  = stream.ReadInt16();
        MissioMoney = stream.ReadInt16();
        FirstRound  = stream.ReadBoolean();

        PlayersScore.Clear();
        PlayersScore.InsertRange(0, stream.Read <PlayerResult[]>());
    }
示例#2
0
        internal static T?_ReadNullable <T>(Deserializer deserializer, BitStream stream, object[] codecOptions) where T : struct
        {
            bool hasValue = stream.ReadBoolean();

            if (!hasValue)
            {
                return(null);
            }

            return((T)deserializer(stream, typeof(T).TypeHandle, codecOptions));
        }
示例#3
0
    private void uLink_OnConnectedToServer()
    {
        LoadingScreen.Update("connected!");
        uLink.BitStream bitStream = new uLink.BitStream((byte[])NetCull.approvalData.ReadObject(typeof(byte[]).TypeHandle, new object[0]), false);
        string          str       = bitStream.ReadString();

        NetCull.sendRate = bitStream.ReadSingle();
        string str1 = bitStream.ReadString();

        bitStream.ReadBoolean();
        bitStream.ReadBoolean();
        if (bitStream.bytesRemaining > 8)
        {
            ulong num = bitStream.ReadUInt64();
            SteamClient.SteamUser_AdvertiseGame(num, bitStream.ReadUInt32(), bitStream.ReadInt32());
        }
        UnityEngine.Debug.Log(string.Concat("Server Name: \"", str1, "\""));
        UnityEngine.Debug.Log(string.Concat("Level Name: \"", str, "\""));
        UnityEngine.Debug.Log(string.Concat("Send Rate: ", NetCull.sendRate));
        NetCull.isMessageQueueRunning = false;
        base.StartCoroutine(this.LoadLevel(str));
        DisableOnConnectedState.OnConnected();
    }
示例#4
0
    public override void DoAction1(uLink.BitStream stream, ItemRepresentation rep, ref uLink.NetworkMessageInfo info)
    {
        GameObject  gameObject;
        NetEntityID unassigned;

        if (stream.ReadBoolean())
        {
            unassigned = stream.Read <NetEntityID>(new object[0]);
            if (!unassigned.isUnassigned)
            {
                gameObject = unassigned.gameObject;
                if (gameObject == null)
                {
                    unassigned = NetEntityID.unassigned;
                }
            }
            else
            {
                gameObject = null;
            }
        }
        else
        {
            unassigned = NetEntityID.unassigned;
            gameObject = null;
        }
        Vector3 pos   = stream.ReadVector3();
        bool    flag2 = stream.ReadBoolean();

        this.EndSwingWorldAnimations(rep);
        if (gameObject != null)
        {
            Vector3    vector2 = rep.transform.position - pos;
            Quaternion rot     = Quaternion.LookRotation(vector2.normalized);
            this.DoMeleeEffects(rep.transform.position, pos, rot, gameObject);
        }
    }
示例#5
0
    public override void DoAction1(uLink.BitStream stream, ItemRepresentation rep, ref uLink.NetworkMessageInfo info)
    {
        GameObject  gameObject;
        NetEntityID netEntityID;

        if (!stream.ReadBoolean())
        {
            netEntityID = NetEntityID.unassigned;
            gameObject  = null;
        }
        else
        {
            netEntityID = stream.Read <NetEntityID>(new object[0]);
            if (netEntityID.isUnassigned)
            {
                gameObject = null;
            }
            else
            {
                gameObject = netEntityID.gameObject;
                if (!gameObject)
                {
                    netEntityID = NetEntityID.unassigned;
                }
            }
        }
        Vector3 vector3 = stream.ReadVector3();

        stream.ReadBoolean();
        this.EndSwingWorldAnimations(rep);
        if (gameObject)
        {
            Vector3    vector31   = rep.transform.position - vector3;
            Quaternion quaternion = Quaternion.LookRotation(vector31.normalized);
            this.DoMeleeEffects(rep.transform.position, vector3, quaternion, gameObject);
        }
    }
示例#6
0
    // Update is called once per frame
    void UpdateData()
    {
        uLink.BitStream dataCopy = server.data;

        int    numPlayers  = dataCopy.ReadInt32();
        int    maxPlayers  = dataCopy.ReadInt32();
        string serverName  = dataCopy.ReadString();
        bool   started     = dataCopy.ReadBoolean();
        string playersBlue = dataCopy.ReadString();
        string playersRed  = dataCopy.ReadString();

        playersBLueText.text = playersBlue;
        playersRedText.text  = playersRed;
        players = numPlayers;
        //Ip = server.endpoint.ToString();

        textBoxName.text = server.host + "\r\n" + numPlayers + " / " + maxPlayers;

        Invoke("UpdateData", 5);
    }
示例#7
0
 private void uLink_OnConnectedToServer()
 {
     LoadingScreen.Update("connected!");
     uLink.BitStream bitStream = new uLink.BitStream((byte[])NetCull.approvalData.ReadObject(typeof(byte[]).TypeHandle, new object[0]), false);
     string str = bitStream.ReadString();
     NetCull.sendRate = bitStream.ReadSingle();
     string str1 = bitStream.ReadString();
     bitStream.ReadBoolean();
     bitStream.ReadBoolean();
     if (bitStream.bytesRemaining > 8)
     {
         ulong num = bitStream.ReadUInt64();
         SteamClient.SteamUser_AdvertiseGame(num, bitStream.ReadUInt32(), bitStream.ReadInt32());
     }
     UnityEngine.Debug.Log(string.Concat("Server Name: \"", str1, "\""));
     UnityEngine.Debug.Log(string.Concat("Level Name: \"", str, "\""));
     UnityEngine.Debug.Log(string.Concat("Send Rate: ", NetCull.sendRate));
     NetCull.isMessageQueueRunning = false;
     base.StartCoroutine(this.LoadLevel(str));
     DisableOnConnectedState.OnConnected();
 }
        public void ExecuteInternal(NetworkBase network)
        {
            // TODO: optimize arg reading!

            switch (internCode)
            {
            case InternalCode.BufferedRPCs: network._RPCBufferedRPCs(stream.ReadSerializedBuffers(), this); break;

            case InternalCode.CellConnectResponse: network._RPCCellConnectResponse(stream.ReadNetworkPlayer(), stream.ReadBoolean(), this); break;

            case InternalCode.ClientConnectRequest: network._RPCClientConnectRequest(stream, this); break;

            case InternalCode.ClientConnectResponse: network._RPCClientConnectResponse(stream.ReadNetworkPlayer(), stream, this); break;

            case InternalCode.ConnectDenied: network._RPCConnectDenied(stream.ReadInt32(), this); break;

            case InternalCode.Create: network._RPCCreate(stream.ReadNetworkPlayer(), stream.ReadNetworkGroup(), (NetworkAuthFlags)stream.ReadByte(), stream.ReadVector3(), stream.ReadQuaternion(), stream.ReadString(), stream.ReadString(), stream.ReadString(), stream.ReadString(), stream.ReadString(), stream, this); break;

            case InternalCode.DestroyByPlayerID: network._RPCDestroyByPlayerID(stream.ReadNetworkPlayer(), this); break;

            case InternalCode.DestroyByViewID: network._RPCDestroyByViewID(this); break;

            case InternalCode.HandoverRequest: network._RPCHandoverRequest(stream.ReadNetworkViewID(), this); break;

            case InternalCode.HandoverResponse: network._RPCHandoverResponse(stream.ReadNetworkViewID(), stream.ReadNetworkPlayer(), stream.ReadNetworkGroup(), (NetworkAuthFlags)stream.ReadByte(), stream.ReadVector3(), stream.ReadQuaternion(), stream.ReadString(), stream.ReadString(), stream.ReadString(), stream.ReadString(), stream.ReadString(), stream.ReadBytes(), stream, this); break;

            case InternalCode.Redirect: network._RPCRedirect(stream.ReadEndPoint(), stream.ReadPassword(), this); break;

            case InternalCode.SecurityRequest: network._RPCSecurityRequest(stream.ReadPublicKey(), this); break;

            case InternalCode.SecurityResponse: network._RPCSecurityResponse(stream.ReadSymmetricKey(), this); break;

            case InternalCode.UnsecurityRequest: network._RPCUnsecurityRequest(stream.ReadSymmetricKey(), this); break;

            case InternalCode.UnsecurityResponse: network._RPCUnsecurityResponse(this); break;

            case InternalCode.StateSyncOwner: network._RPCStateSyncOwner(stream, this); break;

            case InternalCode.StateSyncProxy: network._RPCStateSyncProxy(stream, this); break;

            case InternalCode.PlayerIDConnected: network._RPCPlayerIDConnected(stream.ReadNetworkPlayer(), stream.ReadEndPoint(), stream, this); break;

            case InternalCode.PlayerIDDisconnected: network._RPCPlayerIDDisconnected(stream.ReadNetworkPlayer(), stream.ReadInt32(), this); break;

            case InternalCode.MultiStateSyncProxy: network._RPCMultiStateSyncProxy(this); break;

            case InternalCode.MultiStateSyncOwner: network._RPCMultiStateSyncOwner(stream.ReadStateSyncs(), this); break;

            case InternalCode.DestroyAll: network._RPCDestroyAll(!stream.isEOF && stream.ReadBoolean(), this); break;

            case InternalCode.DestroyInGroup: network._RPCDestroyInGroup(stream.ReadNetworkGroup(), this); break;

            case InternalCode.DestroyInGroupByPlayerID: network._RPCDestroyInGroupByPlayerID(stream.ReadNetworkPlayer(), stream.ReadNetworkGroup(), this); break;

            case InternalCode.LicenseCheck: network._RPCLicenseCheck(this); break;

            case InternalCode.ChangeGroup: network._RPCChangeGroup(stream.ReadNetworkViewID(), stream.ReadNetworkGroup(), this); break;

            case InternalCode.StateSyncCellProxy: network._RPCStateSyncCellProxy(stream, this); break;

            case InternalCode.MultiStateSyncCellProxy: network._RPCMultiStateSyncCellProxy(this); break;

            case InternalCode.RepairAuthFromProxyRequest: network._RPCRepairAuthFromProxyRequest(stream.ReadNetworkViewID(), this); break;

            case InternalCode.MastDebugInfo: network._RPCMastDebugInfo(stream.ReadVector3(), this); break;

            case InternalCode.ChangeAuthFlags: network._RPCChangeAuthFlags(stream.ReadNetworkViewID(), (NetworkAuthFlags)stream.ReadByte(), stream.ReadVector3(), this); break;

            case InternalCode.StateSyncOwnerDeltaCompressed: network._RPCStateSyncOwnerDeltaCompressed(stream, this); break;

            case InternalCode.StateSyncProxyDeltaCompressed: network._RPCStateSyncProxyDeltaCompressed(stream, this); break;

            case InternalCode.StateSyncOwnerDeltaCompressedInit: network._RPCStateSyncOwnerDeltaCompressedInit(stream, this); break;

            case InternalCode.StateSyncProxyDeltaCompressedInit: network._RPCStateSyncProxyDeltaCompressedInit(stream, this); break;

            default:
                Log.Debug(NetworkLogFlags.RPC, "Unknown internal RPC: ", internCode, " from ", connection, " channel ", channel);
                break;
            }
        }
示例#9
0
        public void Execute(NetworkBase network)
        {
            switch (internCode)
            {
            case InternalCode.DiscoverHostRequest: network._UnconnectedRPCDiscoverHostRequest(stream.ReadHostDataFilter(), stream.ReadDouble(), endpoint); break;

            case InternalCode.DiscoverHostResponse: network._UnconnectedRPCDiscoverHostResponse(stream.ReadLocalHostData(), stream.ReadDouble(), endpoint); break;

            case InternalCode.KnownHostRequest: network._UnconnectedRPCKnownHostRequest(stream.ReadDouble(), stream.ReadBoolean(), endpoint); break;

            case InternalCode.KnownHostResponse: network._UnconnectedRPCKnownHostResponse(stream.ReadLocalHostData(), stream.ReadDouble(), endpoint); break;

            case InternalCode.PreConnectRequest: network._UnconnectedRPCPreConnectRequest(endpoint); break;

            case InternalCode.PreConnectResponse: network._UnconnectedRPCPreConnectResponse(endpoint); break;

            case InternalCode.LicenseRequest: network._UnconnectedRPCLicenseRequest(stream.ReadLocalHostData(), stream.ReadBoolean(), stream.ReadBytes(), endpoint); break;

            default:
                Log.Debug(NetworkLogFlags.RPC, "Unknown internal Unconnected RPC: ", internCode, " from ", endpoint);
                break;
            }
        }
示例#10
0
        public void Execute(NetworkP2PBase network)
        {
            switch (internCode)
            {
            case InternalCode.DiscoverPeerRequest: network._UnconnectedRPCDiscoverPeerRequest(stream.ReadPeerDataFilter(), stream.ReadDouble(), endpoint); break;

            case InternalCode.DiscoverPeerResponse: network._UnconnectedRPCDiscoverPeerResponse(stream.ReadLocalPeerData(), stream.ReadDouble(), endpoint); break;

            case InternalCode.KnownPeerRequest: network._UnconnectedRPCKnownPeerRequest(stream.ReadDouble(), stream.ReadBoolean(), endpoint); break;

            case InternalCode.KnownPeerResponse: network._UnconnectedRPCKnownPeerResponse(stream.ReadLocalPeerData(), stream.ReadDouble(), endpoint); break;

            default:
                Log.Error(NetworkLogFlags.RPC, "Unknown internal Unconnected P2P RPC: ", internCode, " from ", endpoint);
                break;
            }
        }