Пример #1
0
        public void BroadcastPlayerPosUpdate(ClientState client, Vector3 newPos, byte rawPitch, byte rawYaw, PosUpdateOptions flags = PosUpdateOptions.None)
        {
            var server = ServerController.Instance;
            var player = GetPlayerByOwner(client);
            var pitch  = MathUtils.Remap(rawPitch, 0, 255, 0, 360);
            var yaw    = MathUtils.Remap(rawYaw, 0, 255, 0, 360);

            player.Position = newPos;
            player.LookDir  = new Vector2(pitch, yaw);

            server.SendToAll(ServerPacketID.PlayerPosAndRotUpdate, new S_PosAndOrientationUpdateMessage {
                CommandID = (byte)flags,
                ConId     = (ushort)client.ConnectionID,
                Position  = newPos,
                LookPitch = rawPitch,
                Yaw       = rawYaw
            });
        }
Пример #2
0
 public static void Unset(PosUpdateOptions flags, PosUpdateOptions flag)
 {
     flags = (flags & (~flag));
 }
Пример #3
0
 public static bool IsSet(this PosUpdateOptions flags, PosUpdateOptions flag)
 {
     return((flags & flag) != 0);
 }
Пример #4
0
 public static void Set(ref PosUpdateOptions flags, PosUpdateOptions flag)
 {
     flags = (flags | flag);
 }
        public void UpdatePlayerPos(ushort conId, Vector3 newPos, byte rawPitch, byte rawYaw, PosUpdateOptions flags)
        {
            var localEntity = GetPlayer(conId);

            if (localEntity == null)
            {
                return;
            }
            localEntity.Position = newPos;
            var pitch = MathUtils.Remap(rawPitch, 0, 255, 0, 360);
            var yaw   = MathUtils.Remap(rawYaw, 0, 255, 0, 360);

            localEntity.LookDir = new Vector2(pitch, yaw);
            EventManager.Fire(new OnClientPlayerUpdate {
                Player = localEntity, Flags = flags
            });
        }