You can either write a movementflag to the memory or you just tap a movement key, after you wrote your new facing.
(Pseudo)
WriteNewFacing(5.0f);
PressKey(TurnLeft);
Trade Feedbacks
Hi and sorry for another SetFacing thread...
I'm currently changing my players angle for navigation. The problem is that it seems that there has to be some other indicator that the angle actually changed because I get some really strange looking moves :S
Sample:
Character looks in the correct direction but "walks" in another direction.
I've read the other threads about setting the facing angle but most of them call the "SetFacing" function. But I'm looking for something which works with memory-writes only. Whatever there was something about a movement flag which (seems) to be set after the angle changed. There was no address but I found something at [[player] + 7CC]. Has this something to do with my problem?
Thanks
Trade Feedbacks
You can either write a movementflag to the memory or you just tap a movement key, after you wrote your new facing.
(Pseudo)
WriteNewFacing(5.0f);
PressKey(TurnLeft);
Trade Feedbacks
Why dont you set facing with CTM?
Click To Move - WoW.Dev Wiki
You need to write the XYZ or the GUID to it aswell and then the status, it's in the dump topic.Code:Memory.WriteInt(0x01281854, 1);
Trade Feedbacks
Can you provide info on writing the movement flag? I'm assuming that's:
I always get insta-d/ced when I try this - thoughts?Code:BaseField_MovementFlags = 0x7C0, // 3.0.9: 0x7F0 // 0x80000001 - move forward // 0x80000002 - move backward // 0x80000004 - strafe left // 0x80000008 - strafe right // 0x80000010 - turn left // 0x80000020 - turn left // 0x80001000 - jumping // 0x80200000 - swimming // 0x81000000 - air mounted, on the ground // 0x83000400 - air mounted, in the air // 0x83400400 - air mounted, going up (spacebar) // 0x83800400 - air mounted, going down (sit key) // among others...
Trade Feedbacks
Wow uses radians, using the 'pulsed' ctm struct for setting you facing is pretty nice or if you find à wrapper that does all the writes for you. Soon the warden Guy wakes up and starts to check that section of .text :drool: thats what i believe atleast
Trade Feedbacks
btw for those who never took calc/geo or any math class its as such
Pi = 180 Degrees
2 Pi = 360 Degrees
Pi = A Radian
Trade Feedbacks
Thanks for all your replies.
I can't use CTM because I need more control over the movement.
@Tanaris4:
That's what i've tried. Also hat problems with DCs
@peterwurst
The SendKey thing looks pretty dirty to me. I'm more interested in the movement-flag method because I can't get it to work =(
Thanks
Last edited by fish2k; 09-21-2009 at 06:21 PM.
Trade Feedbacks
Just call CInputControl__SetFacing(float* pAngle) thats probablly the most accurate way unless you do it like apoc o.o

CoreCoins User
Trade Feedbacks
Trade Feedbacks

CoreCoins User
Trade Feedbacks
Trade Feedbacks
CTM FaceTarget works well!
Code:Memory.Instance.WriteUInt64(Memory.Instance.MemoryReader.ProcessHandle, 0x01281838 + 0x20, m_ObjMgr.TargetObject.GetGUID()); Memory.Instance.WriteInt(Memory.Instance.MemoryReader.ProcessHandle, 0x01281854, 1); Thread.Sleep(100); Memory.Instance.WriteUInt64(Memory.Instance.MemoryReader.ProcessHandle, 0x01281838 + 0x20, 0); Memory.Instance.WriteInt(Memory.Instance.MemoryReader.ProcessHandle, 0x01281854, 3);
Trade Feedbacks
Trade Feedbacks
Eh.. I thought I would give this a try instead of they "keypress and wait" method.
But I still cant seem to get it working. This is what I got.
Seems like we have an StdCall with 1 param as returnValue? Looking at RETN 4.Code:Address Hex dump Command Comments 00949C50 /$ 55 PUSH EBP ; Wow.00949C50(guessed Arg1) 00949C51 |. 8BEC MOV EBP,ESP 00949C53 |. D945 08 FLD DWORD PTR SS:[ARG.1] 00949C56 |. 56 PUSH ESI 00949C57 |. D9C0 FLD ST 00949C59 |. 8BF1 MOV ESI,ECX 00949C5B |. D866 20 FSUB DWORD PTR DS:[ESI+20] 00949C5E |. D9E1 FABS 00949C60 |. D81D 64CB9A00 FCOMP DWORD PTR DS:[9ACB64] ; FLOAT 9.536743e-07 00949C66 |. DFE0 FSTSW AX 00949C68 |. F6C4 05 TEST AH,05 00949C6B |. 7B 1C JPO SHORT 00949C89 00949C6D |. F746 44 00100 TEST DWORD PTR DS:[ESI+44],00001000 00949C74 |. D95E 20 FSTP DWORD PTR DS:[ESI+20] 00949C77 |. 75 12 JNE SHORT 00949C8B 00949C79 |. 6A 00 PUSH 0 ; /Arg1 = 0 00949C7B |. E8 60E4FFFF CALL 009480E0 ; \Wow.009480E0 00949C80 |. 8366 44 CF AND DWORD PTR DS:[ESI+44],FFFFFFCF 00949C84 |. 5E POP ESI 00949C85 |. 5D POP EBP 00949C86 |. C2 0400 RETN 4 00949C89 |> DDD8 FSTP ST 00949C8B |> 8366 44 CF AND DWORD PTR DS:[ESI+44],FFFFFFCF 00949C8F |. 5E POP ESI 00949C90 |. 5D POP EBP 00949C91 \. C2 0400 RETN 4
so..
Not sure about the float floatPtr. But ive tried almost everything as argument, pointer to the float value.. etc etc Everything crashes wow. :/Code:[UnmanagedFunctionPointer(CallingConvention.StdCall)] private unsafe delegate int SetFacing(float floatPtr);
I really suck at ASM.. sigh..
Bookmarks