private void OnMessageReceived(object sender, MessageReceivedEventArgs e)
        {
            using (Message message = e.GetMessage() as Message)
            {
                NetworkTags tag = (NetworkTags)message.Tag;
                if (!tag.ToString().StartsWith("DEBT_"))
                {
                    return;
                }

                Logger.Trace($"[SERVER] < {tag}");

                switch (tag)
                {
                case NetworkTags.DEBT_LOCO_PAID:
                    Logger.Trace($"[SERVER] > DEBT_LOCO_PAID");
                    ReliableSendToOthers(message, e.Client);
                    break;

                case NetworkTags.DEBT_JOB_PAID:
                    Logger.Trace($"[SERVER] > DEBT_JOB_PAID");
                    ReliableSendToOthers(message, e.Client);
                    break;

                case NetworkTags.DEBT_OTHER_PAID:
                    Logger.Trace($"[SERVER] > DEBT_OTHER_PAID");
                    ReliableSendToOthers(message, e.Client);
                    break;
                }
            }
        }
        public void OnNetworkReceive(NetPeer peer, NetDataReader reader)
        {
            try
            {
                if (reader.Data == null)
                {
                    return;
                }

                NetworkTags networkTag = (NetworkTags)reader.GetInt();
                if (networkTag == NetworkTags.PlayerPosition)
                {
                    float x = reader.GetFloat();
                    float y = reader.GetFloat();
                    float z = reader.GetFloat();

                    Console.WriteLine($"Got position packet : {x} | {y} | {z}");

                    networkPlayersDictionary[peer.ConnectId].X = x;
                    networkPlayersDictionary[peer.ConnectId].Y = y;
                    networkPlayersDictionary[peer.ConnectId].Z = z;

                    networkPlayersDictionary[peer.ConnectId].Moved = true;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error: {ex.Message}");
            }
        }
        void INetEventListener.OnNetworkReceive(NetPeer _netPeer, NetPacketReader _netPacketReader, DeliveryMethod deliveryMethod)
        {
            //_Processor.ReadAllPackets(_netPacketReader, _netPeer);
            try
            {
                if (_netPacketReader.IsNull)
                {
                    Console.WriteLine($"OnNetworkReceive <==== _netPacketReader.== null== null== null== null:");
                    return;
                }

                NetworkTags networkTag = (NetworkTags)_netPacketReader.GetInt();
                if (networkTag == NetworkTags.Player_Position)
                {
                    float x = _netPacketReader.GetFloat();
                    float y = _netPacketReader.GetFloat();
                    float z = _netPacketReader.GetFloat();

                    Console.WriteLine($"OnNetworkReceive   <== UPDATE ID  {_netPeer.Id}  Tags.{networkTag}:      {x} | {y} | {z}");

                    _dictionary_Server_Player[_netPeer.Id].X = x;
                    _dictionary_Server_Player[_netPeer.Id].Y = y;
                    _dictionary_Server_Player[_netPeer.Id].Z = z;

                    _dictionary_Server_Player[_netPeer.Id].Moved = true;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"OnNetworkReceive Error: {ex.Message}");
            }
        }
Example #4
0
    void INetEventListener.OnNetworkReceive(NetPeer peer, NetPacketReader reader, DeliveryMethod delMethod)
    {
        if (reader.RawData == null)
        {
            return;
        }

        Debug.Log("Client || OnNetworkReceive: " + reader.RawData.Length);

        if (reader.RawData.Length >= 4)
        {
            NetworkTags netTag = (NetworkTags)reader.GetInt();

            if (netTag == NetworkTags.PlayerPositionsArray)
            {
                int lengthArray = (reader.RawData.Length - 4) / (sizeof(long) + sizeof(float) * 3);

                Debug.Log("Client || Positions array data num: " + lengthArray);

                for (int i = 0; i < lengthArray; i++)
                {
                    long playerId = reader.GetLong();

                    if (!netDictionary.ContainsKey(playerId))
                    {
                        netDictionary.Add(playerId, new NetPlayer());
                    }

                    netDictionary[playerId].Z = reader.GetFloat();
                }
            }
        }
    }
Example #5
0
 private void SendDelayedMessage(bool item, NetworkTags tag, IClient client, int interval, Action callback = null)
 {
     if (interval == 0)
     {
         using (DarkRiftWriter writer = DarkRiftWriter.Create())
         {
             writer.Write(item);
             using (Message msg = Message.Create((ushort)tag, writer))
             {
                 client.SendMessage(msg, SendMode.Reliable);
             }
         }
         callback?.Invoke();
     }
     else
     {
         Timer timer = new Timer();
         timer.Elapsed += (object sender, ElapsedEventArgs e) =>
         {
             using (DarkRiftWriter writer = DarkRiftWriter.Create())
             {
                 writer.Write(item);
                 using (Message msg = Message.Create((ushort)tag, writer))
                 {
                     client.SendMessage(msg, SendMode.Reliable);
                 }
             }
             callback?.Invoke();
         };
         timer.Interval  = interval;
         timer.AutoReset = false;
         timer.Start();
     }
 }
        private void OnMessageReceived(object sender, MessageReceivedEventArgs e)
        {
            using (Message message = e.GetMessage() as Message)
            {
                NetworkTags tag = (NetworkTags)message.Tag;
                if (!tag.ToString().StartsWith("SWITCH_"))
                {
                    return;
                }

                Logger.Trace($"[SERVER] < {tag}");

                switch (tag)
                {
                case NetworkTags.SWITCH_CHANGED:
                    UpdateSwitch(message, e.Client);
                    break;

                case NetworkTags.SWITCH_SYNC:
                    SyncSwitchStatesWithClient(e.Client);
                    break;

                case NetworkTags.SWITCH_HOST_SYNC:
                    SyncHostSwitches(message);
                    break;
                }
            }
        }
    public void OnNetworkReceive(NetPeer peer, NetDataReader reader)
    {
        if (reader.Data == null)
        {
            return;
        }

        Debug.Log($"OnNetworkReceive: {reader.Data.Length}");

        if (reader.Data.Length >= 4)
        {
            NetworkTags networkTag = (NetworkTags)reader.GetInt();
            if (networkTag == NetworkTags.PlayerPositionsArray)
            {
                int lengthArr = (reader.Data.Length - 4) / (sizeof(long) + sizeof(float) * 3);

                Debug.Log("Got positions array data num : " + lengthArr);

                for (int i = 0; i < lengthArr; i++)
                {
                    long playerid = reader.GetLong();

                    if (!netPlayersDictionary.ContainsKey(playerid))
                    {
                        netPlayersDictionary.Add(playerid, new NetPlayer());
                    }

                    netPlayersDictionary[playerid].X = reader.GetFloat();
                    netPlayersDictionary[playerid].Y = reader.GetFloat();
                    netPlayersDictionary[playerid].Z = reader.GetFloat();
                }
            }
        }
    }
        public void OnNetworkReceive(NetPeer _netPeer, NetDataReader _netDataReader)
        {
            try
            {
                if (_netDataReader.Data == null)
                {
                    return;
                }

                NetworkTags networkTag = (NetworkTags)_netDataReader.GetInt();
                if (networkTag == NetworkTags.NT_S_Receiv_Player_Position)
                {
                    float x = _netDataReader.GetFloat();
                    float y = _netDataReader.GetFloat();
                    float z = _netDataReader.GetFloat();

                    Console.WriteLine($"netPeer.ConnectId --> {_netPeer.ConnectId} Got pos packet : {x} | {y} | {z} ");

                    _dictionary_Server_Players_Pose[_netPeer.ConnectId].X = x;
                    _dictionary_Server_Players_Pose[_netPeer.ConnectId].Y = y;
                    _dictionary_Server_Players_Pose[_netPeer.ConnectId].Z = z;

                    _dictionary_Server_Players_Pose[_netPeer.ConnectId].Moved = true;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"OnNetworkReceive Error: {ex.Message}");
            }
        }
Example #9
0
        private void MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            using (Message message = e.GetMessage() as Message)
            {
                NetworkTags tag = (NetworkTags)message.Tag;
                if (!tag.ToString().StartsWith("PLAYER_"))
                {
                    return;
                }

                if (tag != NetworkTags.PLAYER_LOCATION_UPDATE)
                {
                    Logger.Trace($"[SERVER] < {tag.ToString()}");
                }

                switch (tag)
                {
                case NetworkTags.PLAYER_LOCATION_UPDATE:
                    LocationUpdateMessage(message, e.Client);
                    break;

                case NetworkTags.PLAYER_INIT:
                    ServerPlayerInitializer(message, e.Client);
                    break;

                case NetworkTags.PLAYER_SPAWN_SET:
                    SetSpawn(message);
                    break;

                case NetworkTags.PLAYER_LOADED:
                    SetPlayerLoaded(message, e.Client);
                    break;
                }
            }
        }
