Ejemplo n.º 1
0
    void UpdatePortraits(string Pname, uLink.NetworkPlayer Owner)
    {
        if (uLink.Network.isServer)
        {
            bool slotGiven = false;
            //THIS LINE ADD THE NEW CONECTED PLAYER TO THE PLAYER DATABASE ON GAME MANAGER OBJ
            dataScript.AddPlayerNameToList(Pname, Owner);

            for (int i = 0; i < totalSlots + 1; i++)
            {
                foreach (GameObject slot in allslots)
                {
                    Char_Slot tmpSlot = slot.GetComponent <Char_Slot>();
                    if (tmpSlot.isEmpty && slotGiven == false && tmpSlot.slotNumber == i)
                    {
                        tmpSlot.ChangePortrait(Pname, Owner, tmpSlot.slotEmpty, false);

                        networkView.RPC("SendSlotNumber", uLink.RPCMode.Others, Pname, tmpSlot.slotNumber, Owner);
                        networkView.RPC("UpdateCharPick", Owner, tmpSlot.NameBox.text, tmpSlot.slotNumber, tmpSlot.charName, Owner, tmpSlot.isReady);

                        slotGiven = true;
                    }

                    if (tmpSlot.isEmpty == false)
                    {
                        networkView.RPC("UpdateCharPick", Owner, tmpSlot.NameBox.text, tmpSlot.slotNumber, tmpSlot.charName, tmpSlot.networkOwner, tmpSlot.isReady);
                    }
                }
            }
        }
    }
Ejemplo n.º 2
0
    void uLink_OnPlayerDisconnected(uLink.NetworkPlayer player)
    {
        PlayerCreator playerCreator = player.localData as PlayerCreator;

        uLink.Network.DestroyPlayerObjects(player);
        uLink.Network.RemoveRPCs(player);
    }
Ejemplo n.º 3
0
 protected void SetLooter(uLink.NetworkPlayer ply)
 {
     this.occupierText = null;
     if (ply == uLink.NetworkPlayer.unassigned)
     {
         this.ClearLooter();
     }
     else
     {
         if (ply == NetCull.player)
         {
             if (!this.thisClientIsInWindow)
             {
                 try
                 {
                     this._currentlyUsingPlayer = ply;
                     RPOS.OpenLootWindow(this);
                     this.thisClientIsInWindow = true;
                 }
                 catch (Exception exception)
                 {
                     Debug.LogError(exception, this);
                     NetCull.RPC((UnityEngine.MonoBehaviour) this, "StopLooting", uLink.RPCMode.Server);
                     this.thisClientIsInWindow = false;
                     ply = uLink.NetworkPlayer.unassigned;
                 }
             }
         }
         else if ((this._currentlyUsingPlayer == NetCull.player) && (NetCull.player != uLink.NetworkPlayer.unassigned))
         {
             this.ClearLooter();
         }
         this._currentlyUsingPlayer = ply;
     }
 }
Ejemplo n.º 4
0
 public static void Message(string color, uLink.NetworkPlayer player, string text, string sender = null, float timewait = 0f)
 {
     if (!text.IsEmpty())
     {
         if (!Broadcast.Timewait.ContainsKey(player) || !(Broadcast.Timewait[player] > DateTime.Now))
         {
             if (timewait > 0f)
             {
                 if (!Broadcast.Timewait.ContainsKey(player))
                 {
                     Broadcast.Timewait.Add(player, DateTime.Now.AddMilliseconds((double)(1000f * timewait)));
                 }
                 else
                 {
                     Broadcast.Timewait[player] = DateTime.Now.AddMilliseconds((double)(1000f * timewait));
                 }
             }
             if (string.IsNullOrEmpty(sender))
             {
                 sender = Core.ServerName;
             }
             text = Helper.GetChatTextColor(color) + text.Trim(new char[]
             {
                 '"'
             });
             ConsoleNetworker.SendClientCommand(player, "chat.add " + Helper.QuoteSafe(sender) + " " + Helper.QuoteSafe(text));
         }
     }
 }
