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) => { }); }
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(); }
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); }
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); }
/// <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) => { }); }