WoW Memory Editing WoW Memory Editing for learning purposes only.
Help Please - GameObject?
Sergeant
Rep Power: 1
Reputation: 13 Posts: 37
Join Date: Nov 2007
Help Please - GameObject? -
06-12-2008
ok, having problems getting mining nodes(Game Objects) to work with my radar problem.
For player/mobs, i read the WowObject.UnitData, and i use the unitdata to return values from UnitObject. This works fine, for players and mobs.
The same process doesn`t for mining or object nodes(chairs,chest...), i have tried using the following.
read wowObject.type if it`s 5 than read WowObject.unitdata, and use it against GameObject to get values, but all these values seem wrong. I`ve also tried using every WowOBject.(1-17), not one returns a usable value.
Should gameobjects have a X, Y, Z value as shown in the GameObjects Struct.
Has anyone got gameobjects working??
Donate to remove ads.
Site n00b.. (A leecher if I've been here for more than a month and can't earn 5 rep)
Rep Power: 1
Reputation: 3 Posts: 43
Join Date: May 2008
06-12-2008
the following is my code and it's not like any code you probably have ever seen but hopefully it will help you along.
Code:
; -------------------------
;- GetObjectsData:
; -------------------------
GetObjectsData:
Gosub GetPlayerData
TotalMobs=0
TotalGameObjects=0
a=ReadProcessMemory_(app,,buffer,4,Null)
MobAddress=PeekL(buffer)
breakiftoomany = 0
Repeat
a=MobAddress + $3c
a=ReadProcessMemory_(app,a,buffer,4,Null)
b1=PeekL(buffer)
;Debug Hex(b1)
a=MobAddress +$28
a=ReadProcessMemory_(app,a,buffer,4,Null)
b2=PeekL(buffer)
;Debug Hex(b2)
MobAddress = b1
;Debug MobAddress
a=MobAddress +$14
a=ReadProcessMemory_(app,a,buffer,4,Null)
ObjectType=PeekL(buffer)
;Debug ObjectType
If (ObjectType >2 And ObjectType <5) Or objecttype =7
TotalMobs=TotalMobs+1
;Debug TotalMobs
;Debug ObjectType
Mobs(TotalMobs)type=ObjectType
YAddress=MobAddress+
XAddress=MobAddress+
ZAddress=MobAddress+
result = ReadProcessMemory_(app,XAddress,buffer,4,Null)
Mobs(TotalMobs)x=PeekF(buffer)
result = ReadProcessMemory_(app,YAddress,buffer,4,Null)
Mobs(TotalMobs)y=PeekF(buffer)
result = ReadProcessMemory_(app,ZAddress,buffer,4,Null)
Mobs(TotalMobs)z=PeekF(buffer)
;Debug StrF(Mobs(TotalMobs)x)
a=MobAddress +$8
a=ReadProcessMemory_(app,a,buffer,4,Null)
Level=PeekL(buffer)+$70+$18
Lootable=PeekL(buffer)+$278+$18
Faction=PeekL(buffer)+$74+$18
Skinnable=PeekL(buffer)++$18
Health=PeekL(buffer)+$40+$18
Friendly=PeekL(buffer)+
QuestGiver=PeekL(buffer)+$288+$18
nameaddress1=MobAddress+
result = ReadProcessMemory_(app,nameaddress1,buffer,4,Null)
nameaddress2=PeekL(buffer)+$40
result = ReadProcessMemory_(app,nameaddress2,buffer,4,Null)
nameaddress3=PeekL(buffer)
result = ReadProcessMemory_(app,nameaddress3,buffer,40,Null)
Mobs(TotalMobs)name=PeekS(buffer)
;Debug testinfo$
; test for minions?
result = ReadProcessMemory_(app,MobAddress+$8,buffer,4,Null)
address.l=PeekL(buffer)
result = ReadProcessMemory_(app,address,buffer,8,Null)
Mobs(TotalMobs)MobGUID.q=PeekQ(buffer)
;Debug "GUID-" + Hex(Mobs(TotalMobs)MobGUID)
result = ReadProcessMemory_(app,address+64,buffer,8,Null)
Mobs(TotalMobs)MobTarget=PeekQ(buffer)
;Debug Hex(Mobs(TotalMobs)MobTarget)
Mobs(TotalMobs)AttackingPlayer=0
If Mobs(TotalMobs)MobTarget = PlayerGUID
Mobs(TotalMobs)AttackingPlayer=1
EndIf
a=ReadProcessMemory_(app,Level,buffer,4,Null)
Mobs(TotalMobs)level=PeekL(buffer)
;Debug Mobs(TotalMobs)level
a=ReadProcessMemory_(app,Lootable,buffer,4,Null)
Mobs(TotalMobs)lootable=PeekL(buffer)
;Debug Mobs(TotalMobs)lootable
a=ReadProcessMemory_(app,Faction,buffer,4,Null)
Mobs(TotalMobs)faction=PeekL(buffer)
;Debug Mobs(TotalMobs)faction
a=ReadProcessMemory_(app,Skinnable,buffer,4,Null)
Mobs(TotalMobs)skinnable=PeekL(buffer)
;Debug Hex(Mobs(TotalMobs)skinnable)
a=ReadProcessMemory_(app,Health,buffer,4,Null)
Mobs(TotalMobs)health=PeekL(buffer)
;Debug Hex(Mobs(TotalMobs)skinnable)
a=ReadProcessMemory_(app,testinfo,buffer,4,Null)
Mobs(TotalMobs)testinfo=PeekL(buffer)
;Debug Hex(testinfo)
a=ReadProcessMemory_(app,Friendly,buffer,4,Null)
Mobs(TotalMobs)friendly=PeekL(buffer)
;Debug Hex(testinfo)
a=ReadProcessMemory_(app,QuestGiver,buffer,4,Null)
Mobs(TotalMobs)QuestGiver=PeekL(buffer)
;Debug Hex(testinfo)
Mobs(TotalMobs)distance=Sqr((Pow((PlayerXpos-Mobs(TotalMobs)x),2))+(Pow((PlayerYpos-Mobs(TotalMobs)y),2)))
EndIf
If ObjectType = 5
TotalGameObjects=TotalGameObjects+1
a=MobAddress +$8
a=ReadProcessMemory_(app,a,buffer,4,Null)
YAddress=PeekL(buffer)+$24+$18
XAddress=PeekL(buffer)+$28+$18
ZAddress=PeekL(buffer)+$2c+$18
MineralAddress=PeekL(buffer)+$8+$18
result = ReadProcessMemory_(app,XAddress,buffer,4,Null)
GameObjects(TotalGameObjects)x=PeekF(buffer)
result = ReadProcessMemory_(app,YAddress,buffer,4,Null)
GameObjects(TotalGameObjects)y=PeekF(buffer)
result = ReadProcessMemory_(app,ZAddress,buffer,4,Null)
GameObjects(TotalGameObjects)z=PeekF(buffer)
result = ReadProcessMemory_(app,MineralAddress,buffer,4,Null)
GameObjects(TotalGameObjects)type=PeekL(buffer)
;Debug GameObjects(TotalGameObjects)type
GameObjects(TotalGameObjects)distance=Sqr((Pow((PlayerXpos-GameObjects(TotalGameObjects)x),2))+(Pow((PlayerYpos-GameObjects(TotalGameObjects)y),2)))
nameaddress1=MobAddress+
result = ReadProcessMemory_(app,nameaddress1,buffer,4,Null)
nameaddress2=PeekL(buffer)+$40
result = ReadProcessMemory_(app,nameaddress2,buffer,4,Null)
nameaddress3=PeekL(buffer)
result = ReadProcessMemory_(app,nameaddress3,buffer,40,Null)
GameObjects(TotalGameObjects)name=PeekS(buffer)
;Debug GameObjects(TotalGameObjects)name
result = ReadProcessMemory_(app,MobAddress+$8,buffer,4,Null)
address.l=PeekL(buffer)
result = ReadProcessMemory_(app,address,buffer,8,Null)
GameObjects(TotalGameObjects)ObjectGUID.q=PeekQ(buffer)
EndIf
If b1 <> b2 Or breakiftoomany > 1000
;Debug TotalMobs
;Debug TotalGameObjects
breakiftoomany = 0
Return
EndIf
breakiftoomany=breakiftoomany+1
ForEver
Last edited by ShoniShilent; 06-17-2008 at 12:09 PM .
Sergeant
Rep Power: 1
Reputation: 13 Posts: 37
Join Date: Nov 2007
06-12-2008
Yes, in a way it did help, i at least had the x,y,z values to compare against what i was seeing.
by the way, you code seems to be missing the first pointer for the name of a gameobject. could you supply that value?
Donate to remove ads.
Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by
vBSEO 3.2.0
vBulletin Skin developed by:
vBStyles.com