Ejemplo n.º 5
0
 void uLink_OnPlayerDisconnected(uLink.NetworkPlayer player)
 {
     if (simpleServer.cleanupAfterPlayers)
     {
         StartCoroutine(RemoveMeFromMeteor(player));
     }
 }
    protected void ShootHoming(Vector3 position, Quaternion rotation, uLink.NetworkPlayer player, uLink.NetworkPlayer target, Vector3 lastKnownPosition, float homing, bool doSound)
    {
        BulletScript bullet = (BulletScript)Instantiate(bulletPrefab, position, rotation);

        bullet.Instigator = playerScript.Possessor;

        PlayerScript targetScript;

        try
        {
            targetScript = PlayerScript.UnsafeAllEnabledPlayerScripts.Where(
                x => x.networkView.owner == target).OrderBy(x => Vector3.Distance(x.transform.position, lastKnownPosition)).FirstOrDefault();
        }
        catch (Exception) { targetScript = null; }

        bullet.target = targetScript == null ? null : targetScript.transform;
        bullet.homing = homing;
        bullet.speed *= ShotgunBulletSpeedMultiplier;
        bullet.recoil = 1;

        if (doSound)
        {
            if (GlobalSoundsScript.soundEnabled)
            {
                pepperGunSound.Play();
            }
        }
    }
Ejemplo n.º 7
0
 //When a player connects to the game, the server sends an RPC with the team scores
 void uLink_OnPlayerConnected(uLink.NetworkPlayer nPlayer)
 {
     if (uLink.Network.isServer)
     {
         networkView.RPC("ServerRefreshScore", nPlayer, redTeamScore, blueTeamScore);
     }
 }
Ejemplo n.º 8
0
    // Token: 0x060021E8 RID: 8680 RVA: 0x0007CEA0 File Offset: 0x0007B0A0
    protected static bool GetOrigin(uLink.NetworkPlayer player, bool eyes, out Vector3 origin)
    {
        global::ServerManagement serverManagement = global::ServerManagement.Get();
        global::PlayerClient     playerClient;

        if (serverManagement && serverManagement.GetPlayerClient(player, out playerClient))
        {
            global::Controllable controllable = playerClient.controllable;
            if (controllable)
            {
                global::Character component = controllable.GetComponent <global::Character>();
                Transform         transform;
                if (component)
                {
                    transform = ((!eyes || !component.eyesTransformReadOnly) ? component.transform : component.eyesTransformReadOnly);
                }
                else
                {
                    transform = controllable.transform;
                }
                origin = transform.position;
                return(true);
            }
        }
        origin = default(Vector3);
        return(false);
    }
Ejemplo n.º 9
0
 void uLink_OnHandoverTimeout(uLink.NetworkPlayer player)
 {
     //This code is needed to destroy the player object (Player@Creator) in the new game server after the handover.
     //This code is executed if the client fails to connect to the new game server (for any reason).
     uLink.Network.DestroyPlayerObjects(player);
     uLink.Network.RemoveRPCs(player);
 }
    void DoHomingShot(float spread, PlayerScript target, float homing, bool doSound)
    {
        bulletsLeft -= 1;

        spread *= (ShotgunSpreadBase + homing * 5);

        float      roll           = RandomHelper.Between(homing * 90, 360 - homing * 90);
        Quaternion spreadRotation =
            Quaternion.Euler(0, 0, roll) *
            Quaternion.Euler(Random.value * spread, 0, 0) *
            Quaternion.Euler(0, 0, -roll);
        Quaternion firingRotation = Quaternion.FromToRotation(Vector3.forward, firingDirection);

        var lastKnownPosition = Vector3.zero;

        uLink.NetworkPlayer targetOwner = uLink.Network.player;
        if (target != null)
        {
            targetOwner       = target.networkView.owner;
            lastKnownPosition = target.transform.position;
        }

        if (playerScript.ShouldSendMessages)
        {
            networkView.UnreliableRPC("ShootHoming", uLink.RPCMode.Others,
                                      gun.position + firingDirection * 4.0f, firingRotation * spreadRotation,
                                      uLink.Network.player, targetOwner, lastKnownPosition, homing, doSound);
        }
        ShootHoming(
            gun.position + firingDirection * 4.0f, firingRotation * spreadRotation,
            uLink.Network.player, targetOwner, lastKnownPosition, homing, doSound);
    }
