Messing with SplineFlags menu

Shout-Out

User Tag List

Results 1 to 7 of 7
  1. #1
    XTZGZoReX's Avatar Active Member
    Reputation
    32
    Join Date
    Apr 2008
    Posts
    173
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Messing with SplineFlags

    I've been messing about with spline movement lately, and I'm interested in knowing if anyone's got any info on the various flags, and/or know something about the packet structures relating to this.

    These are the flags I know (thanks to TOM_RUS):

    Code:
        [Flags]
        public enum SplineFlags : uint
        {
            None = 0x00000000,
            Unknown1 = 0x00000001,
            Unknown2 = 0x00000002,
            Unknown3 = 0x00000004,
            Unknown4 = 0x00000008,
            Unknown5 = 0x00000010,
            Unknown6 = 0x00000020,
            Unknown7 = 0x00000040,
            Point = 0x00008000,
            Target = 0x00010000,
            Orientation = 0x00020000,
            Unknown8 = 0x00000400,
            Unknown9 = 0x00000800,
            Unknown10 = 0x00001000,
            Unknown11 = 0x00002000,
            Unknown12 = 0x00004000,
            Unknown13 = 0x00008000,
            Unknown14 = 0x00010000,
            Unknown15 = 0x00020000,
            Unknown16 = 0x00040000,
            Unknown17 = 0x00080000,
            Unknown18 = 0x00100000,
            Unknown19 = 0x00200000,
            Unknown20 = 0x00400000,
            Unknown21 = 0x00800000,
            Unknown22 = 0x01000000,
            Unknown23 = 0x02000000,
            Unknown24 = 0x04000000,
            Unknown25 = 0x08000000,
            Unknown26 = 0x10000000,
            Unknown27 = 0x20000000,
            Unknown28 = 0x40000000,
            Unknown29 = 0x80000000
        }
    And also, in SMSG_MONSTER_MOVE, there's:

    Code:
        [Flags]
        enum MonsterMoveFlags : uint
        {
            None = 0x00000000,
            Forward = 0x00000001,
            Backward = 0x00000002,
            StrafeLeft = 0x00000004,
            Straferight = 0x00000008,
            Left = 0x00000010,
            Right = 0x00000020,
            PitchUp = 0x00000040,
            PitchDown = 0x00000080,
            Teleport1 = 0x00000100,
            Teleport2 = 0x00000200,
            Levitating = 0x00000400,
            Unknown1 = 0x00000800,
            Walk = 0x00001000,
            Spline1 = 0x00002000,
            Spline2 = 0x00040000,    /* 0x00042000 -> spline movement (waypoints are NOT packed) */
            Unknown2 = 0x00080000,
            Unknown3 = 0x00100000,
            Unknown4 = 0x00200000,
            Unknown5 = 0x00400000,
            Unknown6 = 0x00800000,
            Unknown7 = 0x01000000,
            Fly = 0x02000000,
            Unknown8 = 0x04000000,
            Unknown9 = 0x08000000,
            Unknown10 = 0x10000000,
            Unknown11 = 0x20000000,
            Unknown13 = 0x40000000
        }
    Thanks in advance!
    Last edited by XTZGZoReX; 01-30-2010 at 03:23 PM.

    Messing with SplineFlags
  2. #2
    andy012345's Avatar Active Member
    Reputation
    59
    Join Date
    Oct 2007
    Posts
    124
    Thanks G/R
    0/7
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Spline1 = 0x00002000,
    Spline2 = 0x00040000, /* 0x00042000 -> spline movement (waypoints are NOT packed) */

    0x2000 is swimming (or flying).
    0x40000 means pathpoints wont use deltas.

  3. #3
    XTZGZoReX's Avatar Active Member
    Reputation
    32
    Join Date
    Apr 2008
    Posts
    173
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I've also been told SplineFlags are in fact MonsterMoveFlags - which would make sense, as the "known spline flags" wouldn't overlap.
    Last edited by XTZGZoReX; 01-30-2010 at 04:57 PM.

  4. #4
    andy012345's Avatar Active Member
    Reputation
    59
    Join Date
    Oct 2007
    Posts
    124
    Thanks G/R
    0/7
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I only really documented the ones I used.

    Uhh

    Code:
    enum MoveFlags
    {
        MONSTERMOVEFLAG_TRAJECTORY    = 0x800,
        MONSTERMOVEFLAG_RUN            = 0x1000,
        MONSTERMOVEFLAG_FLY            = 0x2000, //also swim, lul
        MONSTERMOVEFLAG_UNK            = 0x4000, //used with trajectory
        MONSTERMOVEFLAG_NO_DELTAS    = 0x40000, //this will also switch between swim/run automatically as the client updates the position
    };

  5. #5
    XTZGZoReX's Avatar Active Member
    Reputation
    32
    Join Date
    Apr 2008
    Posts
    173
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Going to dig this thread up to share what I have now.

    Major credit to Ralek for reversing most of the movement system.

    Code:
        [Flags]
        public enum MovementFlag
        {
            None = 0x00000000,
            Forward = 0x00000001,
            Backward = 0x00000002,
            StrafeLeft = 0x00000004,
            StrafeRight = 0x00000008,
            TurnLeft = 0x00000010,
            TurnRight = 0x00000020,
            PitchUp = 0x00000040,
            PitchDown = 0x00000080,
            WalkMode = 0x00000100,
            OnTransport = 0x00000200,
            Unknown = 0x00000400,
            Root = 0x00000800,
            Falling = 0x00001000,
            FallingFar = 0x00002000,
            PendingStop = 0x00004000,
            PendingStrafeStop = 0x00008000,
            PendingForward = 0x00010000,
            PendingBackward = 0x00020000,
            PendingStrafeLeft = 0x00040000,
            PendingStrafeRight = 0x00080000,
            PendingRoot = 0x00100000,
            Swimming = 0x00200000,
            Ascending = 0x00400000,
            Descending = 0x00800000,
            CanFly = 0x01000000,
            Flying = 0x02000000,
            SplineElevation = 0x04000000,
            SplineEnabled = 0x08000000,
            Waterwalking = 0x10000000,
            SafeFall = 0x20000000,
            Hover = 0x40000000
        }
    Code:
        [Flags]
        public enum MovementFlagExtra
        {
            None = 0x0000,
            Unknown1 = 0x0001,
            Unknown2 = 0x0002,
            Unknown3 = 0x0004,
            FullSpeedTurning = 0x0008,
            FullSpeedPitching = 0x0010,
            AlwaysAllowPitching = 0x0020,
            Unknown4 = 0x0040,
            Unknown5 = 0x0080,
            Unknown6 = 0x0100,
            Unknown7 = 0x0200,
            InterpolatedPlayerMovement = 0x0400,
            InterpolatedPlayerTurning = 0x0800,
            InterpolatedPlayerPitching = 0x1000,
            Unknown8 = 0x2000,
            Unknown9 = 0x4000,
            Unknown10 = 0x8000
        }
    Code:
        [Flags]
        public enum SplineFlag
        {
            None = 0x00000000,
            Forward = 0x00000001,
            Backward = 0x00000002,
            StrafeLeft = 0x00000004,
            Straferight = 0x00000008,
            TurnLeft = 0x00000010,
            TurnRight = 0x00000020,
            PitchUp = 0x00000040,
            PitchDown = 0x00000080,
            Done = 0x00000100,
            Falling = 0x00000200,
            NoSpline = 0x00000400,
            Trajectory = 0x00000800,
            WalkMode = 0x00001000,
            Flying = 0x00002000,
            Knockback = 0x00004000,
            FinalPoint = 0x00008000,
            FinalTarget = 0x00010000,
            FinalOrientation = 0x00020000,
            CatmullRom = 0x00040000,
            Unknown1 = 0x00080000,
            Unknown2 = 0x00100000,
            Unknown3 = 0x00200000,
            Unknown4 = 0x00400000,
            Unknown5 = 0x00800000,
            Unknown6 = 0x01000000,
            Unknown7 = 0x02000000,
            Unknown8 = 0x04000000,
            Unknown9 = 0x08000000,
            Unknown10 = 0x10000000,
            Unknown11 = 0x20000000,
            Unknown12 = 0x40000000
        }
    Code:
        public enum SplineMode
        {
            Linear = 0,
            CatmullRom = 1,
            Bezier3 = 2
        }
    Code:
        public enum SplineType
        {
            Normal = 0,
            Stop = 1,
            FacingSpot = 2,
            FacingTarget = 3,
            FacingAngle = 4
        }
    Now, a few remarks/facts:

    * Monster movement flags don't exist; they're spline flags. This is confirmed.
    * SplineMode is sent in SMSG_UPDATE_OBJECT.
    * SplineType is what was previously MonsterMoveType.
    * Bezier3 doesn't appear to be actually sent; it's most likely only used at the client (citing Ralek).
    * It appears players use Catmull-Rom, while all other units use a linear spline.

  6. #6
    andy012345's Avatar Active Member
    Reputation
    59
    Join Date
    Oct 2007
    Posts
    124
    Thanks G/R
    0/7
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    My extra move flags (these are pretty old, from 3.1 iirc):

    Code:
    enum MoveFlagExtra
    {
        MOVEFLAGEXTRA_DISABLE_STRAFING    = 0x0001,
        MOVEFLAGEXTRA_DISABLE_JUMPING    = 0x0002,
        MOVEFLAGEXTRA_DISABLE_SWIMMING    = 0x0004,
        MOVEFLAGEXTRA_FORCE_TURN_RATE    = 0x0008,
        MOVEFLAGEXTRA_DISABLE_PITCH        = 0x0010, //i think, well it did break my flying, couldnt go up or down
        MOVEFLAGEXTRA_ENABLE_PITCH        = 0x0020, //this overrides disable, it's used for things like catapults (where pitch is used for aiming)
        //rest are unknown atm, my vehicles work fine, i don't care about them
    };

  7. #7
    Viano's Avatar Active Member
    Reputation
    37
    Join Date
    May 2008
    Posts
    172
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I am very sorry for ma stupidity. But what are SplineFlags for? And where are they stored? Can I build a navigation system out of this?
    Viano

Similar Threads

  1. Messing with gold sellers
    By m0rbidang3l in forum World of Warcraft General
    Replies: 10
    Last Post: 08-15-2007, 07:35 PM
  2. Replies: 27
    Last Post: 08-13-2007, 07:03 AM
  3. Cheezeit117 and Piggy messing with GMs on live blizz servers .
    By Flying Piggy in forum World of Warcraft General
    Replies: 17
    Last Post: 07-11-2007, 08:38 PM
  4. mess with flight master Daelyshia
    By jackus in forum World of Warcraft Exploits
    Replies: 3
    Last Post: 01-07-2007, 10:08 PM
All times are GMT -5. The time now is 05:18 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search