Example #10
0
        private void OnMessageReceived(object sender, MessageReceivedEventArgs e)
        {
            using (Message message = e.GetMessage() as Message)
            {
                NetworkTags tag = (NetworkTags)message.Tag;
                if (!tag.ToString().StartsWith("JOB_"))
                {
                    return;
                }

                Logger.Trace($"[SERVER] < {tag}");

                switch (tag)
                {
                case NetworkTags.JOB_CREATED:
                    OnJobCreated(message, e.Client);
                    break;

                case NetworkTags.JOB_SYNC:
                    SendAllServerJobs(e.Client);
                    break;

                case NetworkTags.JOB_HOST_SYNC:
                    UpdateServerJobs(message);
                    break;

                case NetworkTags.JOB_TAKEN:
                    OnJobTaken(message, e.Client);
                    break;

                case NetworkTags.JOB_COMPLETED:
                    OnJobCompleted(message, e.Client);
                    break;

                case NetworkTags.JOB_CHAIN_COMPLETED:
                    OnJobChainCompleted(message, e.Client);
                    break;

                case NetworkTags.JOB_CHAIN_EXPIRED:
                    OnJobChainExpired(message, e.Client);
                    break;

                case NetworkTags.JOB_NEXT_JOB:
                    OnNextJobInChainGenerated(message, e.Client);
                    break;

                case NetworkTags.JOB_CHAIN_CHANGED:
                    OnChainDataChanged(message);
                    break;

                case NetworkTags.JOB_STATION_EXPIRATION:
                    Logger.Trace("[SERVER] > JOB_STATION_EXPIRATION");
                    ReliableSendToOthers(message, e.Client);
                    break;
                }
            }
        }