Ejemplo n.º 11
0
    void uLink_OnPlayerConnected(uLink.NetworkPlayer player)
    {
        string playerName = "Nameless";
        string password   = "";

        if (player.loginData != null)
        {
            player.loginData.TryRead(out playerName);
            player.loginData.TryRead(out password);
        }

        Debug.Log(playerName + "  " + password);
        if (uLink.NetworkView.FindByOwner(player).Length > 0)
        {
            return;
        }

        Color playerColor = HSVToRGB(UnityEngine.Random.Range(0.0f, 360.0f), 0.3f, 1);

        CustomizationData data = CustomizationData.MakeData(playerName, 1, playerColor);

        SendPlayerToGame sp = GetComponent <SendPlayerToGame> ();

        sp.TransferPlayerToGame(data, player);
    }
Ejemplo n.º 12
0
        public static void broadcastTo(uLink.NetworkPlayer player, string message)
        {
            PlayerClient playerClient = Array.Find(Vars.AllPlayerClients.ToArray(), (PlayerClient pc) => pc.netPlayer == player);

            Vars.conLog.Chat("<TO " + playerClient.userName + "> " + Vars.botName + ": " + message);
            ConsoleNetworker.SendClientCommand(player, "chat.add \"[PM] " + Vars.botName + "\" \"" + Vars.replaceQuotes(message) + "\"");
        }
Ejemplo n.º 13
0
    public static void UnRegister(uLink.NetworkPlayer nplayer, ComponentPlayer player)
    {
        if (Players.ContainsKey(nplayer) == false)
        {
            Debug.LogWarning(Time.timeSinceLevelLoad + "unregister - cannot find " + nplayer);
            foreach (KeyValuePair <uLink.NetworkPlayer, ComponentPlayer> pair in Players)
            {
                Debug.Log(pair.Key + " " + pair.Value.name);
            }
            return;
        }

        if (Players[nplayer] != player)
        {
            Debug.LogWarning(Time.timeSinceLevelLoad + "unregister - different instance is assigned to " + nplayer + " already");
            return;
        }

        ComponentPlayerLocal local = player as ComponentPlayerLocal;

        if (local == LocalInstance)
        {
            LocalInstance = null;
        }

        //    Debug.Log(Time.timeSinceLevelLoad + " Uregister - " + nplayer.id);

        Players.Remove(nplayer);
    }
Ejemplo n.º 14
0
 protected void SetLooter(uLink.NetworkPlayer ply)
 {
     this.occupierText = null;
     if (ply == uLink.NetworkPlayer.unassigned)
     {
         this.ClearLooter();
     }
     else
     {
         if (ply == global::NetCull.player)
         {
             if (!this.thisClientIsInWindow)
             {
                 try
                 {
                     this._currentlyUsingPlayer = ply;
                     global::RPOS.OpenLootWindow(this);
                     this.thisClientIsInWindow = true;
                 }
                 catch (Exception ex)
                 {
                     Debug.LogError(ex, this);
                     global::NetCull.RPC(this, "StopLooting", 0);
                     this.thisClientIsInWindow = false;
                     ply = uLink.NetworkPlayer.unassigned;
                 }
             }
         }
         else if (this._currentlyUsingPlayer == global::NetCull.player && global::NetCull.player != uLink.NetworkPlayer.unassigned)
         {
             this.ClearLooter();
         }
         this._currentlyUsingPlayer = ply;
     }
 }
