コード例 #1
0
    public Player CreateRon(Vector3 pos, Quaternion rot, bool male = true, string name = "")
    {
        int modelIdx = male ? 0 : 1;

        if (name == "")
        {
            name = RandomName(male);
        }
        ForceUniqueName(ref name);

        // create player
        GameObject go           = GameObject.Instantiate(Resources.Load("Avatars/ron")) as GameObject;
        MsgData    userInitData = new MsgData();

        userInitData.name     = name;
        userInitData.playerID = UnityEngine.Random.Range(0, 8);
        User   user = new ReplayUser(userInitData);
        Player bot  = new Player(user, go, modelIdx, PlayerType.STEALTH, "", userInitData.name, 0);

        bot.isBot = true;

        // assign transform
        bot.gameObject.transform.position = pos;
        bot.gameObject.transform.rotation = rot;
        bot.gameObject.GetComponent <PlayerController>().forwardAngle = rot.eulerAngles.y;

        // make visible and kill bouncing
        bot.gameObject.SetActive(true);

        localBots.Add(name, bot);
        return(bot);
    }
コード例 #2
0
ファイル: ReplayManager.cs プロジェクト: shldn/mdons
    void HandleUserEnterExit(ref MsgData msg) // const ref
    {
        bool entered = (msg.msgType == SFSEvent.USER_ENTER_ROOM);

        Debug.LogError("\tuser " + msg.id + " - " + msg.name + ((entered) ? " entered" : " left"));
        if (entered)
        {
            Player replayPlayer = null;
            if (!replayPlayers.TryGetValue(msg.id, out replayPlayer))
            {
                // Create replay player
                User       user  = new ReplayUser(msg);
                PlayerInit pInit = PlayerManager.InitPlayerVariablesFromUserVariables(msg.changedVars);
                GameObject go    = GameManager.Inst.playerManager.CreateRemotePlayerGO(pInit.modelIndex);
                replayPlayer          = new Player(user, go, pInit);
                replayPlayers[msg.id] = replayPlayer;
            }
            replayPlayer.Visible = true;
            HandleUserVariableUpdate(ref msg);
        }
        else
        {
            Player p = GetPlayer(ref msg);
            p.Visible = false;
            //replayPlayers.Remove(msg.id);
        }
        Debug.LogError("HandleUserEnterExit complete");
    }
コード例 #3
0
    public Player Create(Vector3 pos, Quaternion rot, bool male = true, bool addToUserList = false, string name = "")
    {
        int modelIdx = male ? 0 : 1;

        if (name == "")
        {
            name = RandomName(male);
        }
        ForceUniqueName(ref name);

        // create player
        GameObject go           = GameManager.Inst.playerManager.CreateRemotePlayerGO(modelIdx);
        MsgData    userInitData = new MsgData();

        userInitData.name     = name;
        userInitData.playerID = UnityEngine.Random.Range(0, 8);
        User   user = new ReplayUser(userInitData);
        Player bot  = new Player(user, go, modelIdx, PlayerType.STEALTH, "", userInitData.name, 0);

        bot.isBot = true;
        AvatarOptionManager.Inst.CreateRandomAvatar(bot, false);

        // assign transform
        bot.gameObject.transform.position = pos;
        bot.gameObject.transform.rotation = rot;
        bot.gameObject.GetComponent <PlayerController>().forwardAngle = rot.eulerAngles.y;

        // make visible and kill bouncing
        bot.gameObject.SetActive(true);
        bot.gameObject.GetComponent <SimpleRemoteInterpolation>().enabled = false;

        if (addToUserList)
        {
            GameGUI.Inst.ExecuteJavascriptOnGui(bot.GetAddToGUIUserListJSCmd());
        }

        localBots.Add(name, bot);
        return(bot);
    }
コード例 #4
0
ファイル: ReplayManager.cs プロジェクト: shldn/mdons
    Player GetPlayer(ref MsgData msg)
    {
        Player replayPlayer = null;

        if (!replayPlayers.TryGetValue(msg.id, out replayPlayer))
        {
            User         user = new ReplayUser(msg);
            UserVariable playerTypeOverride = null;
            if (msg.changedVars != null)
            {
                for (int i = 0; i < msg.changedVars.Count && playerTypeOverride == null; ++i)
                {
                    if (msg.changedVars[i].Name == "ptype")
                    {
                        playerTypeOverride = msg.changedVars[i];
                    }
                }
            }
            string      jsonRequest = "{\"displayname\":\"" + msg.name + "\"}";
            UserProfile userProfile = new UserProfile();
            userProfile.InitFromColumnValue(jsonRequest);

            if (!userProfile.Initialized)
            {
                Debug.LogError("Didn't get the user " + msg.name + " they may have changed their display name");
            }
            else
            {
                int        modelIdx = PlayerManager.GetModelIdx(userProfile.Model);
                GameObject go       = GameManager.Inst.playerManager.CreateRemotePlayerGO(modelIdx);
                replayPlayer = new Player(user, go, userProfile);
                if (playerTypeOverride != null)
                {
                    replayPlayer.UpdateType(playerTypeOverride);
                }
                replayPlayers[msg.id] = replayPlayer;
            }
            if (replayClicks)
            {
                SetPlayerMouseToReplayMode(replayPlayer);
            }
        }
        if (replayPlayer == null)
        {
            // save parse requests and use our best guess for now.
            Debug.LogError("Creating user: "******" as a stealth user");
            int        modelIdx = 0;
            GameObject go       = GameManager.Inst.playerManager.CreateRemotePlayerGO(modelIdx);
            User       user     = new ReplayUser(msg);
            replayPlayer          = new Player(user, go, modelIdx, PlayerType.STEALTH, "", msg.name, 0);
            replayPlayers[msg.id] = replayPlayer;

            if (replayClicks)
            {
                SetPlayerMouseToReplayMode(replayPlayer);
            }
        }
        if (!replayPlayer.Visible)
        {
            replayPlayer.Visible = true;
        }
        return(replayPlayer);
    }