Exemple #1
0
    public void Init()
    {
#if CWSDK
        CWSdkPubmeth.GetSdk.Init();
#endif

        GameObject plan   = GameObject.Find("Plane");
        Vector3    length = plan.GetComponent <MeshFilter>().mesh.bounds.size;
        xlength = length.x * plan.transform.lossyScale.x;
        ylength = length.z * plan.transform.lossyScale.z;
        Debug.Log($"地图的尺寸为  x:{xlength}  y:{ylength}");


        m_main  = GameObject.Find("Main Camera").GetComponent <Camera>();
        npcroot = GameObject.Find("NPC_Root");
        UIMgr.Instance.Init(GameObject.Find("UIRoot"), GameObject.Find("HUD"));


        player_info info = new player_info();
        info.ID      = 0;
        info.m_name  = "tony";
        info.m_level = 9;
        info.m_pos   = Vector3.zero;
        info.m_res   = "Teddy";
        info.m_HP    = 2000;
        info.m_MP    = 1000;
        info.m_hpMax = 2000;
        info.m_mpMax = 2000;

        //===技能解析读取   已取出单独解析
        //info.skillList =

        m_plyer = new HostPlayer(info);
        m_plyer.CreateObj(MonsterType.Null);
        JoyStickMgr.Instance.SetJoyArg(m_main, m_plyer);
        JoyStickMgr.Instance.JoyActive = true;

        CreateIns();

        MsgCenter.Instance.AddListener("AutoMove", (notify) =>
        {
            this.AutoMoveByInsId((int)notify.data[0], (Vector3)notify.data[1]);
        });

        MsgCenter.Instance.AddListener("AddBuff", (notify) =>
        {
            int insid    = (int)notify.data[0];
            int buffid   = (int)notify.data[1];
            ObjectBase p = m_insDic[insid];
            if (p is PlayerObj)
            {
                BuffSystem.Instance.AddBuff(p as PlayerObj, buffid);
            }
        });

        MsgCenter.Instance.AddListener("ReMoveBuff", (notify) =>
        {
        });
    }
Exemple #2
0
        public void RemovePlayer(Player player)
        {
            if (player.Equals(HostPlayer) && State == GameState.Lobby)
            {
                bool found = false;
                foreach (Player p in Players)
                {
                    if (p != null && !p.Equals(player))
                    {
                        HostPlayer = p;
                        found      = true;
                        break;
                    }
                }
                if (found)
                {
                    IsReady[HostPlayer.Type] = false;
                    HostPlayer.SendTypeChange();
                }
                else
                {
                    _server.Stop();
                    return;
                }
            }
            if (player.IsRecorder)
            {
                player.Disconnect();
            }
            if (player.Type == (int)PlayerType.Observer)
            {
                Observers.Remove(player);
                if (State == GameState.Lobby)
                {
                    BinaryWriter nwatch = GamePacketFactory.Create(StocMessage.HsWatchChange);
                    nwatch.Write((short)Observers.Count);
                    SendToAll(nwatch);
                }
                player.Disconnect();
            }
            else if (State == GameState.Lobby)
            {
                Players[player.Type] = null;
                IsReady[player.Type] = false;
                BinaryWriter change = GamePacketFactory.Create(StocMessage.HsPlayerChange);
                change.Write((byte)((player.Type << 4) + (int)PlayerChange.Leave));
                SendToAll(change);
                player.Disconnect();
            }
            else
            {
                Surrender(player, 4, true);
            }

            if (OnPlayerLeave != null)
            {
                OnPlayerLeave(this, new PlayerEventArgs(player));
            }
        }
 public void SetJoyArg(Camera camera, HostPlayer host)
 {
     //玩家自己
     player = host;
     //朝向
     joystick.cameraLookAt = host.game.transform;
     //移动
     joystick.cameraTransform = camera.transform;
     SetJoytick();
 }