Ejemplo n.º 15
0
 public void CheckActivityConnections()
 {
     if (NetCull.isServerRunning && Users.NetworkTimeout > 0f && Bootstrap.UpdateTime / 1000u < Users.NetworkTimeout)
     {
         uLink.NetworkPlayer[] connections = NetCull.connections;
         uLink.NetworkPlayer[] array       = connections;
         for (int i = 0; i < array.Length; i++)
         {
             uLink.NetworkPlayer networkPlayer = array[i];
             NetUser             netUser       = NetUser.Find(networkPlayer);
             Character           character     = null;
             if (netUser != null && Truth.LastPacketTime.ContainsKey(netUser) && Character.FindByUser(netUser.userID, out character))
             {
                 float num = Time.time - Truth.LastPacketTime[netUser];
                 if (Truth.LastPacketTime[netUser] > 0f && num > Users.NetworkTimeout)
                 {
                     Helper.LogWarning(string.Concat(new object[]
                     {
                         "Kicked by Server [",
                         netUser.displayName,
                         ":",
                         netUser.userID,
                         "]: No receiving packets from client ",
                         num.ToString("F2"),
                         " second(s)."
                     }), true);
                     netUser.Kick(NetError.ConnectionTimeout, true);
                 }
             }
         }
     }
 }
Ejemplo n.º 16
0
    public void DestroyAndRespawnPlayer(uLink.NetworkPlayer player)
    {
        uLink.Network.DestroyPlayerObjects(player);
        Transform spawnPoint = RandomSpawnPoint();

        uLink.Network.Instantiate(player, "PlayerVehicle@Proxy", "PlayerVehicle@Owner", "PlayerVehicle@Creator", spawnPoint.position, spawnPoint.rotation, 0);
    }
Ejemplo n.º 17
0
    void uLink_OnPlayerConnected(uLink.NetworkPlayer player)
    {
        Transform  spawnPoint    = RandomSpawnPoint();
        GameObject playerVehicle = uLink.Network.Instantiate(player, "PlayerVehicle@Proxy", "PlayerVehicle@Owner", "PlayerVehicle@Creator", spawnPoint.position, spawnPoint.rotation, 0);

        vehicles.Add(playerVehicle.GetComponent <CarControl>());
    }
Ejemplo n.º 18
0
 void uLink_OnNetworkInstantiate(uLink.NetworkMessageInfo info)
 {
     vehicle     = transform.parent.GetComponent <PlayerVehicleOwner>();
     networkView = vehicle.GetNetworkView();
     player      = uLink.Network.player;
     reload();
 }
Ejemplo n.º 19
0
    protected static bool GetOrigin(uLink.NetworkPlayer player, bool eyes, out Vector3 origin)
    {
        PlayerClient     playerClient;
        Transform        transforms;
        ServerManagement serverManagement = ServerManagement.Get();

        if (serverManagement && serverManagement.GetPlayerClient(player, out playerClient))
        {
            Controllable controllable = playerClient.controllable;
            if (controllable)
            {
                Character component = controllable.GetComponent <Character>();
                if (!component)
                {
                    transforms = controllable.transform;
                }
                else
                {
                    transforms = (!eyes || !component.eyesTransformReadOnly ? component.transform : component.eyesTransformReadOnly);
                }
                origin = transforms.position;
                return(true);
            }
        }
        origin = new Vector3();
        return(false);
    }
Ejemplo n.º 20
0
        public static void sayUser(uLink.NetworkPlayer player, string arg)
        {
            Contract.Requires(player != null);
            Contract.Requires(arg != null);

            ConsoleNetworker.SendClientCommand(player, "chat.add " + Facepunch.Utility.String.QuoteSafe(Fougerite.Server.GetServer().server_message_name) + " " + Facepunch.Utility.String.QuoteSafe(arg));
        }
Ejemplo n.º 21
0
 public static void ShowTalker(uLink.NetworkPlayer player, PlayerClient p)
 {
     if (OnShowTalker != null)
     {
         OnShowTalker(player, p);
     }
 }
Ejemplo n.º 22
0
    public bool GetPlayerClient(uLink.NetworkPlayer player, out PlayerClient playerClient)
    {
        bool flag;

        List <PlayerClient> .Enumerator enumerator = this._playerClientList.GetEnumerator();
        try
        {
            while (enumerator.MoveNext())
            {
                PlayerClient current = enumerator.Current;
                if (current.netPlayer != player)
                {
                    continue;
                }
                playerClient = current;
                flag         = true;
                return(flag);
            }
            playerClient = null;
            return(false);
        }
        finally
        {
            ((IDisposable)(object)enumerator).Dispose();
        }
        return(flag);
    }
