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();
            }
    }
Example #2
0
// ReSharper disable once UnusedMember.Local
    protected void OwnerReceiveRemoteWantsStatusMessage(uLink.NetworkMessageInfo info)
    {
        if (networkView.isMine)
        {
            networkView.RPC("RemoteReceiveStatusMessage", info.sender, StatusMessage);
        }
    }
Example #3
0
        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));
        }
Example #4
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);
 }
// 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;
    }
Example #7
0
    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);
    }
Example #8
0
    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);
    }
Example #10
0
 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);
        }
    }
Example #14
0
 private void uLink_OnNetworkInstantiate(uLink.NetworkMessageInfo info)
 {
     if (base.networkView.isMine)
     {
         this.uspeaker.SpeakerMode = SpeakerMode.Local;
     }
     else
     {
         this.uspeaker.SpeakerMode = SpeakerMode.Remote;
     }
 }
Example #15
0
 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);
         });
     }
 }
Example #16
0
    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);
     }
 }
Example #19
0
 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);
 }
Example #20
0
    // 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;
    }
Example #21
0
    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);
        }
    }
Example #22
0
 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>();
     }
 }
Example #25
0
	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());
            }
        }
    }
Example #29
0
 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;
         }
     }
 }
Example #30
0
    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;
    }