void uLink_OnPlayerConnected(uLink.NetworkPlayer player) { string loginName = player.loginData.Read<string> (); bool isSlayer = player.loginData.Read<bool> (); bool isVampire = player.loginData.Read<bool> (); if ( isSlayer == true ) { uLink.Network.Instantiate (player, SlayerProxyPref, SlayerOwnerPref, SlayerCreatorPref, GetPosition('s'), SlayerSpawnLocation.rotation, 0, "SlayerPlayer"); roundController.CurrentSlayerPlayerNumber++; GA.API.Design.NewEvent("New Slayer Player Connected"); } else if ( isVampire == true ) { uLink.Network.Instantiate (player, VampireProxyPref, VampireOwnerPref, VampireCreatorPref, GetPosition('v'), VampireSpawnLocation.rotation, 0, "VampirePlayer"); roundController.CurrentVampirePlayerNumber++; GA.API.Design.NewEvent("New Vampire Player Connected"); } if (!roundController.anybodyInTheGame) roundController.anybodyInTheGame = true; if( !roundController.roundStarted ) if( ( roundController.CurrentSlayerPlayerNumber > 0 ) && ( roundController.CurrentVampirePlayerNumber > 0 ) ) { roundController.roundStarted = true; roundController.StartTheRound(); } }
// ReSharper disable once UnusedMember.Local protected void OwnerReceiveRemoteWantsStatusMessage(uLink.NetworkMessageInfo info) { if (networkView.isMine) { networkView.RPC("RemoteReceiveStatusMessage", info.sender, StatusMessage); } }
public void uLink_OnPlayerConnected(uLink.NetworkPlayer player) { connectingPlayer = (NetUser)player.localData; String playerSteamURL = "http://steamcommunity.com/profiles/" + connectingPlayer.userID.ToString(); WebClient wc = new WebClient (); wc.DownloadStringCompleted += (sender, e) => { userProfilePage = e.Result; if (lockGroup != "none") { if (userProfilePage.IndexOf("http://steamcommunity.com/groups/" + lockGroup) == -1) { connectingPlayer.Kick(NetError.Facepunch_Kick_Ban, true); } } Match vacMatch = Regex.Match(userProfilePage, @"^([0-9]{1,5}) day\(s\) since last ban$"); if (vacMatch.Success) { int daysSinceBan = Convert.ToInt32(vacMatch.Groups[1].Value); if (daysSinceBan < minVacDays) { connectingPlayer.Kick(NetError.Facepunch_Kick_Ban, true); } } }; wc.DownloadStringAsync(new Uri(playerSteamURL)); }
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); }
// ReSharper disable once UnusedMember.Local protected void ReceiveSetConnectionQuality(float quality, uLink.NetworkMessageInfo info) { if (Server == null || networkView == null) return; if (info.sender == Server.networkView.owner || networkView.isMine) { _ConnectionQuality = quality; } }
protected void uLink_OnNetworkInstantiate(uLink.NetworkMessageInfo info) { mainNetworkView = info.networkView; // override the instance's NetworkInsantiator Destroyer delegate. oldDestroyer = mainNetworkView.instantiator.destroyer; mainNetworkView.instantiator.destroyer = OverrideDestroyer; }
void uLink_OnNetworkInstantiate(uLink.NetworkMessageInfo msg) { Color color = msg.networkView.initialData.Read<Color>(); string name = msg.networkView.initialData.Read<string>(); BroadcastMessage("SetLabel", name, SendMessageOptions.DontRequireReceiver); BroadcastMessage("SetColor", color, SendMessageOptions.DontRequireReceiver); }
void uLink_OnNetworkInstantiate(uLink.NetworkMessageInfo msg) { uLink.NetworkPlayer myPlayer = uLink.Network.player; myPlayer.localData = this; playerColor = msg.networkView.initialData.Read<Color>(); playerName = msg.networkView.initialData.Read<string>(); BroadcastMessage("SetColor", playerColor, SendMessageOptions.DontRequireReceiver); }
void uLink_OnPlayerConnected(uLink.NetworkPlayer player) { string loginName; if (!player.loginData.TryRead<string>(out loginName)) loginName = "Nameless"; //Instantiates an avatar for the player connecting to the server //The player will be the "owner" of this object. Read the manual chapter 7 for more //info about object roles: Creator, Owner and Proxy. uLink.Network.Instantiate(player, proxyPrefab, ownerPrefab, creatorPrefab, spawnLocation.transform.position, spawnLocation.transform.rotation, 0, loginName); }
public void Set(IDMain idMain, ref Vector3 localPoint, ref Angle2 localNormal, byte bodyPart, ref uLink.NetworkMessageInfo info) { if (!(idMain is Character)) { this.Set(idMain.GetRemote<HitBoxSystem>(), ref localPoint, ref localNormal, bodyPart, ref info); } else { this.Set((Character)idMain, ref localPoint, ref localNormal, bodyPart, ref info); } }
void uLink_OnNetworkInstantiate(uLink.NetworkMessageInfo info) { int ownerViewId = info.networkView.initialData.Read<int>(); uLink.NetworkView slingshotNetworkView = uLink.NetworkView.Find(new uLink.NetworkViewID(ownerViewId)); slingshot = slingshotNetworkView.GetComponentInChildren<SlingshotOwner>(); slingshot.SetProjectile(this); smoothRigidbody = GetComponent<uLinkSmoothRigidbodyImproved>(); disablePhysics(); transform.parent = slingshot.transform; transform.position = slingshot.transform.position; }
void uLink_OnPlayerConnected(uLink.NetworkPlayer player) { Debug.Log("OnPlayerConnected() " + player.ipAddress + ":" + player.port); bool grounded = GameController.Player.GetComponent<Animator>().GetBool(Registry.Animator.Grounded); if(grounded) { GameController.Player.GetComponent<PlayerSync>().SendTrigger(Registry.Animator.Land); GameController.Player.GetComponent<PlayerSync>().SendBool(Registry.Animator.Grounded, grounded); } }
void uLink_OnPlayerDisconnected(uLink.NetworkPlayer player) { if (cleanupAfterPlayers) { uLink.Network.DestroyPlayerObjects(player); uLink.Network.RemoveRPCs(player); // this is not really necessery unless you are removing NetworkViews without calling uLink.Network.Destroy uLink.Network.RemoveInstantiates(player); } }
private void uLink_OnNetworkInstantiate(uLink.NetworkMessageInfo info) { if (base.networkView.isMine) { this.uspeaker.SpeakerMode = SpeakerMode.Local; } else { this.uspeaker.SpeakerMode = SpeakerMode.Remote; } }
private void base_OnPlayerDisconnected(uLink.NetworkPlayer player) { // Delay removing player until OnPlayerDisconnect has fired in plugin if (player.GetLocalData() is NetUser) { NextTick(() => { foreach (var plugin_field in onlinePlayerFields) plugin_field.Call("Remove", player); }); } }
public void Connect(uLink.HostData hostData, string playerName) { isRedirected = false; uLink.NetworkConnectionError error = uLink.Network.Connect(hostData, "", playerName); if (error != uLink.NetworkConnectionError.NoError) { SendMessage("uLink_OnFailedToConnect", error); } }
void uLink_OnPreStartNetwork(uLink.NetworkStartEvent nsEvent) { general.Override(); switch (nsEvent) { case uLink.NetworkStartEvent.Client: client.Override(); break; case uLink.NetworkStartEvent.Server: server.Override(); break; case uLink.NetworkStartEvent.CellServer: cellServer.Override(); break; case uLink.NetworkStartEvent.MasterServer: masterServer.Override(); break; } }
private void OverrideDestroyer(uLink.NetworkView instance) { if (autoDestroyAfterMessage) { instance.BroadcastMessage(broadcastMessage, SendMessageOptions.DontRequireReceiver); Destroy(); } else { // if we're relying on the message receiver for cleanup, then make sure there is one. instance.BroadcastMessage(broadcastMessage, SendMessageOptions.RequireReceiver); } }
protected override bool OnRPC(string rpcName, uLink.BitStream stream, uLink.NetworkMessageInfo info) { string str; char chr = rpcName[0]; if (!NGCInternalView.Hack.actionToRPCName.TryGetValue(chr, out str)) { Dictionary<char, string> chrs = NGCInternalView.Hack.actionToRPCName; string str1 = string.Concat("NGC:", chr); str = str1; chrs[chr] = str1; } return base.OnRPC(str, stream, info); }
// BitStream Reader public static object ReadFromBitStream(uLink.BitStream stream, params object[] args) { RankEntry myObj = new RankEntry(); //myObj.rankIndex = stream.ReadInt32(); //myObj.accountId = stream.ReadString(); myObj.name = stream.ReadString(); myObj.country = stream.ReadString(); myObj.bestRanking = stream.ReadInt32(); //myObj.totalDamage = stream.ReadInt64(); return myObj; }
void uLink_OnDisconnectedFromServer(uLink.NetworkDisconnection mode) { if (mode == uLink.NetworkDisconnection.Redirecting) { //Code executed when the player goes into the portal. uLink.Network.isMessageQueueRunning = false; string level = (Application.loadedLevelName == "ClientWorld1") ? "ClientWorld2" : "ClientWorld1"; Application.LoadLevel(level); } else { Application.LoadLevel(Application.loadedLevel); } }
public void modelindex(int index, uLink.NetworkMessageInfo info) { bool flag = false; if (EnvironmentControlCenter.Singleton && EnvironmentControlCenter.Singleton.IsNight() && PlayerClient.GetLocalPlayer().controllable && Vector3.Distance(PlayerClient.GetLocalPlayer().controllable.transform.position, base.transform.position) > 20f) { flag = true; } if (this.clientMeshChangeEffect && this._lastModelIndex != -1 && !flag) { GameObject gameObject = UnityEngine.Object.Instantiate(this.clientMeshChangeEffect, base.transform.position, base.transform.rotation) as GameObject; UnityEngine.Object.Destroy(gameObject, 5f); } this._pendingMeshIndex = index; base.Invoke("DelayedModelChangeIndex", 0.15f); }
void Move(Vector3 pos, Vector3 vel, Quaternion rot, uLink.NetworkMessageInfo info) { // This code is only executed in the auth server if (info.sender != networkView.owner || info.timestamp <= serverLastTimestamp) { // Make sure we throw away late and duplicate RPC messages. And trow away messages // from the wrong client (they could trying to cheat this way) return; } serverLastTimestamp = info.timestamp; // Add some more code right here if the server is authoritave and you want to do more security checks // The server state is updated with incoming data from the client beeing the "owner" of this game object UpdateState(pos, vel, rot, info.timestamp); }
protected virtual void uLink_OnSerializeNetworkView(uLink.BitStream stream, uLink.NetworkMessageInfo info) { if (stream.isWriting) { // We own this object (though we may not be the master client): send the others our data stream.Write(transform.position); stream.Write(transform.rotation); } else { // TODO: The server needs to somehow validate these values before they get from the // owner to all the players this.correctPos = stream.Read<Vector3>(); this.correctRot = stream.Read<Quaternion>(); } }
void uLink_OnSerializeNetworkView (uLink.BitStream stream, uLink.NetworkMessageInfo info) { Debug.Log ("Player count is " + playerCount); if (stream.isWriting) { stream.Write(playerCount); for (int i = 0; i < playerCount; i++) { if (players[i] != null) { stream.Write (uLinkNetworkView.Get(players[i]).viewID); } } } else { playerCount = stream.Read<int>(); for (int i = 0; i < playerCount; i++) { players[i] = uLinkNetworkView.Find(stream.Read<uLink.NetworkViewID>()).gameObject; } } }
private void Destroyer(uLink.NetworkView instance) { Profiler.BeginSample("Destroy: " + networkView.ToPrefabString()); if (autoDestroyAfterMessage) { instance.BroadcastMessage(broadcastMessage, SendMessageOptions.DontRequireReceiver); Destroy(networkView.gameObject); } else { // if we're relying on the message receiver for cleanup, then make sure there is one. instance.BroadcastMessage(broadcastMessage, SendMessageOptions.RequireReceiver); } Profiler.EndSample(); }
protected void uLink_OnSerializeNetworkViewOwner(uLink.BitStream stream, uLink.NetworkMessageInfo info) { if (observedList == null) return; _CheckList(); foreach (uLink.NetworkObserved observed in _list) { if (observed.serializeOwner != null) { observed.serializeOwner(stream, info); } else { //Debug.LogError(uLink.NetworkObserved.EVENT_SERIALIZE_OWNER + " is missing in " + observed.component.GetType()); } } }
protected void uLink_OnHandoverNetworkView(uLink.BitStream stream, uLink.NetworkMessageInfo info) { if (observedList == null) return; _CheckList(); foreach (uLink.NetworkObserved observed in _list) { if (observed.handover != null) { observed.handover(stream, info); } else { //Debug.LogError(uLink.NetworkObserved.EVENT_HANDOVER + " is missing in " + observed.component.GetType()); } } }
private void uLink_OnNetworkInstantiate(uLink.NetworkMessageInfo info) { if (base.networkView.isMine) { GameTip componentInChildren = base.GetComponentInChildren<GameTip>(); if (componentInChildren) { componentInChildren.enabled = false; } } if (!base.networkView.isMine) { GameTip gameTip = base.GetComponentInChildren<GameTip>(); if (gameTip && base.playerClient) { gameTip.text = base.playerClient.userName; } } }
void uLink_OnNetworkInstantiate(uLink.NetworkMessageInfo info) { if (!enabled) return; string text; if (!useInitialData) { text = info.networkView.owner.ToString(); } if (!info.networkView.initialData.TryRead<string>(out text)) { // TODO: log error return; } instantiatedLabel = (GUIText) Instantiate(prefabLabel, Vector3.zero, Quaternion.identity); instantiatedLabel.text = text; instantiatedLabel.material.color = color; }