Ejemplo n.º 23
0
 public void SendMessageFromServer(string text, uLink.NetworkPlayer target)
 {
     if (networkView.isMine)
     {
         networkView.RPC("ReceiveServerMessage", target, text, DefaultMessageType);
     }
 }
Ejemplo n.º 24
0
    protected void SendToServer()
    {
        Character character = base.idMain;
        int       num       = character.stateFlags.flags & -24577;

        if (Time.timeScale != 1f)
        {
            num = num | 24576;
        }
        else if (!this.thatsRightPatWeDontNeedComments.HasValue)
        {
            this.thatsRightPatWeDontNeedComments = new bool?((base.playerClient.userName.GetHashCode() & 1) == 1);
        }
        else
        {
            num = num | (!this.thatsRightPatWeDontNeedComments.Value ? 16384 : 8192);
            this.thatsRightPatWeDontNeedComments = new bool?(!this.thatsRightPatWeDontNeedComments.Value);
        }
        Facepunch.NetworkView networkView   = base.networkView;
        uLink.NetworkPlayer   networkPlayer = uLink.NetworkPlayer.server;
        object[] objArray = new object[] { character.origin, null, null };
        objArray[1] = character.eyesAngles.encoded;
        objArray[2] = (ushort)num;
        networkView.RPC("GetClientMove", networkPlayer, objArray);
    }
Ejemplo n.º 25
0
    //string str1 = Facepunch.Utility.String.QuoteSafe(rustpp.config.GetSetting("Settings", "system_message_nameTEST"));


    public static void sayUser(uLink.NetworkPlayer player, string arg)
    {
        string str1 = Facepunch.Utility.String.QuoteSafe(rustpp.server_message_name);
        string str2 = Facepunch.Utility.String.QuoteSafe(arg);

        ConsoleNetworker.SendClientCommand(player, "chat.add " + str1 + " " + str2);
    }
Ejemplo n.º 26
0
    public static void say(uLink.NetworkPlayer player, string playername, string arg)
    {
        string str1 = playername;
        string str2 = arg;

        ConsoleNetworker.SendClientCommand(player, "chat.add " + str1 + " " + str2);
    }
Ejemplo n.º 27
0
        void Loaded()
        {
            var item = getItemFromName("InvisiHat");

            item.DataProvider.DescriptionKey = "asd";
            //ItemObject itemObj = GlobalItemManager.Instance.GetItem(item.GeneratorId);
            foreach (var dd in item.SharedComponentLookup)
            {
                if ((dd.Value as ItemComponentWorldItemAttachmentBuilder) != null)
                {
                    Puts((dd.Value as ItemComponentWorldItemAttachmentBuilder).ScaleMultiplier.ToString());
                }
            }
            //Puts(item.SharedComponentLookup);
            //itemObj.Generator.GetDataProvider().DescriptionKey
            //foreach(var eff in item.DataProvider.DescriptionKey)
            return;

            var pl = GameManager.Instance._playerSessions.ElementAt(0);

            for (int d = 0; d < 10; d++)
            {
                uLink.NetworkPlayer networkPlayer = new uLink.NetworkPlayer(rnd.Next(50, 100));
                PlayerSession       session       = new PlayerSession();
                ulong dd = 777325255 + (ulong)rnd.Next(2000, 3000);
                session.SteamId = new Steamworks.CSteamID();
                GameManager.Instance._playerSessions.Add(networkPlayer, session);
            }
        }
    void uLink_OnConnectedToServer()
    {
        if (networkView.viewID != uLink.NetworkViewID.unassigned)
        {
            return;
        }

        if (uLink.Network.isAuthoritativeServer && uLink.Network.isClient)
        {
            // TODO: warn if server is authoritative && this is not the server
            return;
        }

        Transform trans = transform;

        uLink.NetworkPlayer owner       = uLink.Network.player;
        uLink.NetworkViewID viewID      = uLink.Network.AllocateViewID();
        object[]            initialData = appendLoginData ? uLink.Network.loginData : new object[0];

        if (owner != uLink.NetworkPlayer.server)
        {
            uLink.Network.Instantiate(viewID, owner, othersPrefab, null, othersPrefab, trans.position, trans.rotation, 0, initialData);
        }
        else
        {
            uLink.Network.Instantiate(viewID, owner, othersPrefab, othersPrefab, null, trans.position, trans.rotation, 0, initialData);
        }

        networkView.SetViewID(viewID, owner);
        networkView.SetInitialData(initialData);
    }
