-
Member
1.12.1(5875)AutoLoot
except
call 4C1FA0 ‘AutoLoot = 0x4C1FA0
there are several ways?
-
I'm assuming that English is not your first language. Even so, please know that with such a short message it is difficult to understand what you're asking.
-
Member
Originally Posted by
namreeb
I'm assuming that English is not your first language. Even so, please know that with such a short message it is difficult to understand what you're asking.
yes, english is really not my first language,so I don't know how to tell me.
-
Member
Originally Posted by
namreeb
I'm assuming that English is not your first language. Even so, please know that with such a short message it is difficult to understand what you're asking.
there are several methods for autoloot,In additionI admire you very much! :)
-
Elite User
You could send the shift key to WoW before looting...
Any reason why you're not just calling the "AutoLoot" function?
https://msdn.microsoft.com/de-de/lib...(v=vs.85).aspx
https://msdn.microsoft.com/de-de/lib...(v=vs.85).aspx
There may be auto loot addons available for vanilla, but I'm not sure at this point.
edit: Just looked for you inside the "AutoLoot" function.
Writing 2 nop (0x90 0x90) to 0x004C1ECF always activates auto loot.
It compares a byte value inside [PlayerPtr+0x1D30] before. Sadly WoW sets it back to 0 before the function gets called.
edit2: If you don't want to touch WoW's code:
Writing both 1 to 0xC4DA9C and [PlayerPtr+0x1D30] is working. Just make sure to change 0xC4DA9C back to 0 after looting, or you can't move.
Last edited by culino2; 05-15-2016 at 08:10 AM.
-
Member
Originally Posted by
culino2
You could send the shift key to WoW before looting...
Any reason why you're not just calling the "AutoLoot" function?
https://msdn.microsoft.com/de-de/lib...(v=vs.85).aspx
https://msdn.microsoft.com/de-de/lib...(v=vs.85).aspx
There may be auto loot addons available for vanilla, but I'm not sure at this point.
edit: Just looked for you inside the "AutoLoot" function.
Writing 2 nop (0x90 0x90) to 0x004C1ECF always activates auto loot.
It compares a byte value inside [PlayerPtr+0x1D30] before. Sadly WoW sets it back to 0 before the function gets called.
edit2: If you don't want to touch WoW's code:
Writing both 1 to 0xC4DA9C and [PlayerPtr+0x1D30] is working. Just make sure to change 0xC4DA9C back to 0 after looting, or you can't move.
thank you for your reply.
because
hb.AsmClear
hb.AsmAdd "mov ecx,0"
hb.AsmAdd "call 004C1FA0"
hb.AsmAdd "retn"
hb.AsmCall pid
will crash, I'm crazy!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!f!!!a!!!c!!!k!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!
english is not good
i don't know if you can understand what i said.thanks
-
Member
Originally Posted by
culino2
You could send the shift key to WoW before looting...
Any reason why you're not just calling the "AutoLoot" function?
https://msdn.microsoft.com/de-de/lib...(v=vs.85).aspx
https://msdn.microsoft.com/de-de/lib...(v=vs.85).aspx
There may be auto loot addons available for vanilla, but I'm not sure at this point.
edit: Just looked for you inside the "AutoLoot" function.
Writing 2 nop (0x90 0x90) to 0x004C1ECF always activates auto loot.
It compares a byte value inside [PlayerPtr+0x1D30] before. Sadly WoW sets it back to 0 before the function gets called.
edit2: If you don't want to touch WoW's code:
Writing both 1 to 0xC4DA9C and [PlayerPtr+0x1D30] is working. Just make sure to change 0xC4DA9C back to 0 after looting, or you can't move.
once again, thank you
-
Elite User
To also auto loot bop items:
Code:
off_BopLootWindowPatch = $004C21BA; // 0x75 -> 0xeb
It's from my old sources, I'm not sure if I posted this in the other thread before.
-
Banned
Below is my autoloot I use for 1.12 for fishing - credits to someone I can't recall who.
PHP Code:
internal void OnRightClickObject(uint baseAddr, int autoLoot)
{
if (_wowHook.Installed)
{
if (baseAddr != 0 && (autoLoot == 1 || autoLoot == 0))
{
// Write the asm stuff for Lua_DoString
String[] asm = new String[]
{
"push " + autoLoot,
"mov ECX, " + (uint)baseAddr,
"call " + (uint)Offsets.OnRightClickObject,
"retn",
};
_wowHook.InjectAndExecute(asm);
}
}
}
Call it like this
PHP Code:
wowHook.Memory.Write<UInt64>(Offsets.MouseOverGUID, cGUID, false);
Thread.Sleep(100);
lua.OnRightClickObject((uint)curObj, 1); // Where curObj = Fishing Bobber [later versions of wow have lua.DoString(string.Format("InteractUnit('mouseover')"));]
PHP Code:
public static class Offsets
{
public static IntPtr CurMgrPointer = new IntPtr(0x00741414); // 1.12.1
public static IntPtr CurMgrOffset = new IntPtr(0xAC); // 1.12.1
public static IntPtr FirstObjectOffset = new IntPtr(0xAC); // 1.12.1
public static IntPtr NextObjectOffset = new IntPtr(0x3C); // 1.12.1
public static int Type = 0x14; // 1.12.1
public static int LocalGUID = 0x30; // 1.12.1
public static IntPtr MouseOverGUID = new IntPtr(0x00B4E2C8); // 1.12.1
public static int BobberState = 0xE8; // 1.12.1
public static int ObjectName1 = 0x214; // 1.12.1
public static int ObjectName2 = 0x8; // 1.12.1
public static int UnitName1 = 0xB30; // 1.12.1
public static int UnitName2 = 0x0; // 1.12.1
public static IntPtr PlayerName = new IntPtr(0x827D88); // 1.12.1
public static IntPtr TargetGUID = new IntPtr(0x74E2D4); // 1.12.1
public static IntPtr PlayerBase = new IntPtr(0x853D40); // 1.12.1
public static IntPtr FrameScript__Execute = new IntPtr(0x304CD0); // 1.12.1
public static IntPtr ClntObjMgrGetActivePlayerObj = new IntPtr(0x168550); // 1.12.1 ClntObjMgrGetActivePlayer
public static IntPtr FrameScript_GetText = new IntPtr(0x303BF0); // 1.12.1
public static IntPtr OnRightClickObject = new IntPtr(0x005F8660); // 1.12.1
public static IntPtr OnRightClickUnit = new IntPtr(0x60BEA0); // 1.12.1
}
-
Post Thanks / Like - 2 Thanks
culino2,
Chinchy (2 members gave Thanks to WiNiFiX for this useful post)
-
Member
How to execute that code to WoW?
-
Originally Posted by
elydien
How to execute that code to WoW?
Inject it.