Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "BlackMagicAU3.au3"
- #include "WoWConstants.au3"
- #Region ObjectManager
- Func _WoWGetObjManager($Handle)
- Return _BMReadUint($Handle, (_BMReadUInt($Handle, $aClientConnection) + $ObjManagerOffset))
- EndFunc
- Func _WoWGetFirstObject($Handle, $ObjectManager)
- Return _BMReadUInt($Handle, ($ObjectManager + $ObjManagerFirstObject))
- EndFunc
- Func _WoWGetNextObject($Handle, $ObjectBase)
- Return _BMReadUInt($Handle, ($ObjectBase + $ObjectNextOffset))
- EndFunc
- #EndRegion
- #Region Objects
- Func _WoWGetObjectByGUID($Handle, $GUID)
- Local $CurObject, $NextObject
- $CurObject = _WoWGetFirstObject($Handle, _WoWGetObjManager($Handle))
- $NextObject = 0
- While ($CurObject <> 0 And BitAND($CurObject, 1) = 0)
- If (_WoWGetObjectGUID($Handle, $CurObject) = $GUID) Then
- Return $CurObject
- EndIf
- $NextObject = _WoWGetNextObject($Handle, $CurObject)
- If $NextObject = 0 Or $CurObject = $NextObject Then
- ExitLoop
- Else
- $CurObject = $NextObject
- EndIf
- WEnd
- EndFunc
- Func _WoWGetName($Handle, $ObjectBase)
- Local $l_Type = _WoWGetObjectType($Handle, $ObjectBase)
- Switch ($l_Type)
- Case $OT_Unit
- Return _BMReadASCIIString($Handle, _BMReadUint($Handle, (_BMReadUInt($Handle, ($ObjectBase + $UNIT_NAMEOFFSET_1)) + $UNIT_NAMEOFFSET_2)), 30)
- Case $OT_GameObject
- Return _BMReadASCIIString($Handle, _BMReadUint($Handle, (_BMReadUInt($Handle, ($ObjectBase + $GAMEOBJECT_NAMEOFFSET_1)) + $GAMEOBJECT_NAMEOFFSET_2)), 30)
- Case Else
- Return StringFormat("Unknown %s", _WoWGetTypeString($l_Type))
- EndSwitch
- EndFunc
- Func _WoWGetKnownField($Handle, $ObjectBase, $FieldIndex, $Type = "dword")
- Return _BMReadMemory($Handle, (_BMReadUint($Handle, ($ObjectBase + $ObjDescriptorOffset)) + ($FieldIndex * 4)), $Type)
- EndFunc
- Func _WoWGetObjectType($Handle, $ObjectBase)
- Return _BMReadInt($Handle, ($ObjectBase + $ObjectTypeOffset))
- EndFunc
- Func _WoWGetObjectGUID($Handle, $ObjectBase)
- Return _BMReadUInt($Handle, ($ObjectBase + $ObjectGUIDOffset))
- EndFunc
- Func _WoWGetLocalGUID($Handle)
- Return _BMReadInt($Handle, $aPlayerGUID)
- EndFunc
- Func _WoWGetMouseOverGUID($Handle)
- Return _BMReadUInt($Handle, $aMouseOverGUID)
- EndFunc
- Func _WoWGetTargetGUID($Handle)
- Return _BMReadUInt($Handle, $aTargetGUID)
- EndFunc
- Func _WoWGetTypeString($Type)
- Switch ($Type)
- Case $OT_None
- Return "None"
- Case $OT_Item
- Return "Item"
- Case $OT_Container
- Return "Container"
- Case $OT_Unit
- Return "Unit"
- Case $OT_Player
- Return "Player"
- Case $OT_GameObject
- Return "GameObject"
- Case $OT_DynamicObject
- Return "DynamicObject"
- Case $OT_Corpse
- Return "Corpse"
- Case Else
- Return "UnknownType"
- EndSwitch
- EndFunc
- #EndRegion
- #Region FishingBobber
- Func _WoWObjectIsFishingBobber($Handle, $ObjectBase)
- Return (_WoWGetKnownField($Handle, $ObjectBase, $GAMEOBJECT_DISPLAYID) = $FishingBobberDisplayId)
- EndFunc
- Func _WoWGetObjectAnimationId($Handle, $ObjectBase)
- Return _BMReadInt($Handle, ($ObjectBase + $GAMEOBJECT_ANIMATIONOFFSET))
- EndFunc
- #EndRegion
Advertisement
Add Comment
Please, Sign In to add comment