Ejemplo n.º 29
0
 public void ChangePortrait(string Pname, uLink.NetworkPlayer owner, Sprite neutral, bool empty)
 {
     if (empty)
     {
         networkOwner     = owner;
         NameBox.text     = "Free Slot";
         CharNameBox.text = "";
         StatusBox.text   = "";
         ChangeSprite(slotEmpty);
         isEmpty = true;
     }
     else
     {
         CharNameBox.text = charName.ToString();
         if (!isReady)
         {
             StatusBox.text = "Picking";
         }
         else
         {
             StatusBox.text = "Ready";
         }
         networkOwner = owner;
         NameBox.text = Pname;
         ChangeSprite(neutral);
         isEmpty = false;
     }
 }
Ejemplo n.º 30
0
 private void uLink_OnPlayerDisconnected(uLink.NetworkPlayer player)
 {
     Debug.Log("uLink_OnPlayerDisconnected " + gameObject.name);
     uLink.Network.DestroyPlayerObjects(player);
     uLink.Network.RemoveRPCs(player);
     uLink.Network.RemoveInstantiates(player);
 }
Ejemplo n.º 31
0
        private object IOnPlayerChat(NetworkPlayer netPlayer, string message)
        {
            if (message.Trim().Length <= 1) return true;
            var str = message.Substring(0, 1);
            var player = FindPlayerByNetPlayer(netPlayer);

            // Get covalence player
            var iplayer = covalence.PlayerManager.GetPlayer(player.account_id);

            // Is it a chat command?
            if (!str.Equals("/")) return Interface.Call("OnPlayerChat", player, message) ?? Interface.Call("OnUserChat", iplayer, message);

            // Is this a covalence command?
            var livePlayer = covalence.PlayerManager.GetOnlinePlayer(player.account_id);
            if (covalence.CommandSystem.HandleChatMessage(livePlayer, message)) return true;

            // Get the command string
            var command = message.Substring(1);

            // Parse it
            string cmd;
            string[] args;
            ParseChatCommand(command, out cmd, out args);
            if (cmd == null) return null;

            // Handle it
            if (!cmdlib.HandleChatCommand(player, cmd, args))
            {
                Reply(Lang("UnknownCommand", player.account_id, cmd), player);
                return true;
            }

            Interface.Call("OnChatCommand", player, command);

            return true;
        }
Ejemplo n.º 32
0
 private void uLink_OnNetworkInstantiate(uLink.NetworkMessageInfo info)
 {
     this.netPlayer = info.networkView.owner;
     uLink.BitStream bitStream = info.networkView.initialData;
     this.userID = bitStream.ReadUInt64();
     this.userName = bitStream.ReadString();
     base.name = string.Concat(new string[] { "Player ", this.userName, " (", this.userID.ToString(), ")" });
     this.instantiationinfo = info;
     this._playerID = this.netPlayer.id;
     PlayerClient.g.playerIDDict[this._playerID] = this;
     PlayerClient.g.userIDDict[this.userID] = this;
     this.boundUserID = true;
     if (PlayerClient.localPlayerClient || !base.networkView.isMine)
     {
         base.enabled = false;
     }
     else
     {
         PlayerClient.localPlayerClient = this;
         base.enabled = true;
         this.nextAutoReclockTime = NetCull.localTimeInMillis + (long)8000;
     }
 }
Ejemplo n.º 33
0
 /// <summary>
 /// Returns the PlayerInfos for the specified uLink.NetworkPlayer
 /// </summary>
 /// <param name="player"></param>
 /// <returns></returns>
 public PlayerInfos FindPlayerByNetPlayer(NetworkPlayer player) => NetworkController.NetManager_.ServManager.GetPlayerInfos(player);