I GOT XYZ and ROT, but what about PITCH? menu

User Tag List

Page 1 of 2 12 LastLast
Results 1 to 15 of 23
  1. #1
    ShoniShilent's Avatar Member
    Reputation
    7
    Join Date
    May 2008
    Posts
    105
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    I GOT XYZ and ROT, but what about PITCH?

    for my bot i am ok when on the ground, but i have problems trying to move my flying mounts.

    i have x,y,z and rotation offsets from the base in the linked list, but is there an offset for the PITCH of the mount (for instance you are flying forward but either slightly up or down due to your pitch, etc.)

    1) what is the offset?
    2) what is the normal values? 0 = level? neg is up? pos val is down? ,etc.
    3) is there an address we can read to see if we are mounted? i can send keys to the bot to mount or unmount, but i have no idea how to determine if i am already mounted? thx-

    I GOT XYZ and ROT, but what about PITCH?
  2. #2
    FenixTX2's Avatar Active Member
    Reputation
    22
    Join Date
    Mar 2009
    Posts
    125
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    There is a Pitch veriable. It's offset has been posted recently.
    Use the search function, they should be in one of the posts listed under wow 3.2. Try getting cheatengine out and having a look if you're interested.

    You might be better off using the CTM function however.
    Last edited by FenixTX2; 08-12-2009 at 12:41 PM.

  3. #3
    Nesox's Avatar ★ Elder ★
    Reputation
    1280
    Join Date
    Mar 2007
    Posts
    1,238
    Thanks G/R
    0/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    X = 0x798
    Y = 0x79C
    Z = 0x7A0
    HRotation = 0x7A8
    VRotation = 0x7E0

  4. #4
    ninar1's Avatar Member
    Reputation
    13
    Join Date
    Jul 2009
    Posts
    21
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

  5. #5
    lanman92's Avatar Active Member
    Reputation
    50
    Join Date
    Mar 2007
    Posts
    1,033
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    It's in the movement struct... Not hard to reverse. Actually, not much to reverse if you already have the X, Y, Z, orientation. Guess you could use GetUnitPitch() o.O

  6. #6
    ShoniShilent's Avatar Member
    Reputation
    7
    Join Date
    May 2008
    Posts
    105
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Nesox View Post
    X = 0x798
    Y = 0x79C
    Z = 0x7A0
    HRotation = 0x7A8
    VRotation = 0x7E0
    thanks for all of you taking the time to post. In case someone is using this information, the VRotation offset posted above is incorrect. It's actually

    VRotation = 0x7AC

    which i could have guessed, LOL. anyways, 0x7E0 actually is a 'copy' of HRotation AFTER you complete a side-to-side movement it updates.

    if your flying mount is angled UP or DOWN (you are flying upwards or downwards if you are just pressing W to move forward) then writing a float zero to offset 0x7AC will make you fly perfectly level. i have my bot using this to fly straight, etc.

    thanks again for the help=

  7. #7
    mordok's Avatar Member
    Reputation
    11
    Join Date
    Oct 2007
    Posts
    103
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I was wondering, in order to calculate the vertical angle between your char and a waypoint what would the math be?

    I mean should calculate the imaginary line that joins char xyz and waypoint xyz and then calculate the angle between it and a perpendicular plane to Z axis? damn Im too bad at maths.

    mmmm? i was wondering if it should be somthing similliar to
    float verticalAngle = (float)Math.Atan2(coordY - playerY, coordZ - playerZ);

    Any ideas Im mathematically r-tard XD.¿?
    Last edited by mordok; 09-07-2009 at 03:05 AM.
    "I'm not going to expose my methods for time bending, as i don't want to do get nerfed!"-Kynox

  8. #8
    mordok's Avatar Member
    Reputation
    11
    Join Date
    Oct 2007
    Posts
    103
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    mmmm

    I did some research but as I sed im too bad at maths, what do you think about this?

    "I'm not going to expose my methods for time bending, as i don't want to do get nerfed!"-Kynox

  9. #9
    zzgw's Avatar Member
    Reputation
    6
    Join Date
    Mar 2008
    Posts
    31
    Thanks G/R
    0/2
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    You have a triangle there, it works just like it works for facing. The hypotenuse is the distance to the point, the opposite leg the z difference (dx/dy/dz are the coordinate differences between the player and point you want to face).

    distance = sqrt(dx^2 + dy^2)
    pitch_angle = -atan2(distance, dz) + pi/2

    You just need to do a few adjustments there because of how atan2 works and the fact that the player pitch has its origin at level.

  10. #10
    mordok's Avatar Member
    Reputation
    11
    Join Date
    Oct 2007
    Posts
    103
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    public double distance(float coord1X, float coord1Y, float coord2X, float coord2Y)
    {
    return Math.Sqrt(Math.Pow(coord2X - coord1X, 2) + Math.Pow(coord2Y - coord1Y, 2));
    }

    public float pitchAngle(double distance, float playerZ, float wz)
    {
    return (float)((-1 * Math.Atan2(distance, wz - playerZ)) + (Math.PI / 2));
    }
    like this???
    Last edited by mordok; 09-07-2009 at 02:15 PM.
    "I'm not going to expose my methods for time bending, as i don't want to do get nerfed!"-Kynox

  11. #11
    Unkn0wn0x's Avatar Member
    Reputation
    6
    Join Date
    Aug 2009
    Posts
    39
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I'm interested in this ,too. I want to change from CTM to W A S D move, but the pitch was a little problem. I'll take a look at this later. Maybe i get a positive result.

  12. #12
    mordok's Avatar Member
    Reputation
    11
    Join Date
    Oct 2007
    Posts
    103
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I have no idea if that method is correct, plus im sure I need to normailize the angle.

    if (angle< 0){a += (float)(Math.PI * 2);}
    "I'm not going to expose my methods for time bending, as i don't want to do get nerfed!"-Kynox

  13. #13
    Unkn0wn0x's Avatar Member
    Reputation
    6
    Join Date
    Aug 2009
    Posts
    39
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    so i looked at it but it does not work correctly , mhh. i have to see this should be working

  14. #14
    ninar1's Avatar Member
    Reputation
    13
    Join Date
    Jul 2009
    Posts
    21
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    here is the math i used:

    Code:
    FLD 		[NextWayPoint].LocationStruct.X
    FSUB 	MyLocalPlayer.PlayerCoordX
    FSTP	NextWayPointDistanceX
    
    FLD		[NextWayPoint].LocationStruct.Y
    FSUB	MyLocalPlayer.PlayerCoordY
    FSTP	NextWayPointDistanceY
    
    FLD		[NextWayPoint].LocationStruct.Z
    FSUB	MyLocalPlayer.PlayerCoordZ
    FSTP	NextWayPointDistanceZ
    
    ;radian
    FLD		NextWayPointDistanceY
    FLD		NextWayPointDistanceX
    FPATAN
    FWAIT
    FSTP	NextWayPointFaceXY
    
    ;Distance per Pythagoras 2D
    FLD		NextWayPointDistanceX
    FLD		st(0)
    FMUL
    FLD		NextWayPointDistanceY
    FLD		st(0)
    FMUL
    FADD
    FSQRT
    FSTP	NextWayPointDistance2D
    
    ;Distance per Pythagoras 3D
    FLD		NextWayPointDistanceZ
    FLD		st(0)
    FMUL
    FLD		NextWayPointDistance2D
    FLD		st(0)
    FMUL
    FADD
    FSQRT
    FSTP	NextWayPointDistance3D
    
    FLD		NextWayPointDistanceZ
    FLD		NextWayPointDistance2D
    FPATAN
    FWAIT
    FSTP	NextWayPointFaceHoriz
    could also be show as:
    NextWayPointDistanceX=WaypointX-PlayerX
    NextWayPointDistanceY=WaypointY-PlayerY
    NextWayPointDistanceZ=WaypointZ-PlayerZ
    NextWayPointFaceXY = ARCTAN(NextWayPointDistanceY/NextWayPointDistanceX)
    NextWayPointDistance2D = SQRT((NextWayPointDistanceX)²+(NextWayPointDistanceY)²)
    NextWayPointDistance3D = SQRT((NextWayPointDistanceZ)²+(NextWayPointDistance2D)²)
    NextWayPointFaceHoriz = ARCTAN(NextWayPointDistanceZ/NextWayPointDistance2D)

    And dont calc with angles, calc with radians


    and for Radian2degree i used an old funtion:
    (dont know if it works ,its from my old source)

    Code:
    Radians2Degrees proc Radian:DWORD
    local ReturnValue:dword
    finit
    fld Radian
    push	180d		;*180
    fimul	dword ptr[esp]	;
    pop	eax		;CPU stack bereinigen (push 180d)
    xor	eax, eax
    fldpi			;load pi (3.14159...) on FPU
    fdiv			;*180/pi, angle now in degrees
    ftst			;check for negative angle
    fstsw	ax		;retrieve status word from FPU ;copy the floating point status register into the AX register
    fwait			;copy the AH register into the 80x86's condition code bits
    sahf			;C0 into the carry flag;C2 into the parity flag;C3 into the zero flag
    jnc	@F		;jump if positive number
    push	360d		;if negative +360
    fiadd	dword ptr[esp]	;angle now 0-360
    fwait
    pop	eax		;CPU stack bereinigen (push 180d)    
    @@:
    fistp	ReturnValue		;Von der FPU holen
    mov	eax, ReturnValue	;in eax returnen lassen
    	ret
    Radians2Degrees endp
    Last edited by ninar1; 09-08-2009 at 03:10 PM. Reason: added simplified math

  15. #15
    kynox's Avatar Account not activated by Email
    Reputation
    830
    Join Date
    Dec 2006
    Posts
    888
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by ninar1 View Post
    here is the math i used:

    Code:
    FLD         [NextWayPoint].LocationStruct.X
    FSUB     MyLocalPlayer.PlayerCoordX
    FSTP    NextWayPointDistanceX
    
    FLD        [NextWayPoint].LocationStruct.Y
    FSUB    MyLocalPlayer.PlayerCoordY
    FSTP    NextWayPointDistanceY
    
    FLD        [NextWayPoint].LocationStruct.Z
    FSUB    MyLocalPlayer.PlayerCoordZ
    FSTP    NextWayPointDistanceZ
    
    ;radian
    FLD        NextWayPointDistanceY
    FLD        NextWayPointDistanceX
    FPATAN
    FWAIT
    FSTP    NextWayPointFaceXY
    
    ;Distance per Pythagoras 2D
    FLD        NextWayPointDistanceX
    FLD        st(0)
    FMUL
    FLD        NextWayPointDistanceY
    FLD        st(0)
    FMUL
    FADD
    FSQRT
    FSTP    NextWayPointDistance2D
    
    ;Distance per Pythagoras 3D
    FLD        NextWayPointDistanceZ
    FLD        st(0)
    FMUL
    FLD        NextWayPointDistance2D
    FLD        st(0)
    FMUL
    FADD
    FSQRT
    FSTP    NextWayPointDistance3D
    
    FLD        NextWayPointDistanceZ
    FLD        NextWayPointDistance2D
    FPATAN
    FWAIT
    FSTP    NextWayPointFaceHoriz
    could also be show as:
    NextWayPointDistanceX=WaypointX-PlayerX
    NextWayPointDistanceY=WaypointY-PlayerY
    NextWayPointDistanceZ=WaypointZ-PlayerZ
    NextWayPointFaceXY = ARCTAN(NextWayPointDistanceY/NextWayPointDistanceX)
    NextWayPointDistance2D = SQRT((NextWayPointDistanceX)²+(NextWayPointDistanceY)²)
    NextWayPointDistance3D = SQRT((NextWayPointDistanceZ)²+(NextWayPointDistance2D)²)
    NextWayPointFaceHoriz = ARCTAN(NextWayPointDistanceZ/NextWayPointDistance2D)

    And dont calc with angles, calc with radians


    and for Radian2degree i used an old funtion:
    (dont know if it works ,its from my old source)

    Code:
    Radians2Degrees proc Radian:DWORD
    local ReturnValue:dword
    finit
    fld Radian
    push    180d        ;*180
    fimul    dword ptr[esp]    ;
    pop    eax        ;CPU stack bereinigen (push 180d)
    xor    eax, eax
    fldpi            ;load pi (3.14159...) on FPU
    fdiv            ;*180/pi, angle now in degrees
    ftst            ;check for negative angle
    fstsw    ax        ;retrieve status word from FPU ;copy the floating point status register into the AX register
    fwait            ;copy the AH register into the 80x86's condition code bits
    sahf            ;C0 into the carry flag;C2 into the parity flag;C3 into the zero flag
    jnc    @F        ;jump if positive number
    push    360d        ;if negative +360
    fiadd    dword ptr[esp]    ;angle now 0-360
    fwait
    pop    eax        ;CPU stack bereinigen (push 180d)    
    @@:
    fistp    ReturnValue        ;Von der FPU holen
    mov    eax, ReturnValue    ;in eax returnen lassen
        ret
    Radians2Degrees endp
    You are a crazy ****er for still using assembly as a programming language. I'll +rep to that!

Page 1 of 2 12 LastLast

Similar Threads

  1. I got hacked and won't get the gold back. What do?
    By Winsane in forum World of Warcraft General
    Replies: 17
    Last Post: 10-08-2012, 05:02 PM
  2. Got account name and password, now what?
    By rynac in forum WoW Scams Help
    Replies: 1
    Last Post: 08-23-2008, 07:17 PM
  3. Replies: 5
    Last Post: 03-31-2008, 04:22 AM
All times are GMT -5. The time now is 05:04 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search