Trouble Calling SetFacing from VMT (I think) menu

User Tag List

Results 1 to 2 of 2
  1. #1
    BraveSoul's Avatar Member
    Reputation
    1
    Join Date
    Mar 2009
    Posts
    2
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Trouble Calling SetFacing from VMT (I think)

    Originally Posted by Nesox View Post
    Or you can use SetFacing, alot easier or even better up you could use clicktomove for all the movement it's really nice

    Code:
               PlayerInfo pInfo = new PlayerInfo(_process);
    
                if (Radians != true)
                { Angle = Angle * PI / 180; }
    
                uint pAngle = wow.AllocateMemory(0x4);
                wow.WriteFloat(pAngle, Angle);
    
                wow.Asm.Clear();
                wow.Asm.AddLine("mov EDX, [{0}]", 0x011CA310);   //Start UpdateCurMgr
                wow.Asm.AddLine("mov EDX, [EDX+{0}]", 0x000028A4);
                wow.Asm.AddLine("FS mov EAX, [0x2C]");
                wow.Asm.AddLine("mov EAX, [EAX]");
                wow.Asm.AddLine("add EAX, 8");
                wow.Asm.AddLine("mov [EAX], EDX"); // End UpdateCurMgr
    
                wow.Asm.AddLine("mov ecx, {0}", pInfo.GetLocalPlayer());
                wow.Asm.AddLine("push {0}", pAngle);
                wow.Asm.AddLine("call {0}", 0x006705E0);
                wow.Asm.AddLine("retn");
                wow.Asm.AddLine("add esp, 0x8");
                wow.Asm.InjectAndExecute(wow.AllocateMemory());
    I can't seem to get this working. WoW crashes every time for me. The code I'm using is:

    Code:
            public void FacingInjection(float AngleRadins)
            {
                if (this.ObjectPointer != 0)
                {
                    try
                    {
                        uint pAngle = this.Memory.AllocateMemory(0x4);
                        this.Memory.WriteFloat(pAngle, AngleRadins);
                        uint codecave = this.Memory.AllocateMemory();
                        //this.Memory.Asm.Clear();
                        //this.Memory.Asm.AddLine("fs mov eax, [0x2C]");
                        //this.Memory.Asm.AddLine("mov eax, [eax]");
                        //this.Memory.Asm.AddLine("add eax, 8");
                        //this.Memory.Asm.AddLine("mov dword [eax], {0}", new object[] { curMgr });
                        //this.Memory.Asm.AddLine("mov ecx, {0}", new object[] { this.ObjectPointer });
                        //this.Memory.Asm.AddLine("push {0}", pAngle);
                        //this.Memory.Asm.AddLine("call {0}", 0x006705E0);
                        //this.Memory.Asm.AddLine("retn");
                        
    
                        this.Memory.Asm.AddLine("mov EDX, [{0}]", 0x011CA310);   //Start UpdateCurMgr
                        this.Memory.Asm.AddLine("mov EDX, [EDX+{0}]", 0x000028A4);
                        this.Memory.Asm.AddLine("FS mov EAX, [0x2C]");
                        this.Memory.Asm.AddLine("mov EAX, [EAX]");
                        this.Memory.Asm.AddLine("add EAX, 8");
                        this.Memory.Asm.AddLine("mov [EAX], EDX"); // End UpdateCurMgr
    
                        this.Memory.Asm.AddLine("mov ecx, {0}", new object[] { this.ObjectPointer });
                        this.Memory.Asm.AddLine("push {0}", pAngle);
                        this.Memory.Asm.AddLine("call {0}", 0x006705E0);
                        this.Memory.Asm.AddLine("retn");
                        this.Memory.Asm.AddLine("add esp, 0x8");
    
                        this.Memory.Asm.InjectAndExecute(codecave);
                        this.Memory.FreeMemory(codecave);
    
                    }
                    catch
                    {
    
                    }
                }
            }
    I also tried
    Code:
    0x008D8E00 - SetFacing
    from other threads claiming accurate 3.0.9 offsets.

    The GetName and Interact VMT offsets are working and are described as:

    Code:
            VMT_GetName = 47 * 4,
            VMT_INTERACT = 36 * 4,
    My primary questions are:

    Where do the indexes 36, and 47 come from? I realize the base object + 36 * valsize could be the real offset for the target of the "call" symbol, but: How do I calculate other offsets like this based on known static LUA call offsets? I'm not even sure I'm going about this the right way.

    Would using the base object pointer for (say a NODE type) be any different than using the base object pointer for the base type? And if so, would calling the different base object type for the more specific abstraction (NODE type) cause the offsets to be misaligned somehow? I noticed the XYZ offsets for a NODE type are different than XYZ offsets for the base object type

    Any help would be greatly appreciated.


    edit: The following does NOT crash wow, but it seems to have no effect. Changing the offset 0x008D8E00 to 0x006705E0 (value in first quote) DOES crash wow.
    Code:
                        uint pAngle = this.Memory.AllocateMemory(0x4);
                        this.Memory.WriteFloat(pAngle, AngleRadins);
                        uint codecave = this.Memory.AllocateMemory();
                        this.Memory.Asm.Clear();
                        this.Memory.Asm.AddLine("fs mov eax, [0x2C]");
                        this.Memory.Asm.AddLine("mov eax, [eax]");
                        this.Memory.Asm.AddLine("add eax, 8");
                        this.Memory.Asm.AddLine("mov dword [eax], {0}", new object[] { curMgr });
                        this.Memory.Asm.AddLine("mov ecx, {0}", new object[] { this.ObjectPointer });
                        //this.Memory.Asm.AddLine("push {0}", pAngle);
                        //this.Memory.Asm.AddLine("call {0}", 0x006705E0);
                        //this.Memory.Asm.AddLine("retn");
    
    
                        //this.Memory.Asm.AddLine("mov EDX, [{0}]", 0x011CA310);   //Start UpdateCurMgr
                        //this.Memory.Asm.AddLine("mov EDX, [EDX+{0}]", 0x000028A4);
                        //this.Memory.Asm.AddLine("FS mov EAX, [0x2C]");
                        //this.Memory.Asm.AddLine("mov EAX, [EAX]");
                        //this.Memory.Asm.AddLine("add EAX, 8");
                        //this.Memory.Asm.AddLine("mov [EAX], EDX"); // End UpdateCurMgr
    
                        //this.Memory.Asm.AddLine("mov ecx, {0}", new object[] { this.ObjectPointer });
                        this.Memory.Asm.AddLine("push {0}", pAngle);
                        this.Memory.Asm.AddLine("call {0}", 0x008D8E00);
                        this.Memory.Asm.AddLine("retn");
                        //this.Memory.Asm.AddLine("add esp, 0x8");
    
                        this.Memory.Asm.InjectAndExecute(codecave);
                        this.Memory.FreeMemory(codecave);
    Last edited by BraveSoul; 03-19-2009 at 07:47 PM.

    Trouble Calling SetFacing from VMT (I think)
  2. #2
    barthen's Avatar Contributor Authenticator enabled
    Reputation
    94
    Join Date
    Apr 2007
    Posts
    112
    Thanks G/R
    4/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I think you took one of the offsets from my symbolic info thread. That SetFacing offset was taken from bobbysing’s WoWX framework. You can find his source here http://gamedeception.net

    And you can learn from his source how to use this SetFacing in particular. Mmm, the forums seem to be down now

Similar Threads

  1. How is your calling stuff from EndScene concept?
    By Viano in forum WoW Memory Editing
    Replies: 16
    Last Post: 03-09-2010, 07:16 AM
  2. Troubles calling GetUnitRelation
    By hypnodok in forum WoW Memory Editing
    Replies: 3
    Last Post: 11-23-2008, 06:56 AM
All times are GMT -5. The time now is 02:03 PM. 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