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); } } } } }
void uLink_OnPlayerDisconnected(uLink.NetworkPlayer player) { PlayerCreator playerCreator = player.localData as PlayerCreator; uLink.Network.DestroyPlayerObjects(player); uLink.Network.RemoveRPCs(player); }
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; } }
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)); } } }
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(); } } }
//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); } }
// 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); }
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); }
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); }
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) + "\""); }
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); }
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; } }
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); } } } } }
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); }
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>()); }
void uLink_OnNetworkInstantiate(uLink.NetworkMessageInfo info) { vehicle = transform.parent.GetComponent <PlayerVehicleOwner>(); networkView = vehicle.GetNetworkView(); player = uLink.Network.player; reload(); }
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); }
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)); }
public static void ShowTalker(uLink.NetworkPlayer player, PlayerClient p) { if (OnShowTalker != null) { OnShowTalker(player, p); } }
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); }
public void SendMessageFromServer(string text, uLink.NetworkPlayer target) { if (networkView.isMine) { networkView.RPC("ReceiveServerMessage", target, text, DefaultMessageType); } }
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); }
//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); }
public static void say(uLink.NetworkPlayer player, string playername, string arg) { string str1 = playername; string str2 = arg; ConsoleNetworker.SendClientCommand(player, "chat.add " + str1 + " " + str2); }
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); }
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; } }
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); }
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; }
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; } }
/// <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);