IsInGame 0xD7020D
IsInGame 0xD7020D
Rebased
Tested
Code:enum GAME_OFFSETS { addr_GetCGPartyObject = 0x005F9F70; // CGParty* __cdecl GetCGPartyObject(); addr_CorpseX = 0xCCA288, // 5.1.0 0xC6BF60, // 5.0.5 0xC6BC60, // 5.0.4 0xAD778C, // 4.3.4 addr_CorpseY = addr_CorpseX + 4, addr_CorpseZ = addr_CorpseX + 8, addr_ObjType = 0x10, addr_GOType = 0x279, addr_ObjX = 0xF0, addr_ObjY = addr_ObjX + 4, addr_ObjZ = addr_ObjX + 8, addr_ObjNamePtr = 0x1B8, addr_ObjNameOffs = 0xB4, addr_BobbleState = 0xC0, addr_UnitX = 0x7E8, addr_UnitY = addr_UnitX + 0x4, addr_UnitZ = addr_UnitX + 0x8, addr_UnitAH = addr_UnitX + 0x10, // Horz Angle addr_UnitAV = addr_UnitX + 0x14, // Vert Angle addr_UnitSpeed = 0x858, addr_UnitHeight = 0x8A8, addr_UnitCastingSpellID = 0xC24, addr_UnitChannelSpellID = 0xC50, addr_UnitNamePtr = 0x970, addr_UnitNameOffs = 0x64, }
Last edited by andy2002ua; 11-28-2012 at 01:46 PM. Reason: Update
Somebody know ClickToMove offset? I try to use 0x4B2750, but it not working for me. Maybe this wrong:
MoveX = 0x8c,
MoveY = 0x90,
MoveZ = 0x94,
Memory.WriteFloat(baseAddressModule + ClickToMove + OffCTM.MoveX, value.X);// example of my code
public const uint AURA_COUNT_1 = 0x1088;
public const uint AURA_COUNT_2 = 0x0D8C;
public const uint AURA_TABLE_1 = 0x0D90;
public const uint AURA_TABLE_2 = 0x0D88;
0x3C works very well
Has someone Unit.CurrentMount ?Code:ClientConnection = 0xE28420, ObjMgr = 0x462C, FirstObject = 0xCC, NextObj = 0x3C,
Code:public enum Unit : uint { Type = 0x10, UnitName1 = 0x970, UnitName2 = 0x64, UnitSpeed = 0x858, UnitHeight = 0x8A8, MoveState = 0x810, Combat1 = 0xDC, Combat2 = 0xBC, CurrentMount = 0xBA0, // <= wrong Cast = 0xC38, X = 0x7E8, Y = 0x7EC, Z = 0x7F0, R = 0x7F8 }
Last edited by Zapman2010; 11-28-2012 at 05:56 PM.
That's weird. Have just checked - 0x30 worked while 0x3c didn't.
Just to make it clear, we iterate over objects in that way:
Code:uint CurrentObjectAddress = Reader.ReadUInt(ObjectManagerBaseAddress + firstObjectOffset); while (CurrentObjectAddress != 0 && CurrentObjectAddress % 2 == 0) { // process CurrentObjectAddress somehow // ... CurrentObjectAddress = Reader.ReadUInt(CurrentObjectAddress + Reader.ReadUInt(ObjectManagerBaseAddress + nextObjectOffset) + 4); }
My Way
Code:/// <summary> /// Current ObjectManager /// </summary> private static uint _CurrentManager{ get { uint baseAdress = (uint)WoWProcess.BaseAdress; uint clientCon = (uint)Offsets.ObjectManager.ClientConnection; uint MgrOffset = (uint)Offsets.ObjectManager.ObjMgr; uint currentManager_Pre = Memory.Read<UInt32>((baseAdress + clientCon), 4); return Memory.Read<UInt32>((currentManager_Pre + MgrOffset), 4); } } /// <summary> /// Fetches all linked entrys from memory /// </summary> private static void _Fetch() { // reset the current manager, we need clean base _ResetLists(); uint firstObj = Memory.Read<UInt32>((_CurrentManager + (uint)Offsets.ObjectManager.FirstObject), 4); if (firstObj == 0) { return; } _AddObjectToList(firstObj); // first obj is a link to next object uint currrentObj = firstObj; while(currrentObj != 0){ // adding offset to get new adress of our next obj currrentObj += (uint)Offsets.ObjectManager.NextObj; uint obj = Memory.Read<UInt32>(currrentObj, 4); if (obj == 0) { break; } _AddObjectToList(obj); // copy the last adress, with NextObj offset we get link to our next object currrentObj = obj; } }
Oh. Disregard my previous messages about 0x30. 0x3c is fine.
There are just two different ways to iterate over ObjectManager with different nextObjectOffset semantics.
http://www.ownedcore.com/forums/worl...ml#post2481695 (Learning iterate over objectManager)
I'm currently looking for the DX11 ENDSCENE.
I found have this.
public static uint Direct3D11__SwapChain__Pointer = 0xB18ADC; // OK
public static uint Direct3D11__SwapChain__Offset = 0x2808; // OK
public static uint Direct3D11__SwapChain__Present = 0x20; // ??
I'm pretty sure the last is wrong.
thanks a lot![]()