Guest User

Shynd

a guest
Apr 20th, 2009
365
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 3.02 KB | None | 0 0
  1. #include "BlackMagicAU3.au3"
  2. #include "WoWConstants.au3"
  3.  
  4.  
  5. #Region ObjectManager
  6. Func _WoWGetObjManager($Handle)
  7.     Return _BMReadUint($Handle, (_BMReadUInt($Handle, $aClientConnection) + $ObjManagerOffset))
  8. EndFunc
  9.  
  10. Func _WoWGetFirstObject($Handle, $ObjectManager)
  11.     Return _BMReadUInt($Handle, ($ObjectManager + $ObjManagerFirstObject))
  12. EndFunc
  13.  
  14. Func _WoWGetNextObject($Handle, $ObjectBase)
  15.     Return _BMReadUInt($Handle, ($ObjectBase + $ObjectNextOffset))
  16. EndFunc
  17. #EndRegion
  18.  
  19. #Region Objects
  20. Func _WoWGetObjectByGUID($Handle, $GUID)
  21.     Local $CurObject, $NextObject
  22.    
  23.     $CurObject = _WoWGetFirstObject($Handle, _WoWGetObjManager($Handle))
  24.     $NextObject = 0
  25.    
  26.     While ($CurObject <> 0 And BitAND($CurObject, 1) = 0)
  27.         If (_WoWGetObjectGUID($Handle, $CurObject) = $GUID) Then
  28.             Return $CurObject
  29.         EndIf
  30.        
  31.         $NextObject = _WoWGetNextObject($Handle, $CurObject)
  32.         If $NextObject = 0 Or $CurObject = $NextObject Then
  33.             ExitLoop
  34.         Else
  35.             $CurObject = $NextObject
  36.         EndIf
  37.     WEnd
  38. EndFunc
  39.  
  40. Func _WoWGetName($Handle, $ObjectBase)
  41.     Local $l_Type = _WoWGetObjectType($Handle, $ObjectBase)
  42.    
  43.     Switch ($l_Type)
  44.         Case $OT_Unit
  45.             Return _BMReadASCIIString($Handle, _BMReadUint($Handle, (_BMReadUInt($Handle, ($ObjectBase + $UNIT_NAMEOFFSET_1)) + $UNIT_NAMEOFFSET_2)), 30)
  46.        
  47.         Case $OT_GameObject
  48.             Return _BMReadASCIIString($Handle, _BMReadUint($Handle, (_BMReadUInt($Handle, ($ObjectBase + $GAMEOBJECT_NAMEOFFSET_1)) + $GAMEOBJECT_NAMEOFFSET_2)), 30)
  49.            
  50.         Case Else
  51.             Return StringFormat("Unknown %s", _WoWGetTypeString($l_Type))
  52.     EndSwitch
  53. EndFunc
  54.  
  55. Func _WoWGetKnownField($Handle, $ObjectBase, $FieldIndex, $Type = "dword")
  56.     Return _BMReadMemory($Handle, (_BMReadUint($Handle, ($ObjectBase + $ObjDescriptorOffset)) + ($FieldIndex * 4)), $Type)
  57. EndFunc
  58.  
  59. Func _WoWGetObjectType($Handle, $ObjectBase)
  60.     Return _BMReadInt($Handle, ($ObjectBase + $ObjectTypeOffset))
  61. EndFunc
  62.  
  63. Func _WoWGetObjectGUID($Handle, $ObjectBase)
  64.     Return _BMReadUInt($Handle, ($ObjectBase + $ObjectGUIDOffset))
  65. EndFunc
  66.  
  67. Func _WoWGetLocalGUID($Handle)
  68.     Return _BMReadInt($Handle, $aPlayerGUID)
  69. EndFunc
  70.  
  71. Func _WoWGetMouseOverGUID($Handle)
  72.     Return _BMReadUInt($Handle, $aMouseOverGUID)
  73. EndFunc
  74.  
  75. Func _WoWGetTargetGUID($Handle)
  76.     Return _BMReadUInt($Handle, $aTargetGUID)
  77. EndFunc
  78.  
  79. Func _WoWGetTypeString($Type)
  80.     Switch ($Type)
  81.         Case $OT_None
  82.             Return "None"
  83.         Case $OT_Item
  84.             Return "Item"
  85.         Case $OT_Container
  86.             Return "Container"
  87.         Case $OT_Unit
  88.             Return "Unit"
  89.         Case $OT_Player
  90.             Return "Player"
  91.         Case $OT_GameObject
  92.             Return "GameObject"
  93.         Case $OT_DynamicObject
  94.             Return "DynamicObject"
  95.         Case $OT_Corpse
  96.             Return "Corpse"
  97.         Case Else
  98.             Return "UnknownType"
  99.     EndSwitch
  100. EndFunc
  101. #EndRegion
  102.  
  103. #Region FishingBobber
  104. Func _WoWObjectIsFishingBobber($Handle, $ObjectBase)
  105.     Return (_WoWGetKnownField($Handle, $ObjectBase, $GAMEOBJECT_DISPLAYID) = $FishingBobberDisplayId)
  106. EndFunc
  107.  
  108. Func _WoWGetObjectAnimationId($Handle, $ObjectBase)
  109.     Return _BMReadInt($Handle, ($ObjectBase + $GAMEOBJECT_ANIMATIONOFFSET))
  110. EndFunc
  111. #EndRegion
Advertisement
Add Comment
Please, Sign In to add comment