Example #11
0
    public void OnNetworkReceive(NetPeer peer, NetPacketReader reader, DeliveryMethod deliveryMethod)
    {
        if (reader.RawData == null)
        {
            return;
        }

        if (reader.RawData.Length >= 4)
        {
            NetworkTags networkTag = (NetworkTags)reader.GetInt();
            if (networkTag == NetworkTags.StartGame)
            {
                Debug.Log("[CLIENT] StartGame resieved");
                ball.gameObject.SetActive(true);
                if (id == 0)
                {
                    Destroy(ball.GetComponent <Ball>());
                }
            }
            else if (networkTag == NetworkTags.PlayerPositionsArray)
            {
                int lengthArr = (reader.RawData.Length - 4) / (sizeof(long) + sizeof(float) * 3);

                Debug.Log("Got positions array data num : " + lengthArr);

                for (int i = 0; i < lengthArr; i++)
                {
                    long playerid = reader.GetLong();

                    if (!netPlayersDictionary.ContainsKey(playerid))
                    {
                        netPlayersDictionary.Add(playerid, new NetPlayer());
                        id = (int)playerid;
                    }

                    netPlayersDictionary[playerid].X = reader.GetFloat();
                    netPlayersDictionary[playerid].Y = reader.GetFloat();
                    netPlayersDictionary[playerid].Z = reader.GetFloat();
                }
            }
            else if (networkTag == NetworkTags.BallPosition)
            {
                float x = reader.GetFloat();
                float y = reader.GetFloat();
                float z = reader.GetFloat();
                ball.transform.position = new Vector3(x, y, z);
            }
        }
    }
Example #12
0
    public void OnNetworkReceive(NetPeer peer, NetPacketReader reader, DeliveryMethod deliveryMethod)
    {
        if (reader.RawData == null)
        {
            return;
        }

        NetworkTags networkTag = (NetworkTags)reader.GetInt();

        if (networkTag == NetworkTags.PlayerPosition)
        {
            float x = reader.GetFloat();
            float y = reader.GetFloat();
            float z = reader.GetFloat();

            Debug.Log("Got position packet : " + x + " " + y + " " + z);

            playersDictionary[peer.Id].X = x;
            playersDictionary[peer.Id].Y = y;
            playersDictionary[peer.Id].Z = z;

            playersDictionary[peer.Id].Moved = true;
        }

        if (networkTag == NetworkTags.BallPosition)
        {
            float x = reader.GetFloat();
            float y = reader.GetFloat();
            float z = reader.GetFloat();

            NetDataWriter writer = new NetDataWriter();
            writer.Reset();
            writer.Put((int)networkTag);
            writer.Put(x);
            writer.Put(y);
            writer.Put(z);

            foreach (var player in playersDictionary)
            {
                if (player.Key == 1)
                {
                    player.Value.NetPeer.Send(writer, DeliveryMethod.ReliableOrdered);
                }
            }
        }
    }