Exemple #4
0
    public void Move(Vector3 desiredMove)
    {
        m_CurSpeed = IsWalking ? WalkSpeed : RunSpeed;

        PlayerAction tarAction = PlayerAction.ACTION_STAND;

        m_IsMoving = Mathf.Abs(m_MoveInput.y) > float.Epsilon || Mathf.Abs(m_MoveInput.x) > float.Epsilon;
        if (m_IsMoving)
        {
            tarAction = PlayerAction.ACTION_RUN;
            Vector3 desiredMove = Vector3.Scale(HostPlayerCamera.forward, new Vector3(1, 0, 1)).normalized *m_MoveInput.y + HostPlayerCamera.right * m_MoveInput.x;

            m_PlayerTarForward = desiredMove.normalized;
            RaycastHit hitInfo;
            Physics.SphereCast(transform.position, m_CharacterController.radius, Vector3.down, out hitInfo,
                               m_CharacterController.height / 2f, ~0, QueryTriggerInteraction.Ignore);
            desiredMove = Vector3.ProjectOnPlane(desiredMove, hitInfo.normal).normalized;

            m_MoveDir.x = desiredMove.x * m_CurSpeed;
            m_MoveDir.z = desiredMove.z * m_CurSpeed;
        }
        else
        {
            m_MoveDir.x = 0;
            m_MoveDir.z = 0;
            tarAction   = PlayerAction.ACTION_STAND;
        }

        if (m_CharacterController.isGrounded)
        {
            if (m_Jump)
            {
                m_MoveDir.y = JumpSpeed;
                m_Jump      = false;
                m_Jumping   = true;
                tarAction   = PlayerAction.ACTION_JUMP;
            }
        }
        else
        {
            m_MoveDir += Physics.gravity * GravityMultiplier * Time.fixedDeltaTime;
            if (m_Jumping)
            {
                tarAction = PlayerAction.ACTION_JUMP;
            }
        }

        m_CollisionFlags = m_CharacterController.Move(m_MoveDir * Time.fixedDeltaTime);
        HostPlayer.PlayAction(tarAction);
    }
Exemple #5
0
        private static async Task <HumanPlayer> LoadSandbox(CancellationToken cancellationToken)
        {
            var aether = Room.Make("The Aether", Dbref.GOD);

            aether.id = Dbref.AETHER;
            HostPlayer.make("God", aether);
            var player = HumanPlayer.make("Wizard", aether);

            player.SetFlag(Thing.Flag.WIZARD);

            Console.Out.WriteLine($"Created new player {player.UnparseObjectInternal()}");
            _ = await player.MoveToAsync(aether, cancellationToken);

            return(player);
        }
Exemple #6
0
    /// <summary>
    /// 初始化的方法
    /// </summary>
    public void Init()
    {
        //找到地图
        GameObject plan = GameObject.Find("Plane");
        //获得地图的尺寸
        Vector3 length = plan.GetComponent <MeshFilter>().mesh.bounds.size;

        xLength = length.x * plan.transform.localScale.x;
        yLength = length.z * plan.transform.localScale.z;
        Debug.Log($"地图的尺寸为 x:{xLength}   y:{yLength}");

        camera = GameObject.Find("Main Camera").GetComponent <Camera>();
        npc    = GameObject.Find("NPC_Root");
        UIMgr.Instance.Init(GameObject.Find("UIRoot"), GameObject.Find("HUD"));
        //给玩家赋值属性
        PlayerDate info = new PlayerDate();

        info.ID    = 1;            //ID
        info.name  = "Teddy";      //名字
        info.level = 99;           //等级
        info.pos   = Vector3.zero; //位置
        info.hp    = 2000;         //当前血量
        info.mp    = 1500;         //当前法力值
        info.MaxHp = 2000;         //最大血量
        info.MaxMp = 2000;         //最大法力值
        //把玩家的属性传到玩家自己的脚本身上
        player = new HostPlayer(info);
        //创建对应的角色
        player.CreateObj(RoleType.Null);
        JoyStickMgr.Instance.SetJoyArg(camera, player);
        JoyStickMgr.Instance.JoyActive = true;
        CreaeIns();
        //监听事件---移动
        MsgCenter.Instance.AddListener("AutoMove", (notify) =>
        {
            this.AutoMoveByInsId((int)notify.data[0], (Vector3)notify.data[1]);
        });
        //监听事件---Buff
        MsgCenter.Instance.AddListener("AddBuff", (notify) =>
        {
        });
    }