Example #1
0
    private void SpawnRemotePlayer(SFSUser user, string room = "")
    {
        VDebug.Log("Spawning user: "******" room: " + room);

        // New client just started transmitting - lets create remote player
        PlayerInit pInit = InitPlayerVariablesFromUserVariables(user.GetVariables());

        pInit.displayName = (string.IsNullOrEmpty(pInit.displayName)) ? user.Name : pInit.displayName;


        // See if there already exists a model so we can destroy it first
        if (remotePlayers.ContainsKey(user) && remotePlayers[user] != null)
        {
            Destroy(remotePlayers[user]);
            remotePlayers.Remove(user);
            players.Remove(user.Id);
            if (user.Name == GetLocalPlayer().SFSName)
            {
                Debug.LogError("Caught someone logging in with my name, logging out");
                CommunicationManager.Inst.LogOut();
                return;
            }
        }

        if (pInit.ptype != PlayerType.STEALTH && roomEntrySoundFlag)
        {
            SoundManager.Inst.PlayEnter();
        }

        Player remotePlayer = CreateRemotePlayer(user, pInit.modelIndex, pInit.Pos, pInit.Rot, pInit.optionsStr, pInit.parseID, pInit.displayName, pInit.teamID, pInit.ptype, pInit.sit);

        if (CommunicationManager.IsPrivateRoom(room))
        {
            GameGUI.Inst.ExecuteJavascriptOnGui(remotePlayer.GetUserEnterPrivateRoomJSCmd(room));
        }
    }