Example #13
0
        private void OnMessageReceived(object sender, MessageReceivedEventArgs e)
        {
            using (Message message = e.GetMessage() as Message)
            {
                NetworkTags tag = (NetworkTags)message.Tag;
                if (!tag.ToString().StartsWith("TURNTABLE_"))
                {
                    return;
                }

                Logger.Trace($"[SERVER] < {tag.ToString()}");

                switch (tag)
                {
                case NetworkTags.TURNTABLE_ANGLE_CHANGED:
                    OnTurntableChanged(message, e.Client);
                    break;

                case NetworkTags.TURNTABLE_SYNC:
                    SendAllTurntableStates(e.Client);
                    break;

                case NetworkTags.TURNTABLE_SNAP:
                    OnTurntableSnap(message, e.Client);
                    break;

                case NetworkTags.TURNTABLE_AUTH_RELEASE:
                    OnTurntableReleaseAuth(message, e.Client);
                    break;

                case NetworkTags.TURNTABLE_AUTH_REQUEST:
                    OnTurntableRequestAuth(message, e.Client);
                    break;

                case NetworkTags.TURNTABLE_HOST_SYNC:
                    SyncHostTurntables(message);
                    break;
                }
            }
        }
        public void OnNetworkReceive(NetPeer _netPeer, NetDataReader _netDataReader)
        {
            try
            {
                if (_netDataReader.Data == null)
                {
                    return;
                }

                NetworkTags networkTag = (NetworkTags)_netDataReader.GetInt();
                if (networkTag == NetworkTags.NT_S_Receiv_Player_Position)
                {
                    var bytes = new byte[_netDataReader.Data.Length - sizeof(int)];
                    _netDataReader.GetBytes(bytes, bytes.Length);
                    _dictionary_Server_Players_Pose[_netPeer.ConnectId].Bytes = bytes;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"OnNetworkReceive Error: {ex.Message}");
            }
        }
    public void OnNetworkReceive(NetPeer peer, NetPacketReader reader, DeliveryMethod deliveryMethod)
    {
        if (reader.IsNull)
        {
            return;
        }

        // Debug.Log($" <--------------------- OnNetworkReceive: {reader.AvailableBytes}");
        if (reader.AvailableBytes >= 4)
        {
            NetworkTags networkTag = (NetworkTags)reader.GetInt();
            if (networkTag == NetworkTags.N_Players_Moved_Array)
            {
                int Nb_de_player = reader.GetInt();
                // int Nb_de_player_O = (reader.AvailableBytes - 4) / (sizeof(long) + sizeof(float) * 3);//pour info
                Debug.Log($" <--------------------- OnNetworkReceive - FOUND     NetworkTags.{networkTag}    Total player MOVED = { Nb_de_player} ");// ORIGINAL CODE = { Nb_de_player_O}");

                if (!player_spown_decalage && (0 < Nb_de_player))
                {
                    Vector3 new_Local_player_pose = new Vector3(player.transform.position.x + (1.5f * Nb_de_player), player.transform.position.y, player.transform.position.z);
                    player.transform.position = new_Local_player_pose;
                    Debug.Log($" <--------------------- OnNetworkReceive - ---------------> Decalage Player POSE     {player.transform.position.x + (2f * Nb_de_player)} | {player.transform.position.y} | { player.transform.position.z}");
                    player_spown_decalage = true;
                    OnPeerConnected_ok    = true;
                }

                for (int i = 0; i < Nb_de_player; i++)
                {
                    int playerid = reader.GetInt();

                    if (!Dictionary_NetPlayer.ContainsKey(playerid))
                    {
                        Dictionary_NetPlayer.Add(playerid, new NetPlayer());
                        Debug.Log($" <--------------------- OnNetworkReceive   CREAT NEW  Dictionary_NetPlayer.Add  --->  SERVER netpeer.id = " + playerid);
                    }

                    //Get online player MOVED inputs
                    //
                    //
                    //
                    //
                    //
                    //
                    Dictionary_NetPlayer[playerid].X = reader.GetFloat();
                    Dictionary_NetPlayer[playerid].Y = reader.GetFloat();
                    Dictionary_NetPlayer[playerid].Z = reader.GetFloat();
                    Debug.Log($" <--------------------- OnNetworkReceive    UPDATE   Dictionary_NetPlayer    SERVER Playerid = SERVER netpeer.id = {playerid} POSE = " +
                              $"  X = { Dictionary_NetPlayer[playerid].X }  Y = { Dictionary_NetPlayer[playerid].Y}  Z = { Dictionary_NetPlayer[playerid].Z}");
                    //
                    //
                    //
                    //
                    //
                    //
                    //
                    //
                    //
                }
            }
            else if (networkTag == NetworkTags.No_Player_Online)
            {
                Debug.Log($" <--------------------- OnNetworkReceive: {NetworkTags.No_Player_Online}  player_spown_decalage  ANULLER OK     AvailableBytes = {reader.AvailableBytes}");
                player_spown_decalage = true;
                OnPeerConnected_ok    = true;
            }
            else if (networkTag == NetworkTags.On_Player_Disconected)
            {
                int Disconnected_netPeer_Id = reader.GetInt();
                Debug.Log($" <--------------------- OnNetworkReceive: {NetworkTags.On_Player_Disconected}  ID = {Disconnected_netPeer_Id} ");

                if (Dictionary_NetPlayer.ContainsKey(Disconnected_netPeer_Id))
                {
                    Destroy(Dictionary_NetPlayer[Disconnected_netPeer_Id].GameObject);
                    Dictionary_NetPlayer.Remove(Disconnected_netPeer_Id);
                    Debug.Log($" <--------------------- OnNetworkReceive: {NetworkTags.On_Player_Disconected}  SUPRESION Disconected Player  ID  =  {Disconnected_netPeer_Id}");
                }
            }
        }
    }
Example #16
0
        private void OnMessageReceived(object sender, MessageReceivedEventArgs e)
        {
            using (Message message = e.GetMessage() as Message)
            {
                NetworkTags tag = (NetworkTags)message.Tag;
                if (!tag.ToString().StartsWith("TRAIN"))
                {
                    return;
                }

                if (tag != NetworkTags.TRAIN_LOCATION_UPDATE)
                {
                    Logger.Trace($"[SERVER] < {tag}");
                }

                switch (tag)
                {
                case NetworkTags.TRAIN_LEVER:
                    UpdateTrainLever(message, e.Client);
                    break;

                case NetworkTags.TRAIN_RERAIL:
                    UpdateTrainRerail(message, e.Client);
                    break;

                case NetworkTags.TRAIN_DERAIL:
                    UpdateTrainDerailed(message, e.Client);
                    break;

                case NetworkTags.TRAIN_SWITCH:
                    UpdateTrainSwitch(message, e.Client);
                    break;

                case NetworkTags.TRAIN_COUPLE:
                    UpdateCouplingState(message, e.Client, true);
                    break;

                case NetworkTags.TRAIN_UNCOUPLE:
                    UpdateCouplingState(message, e.Client, false);
                    break;

                case NetworkTags.TRAIN_COUPLE_HOSE:
                    UpdateCoupledHoseState(message, e.Client);
                    break;

                case NetworkTags.TRAIN_COUPLE_COCK:
                    UpdateCoupleCockState(message, e.Client);
                    break;

                case NetworkTags.TRAIN_SYNC_ALL:
                    SendWorldTrains(e.Client);
                    break;

                case NetworkTags.TRAIN_HOST_SYNC:
                    SyncTrainDataFromHost(message);
                    break;

                case NetworkTags.TRAIN_LOCATION_UPDATE:
                    UpdateTrainPosition(message, e.Client);
                    break;

                case NetworkTags.TRAINS_INIT:
                    NewTrainsInitialized(message, e.Client);
                    break;

                case NetworkTags.TRAINS_INIT_FINISHED:
                    TrainsFinishedInitilizing(e.Client);
                    break;

                case NetworkTags.TRAIN_REMOVAL:
                    OnCarRemovalMessage(message, e.Client);
                    break;

                case NetworkTags.TRAIN_DAMAGE:
                    OnCarDamage(message, e.Client);
                    break;

                case NetworkTags.TRAIN_AUTH_CHANGE:
                    OnAuthChange(message);
                    break;

                case NetworkTags.TRAIN_CARGO_CHANGE:
                    OnCargoChange(message, e.Client);
                    break;

                case NetworkTags.TRAIN_MU_CHANGE:
                    OnCarMUChange(message, e.Client);
                    break;
                }
            }
        }