Advertisement
Guest User

[AutoIt] Diablo 3 Click To Move, Interaction, Actor Handling

a guest
Jun 30th, 2012
6,955
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 83.32 KB | None | 0 0
  1. ;;================================================================================
  2. ;;================================================================================
  3. ;;  Diablo 3 Memory UDF - Retriving data and interacting with Diablo 3
  4. ;;      Made to better understand diablo 3's actor structure.
  5. ;;      -For personal study purposes only.
  6. ;;
  7. ;;  Version 2.1
  8. ;;
  9. ;;  Written By UnknOwned 2012
  10. ;;================================================================================
  11. ;;================================================================================
  12.  
  13. ;;================================================================================
  14. ;; PRE FUNCTIONS
  15. ;;================================================================================
  16. ;;--------------------------------------------------------------------------------
  17. ;;  Make sure you are running as admin
  18. ;;--------------------------------------------------------------------------------
  19. $_debug = 1
  20. #RequireAdmin
  21. $Admin = IsAdmin()
  22. if $Admin <> 1 Then
  23.     MsgBox(0x30,"ERROR","This program require administrative rights you fool!")
  24.     Exit
  25. EndIf
  26. $vendor = 1
  27. ;;--------------------------------------------------------------------------------
  28. ;;  Includes
  29. ;;--------------------------------------------------------------------------------
  30. #include <NomadMemory.au3> ;THIS IS EXTERNAL, GET IT AT THE AUTOIT WEBSITE
  31. #Include <math.au3>
  32. #Include <String.au3>
  33. #Include <Array.au3>
  34. #Include <WinAPI.au3>
  35.  
  36. ;;--------------------------------------------------------------------------------
  37. ;;  Open the process (you can't base your pid on window title)
  38. ;;--------------------------------------------------------------------------------
  39. Opt("WinTitleMatchMode", -1)
  40. SetPrivilege("SeDebugPrivilege", 1)
  41. $D3Exefile = "Diablo III.exe"
  42. $list = ProcessList()
  43. for $i = 1 to $list[0][0]
  44.     if $list[$i][0] = $D3Exefile Then
  45.         Global $ProcessID = $list[$i][1]
  46.         ExitLoop
  47.     EndIf
  48. next
  49. Local $d3 = _MemoryOpen($ProcessID)
  50. If @Error Then
  51.     MsgBox(4096, "ERROR", "Failed to open memory for process;" & $ProcessID)
  52.     Exit
  53. EndIf
  54.  
  55. ;;--------------------------------------------------------------------------------
  56. ;;  Initialize the offsets
  57. ;;--------------------------------------------------------------------------------
  58. Offsetlist()    ;Remember to run this every time you teleport, warp, enter game, going into a dungeon!
  59.  
  60. ;;================================================================================
  61. ;;
  62. ;; SAMPLE CODE
  63. ;;
  64. ;;================================================================================
  65.  
  66.  
  67. ;;--------------------------------------------------------------------------------
  68. ;;  Looting
  69. ;;--------------------------------------------------------------------------------
  70. ;//The following will loot all items that are RARE OR BETTER on the ground near you, including gold.
  71. while 1
  72.         $OBject = IterateObjectList(0)
  73.         $foundobject = 0      
  74.         _ArraySort($OBject, 0 , 0 , 0 ,8)
  75.         for  $i = 0 to UBound ( $OBject ,1 )-1
  76.             if $OBject[$i][6] = 2 and $OBject[$i][7] = -1 and $OBject[$i][1] <> 0xFFFFFFFF or StringInStr($OBject[$i][2],"GoldCoins") Then ;checking for loot and goldcoins
  77.                     if IterateActorAtribs($OBject[$i][1],$Atrib_Item_Quality_Level) >= 6 or StringInStr($OBject[$i][2],"GoldCoins") Then ;lets check if they are rare or better, and ignore if its goldcoins.
  78.                         PowerUseGUID($OBject[$i][1],0x7545)
  79.                         $foundobject = 1
  80.                         ExitLoop
  81.                     EndIf
  82.             EndIf
  83.         Next
  84.         if $foundobject = 0 then ExitLoop
  85. wend
  86.  
  87. ;;--------------------------------------------------------------------------------
  88. ;;  Moving
  89. ;;--------------------------------------------------------------------------------
  90. ;//The following will move your toon from where ever you are towards the priest.
  91. ;//This part will only work in tristram, if you are at the inn.
  92. ;//This won't work if you have not moved in this session (do a click anywhere in the world to fix)
  93. MoveToPos(2945,2809,24.04)
  94. MoveToPos(2904,2803,24.04)
  95.  
  96. ;;--------------------------------------------------------------------------------
  97. ;;  Interacting
  98. ;;--------------------------------------------------------------------------------
  99. ;//The following part will make you interact with the priest
  100. ;//Note that you can only interact with NPC's while the game window is active. (unless you spam the interact function once you are at the NPC)
  101. $OBject = IterateObjectList(0)
  102. $PriestIndex = _ArraySearch($OBject,"Priest_Male", 0 , 0 , 0 , 1 , 1 , 2)
  103. if $PriestIndex > 0 then PowerUseGUID($OBject[$PriestIndex][1],0x7546)
  104. sleep(1000)
  105. if $PriestIndex > 0 then PowerUseGUID($OBject[$PriestIndex][1],0x7546)
  106.  
  107. ;;--------------------------------------------------------------------------------
  108. ;;  Casting Spells
  109. ;;--------------------------------------------------------------------------------
  110. ;//This example will Cast Townportal (can't use in town!).
  111. ;//Doesnt seem to work with no target spells (like buffs)
  112. PowerUseGUID(0x77BC0000,0x0002EC66)
  113.  
  114.  
  115.  
  116. ;;--------------------------------------------------------------------------------
  117. ;;  Get data from actor.
  118. ;;--------------------------------------------------------------------------------
  119. ;//This example will check your current gold and other data.
  120. while 1
  121.     IterateLocalActor()
  122.     $foundobject = 0      
  123.     for  $i = 0 to UBound ( $__ACTOR ,1 )-1
  124.             if StringInStr($__ACTOR[$i][2],"GoldCoin-") Then
  125.                 ConsoleWrite("Current GOLD: " &IterateActorAtribs( $__ACTOR[$i][1],$Atrib_ItemStackQuantityLo) &@crlf)
  126.                 ExitLoop
  127.             EndIf
  128.     Next
  129.     if $foundobject = 0 then ExitLoop
  130. wend
  131.        
  132. ConsoleWrite("Current Level: " &IterateActorAtribs(0x77BC0000 ,$Atrib_Level) &@crlf)
  133. ConsoleWrite("Current Strength: " &IterateActorAtribs( 0x77BC0000,$Atrib_Strength_Total) &@crlf)
  134. ConsoleWrite("Current Dexterity: " &IterateActorAtribs(0x77BC0000,$Atrib_Dexterity_Total) &@crlf)
  135. ConsoleWrite("Current Inteligence: " &IterateActorAtribs( 0x77BC0000,$Atrib_Intelligence_Total) &@crlf)
  136. ConsoleWrite("Current Vitality: " &IterateActorAtribs( 0x77BC0000,$Atrib_Vitality_Total) &@crlf)
  137.    
  138. ;;--------------------------------------------------------------------------------
  139. ;;  Get data from actor.
  140. ;;--------------------------------------------------------------------------------
  141. ;//This example will check if you have interacted with a dead corpse object
  142. ;//If the object have not yet been interacted with it will return false
  143. ;//The IterateActorAtribs will always return false if the atribute does not exsist
  144. ;//If the object have been interacted with it will return 1
  145. while 1
  146.     IterateLocalActor()
  147.     $foundobject = 0      
  148.     for  $i = 0 to UBound ( $__ACTOR ,1 )-1
  149.             if StringInStr($__ACTOR[$i][2],"Corpse") Then
  150.                 ConsoleWrite("Gizmo Have Been Operated: " &IterateActorAtribs( $__ACTOR[$i][1],$Atrib_Gizmo_Has_Been_Operated) &@crlf)
  151.                 ExitLoop
  152.             EndIf
  153.     Next
  154.     if $foundobject = 0 then ExitLoop
  155. wend
  156. ;;--------------------------------------------------------------------------------
  157. ;;  Get data from actor.
  158. ;;--------------------------------------------------------------------------------
  159. ;//This sample will get some data based on a name input, this one will search though the localized names
  160.  
  161. $Name = InputBox("Enter Name","Please enter a NPC name in your view","Templar")
  162. $begin = TimerInit()
  163. $Object = IterateObjectList(0)
  164. $MyIndex = _ArraySearch($OBject,$Name, 0 , 0 , 0 , 1 , 1 , 10)
  165. if $MyIndex = -1 then
  166.     MsgBox(0,"Error","Unable to locate this name, check for typo's!")
  167.     Exit
  168. Else
  169. msgbox(0,"Detailed Info " & TimerDiff($begin),"GUID: " & $Object[$MyIndex][1]&@crlf&    _
  170.             " Proxy Name: " & $Object[$MyIndex][2]&@crlf&   _
  171.             " Localized Name: " & $Object[$MyIndex][10]&@crlf&  _
  172.             " Level: " & IterateActorAtribs( $Object[$MyIndex][1],$Atrib_Level)&@crlf&  _  
  173.             " PosX: " & $Object[$MyIndex][3]&@crlf& _
  174.             " PosY: " & $Object[$MyIndex][4]&@crlf& _
  175.             " PosZ: " & $Object[$MyIndex][5]&@crlf& _
  176.             " Distance: " & GetDistance($Object[$MyIndex][3],$Object[$MyIndex][4],$Object[$MyIndex][5])&@crlf&  _
  177.             " Kind: " & $_Const_MonsterType[$Object[$MyIndex][11]+1]&@crlf& _
  178.             " Race: " & $_Const_MonsterRace[$Object[$MyIndex][12]+1]&@crlf& _
  179.             " Current Health: " & IterateActorAtribs( $Object[$MyIndex][1],$Atrib_Hitpoints_Cur)&@crlf & _
  180.             " Max Health: " & IterateActorAtribs( $Object[$MyIndex][1],$Atrib_Hitpoints_Max_Total)&@crlf)
  181. EndIf
  182.  
  183. ;;================================================================================
  184. ;; FUNCTIONS
  185. ;;================================================================================
  186.  
  187. ;;================================================================================
  188. ; Function:         GetDistance($_x,$_y,$_z)
  189. ; Description:      Check distance between you and a desired position.
  190. ; Parameter(s):     $_x,$_y and $_z - the target position
  191. ;                                
  192. ; Note(s):          Returns a distance in float
  193. ;==================================================================================
  194. func GetDistance($_x,$_y,$_z)
  195.     $CurrentLoc = GetCurrentPos()
  196.     $xd = $_x-$CurrentLoc[0]
  197.     $yd = $_y-$CurrentLoc[1]
  198.     $zd = $_z-$CurrentLoc[2]
  199.     $Distance = Sqrt($xd*$xd + $yd*$yd + $zd*$zd)  
  200.     Return $Distance
  201. EndFunc
  202.  
  203. ;;================================================================================
  204. ; Function:         GetCurrentPos($_offset)
  205. ; Description:      Returns your current offset in a array
  206. ; Parameter(s):     none
  207. ;                                
  208. ; Note(s):          This will return your current position as a array.
  209. ;                   [0] = X, [1] = Y, [2] = Z
  210. ;==================================================================================
  211. Func GetCurrentPos()
  212.     dim $return[3]
  213.     $return[0] = _MemoryRead($ClickToMoveCurX, $d3, 'float')
  214.     $return[1] = _MemoryRead($ClickToMoveCurY, $d3, 'float')
  215.     $return[2] = _MemoryRead($ClickToMoveCurZ, $d3, 'float')
  216.     return $return
  217. EndFunc
  218.  
  219. ;;================================================================================
  220. ; Function:         MoveToPos($_x,$_y,$_z[,$neardist = 2])
  221. ; Description:      Move to a desired position.
  222. ; Parameter(s):     $_x,$_y and $_z - the target position
  223. ;                   $neardist - the distance from the target position
  224. ;                               that the move function will stop
  225. ;                                
  226. ; Note(s):          You can use $neardist to make the movement more fluid.
  227. ;                   If the function stop before the desired position
  228. ;                       is reached it won't stop between each point,
  229. ;                       this is why the default $neardist is 2
  230. ;==================================================================================
  231. func MoveToPos($_x,$_y,$_z,$neardist = 2)
  232.     _MemoryWrite($ClickToMoveToX , $d3,$_x, 'float')
  233.     _MemoryWrite($ClickToMoveToY , $d3,$_y, 'float')
  234.     _MemoryWrite($ClickToMoveToZ , $d3,$_z, 'float')
  235.     _MemoryWrite($ClickToMoveToggle , $d3,1, 'int')
  236.     _MemoryWrite($ClickToMoveFix , $d3,69736, 'int')
  237.     while 1
  238.         $CurrentLoc = GetCurrentPos()
  239.         $xd = $_x-$CurrentLoc[0]
  240.         $yd = $_y-$CurrentLoc[1]
  241.         $zd = $_z-$CurrentLoc[2]
  242.         $Distance = Sqrt($xd*$xd + $yd*$yd + $zd*$zd)  
  243.         if $Distance < $neardist then ExitLoop
  244.         if _MemoryRead($ClickToMoveToggle, $d3, 'float') = 0 then ExitLoop
  245.         sleep(10)
  246.     WEnd
  247. EndFunc                    
  248.  
  249. ;;================================================================================
  250. ; Function:         PowerUseGUID($_guid,$_snoPower)
  251. ; Description:      Use a Power on a GUID
  252. ; Parameter(s):     $_guid - GUID you want to use the power on.
  253. ;                   $_snoPower - the ID of the power you want to use
  254. ;                                
  255. ; Note(s):          To interact with NPC's use $_snoPower = 7546
  256. ;                   To Pick up loot use $_snoPower = 7545
  257. ;                   To cast a townportal use $_snoPower = 02EC66 and your GUID
  258. ;==================================================================================
  259. func PowerUseGUID($_guid,$_snoPower)
  260.         $CurrentLocX = _MemoryRead($ClickToMoveCurX, $d3, 'float')
  261.         $CurrentLocY = _MemoryRead($ClickToMoveCurY, $d3, 'float')
  262.         $CurrentLocZ = _MemoryRead($ClickToMoveCurZ, $d3, 'float')
  263.     _MemoryWrite($_itrInteractE+$ofs__InteractOffsetUNK1 , $d3, 0x777C, 'ptr')
  264.     _MemoryWrite($_itrInteractE+$ofs__InteractOffsetUNK2 , $d3, 0x1, 'ptr')
  265.     _MemoryWrite($_itrInteractE+$ofs__InteractOffsetUNK3 , $d3, $_snoPower, 'ptr')
  266.     _MemoryWrite($_itrInteractE+$ofs__InteractOffsetUNK4 , $d3, $_snoPower, 'ptr')
  267.     _MemoryWrite($_itrInteractE+$ofs__InteractOffsetMousestate , $d3, 0x1, 'ptr')
  268.     _MemoryWrite($_itrInteractE+$ofs__InteractOffsetGUID , $d3, $_guid, 'ptr') 
  269.         _MemoryWrite($ClickToMoveToX , $d3,$CurrentLocX+1, 'float')
  270.         _MemoryWrite($ClickToMoveToY , $d3,$CurrentLocY, 'float')
  271.         _MemoryWrite($ClickToMoveToZ , $d3,$CurrentLocZ, 'float')
  272.         _MemoryWrite($ClickToMoveToggle , $d3,1, 'int')
  273.         _MemoryWrite($ClickToMoveFix , $d3,69736, 'int')   
  274.     $tempvalue = _MemoryRead($_itrInteractE+$ofs__InteractOffsetUNK2, $d3, 'int')
  275.     while $tempvalue = 1
  276.         $tempvalue = _MemoryRead($_itrInteractE+$ofs__InteractOffsetUNK2, $d3, 'int')
  277.         sleep(10)
  278.     WEnd
  279. EndFunc
  280.  
  281. ;;================================================================================
  282. ; Function:         LinkActors
  283. ; Note(s):          This function is used by the OffsetList to
  284. ;                       get the current player data.
  285. ;==================================================================================
  286. func LocateMyToon()
  287.     if $_debug then ConsoleWrite("-----Looking for local player------" &@crlf)
  288.     $_CurOffset = $_itrObjectManagerD
  289.     $_Count = _MemoryRead($_itrObjectManagerCount, $d3, 'int')
  290.     for $i = 0 to $_Count step +1
  291.         $_GUID = _MemoryRead($_CurOffset+0x4, $d3, 'ptr')
  292.         $_NAME = _MemoryRead($_CurOffset+0x8, $d3, 'char[64]')
  293.         if $_GUID = 0x77BC0000 Then
  294.             global $_Myoffset = $_CurOffset
  295.             if $_debug then ConsoleWrite("My toon located at: " &$_Myoffset & ", GUID: " & $_GUID & ", NAME: " & $_NAME &@CRLF)
  296.             return True
  297.             ExitLoop
  298.         EndIf
  299.         $_CurOffset = $_CurOffset + $_ObjmanagerStrucSize
  300.     Next
  301.     return False
  302. EndFunc
  303.  
  304. ;;================================================================================
  305. ; Function:         IterateLocalActor
  306. ; Note(s):          Iterates through all the local actors.
  307. ;                       Used by IterateActorAtribs
  308. ;                   This is bad use of variables, should be fixed!
  309. ;==================================================================================
  310. func IterateLocalActor()
  311.     $_Count = _MemoryRead($_LocalActor_Count, $d3, 'int')
  312.     $CurrentOffset = $_LocalActor_3
  313.     Global $__ACTOR[$_Count+1][4]
  314.     for $i = 0 to $_Count
  315.         $__ACTOR[$i][1] = _MemoryRead($CurrentOffset, $d3, 'ptr')
  316.         $__ACTOR[$i][2] = _MemoryRead($CurrentOffset+0x4, $d3, 'char[64]')
  317.         $__ACTOR[$i][3] = _MemoryRead($CurrentOffset+$ofs_LocalActor_atribGUID, $d3, 'ptr')
  318.         $CurrentOffset = $CurrentOffset + $ofs_LocalActor_StrucSize
  319.     Next
  320. EndFunc
  321.  
  322. ;;================================================================================
  323. ; Function:         IterateActorAtribs($_GUID,$_REQ)
  324. ; Description:      Read the requested attribute data from a actor defined by GUID
  325. ; Parameter(s):     $_GUID - The GUID of the object you want the data from
  326. ;                   $_REQ - The data you want to request (the variable)
  327. ;
  328. ; Note(s):          You can find a list of all the $_REQ variables in the Constants() function
  329. ;                   It should be noted that i have not checked them all through
  330. ;                       so the type ("float" or "int") might be wrong.
  331. ;                   This function will always return "false" if the requested atribute does not exsist
  332. ;==================================================================================
  333. func IterateActorAtribs($_GUID,$_REQ)
  334.     IterateLocalActor()
  335.     $ACDIndex = _ArraySearch($__ACTOR,"0x"&hex($_GUID), 0 , 0 , 0 , 1 , 1 , 1)  ;this bitch is slow as hell
  336.     $_Count = _MemoryRead($_ActorAtrib_Count, $d3, 'int')
  337.     $CurrentOffset = $_ActorAtrib_4
  338.     dim $ACTORatrib
  339.     for $i = 0 to $_Count
  340.         $ACTORatrib = _MemoryRead($CurrentOffset, $d3, 'ptr')
  341.         if $ACTORatrib = $__ACTOR[$ACDIndex][3] Then
  342.                 $test = _MemoryRead($CurrentOffset+0x10, $d3, 'ptr')
  343.                 $CurretOffset = $test
  344.                 for $i = 0 to 825
  345.                     $data = _MemoryRead($CurretOffset, $d3, 'ptr')
  346.                     $CurretOffset = $CurretOffset +0x4
  347.                     if $data <> 0x0 Then
  348.                         $AtribData =_MemoryRead($data+0x4, $d3, 'ptr')
  349.                         if StringLeft($AtribData,7)="0xFFFFF" Then
  350.                             ;ConsoleWrite("Debug :" &$data+0x4 & " : " & _MemoryRead($data+0x4, $d3, 'ptr') &@crlf) ;FOR DEBUGGING
  351.                             if "0x"&stringright($AtribData,3) = $_REQ[0] Then
  352.                                 return _MemoryRead($data+0x8, $d3, $_REQ[1])
  353.                             EndIf
  354.                         EndIf
  355.                     EndIf
  356.                 Next
  357.             return False   
  358.         EndIf
  359.         $CurrentOffset = $CurrentOffset + $ofs_ActorAtrib_StrucSize
  360.     Next
  361.     return False
  362. EndFunc
  363.  
  364. ;;================================================================================
  365. ; Function:         LinkActors
  366. ; Description:      Read and index data from the specified offset
  367. ; Parameter(s):     $_offset - The offset linking to the file def
  368. ;                               be in hex format (0x00000000).
  369. ;                   $_displayInfo - Setting this to 1 will make the function spit
  370. ;                               out the results while running
  371. ; Note(s):          This function is used to index data from the MPQ files that
  372. ;                   that have been loaded into memory.
  373. ;                   Im not sure why the count doesnt go beyond 256.
  374. ;                   So for the time being if the count goes beyond 256 the size
  375. ;                   is set to a specified count and then the array will be scaled
  376. ;                   after when data will stop being available.
  377. ;==================================================================================
  378. func LinkActors($Object, $_displayInfo = 0)
  379.     global $OBject_Mem_Actor =          $Object
  380.     global $Object_File_Actor =         IndexSNO($ofs_ActorDef,0)  
  381.     global $Object_File_Monster =       IndexSNO($ofs_MonsterDef,0)
  382.     dim $__outputdata[ubound($OBject_Mem_Actor,1)-1][2]
  383.     for $i = 0 to ubound($OBject_Mem_Actor,1)-1
  384.         if $OBject_Mem_Actor[$i][9] <> -1 Then
  385.             $ItemIndex = _ArraySearch($Object_File_Actor,$OBject_Mem_Actor[$i][9], 0 , 0 , 0 , 1 , 1 , 1)
  386.             if $ItemIndex > 0 then
  387.                 $MonsterID = _MemoryRead($Object_File_Actor[$ItemIndex][0] + 0x6c, $d3, 'ptr')
  388.                 $ItemIndex = _ArraySearch($Object_File_Monster,$MonsterID, 0 , 0 , 0 , 1 , 1 , 1)
  389.                 if $ItemIndex > 0 then
  390.                     $Type =  _MemoryRead($Object_File_Monster[$ItemIndex][0] + $_ofs_FileMonster_MonsterType, $d3, 'int')
  391.                     $MonsterType = $_Const_MonsterType[$Type+1]
  392.                     $Race =  _MemoryRead($Object_File_Monster[$ItemIndex][0] + $_ofs_FileMonster_MonsterRace, $d3, 'int')
  393.                     $MonsterRace = $_Const_MonsterRace[$Race+1]
  394.                
  395.                     ;$LevelNormal =  _MemoryRead($Object_File_Monster[$ItemIndex][0] + $_ofs_FileMonster_LevelNormal, $d3, 'int')           ;//Here are some data you can use if you want,
  396.                     ;$LevelNightmare =  _MemoryRead($Object_File_Monster[$ItemIndex][0] + $_ofs_FileMonster_LevelNightmare, $d3, 'int')     ;//...it gives info about levels based on dificulty
  397.                     ;$LevelHell =  _MemoryRead($Object_File_Monster[$ItemIndex][0] + $_ofs_FileMonster_LevelHell, $d3, 'int')
  398.                     ;$LevelInferno =  _MemoryRead($Object_File_Monster[$ItemIndex][0] + $_ofs_FileMonster_LevelInferno, $d3, 'int')        
  399.  
  400.                     $OBject_Mem_Actor[$i][11] = $Type
  401.                     $OBject_Mem_Actor[$i][12] = $Race
  402.                     if $_displayInfo = 1 Then ConsoleWrite($i & " " & $Object_File_Actor[$ItemIndex][0] & @tab & " " &$MonsterType &@tab & " " & $MonsterRace &@tab & " Level Normal:" $LevelNormal &@tab & " " & $StringListDB[$Name][1] &" " & @TAB & &$OBject_Mem_Actor[$i][2] &@crlf)
  403.                 EndIf
  404.             EndIf  
  405.         EndIf
  406.     Next
  407.     return $OBject_Mem_Actor
  408. EndFunc
  409.  
  410. ;;================================================================================
  411. ; Function:         IndexSNO($_offset[,$_displayInfo = 0])
  412. ; Description:      Read and index data from the specified offset
  413. ; Parameter(s):     $_offset - The offset linking to the file def
  414. ;                               be in hex format (0x00000000).
  415. ;                   $_displayInfo - Setting this to 1 will make the function spit
  416. ;                               out the results while running
  417. ; Note(s):          This function is used to index data from the MPQ files that
  418. ;                   that have been loaded into memory.
  419. ;                   Im not sure why the count doesnt go beyond 256.
  420. ;                   So for the time being if the count goes beyond 256 the size
  421. ;                   is set to a specified count and then the array will be scaled
  422. ;                   after when data will stop being available.
  423. ;==================================================================================
  424. func IndexSNO($_offset,$_displayInfo = 0)
  425.     local $CurrentSnoOffset = 0x0
  426.     $_MainOffset =  _MemoryRead($_offset, $d3, 'ptr')
  427.     $_Pointer =     _MemoryRead($_MainOffset + $_defptr, $d3, 'ptr')
  428.     $_SnoCount =    _MemoryRead($_Pointer + $_defcount, $d3, 'ptr')     ;//Doesnt seem to go beyond 256 for some wierd reason
  429.     if $_SnoCount >= 256 Then                                           ;//So incase it goes beyond...
  430.         $ignoreSNOcount = 1                                             ;//This enables a redim after the for loop
  431.         $_SnoCount = 4056                                               ;//We put a limit to avoid overflow here
  432.     Else
  433.         $ignoreSNOcount = 0
  434.     EndIf
  435.     $_SnoIndex = _MemoryRead($_Pointer + $_deflink, $d3, 'ptr')         ;//Moving from the static into the index
  436.     $_SNOName =  _MemoryRead($_Pointer, $d3, 'char[64]')                ;//Usually something like "Something" + Def
  437.     $TempWindex = $_SnoIndex +0xC                                       ;//The header is 0xC in size
  438.     if $_displayInfo = 1 then ConsoleWrite("-----* Indexing "&$_SNOName& " *-----"&@crlf)
  439.     dim $_OutPut[$_SnoCount+1][2]                                       ;//Setting the size of the output array
  440.     for $i = 1 to $_SnoCount step + 1                                   ;//Iterating through all the elements
  441.         $_CurSnoOffset = _MemoryRead($TempWindex, $d3, 'ptr')           ;//Getting the offset for the item
  442.         $_CurSnoID = _MemoryRead($_CurSnoOffset, $d3, 'ptr')            ;//Going into the item and grapping the GUID which is located at 0x0
  443.         if $ignoreSNOcount = 1 and $_CurSnoOffset = 0x00000000 and $_CurSnoID = 0x00000000 then ExitLoop ;//Untill i find a way to get the real count we do this instead.
  444.         if $ignoreSNOcount = 1 then $CurIndex = $i
  445.         $_OutPut[$i][0] = $_CurSnoOffset                                ;//Poping the data into the output array
  446.         $_OutPut[$i][1] = $_CurSnoID   
  447.         if $_displayInfo = 1 then ConsoleWrite($i & " Offset: " & $_CurSnoOffset & " SNOid: " & $_CurSnoID &@crlf)
  448.         $TempWindex = $TempWindex + 0x10                                ;//Next item is located 0x10 later
  449.     Next
  450.     if $ignoreSNOcount = 1 then redim $_OutPut[$CurIndex][2]            ;//Here we do the resizing of the array, to minimize memory footprint!?.
  451.     return $_OutPut
  452. EndFunc
  453.  
  454. ;;================================================================================
  455. ; Function:         IndexStringList($_offset)
  456. ; Description:      Read and index data from the specified offset
  457. ; Parameter(s):     $_offset - The offset linking to the file def
  458. ;                                 be in hex format (0x00000000).
  459. ;                   $_displayInfo - Setting this to 1 will make the function spit
  460. ;                               out the results while running
  461. ;                                
  462. ; Note(s):          This function is made specificly to index string lists.
  463. ;                   This is usefull for getting real localized names from the
  464. ;                   proxy names you get from the objectmanager strucs.
  465. ;                   i have only test this on monster names but it should work for all.
  466. ;==================================================================================
  467. func IndexStringList($_offset,$_displayInfo=0)
  468.     $_offset_FileMonster_StrucSize = 0x50
  469.     $_StringCount = _MemoryRead($_offset + 0xc, $d3, 'int')
  470.     $_CurrentOffset = $_offset + 0x28
  471.     dim $_OutPut[$_StringCount][2]
  472.     for $i = 0 to $_StringCount-1
  473.         $_OutPut[$i][0] = _MemoryRead(_MemoryRead($_CurrentOffset, $d3, 'int'), $d3, 'char[32]')        ;Proxy Name, like "Priest_Male_B_NoLook"
  474.         $_OutPut[$i][1] = _MemoryRead(_MemoryRead($_CurrentOffset+0x10, $d3, 'int'), $d3, 'char[34]')   ;Localized name, like "Brother Malachi the Healer"
  475.         Assign ( "__"&$_OutPut[$i][0], $_OutPut[$i][1],2 )
  476.         $_CurrentOffset = $_CurrentOffset + $_offset_FileMonster_StrucSize
  477.         if $_displayInfo = 1 Then ConsoleWrite($_CurrentOffset & " ProxyName: " & $_OutPut[$i][0] & @tab & " LocalizedName: " & $_OutPut[$i][1]&@crlf)
  478.     Next
  479.     return $_OutPut
  480. EndFunc
  481.    
  482. ;;--------------------------------------------------------------------------------
  483. ;;  OffsetList()
  484. ;;--------------------------------------------------------------------------------
  485. func offsetlist()
  486.     Constants()
  487.    
  488.     ;//FILE DEFS
  489.     global $ofs_MonsterDef =                    0x015DCE00
  490.     global $ofs_StringListDef =                 0x015E9808 
  491.     global $ofs_ActorDef =                      0x015ED108 
  492.    
  493.     global $_defptr =                           0x3c
  494.     global $_defcount =                         0x10C
  495.     global $_deflink =                          0x148
  496.  
  497.     global $_ofs_FileMonster_StrucSize = 0x50
  498.  
  499.     global $_ofs_FileActor_LinkToMonster = 0x6C
  500.  
  501.     global $_ofs_FileMonster_MonsterType    = 0x18
  502.     global $_ofs_FileMonster_MonsterRace    = 0x1C
  503.     global $_ofs_FileMonster_LevelNormal    = 0x44
  504.     global $_ofs_FileMonster_LevelNightmare = 0x48
  505.     global $_ofs_FileMonster_LevelHell      = 0x4c
  506.     global $_ofs_FileMonster_LevelInferno   = 0x50
  507.  
  508.     ;//GET ACTORATRIB
  509.     global $ofs_ActorAtrib_Base =               0x015A2EA4;0x015A1EA4
  510.     global $ofs_ActorAtrib_ofs1 =               0x390
  511.     global $ofs_ActorAtrib_ofs2 =               0x2E8
  512.     global $ofs_ActorAtrib_ofs3 =               0x148
  513.     global $ofs_ActorAtrib_Count =              0x108   ; 0x0 0x0
  514.  
  515.     global $ofs_ActorAtrib_Indexing_ofs1 =      0x10
  516.     global $ofs_ActorAtrib_Indexing_ofs2 =      0x8
  517.     global $ofs_ActorAtrib_Indexing_ofs3 =      0x250
  518.     global $ofs_ActorAtrib_StrucSize =          0x180
  519.    
  520.     global $ofs_LocalPlayer_HPBARB =            0x34
  521.     global $ofs_LocalPlayer_HPWIZ =             0x38
  522.  
  523.    
  524.     ;//GET LOCAL ACTOR STRUC
  525.     global $ofs_LocalActor_ofs1 =               0x378   ;instead of $ofs_ActorAtrib_ofs2
  526.     global $ofs_LocalActor_ofs2 =               0x148
  527.     global $ofs_LocalActor_Count =              0x108
  528.     global $ofs_LocalActor_atribGUID =          0x120
  529.     global $ofs_LocalActor_StrucSize =          0x2D0   ; 0x0 0x0
  530.  
  531.  
  532.     ;//OBJECT MANAGER
  533.     global $ofs_ObjectManager =                 0x015A1BEC ;0x15A0BEC
  534.     global $ofs__ObjmanagerActorOffsetA =       0x8b0
  535.     global $ofs__ObjmanagerActorCount =         0x108
  536.     global $ofs__ObjmanagerActorOffsetB =       0x148
  537.     global $ofs__ObjmanagerActorLinkToCTM =     0x380
  538.     global $_ObjmanagerStrucSize =              0x428  
  539.  
  540.  
  541.  
  542.     ;//CameraDef
  543.     Global $VIewStatic =                        0x015A0BEC
  544.     Global $DebugFlags = $VIewStatic +          0x20
  545.     Global $vftableSubA = _MemoryRead($VIewStatic, $d3, 'ptr')
  546.     Global $vftableSubA = _MemoryRead($vftableSubA + 0x928, $d3, 'ptr')
  547.     Global $ViewOffset = $vftableSubA
  548.  
  549.     Global $Ofs_CameraRotationA = $ViewOffset + 0x4
  550.     Global $Ofs_CameraRotationB = $ViewOffset + 0x8
  551.     Global $Ofs_CameraRotationC = $ViewOffset + 0xC
  552.     Global $Ofs_CameraRotationD = $ViewOffset + 0x10
  553.     Global $Ofs_CameraPosX = $ViewOffset +      0x14
  554.     Global $Ofs_CameraPosY = $ViewOffset +      0x18
  555.     Global $Ofs_CameraPosZ = $ViewOffset +      0x1C
  556.     Global $Ofs_CameraFOV = $ViewOffset +       0x30
  557.     Global $Ofs_CameraFOVB = $ViewOffset +      0x30   
  558.    
  559.  
  560.     global $ofs_InteractBase =                  0x015A1BD4;0x15A0BD4
  561.     global $ofs__InteractOffsetA =              0xA8
  562.     global $ofs__InteractOffsetB =              0x58
  563.     global $ofs__InteractOffsetUNK1 =           0x7F20 ;Set to 777c
  564.     global $ofs__InteractOffsetUNK2 =           0x7F44 ;Set to 1 for NPC interaction
  565.     global $ofs__InteractOffsetUNK3 =           0x7F7C ;Set to 7546 for NPC interaction, 7545 for loot interaction
  566.     global $ofs__InteractOffsetUNK4 =           0x7F80 ;Set to 7546 for NPC interaction, 7545 for loot interaction
  567.     global $ofs__InteractOffsetMousestate =     0x7F84 ;Mouse state 1 = clicked, 2 = mouse down
  568.     global $ofs__InteractOffsetGUID =           0x7F88 ;Set to the GUID of the actor you want to interact with
  569.    
  570.     $FixSpeed =                                 0x20 ;69736
  571.     $ToggleMove =                               0x34
  572.     $MoveToXoffset =                            0x40
  573.     $MoveToYoffset =                            0x44
  574.     $MoveToZoffset =                            0x48
  575.     $CurrentX =                                 0xA8
  576.     $CurrentY =                                 0xAc
  577.     $CurrentZ =                                 0xb0
  578.     $RotationOffset =                           0x174
  579.  
  580.     global $_ActorAtrib_Base  = _MemoryRead($ofs_ActorAtrib_Base, $d3, 'ptr')  
  581.     global $_ActorAtrib_1  = _MemoryRead($_ActorAtrib_Base+$ofs_ActorAtrib_ofs1, $d3, 'ptr')
  582.     global $_ActorAtrib_2  = _MemoryRead($_ActorAtrib_1+$ofs_ActorAtrib_ofs2, $d3, 'ptr')
  583.     global $_ActorAtrib_3  = _MemoryRead($_ActorAtrib_2+$ofs_ActorAtrib_ofs3, $d3, 'ptr')
  584.     global $_ActorAtrib_4  = _MemoryRead($_ActorAtrib_3, $d3, 'ptr')
  585.     global $_ActorAtrib_Count  = $_ActorAtrib_2+$ofs_ActorAtrib_Count
  586.  
  587.     global $_LocalActor_1  = _MemoryRead($_ActorAtrib_1+$ofs_LocalActor_ofs1, $d3, 'ptr')
  588.     global $_LocalActor_2  = _MemoryRead($_LocalActor_1+$ofs_LocalActor_ofs2, $d3, 'ptr')
  589.     global $_LocalActor_3  = _MemoryRead($_LocalActor_2, $d3, 'ptr')
  590.     global $_LocalActor_Count  = $_LocalActor_1+$ofs_LocalActor_Count
  591.  
  592.     global $_itrObjectManagerA  = _MemoryRead($ofs_ObjectManager, $d3, 'ptr')      
  593.     global $_itrObjectManagerB  = _MemoryRead($_itrObjectManagerA+$ofs__ObjmanagerActorOffsetA, $d3, 'ptr')
  594.     global $_itrObjectManagerCount  = $_itrObjectManagerB+$ofs__ObjmanagerActorCount
  595.     global $_itrObjectManagerC  = _MemoryRead($_itrObjectManagerB+$ofs__ObjmanagerActorOffsetB, $d3, 'ptr')
  596.     global $_itrObjectManagerD  = _MemoryRead($_itrObjectManagerC, $d3, 'ptr') 
  597.     global $_itrObjectManagerE  = _MemoryRead($_itrObjectManagerD, $d3, 'ptr') 
  598.    
  599.     global $_itrInteractA  = _MemoryRead($ofs_InteractBase, $d3, 'ptr')
  600.     global $_itrInteractB  = _MemoryRead($_itrInteractA, $d3, 'ptr')   
  601.     global $_itrInteractC  = _MemoryRead($_itrInteractB, $d3, 'ptr')   
  602.     global $_itrInteractD  = _MemoryRead($_itrInteractC+$ofs__InteractOffsetA, $d3, 'ptr') 
  603.     global $_itrInteractE  = $_itrInteractD+$ofs__InteractOffsetB
  604.  
  605.  
  606.     global $Object_File_StringList =    IndexSNO($ofs_StringListDef,0)      ;//THIS LIST IS HUGE, NO NEED TO DO IT MORE OFTEN THAN ONCE =)
  607.     $index = _ArraySearch($Object_File_StringList,hex($_MonsterNameStringListID), 0 , 0 , 0 , 1 , 1 , 1)
  608.     global $StringListDB = IndexStringList($Object_File_StringList[$index][0])                              ;$StringListDB is debricated in this code
  609.     $index = _ArraySearch($Object_File_StringList,hex($_GizmoNameStringListID), 0 , 0 , 0 , 1 , 1 , 1)
  610.     IndexStringList($Object_File_StringList[$index][0])
  611.     if LocateMyToon() Then
  612.    
  613.     global $ClickToMoveMain = _MemoryRead($_Myoffset + $ofs__ObjmanagerActorLinkToCTM, $d3, 'ptr')
  614.     global $ClickToMoveRotation = $ClickToMoveMain + $RotationOffset
  615.     global $ClickToMoveCurX = $ClickToMoveMain + $CurrentX
  616.     global $ClickToMoveCurY = $ClickToMoveMain + $CurrentY
  617.     global $ClickToMoveCurZ = $ClickToMoveMain + $CurrentZ
  618.     global $ClickToMoveToX = $ClickToMoveMain + $MoveToXoffset
  619.     global $ClickToMoveToY = $ClickToMoveMain + $MoveToYoffset
  620.     global $ClickToMoveToZ = $ClickToMoveMain + $MoveToZoffset
  621.     global $ClickToMoveToggle = $ClickToMoveMain + $ToggleMove
  622.     global $ClickToMoveFix= $ClickToMoveMain + $FixSpeed
  623.         return true
  624.     Else
  625.         Return false
  626.     EndIf
  627.    
  628. EndFunc
  629.  
  630. ;;--------------------------------------------------------------------------------
  631. ;;  IterateObjectList()
  632. ;;--------------------------------------------------------------------------------
  633. func IterateObjectList($_displayINFO = 0)
  634.  
  635.     if $_displayINFO = 1 then ConsoleWrite("-----Iterating through Actors------" &@crlf)
  636.     if $_displayINFO = 1 then ConsoleWrite("First Actor located at: "&$_itrObjectManagerD &@crlf)
  637.     $_CurOffset = $_itrObjectManagerD
  638.     $_Count = _MemoryRead($_itrObjectManagerCount, $d3, 'int')
  639.     dim $OBJ[$_Count+1][13]
  640.     if $_displayINFO = 1 then ConsoleWrite("Number of Actors : " & $_Count &@crlf)
  641.     ;$init = TimerInit()   
  642.     for $i = 0 to $_Count step +1
  643.         $_GUID = _MemoryRead($_CurOffset+0x4, $d3, 'ptr')
  644.         if $_GUID = 0xffffffff Then ;no need to go through objects without a GUID!
  645.             $_PROXY_NAME = -1
  646.             $_REAL_NAME = -1
  647.             $_ACTORLINK = -1
  648.             $_POS_X = -1
  649.             $_POS_Y = -1   
  650.             $_POS_Z = -1   
  651.             $_DATA = -1
  652.             $_DATA2 = -1
  653.         Else
  654.             $_PROXY_NAME = _MemoryRead($_CurOffset+0x8, $d3, 'char[64]')
  655.             $TmpString = StringSplit($_PROXY_NAME,"-")
  656.             if IsDeclared("__"&$TmpString[1]) Then
  657.                 $_REAL_NAME = eval("__"&$TmpString[1])
  658.             Else
  659.                 $_REAL_NAME = $_PROXY_NAME
  660.             EndIf
  661.             $_ACTORLINK = _MemoryRead($_CurOffset+0x88, $d3, 'ptr')
  662.             $_POS_X = _MemoryRead($_CurOffset+0xB0, $d3, 'float')  
  663.             $_POS_Y = _MemoryRead($_CurOffset+0xB4, $d3, 'float')  
  664.             $_POS_Z = _MemoryRead($_CurOffset+0xB8, $d3, 'float')  
  665.             $_DATA = _MemoryRead($_CurOffset+0x1FC, $d3, 'int')
  666.             $_DATA2 = _MemoryRead($_CurOffset+0x1Cc, $d3, 'int')
  667.         if $_displayINFO = 1 then ConsoleWrite($i & @TAB&" : " & $_CurOffset & " " & $_GUID & " " &  $_ACTORLINK &" : " & $_DATA & " "& $_DATA2 & " " & @TAB& $_POS_X &" "& $_POS_Y&" "& $_POS_Z & @TAB& $_REAL_NAME &@crlf)
  668.         EndIf
  669.        
  670.             ;Im too lazy to do this but the following code needs cleanup and restructure more than anything.
  671.             ;You want to include all the data into this one structure rather than having it at multiple locations
  672.             ;and the useless things should be removed.
  673.            
  674.             $Distance = 0
  675.             $OBJ[$i][0] = $_CurOffset
  676.             $OBJ[$i][1] = $_GUID
  677.             $OBJ[$i][2] = $_PROXY_NAME
  678.             $OBJ[$i][3] = $_POS_X
  679.             $OBJ[$i][4] = $_POS_Y
  680.             $OBJ[$i][5] = $_POS_Z
  681.             $OBJ[$i][6] = $_DATA
  682.             $OBJ[$i][7] = $_DATA2
  683.             $OBJ[$i][8] = $Distance
  684.             $OBJ[$i][9] = $_ACTORLINK  
  685.             $OBJ[$i][10] = $_REAL_NAME
  686.             $OBJ[$i][11] = -1  
  687.             $OBJ[$i][12] = -1          
  688.         $_CurOffset = $_CurOffset + $_ObjmanagerStrucSize
  689.  
  690.     Next
  691.     $OBJv2 = LinkActors($OBJ)   ;//Would be a waste to do this in the main operation so we add more data to the object here after the main operation.
  692.     IterateLocalActor()
  693.     return $OBJv2
  694. EndFunc
  695.  
  696. ;;================================================================================
  697. ; Function:         Constants()
  698. ; Description:      Defines all the constants (they are not constants, just variables for now, you might want to change this =)!)
  699. ; Parameter(s):     none
  700. ;                                
  701. ; Note(s):          This info is NOT complete, you might want to change the types!.
  702. ;==================================================================================
  703. func Constants()
  704.     global $_Const_MonsterType[10] = ["Unknown","Undead","Demon","Beast","Human","Breakable","Scenery","Ally","Team","Helper"]
  705.     global $_Const_MonsterRace[12] = ["Unknown","Unknown(INDEX ME!)","Fallen","GoatMen","Rogue","Skeleton","Zombie","Spider","Triune","WoodWraith","Human","Animal"]
  706.     global $_MonsterNameStringListID = 0x0000CB35 ;We use this to get local Names on monsters and NPC's
  707.     global $_GizmoNameStringListID = 0x0000CB23 ;We use this to get local Names on Gizmos
  708.     global $Atrib_Axe_Bad_Data[2] = [0x000,"float"]
  709.     global $Atrib_Attribute_Timer[2] = [0x001,"int"]
  710.     global $Atrib_Attribute_Pool[2] = [0x002,"int"]
  711.     global $Atrib_Death_Count[2] = [0x003,"int"]
  712.     global $Atrib_DualWield_Hand[2] = [0x004,"int"]
  713.     global $Atrib_DualWield_Hand_Next[2] = [0x005,"int"]
  714.     global $Atrib_DualWield_Hands_Swapped[2] = [0x006,"int"]
  715.     global $Atrib_Respawn_Game_Time[2] = [0x007,"int"]
  716.     global $Atrib_Backpack_Slots[2] = [0x008,"int"]
  717.     global $Atrib_Shared_Stash_Slots[2] = [0x009,"int"]
  718.     global $Atrib_Strength[2] = [0x00A,"float"]
  719.     global $Atrib_Dexterity[2] = [0x00B,"float"]
  720.     global $Atrib_Intelligence[2] = [0x00C,"float"]
  721.     global $Atrib_Vitality[2] = [0x00D,"float"]
  722.     global $Atrib_Strength_Total[2] = [0x00E,"float"]
  723.     global $Atrib_Dexterity_Total[2] = [0x00F,"float"]
  724.     global $Atrib_Intelligence_Total[2] = [0x010,"float"]
  725.     global $Atrib_Vitality_Total[2] = [0x011,"float"]
  726.     global $Atrib_Strength_Bonus[2] = [0x012,"float"]
  727.     global $Atrib_Dexterity_Bonus[2] = [0x013,"float"]
  728.     global $Atrib_Intelligence_Bonus[2] = [0x014,"float"]
  729.     global $Atrib_Vitality_Bonus[2] = [0x015,"float"]
  730.     global $Atrib_Strength_Bonus_Percent[2] = [0x016,"float"]
  731.     global $Atrib_Dexterity_Bonus_Percent[2] = [0x017,"float"]
  732.     global $Atrib_Intelligence_Bonus_Percent[2] = [0x018,"float"]
  733.     global $Atrib_Vitality_Bonus_Percent[2] = [0x019,"float"]
  734.     global $Atrib_Strength_Reduction_Percent[2] = [0x01A,"float"]
  735.     global $Atrib_Dexterity_Reduction_Percent[2] = [0x01B,"float"]
  736.     global $Atrib_Intelligence_Reduction_Percent[2] = [0x01C,"float"]
  737.     global $Atrib_Vitality_Reduction_Percent[2] = [0x01D,"float"]
  738.     global $Atrib_Primary_Damage_Attribute[2] = [0x01E,"int"]
  739.     global $Atrib_Attack[2] = [0x01F,"float"]
  740.     global $Atrib_Precision[2] = [0x020,"float"]
  741.     global $Atrib_Defense[2] = [0x021,"float"]
  742.     global $Atrib_Attack_Total[2] = [0x022,"float"]
  743.     global $Atrib_Precision_Total[2] = [0x023,"float"]
  744.     global $Atrib_Defense_Total[2] = [0x024,"float"]
  745.     global $Atrib_Attack_Bonus[2] = [0x025,"float"]
  746.     global $Atrib_Precision_Bonus[2] = [0x026,"float"]
  747.     global $Atrib_Defense_Bonus[2] = [0x027,"float"]
  748.     global $Atrib_Attack_Bonus_Percent[2] = [0x028,"float"]
  749.     global $Atrib_Precision_Bonus_Percent[2] = [0x029,"float"]
  750.     global $Atrib_Defense_Bonus_Percent[2] = [0x02A,"float"]
  751.     global $Atrib_Attack_Reduction_Percent[2] = [0x02B,"float"]
  752.     global $Atrib_Precision_Reduction_Percent[2] = [0x02C,"float"]
  753.     global $Atrib_Defense_Reduction_Percent[2] = [0x02D,"float"]
  754.     global $Atrib_Armor[2] = [0x02E,"float"]
  755.     global $Atrib_Armor_Bonus_Percent[2] = [0x02F,"float"]
  756.     global $Atrib_Armor_Item[2] = [0x030,"float"]
  757.     global $Atrib_Armor_Bonus_Item[2] = [0x031,"float"]
  758.     global $Atrib_Armor_Item_Percent[2] = [0x032,"float"]
  759.     global $Atrib_Armor_Item_SubTotal[2] = [0x033,"float"]
  760.     global $Atrib_Armor_Item_Total[2] = [0x034,"float"]
  761.     global $Atrib_Armor_Total[2] = [0x035,"float"]
  762.     global $Atrib_Experience_Granted[2] = [0x036,"int"]
  763.     global $Atrib_Experience_Next[2] = [0x037,"int"]
  764.     global $Atrib_Gold_Granted[2] = [0x038,"int"]
  765.     global $Atrib_Gold[2] = [0x039,"int"]
  766.     global $Atrib_Gold_Find[2] = [0x03A,"float"]
  767.     global $Atrib_Level[2] = [0x03B,"int"]
  768.     global $Atrib_Level_Cap[2] = [0x03C,"int"]
  769.     global $Atrib_Magic_Find[2] = [0x03D,"float"]
  770.     global $Atrib_Magic_And_Gold_Find_Suppressed[2] = [0x03E,"int"]
  771.     global $Atrib_Treasure_Find[2] = [0x03F,"float"]
  772.     global $Atrib_Resource_Cost_Reduction_Amount[2] = [0x040,"int"]
  773.     global $Atrib_Resource_Cost_Reduction_Total[2] = [0x041,"float"]
  774.     global $Atrib_Resource_Set_Point_Bonus[2] = [0x042,"float"]
  775.     global $Atrib_Faster_Healing_Percent[2] = [0x043,"float"]
  776.     global $Atrib_Spending_Resource_Heals_Percent[2] = [0x044,"float"]
  777.     global $Atrib_Bonus_Healing_Received_Percent[2] = [0x045,"float"]
  778.     global $Atrib_Reduced_Healing_Received_Percent[2] = [0x046,"float"]
  779.     global $Atrib_Experience_Bonus[2] = [0x047,"float"]
  780.     global $Atrib_Experience_Bonus_Percent[2] = [0x048,"float"]
  781.     global $Atrib_Health_Globe_Bonus_Chance[2] = [0x049,"float"]
  782.     global $Atrib_Health_Globe_Bonus_Mult_Chance[2] = [0x04A,"float"]
  783.     global $Atrib_Health_Globe_Bonus_Health[2] = [0x04B,"float"]
  784.     global $Atrib_Increased_Health_From_Globes_Percent[2] = [0x04C,"float"]
  785.     global $Atrib_Increased_Health_From_Globes_Percent_Total[2] = [0x04D,"float"]
  786.     global $Atrib_Bonus_Health_Percent_Per_Second_From_Globes[2] = [0x04E,"float"]
  787.     global $Atrib_Bonus_Health_Percent_Per_Second_From_Globes_Total[2] = [0x04F,"float"]
  788.     global $Atrib_Mana_Gained_From_Globes_Percent[2] = [0x050,"float"]
  789.     global $Atrib_Mana_Gained_From_Globes[2] = [0x051,"float"]
  790.     global $Atrib_Resistance[2] = [0x052,"float"]
  791.     global $Atrib_Resistance_Percent[2] = [0x053,"float"]
  792.     global $Atrib_Resistance_Total[2] = [0x054,"float"]
  793.     global $Atrib_Resistance_All[2] = [0x055,"float"]
  794.     global $Atrib_Resistance_Percent_All[2] = [0x056,"float"]
  795.     global $Atrib_Resistance_From_Intelligence[2] = [0x057,"float"]
  796.     global $Atrib_Class_Damage_Reduction_Percent[2] = [0x058,"float"]
  797.     global $Atrib_Skill[2] = [0x059,"int"]
  798.     global $Atrib_Skill_Total[2] = [0x05A,"int"]
  799.     global $Atrib_TeamID[2] = [0x05B,"int"]
  800.     global $Atrib_Team_Override[2] = [0x05C,"int"]
  801.     global $Atrib_Invulnerable[2] = [0x05D,"int"]
  802.     global $Atrib_Loading[2] = [0x05E,"int"]
  803.     global $Atrib_Loading_Player_ACD[2] = [0x05F,"int"]
  804.     global $Atrib_Loading_Power_SNO[2] = [0x060,"int"]
  805.     global $Atrib_Loading_Anim_Tag[2] = [0x061,"int"]
  806.     global $Atrib_Loading_NewGame[2] = [0x062,"int"]
  807.     global $Atrib_Auto_Porting_To_Save_Point[2] = [0x063,"int"]
  808.     global $Atrib_No_Damage[2] = [0x064,"int"]
  809.     global $Atrib_No_AutoPickup[2] = [0x065,"int"]
  810.     global $Atrib_Light_Radius_Percent_Bonus[2] = [0x066,"float"]
  811.     global $Atrib_Hitpoints_Cur[2] = [0x067,"float"]
  812.     global $Atrib_Hitpoints_Factor_Level[2] = [0x068,"float"]
  813.     global $Atrib_Hitpoints_Factor_Vitality[2] = [0x069,"float"]
  814.     global $Atrib_Hitpoints_Total_From_Vitality[2] = [0x06A,"float"]
  815.     global $Atrib_Hitpoints_Total_From_Level[2] = [0x06B,"float"]
  816.     global $Atrib_Hitpoints_Granted[2] = [0x06C,"float"]
  817.     global $Atrib_Hitpoints_Granted_Duration[2] = [0x06D,"int"]
  818.     global $Atrib_Hitpoints_Max[2] = [0x06E,"float"]
  819.     global $Atrib_Hitpoints_Max_Bonus[2] = [0x06F,"float"]
  820.     global $Atrib_Hitpoints_Max_Total[2] = [0x070,"float"]
  821.     global $Atrib_Hitpoints_Percent[2] = [0x071,"float"]
  822.     global $Atrib_Hitpoints_Regen_Per_Second[2] = [0x072,"float"]
  823.     global $Atrib_Hitpoints_Max_Percent_Bonus[2] = [0x073,"float"]
  824.     global $Atrib_Hitpoints_Max_Percent_Bonus_Item[2] = [0x074,"float"]
  825.     global $Atrib_Hitpoints_Healed_Target[2] = [0x075,"float"]
  826.     global $Atrib_Resource_Type_Primary[2] = [0x076,"int"]
  827.     global $Atrib_Resource_Type_Secondary[2] = [0x077,"int"]
  828.     global $Atrib_Resource_Cur[2] = [0x078,"float"]
  829.     global $Atrib_Resource_Max[2] = [0x079,"float"]
  830.     global $Atrib_Resource_Max_Bonus[2] = [0x07A,"float"]
  831.     global $Atrib_Resource_Max_Total[2] = [0x07B,"float"]
  832.     global $Atrib_Resource_Factor_Level[2] = [0x07C,"float"]
  833.     global $Atrib_Resource_Granted[2] = [0x07D,"float"]
  834.     global $Atrib_Resource_Granted_Duration[2] = [0x07E,"int"]
  835.     global $Atrib_Resource_Percent[2] = [0x07F,"float"]
  836.     global $Atrib_Resource_Regen_Per_Second[2] = [0x080,"float"]
  837.     global $Atrib_Resource_Regen_Bonus_Percent[2] = [0x081,"float"]
  838.     global $Atrib_Resource_Regen_Total[2] = [0x082,"float"]
  839.     global $Atrib_Resource_Max_Percent_Bonus[2] = [0x083,"float"]
  840.     global $Atrib_Resource_Capacity_Used[2] = [0x084,"float"]
  841.     global $Atrib_Resource_Effective_Max[2] = [0x085,"float"]
  842.     global $Atrib_Resource_Regen_Percent_Per_Second[2] = [0x086,"float"]
  843.     global $Atrib_Resource_Degeneration_Stop_Point[2] = [0x087,"float"]
  844.     global $Atrib_Movement_Scalar[2] = [0x088,"float"]
  845.     global $Atrib_Walking_Rate[2] = [0x089,"float"]
  846.     global $Atrib_Running_Rate[2] = [0x08A,"float"]
  847.     global $Atrib_Sprinting_Rate[2] = [0x08B,"float"]
  848.     global $Atrib_Strafing_Rate[2] = [0x08C,"float"]
  849.     global $Atrib_Walking_Rate_Total[2] = [0x08D,"float"]
  850.     global $Atrib_Running_Rate_Total[2] = [0x08E,"float"]
  851.     global $Atrib_Last_Running_Rate[2] = [0x08F,"float"]
  852.     global $Atrib_Sprinting_Rate_Total[2] = [0x090,"float"]
  853.     global $Atrib_Strafing_Rate_Total[2] = [0x091,"float"]
  854.     global $Atrib_Movement_Bonus_Total[2] = [0x092,"float"]
  855.     global $Atrib_Movement_Scalar_Subtotal[2] = [0x093,"float"]
  856.     global $Atrib_Movement_Scalar_Capped_Total[2] = [0x094,"float"]
  857.     global $Atrib_Movement_Scalar_Uncapped_Bonus[2] = [0x095,"float"]
  858.     global $Atrib_Movement_Scalar_Total[2] = [0x096,"float"]
  859.     global $Atrib_Movement_Bonus_Run_Speed[2] = [0x097,"float"]
  860.     global $Atrib_Casting_Speed[2] = [0x098,"float"]
  861.     global $Atrib_Casting_Speed_Bonus[2] = [0x099,"float"]
  862.     global $Atrib_Casting_Speed_Total[2] = [0x09A,"float"]
  863.     global $Atrib_Always_Hits[2] = [0x09B,"int"]
  864.     global $Atrib_Hit_Chance[2] = [0x09C,"float"]
  865.     global $Atrib_Attacks_Per_Second_Item[2] = [0x09D,"float"]
  866.     global $Atrib_Attacks_Per_Second_Item_Percent[2] = [0x09E,"float"]
  867.     global $Atrib_Attacks_Per_Second_Item_Subtotal[2] = [0x09F,"float"]
  868.     global $Atrib_Attacks_Per_Second_Item_Bonus[2] = [0x0A0,"float"]
  869.     global $Atrib_Attacks_Per_Second_Item_Total[2] = [0x0A1,"float"]
  870.     global $Atrib_Attacks_Per_Second[2] = [0x0A2,"float"]
  871.     global $Atrib_Attacks_Per_Second_Bonus[2] = [0x0A3,"float"]
  872.     global $Atrib_Attacks_Per_Second_Total[2] = [0x0A4,"float"]
  873.     global $Atrib_Attacks_Per_Second_Percent[2] = [0x0A5,"float"]
  874.     global $Atrib_AI_Cooldown_Reduction_Percent[2] = [0x0A6,"float"]
  875.     global $Atrib_Power_Cooldown_Reduction_Percent[2] = [0x0A7,"float"]
  876.     global $Atrib_Damage_Delta[2] = [0x0A8,"float"]
  877.     global $Atrib_Damage_Delta_Total[2] = [0x0A9,"float"]
  878.     global $Atrib_Damage_Min[2] = [0x0AA,"float"]
  879.     global $Atrib_Damage_Bonus_Min[2] = [0x0AB,"float"]
  880.     global $Atrib_Damage_Min_Total[2] = [0x0AC,"float"]
  881.     global $Atrib_Damage_Min_Subtotal[2] = [0x0AD,"float"]
  882.     global $Atrib_Damage_Percent_All_From_Skills[2] = [0x0AE,"float"]
  883.     global $Atrib_Damage_Weapon_Delta[2] = [0x0AF,"float"]
  884.     global $Atrib_Damage_Weapon_Delta_SubTotal[2] = [0x0B0,"float"]
  885.     global $Atrib_Damage_Weapon_Max[2] = [0x0B1,"float"]
  886.     global $Atrib_Damage_Weapon_Max_Total[2] = [0x0B2,"float"]
  887.     global $Atrib_Damage_Weapon_Max_Total_All[2] = [0x0B3,"float"]
  888.     global $Atrib_Damage_Weapon_Delta_Total[2] = [0x0B4,"float"]
  889.     global $Atrib_Damage_Weapon_Delta_Total_All[2] = [0x0B5,"float"]
  890.     global $Atrib_Damage_Weapon_Bonus_Delta[2] = [0x0B6,"float"]
  891.     global $Atrib_Damage_Weapon_Min[2] = [0x0B7,"float"]
  892.     global $Atrib_Damage_Weapon_Min_Total[2] = [0x0B8,"float"]
  893.     global $Atrib_Damage_Weapon_Min_Total_All[2] = [0x0B9,"float"]
  894.     global $Atrib_Damage_Weapon_Bonus_Min[2] = [0x0BA,"float"]
  895.     global $Atrib_Damage_Weapon_Percent_Bonus[2] = [0x0BB,"float"]
  896.     global $Atrib_Damage_Weapon_Percent_All[2] = [0x0BC,"float"]
  897.     global $Atrib_Damage_Weapon_Percent_Total[2] = [0x0BD,"float"]
  898.     global $Atrib_Damage_Type_Percent_Bonus[2] = [0x0BE,"float"]
  899.     global $Atrib_Damage_Percent_Bonus_Witchdoctor[2] = [0x0BF,"float"]
  900.     global $Atrib_Damage_Percent_Bonus_Wizard[2] = [0x0C0,"float"]
  901.     global $Atrib_Crit_Percent_Base[2] = [0x0C1,"float"]
  902.     global $Atrib_Crit_Percent_Bonus_Capped[2] = [0x0C2,"float"]
  903.     global $Atrib_Crit_Percent_Bonus_Uncapped[2] = [0x0C3,"float"]
  904.     global $Atrib_Crit_Percent_Cap[2] = [0x0C4,"float"]
  905.     global $Atrib_Crit_Damage_Percent[2] = [0x0C5,"float"]
  906.     global $Atrib_Crit_Effect_Time[2] = [0x0C6,"int"]
  907.     global $Atrib_Pierce_Chance[2] = [0x0C7,"float"]
  908.     global $Atrib_Damage_Absorb_Percent[2] = [0x0C8,"float"]
  909.     global $Atrib_Damage_Reduction_Total[2] = [0x0C9,"float"]
  910.     global $Atrib_Damage_Reduction_Current[2] = [0x0CA,"float"]
  911.     global $Atrib_Damage_Reduction_Last_Tick[2] = [0x0CB,"int"]
  912.     global $Atrib_Block_Chance[2] = [0x0CC,"float"]
  913.     global $Atrib_Block_Chance_Total[2] = [0x0CD,"float"]
  914.     global $Atrib_Block_Chance_Bonus_Item[2] = [0x0CE,"float"]
  915.     global $Atrib_Block_Chance_Item[2] = [0x0CF,"float"]
  916.     global $Atrib_Block_Chance_Item_Total[2] = [0x0D0,"float"]
  917.     global $Atrib_Block_Amount[2] = [0x0D1,"float"]
  918.     global $Atrib_Block_Amount_Bonus_Percent[2] = [0x0D2,"float"]
  919.     global $Atrib_Block_Amount_Total_Min[2] = [0x0D3,"float"]
  920.     global $Atrib_Block_Amount_Total_Max[2] = [0x0D4,"float"]
  921.     global $Atrib_Block_Amount_Item_Min[2] = [0x0D5,"float"]
  922.     global $Atrib_Block_Amount_Item_Delta[2] = [0x0D6,"float"]
  923.     global $Atrib_Block_Amount_Item_Bonus[2] = [0x0D7,"float"]
  924.     global $Atrib_Dodge_Chance_Bonus[2] = [0x0D8,"float"]
  925.     global $Atrib_Dodge_Chance_Bonus_Melee[2] = [0x0D9,"float"]
  926.     global $Atrib_Dodge_Chance_Bonus_Ranged[2] = [0x0DA,"float"]
  927.     global $Atrib_Get_Hit_Current[2] = [0x0DB,"float"]
  928.     global $Atrib_Get_Hit_Max_Base[2] = [0x0DC,"float"]
  929.     global $Atrib_Get_Hit_Max_Per_Level[2] = [0x0DD,"float"]
  930.     global $Atrib_Get_Hit_Max[2] = [0x0DE,"float"]
  931.     global $Atrib_Get_Hit_Recovery_Base[2] = [0x0DF,"float"]
  932.     global $Atrib_Get_Hit_Recovery_Per_Level[2] = [0x0E0,"float"]
  933.     global $Atrib_Get_Hit_Recovery[2] = [0x0E1,"float"]
  934.     global $Atrib_Get_Hit_Damage[2] = [0x0E2,"float"]
  935.     global $Atrib_Get_Hit_Damage_Scalar[2] = [0x0E3,"float"]
  936.     global $Atrib_Last_Damage_MainActor[2] = [0x0E4,"int"]
  937.     global $Atrib_Last_ACD_Attacked[2] = [0x0E5,"int"]
  938.     global $Atrib_Ignores_Critical_Hits[2] = [0x0E6,"int"]
  939.     global $Atrib_Immunity[2] = [0x0E7,"int"]
  940.     global $Atrib_Untargetable[2] = [0x0E8,"int"]
  941.     global $Atrib_Immobolize[2] = [0x0E9,"int"]
  942.     global $Atrib_Immune_To_Knockback[2] = [0x0EA,"int"]
  943.     global $Atrib_Power_Immobilize[2] = [0x0EB,"int"]
  944.     global $Atrib_Stun_Chance[2] = [0x0EC,"float"]
  945.     global $Atrib_Stun_Length[2] = [0x0ED,"float"]
  946.     global $Atrib_Stun_Recovery[2] = [0x0EE,"float"]
  947.     global $Atrib_Stun_Recovery_Speed[2] = [0x0EF,"float"]
  948.     global $Atrib_Stunned[2] = [0x0F0,"int"]
  949.     global $Atrib_Stun_Immune[2] = [0x0F1,"int"]
  950.     global $Atrib_Poison_Length_Reduction[2] = [0x0F2,"float"]
  951.     global $Atrib_Poisoned[2] = [0x0F3,"int"]
  952.     global $Atrib_Bleeding[2] = [0x0F4,"int"]
  953.     global $Atrib_Bleed_Duration[2] = [0x0F5,"float"]
  954.     global $Atrib_Chilled[2] = [0x0F6,"int"]
  955.     global $Atrib_Freeze_Length_Reduction[2] = [0x0F7,"float"]
  956.     global $Atrib_Freeze_Immune[2] = [0x0F8,"int"]
  957.     global $Atrib_Webbed[2] = [0x0F9,"int"]
  958.     global $Atrib_Slow[2] = [0x0FA,"int"]
  959.     global $Atrib_FireAura[2] = [0x0FB,"int"]
  960.     global $Atrib_LightningAura[2] = [0x0FC,"int"]
  961.     global $Atrib_ColdAura[2] = [0x0FD,"int"]
  962.     global $Atrib_PoisonAura[2] = [0x0FE,"int"]
  963.     global $Atrib_Blind[2] = [0x0FF,"int"]
  964.     global $Atrib_Enraged[2] = [0x100,"int"]
  965.     global $Atrib_Slowdown_Immune[2] = [0x101,"int"]
  966.     global $Atrib_Gethit_Immune[2] = [0x102,"int"]
  967.     global $Atrib_Suffocation_Per_Second[2] = [0x103,"float"]
  968.     global $Atrib_Suffocation_Unit_Value[2] = [0x104,"float"]
  969.     global $Atrib_Thorns_Percent[2] = [0x105,"float"]
  970.     global $Atrib_Thorns_Percent_All[2] = [0x106,"float"]
  971.     global $Atrib_Thorns_Percent_Total[2] = [0x107,"float"]
  972.     global $Atrib_Thorns_Fixed[2] = [0x108,"float"]
  973.     global $Atrib_Steal_Health_Percent[2] = [0x109,"float"]
  974.     global $Atrib_Steal_Mana_Percent[2] = [0x10A,"float"]
  975.     global $Atrib_Resource_On_Hit[2] = [0x10B,"float"]
  976.     global $Atrib_Resource_On_Kill[2] = [0x10C,"float"]
  977.     global $Atrib_Resource_On_Crit[2] = [0x10D,"float"]
  978.     global $Atrib_Hitpoints_On_Hit[2] = [0x10E,"float"]
  979.     global $Atrib_Hitpoints_On_Kill[2] = [0x10F,"float"]
  980.     global $Atrib_Damage_To_Mana[2] = [0x110,"float"]
  981.     global $Atrib_Last_Proc_Time[2] = [0x111,"int"]
  982.     global $Atrib_Damage_Power_Delta[2] = [0x112,"float"]
  983.     global $Atrib_Damage_Power_Min[2] = [0x113,"float"]
  984.     global $Atrib_Rope_Overlay[2] = [0x114,"int"]
  985.     global $Atrib_General_Cooldown[2] = [0x115,"int"]
  986.     global $Atrib_Power_Cooldown[2] = [0x116,"int"]
  987.     global $Atrib_Power_Cooldown_Start[2] = [0x117,"int"]
  988.     global $Atrib_Proc_Cooldown[2] = [0x118,"int"]
  989.     global $Atrib_Emote_Cooldown[2] = [0x119,"int"]
  990.     global $Atrib_Projectile_Speed[2] = [0x11A,"float"]
  991.     global $Atrib_Projectile_Speed_Increase_Percent[2] = [0x11B,"float"]
  992.     global $Atrib_Destroy_When_Path_Blocked[2] = [0x11C,"int"]
  993.     global $Atrib_Skill_Toggled_State[2] = [0x11D,"int"]
  994.     global $Atrib_Act[2] = [0x11E,"int"]
  995.     global $Atrib_Difficulty[2] = [0x11F,"int"]
  996.     global $Atrib_Last_Damage_Amount[2] = [0x120,"float"]
  997.     global $Atrib_In_Knockback[2] = [0x121,"int"]
  998.     global $Atrib_Amplify_Damage_Type_Percent[2] = [0x122,"float"]
  999.     global $Atrib_Amplify_Damage_Percent[2] = [0x123,"float"]
  1000.     global $Atrib_Durability_Cur[2] = [0x124,"int"]
  1001.     global $Atrib_Durability_Max[2] = [0x125,"int"]
  1002.     global $Atrib_Durability_Last_Damage[2] = [0x126,"int"]
  1003.     global $Atrib_Item_Quality_Level[2] = [0x127,"int"]
  1004.     global $Atrib_Item_Cost_Percent_Bonus[2] = [0x128,"float"]
  1005.     global $Atrib_Item_Equipped[2] = [0x129,"int"]
  1006.     global $Atrib_Requirement[2] = [0x12A,"float"]
  1007.     global $Atrib_Requirements_Ease_Percent[2] = [0x12B,"float"]
  1008.     global $Atrib_Requirement_When_Equipped[2] = [0x12C,"float"]
  1009.     global $Atrib_Sockets[2] = [0x12D,"int"]
  1010.     global $Atrib_Sockets_Filled[2] = [0x12E,"int"]
  1011.     global $Atrib_Stats_All_Bonus[2] = [0x12F,"float"]
  1012.     global $Atrib_Item_Bound_To_ACD[2] = [0x130,"int"]
  1013.     global $Atrib_Item_Locked_To_ACD[2] = [0x131,"int"]
  1014.     global $Atrib_Item_Binding_Level_Override[2] = [0x132,"int"]
  1015.     global $Atrib_ItemStackQuantityHi[2] = [0x133,"int"]
  1016.     global $Atrib_ItemStackQuantityLo[2] = [0x134,"int"]
  1017.     global $Atrib_Run_Speed_Granted[2] = [0x135,"float"]
  1018.     global $Atrib_Run_Speed_Duration[2] = [0x136,"int"]
  1019.     global $Atrib_IdentifyCost[2] = [0x137,"int"]
  1020.     global $Atrib_Seed[2] = [0x138,"int"]
  1021.     global $Atrib_IsCrafted[2] = [0x139,"int"]
  1022.     global $Atrib_DyeType[2] = [0x13A,"int"]
  1023.     global $Atrib_EnchantAffix[2] = [0x13B,"int"]
  1024.     global $Atrib_EnchantRangeVal[2] = [0x13C,"int"]
  1025.     global $Atrib_HighlySalvageable[2] = [0x13D,"int"]
  1026.     global $Atrib_ItemUnlockTimeHi[2] = [0x13E,"int"]
  1027.     global $Atrib_ItemUnlockTimeLo[2] = [0x13F,"int"]
  1028.     global $Atrib_Always_Plays_GetHit[2] = [0x140,"int"]
  1029.     global $Atrib_Hidden[2] = [0x141,"int"]
  1030.     global $Atrib_RActor_Fade_Group[2] = [0x142,"int"]
  1031.     global $Atrib_Quest_Range[2] = [0x143,"int"]
  1032.     global $Atrib_Attack_Cooldown_Min[2] = [0x144,"int"]
  1033.     global $Atrib_Attack_Cooldown_Delta[2] = [0x145,"int"]
  1034.     global $Atrib_InitialCooldownMinTotal[2] = [0x146,"int"]
  1035.     global $Atrib_InitialCooldownDeltaTotal[2] = [0x147,"int"]
  1036.     global $Atrib_Attack_Cooldown_Min_Total[2] = [0x148,"int"]
  1037.     global $Atrib_Attack_Cooldown_Delta_Total[2] = [0x149,"int"]
  1038.     global $Atrib_Closing_Cooldown_Min_Total[2] = [0x14A,"int"]
  1039.     global $Atrib_Closing_Cooldown_Delta_Total[2] = [0x14B,"int"]
  1040.     global $Atrib_Quest_Monster[2] = [0x14C,"int"]
  1041.     global $Atrib_Quest_Monster_Effect[2] = [0x14D,"int"]
  1042.     global $Atrib_Treasure_Class[2] = [0x14E,"int"]
  1043.     global $Atrib_Removes_Body_On_Death[2] = [0x14F,"int"]
  1044.     global $Atrib_InitialCooldownMin[2] = [0x150,"int"]
  1045.     global $Atrib_InitialCooldownDelta[2] = [0x151,"int"]
  1046.     global $Atrib_Knockback_Weight[2] = [0x152,"float"]
  1047.     global $Atrib_UntargetableByPets[2] = [0x153,"int"]
  1048.     global $Atrib_Damage_State_Current[2] = [0x154,"int"]
  1049.     global $Atrib_Damage_State_Max[2] = [0x155,"int"]
  1050.     global $Atrib_Is_Player_Decoy[2] = [0x156,"int"]
  1051.     global $Atrib_Custom_Target_Weight[2] = [0x157,"float"]
  1052.     global $Atrib_Gizmo_State[2] = [0x158,"int"]
  1053.     global $Atrib_Gizmo_Charges[2] = [0x159,"int"]
  1054.     global $Atrib_Chest_Open[2] = [0x15A,"int"]
  1055.     global $Atrib_Door_Locked[2] = [0x15B,"int"]
  1056.     global $Atrib_Door_Timer[2] = [0x15C,"int"]
  1057.     global $Atrib_Gizmo_Disabled_By_Script[2] = [0x15D,"int"]
  1058.     global $Atrib_Gizmo_Operator_ACDID[2] = [0x15E,"int"]
  1059.     global $Atrib_Triggering_Count[2] = [0x15F,"int"]
  1060.     global $Atrib_Gate_Position[2] = [0x160,"float"]
  1061.     global $Atrib_Gate_Velocity[2] = [0x161,"float"]
  1062.     global $Atrib_Gizmo_Has_Been_Operated[2] = [0x162,"int"]
  1063.     global $Atrib_Pet_Owner[2] = [0x163,"int"]
  1064.     global $Atrib_Pet_Creator[2] = [0x164,"int"]
  1065.     global $Atrib_Pet_Type[2] = [0x165,"int"]
  1066.     global $Atrib_DropsNoLoot[2] = [0x166,"int"]
  1067.     global $Atrib_GrantsNoXP[2] = [0x167,"int"]
  1068.     global $Atrib_Hireling_Class[2] = [0x168,"int"]
  1069.     global $Atrib_Summoned_By_SNO[2] = [0x169,"int"]
  1070.     global $Atrib_Is_NPC[2] = [0x16A,"int"]
  1071.     global $Atrib_NPC_Is_Operatable[2] = [0x16B,"int"]
  1072.     global $Atrib_NPC_Is_Escorting[2] = [0x16C,"int"]
  1073.     global $Atrib_NPC_Has_Interact_Options[2] = [0x16D,"int"]
  1074.     global $Atrib_Conversation_Icon[2] = [0x16E,"int"]
  1075.     global $Atrib_Callout_Cooldown[2] = [0x16F,"int"]
  1076.     global $Atrib_Banter_Cooldown[2] = [0x170,"int"]
  1077.     global $Atrib_Conversation_Heard_Count[2] = [0x171,"int"]
  1078.     global $Atrib_Last_Tick_Shop_Entered[2] = [0x172,"int"]
  1079.     global $Atrib_Is_Helper[2] = [0x173,"int"]
  1080.     global $Atrib_Axe[2] = [0x174,"float"]
  1081.     global $Atrib_Axe2H[2] = [0x175,"float"]
  1082.     global $Atrib_ThrowingAxe[2] = [0x176,"float"]
  1083.     global $Atrib_AxeAny[2] = [0x177,"float"]
  1084.     global $Atrib_Bow[2] = [0x178,"float"]
  1085.     global $Atrib_Crossbow[2] = [0x179,"float"]
  1086.     global $Atrib_BowAny[2] = [0x17A,"float"]
  1087.     global $Atrib_Club[2] = [0x17B,"float"]
  1088.     global $Atrib_Club2H[2] = [0x17C,"float"]
  1089.     global $Atrib_ClubAny[2] = [0x17D,"float"]
  1090.     global $Atrib_Dagger[2] = [0x17E,"float"]
  1091.     global $Atrib_Mace[2] = [0x17F,"float"]
  1092.     global $Atrib_Mace2H[2] = [0x180,"float"]
  1093.     global $Atrib_MaceAny[2] = [0x181,"float"]
  1094.     global $Atrib_Sword[2] = [0x182,"float"]
  1095.     global $Atrib_Sword2H[2] = [0x183,"float"]
  1096.     global $Atrib_SwordAny[2] = [0x184,"float"]
  1097.     global $Atrib_Polearm[2] = [0x185,"float"]
  1098.     global $Atrib_Spear[2] = [0x186,"float"]
  1099.     global $Atrib_Wand[2] = [0x187,"float"]
  1100.     global $Atrib_ColdStaff[2] = [0x188,"float"]
  1101.     global $Atrib_FireStaff[2] = [0x189,"float"]
  1102.     global $Atrib_LightningStaff[2] = [0x18A,"float"]
  1103.     global $Atrib_PoisonStaff[2] = [0x18B,"float"]
  1104.     global $Atrib_StaffAny[2] = [0x18C,"float"]
  1105.     global $Atrib_Weapon1H[2] = [0x18D,"float"]
  1106.     global $Atrib_Weapon2H[2] = [0x18E,"float"]
  1107.     global $Atrib_WeaponMelee[2] = [0x18F,"float"]
  1108.     global $Atrib_WeaponRanged[2] = [0x190,"float"]
  1109.     global $Atrib_Quiver[2] = [0x191,"float"]
  1110.     global $Atrib_Reincarnation_Buff[2] = [0x192,"int"]
  1111.     global $Atrib_Dead_Body_AnimTag[2] = [0x193,"int"]
  1112.     global $Atrib_Spawned_by_ACDID[2] = [0x194,"int"]
  1113.     global $Atrib_Summoned_By_ACDID[2] = [0x195,"int"]
  1114.     global $Atrib_Summoner_ID[2] = [0x196,"int"]
  1115.     global $Atrib_Banner_ACDID[2] = [0x197,"int"]
  1116.     global $Atrib_Breakable_Shield_HP[2] = [0x198,"float"]
  1117.     global $Atrib_Current_WeaponClass[2] = [0x199,"int"]
  1118.     global $Atrib_Weapons_Sheathed[2] = [0x19A,"int"]
  1119.     global $Atrib_Held_In_OffHand[2] = [0x19B,"int"]
  1120.     global $Atrib_Attacks_Per_Second_Item_MainHand[2] = [0x19C,"float"]
  1121.     global $Atrib_Attacks_Per_Second_Item_OffHand[2] = [0x19D,"float"]
  1122.     global $Atrib_Attacks_Per_Second_Item_Total_MainHand[2] = [0x19E,"float"]
  1123.     global $Atrib_Attacks_Per_Second_Item_Total_OffHand[2] = [0x19F,"float"]
  1124.     global $Atrib_Damage_Weapon_Min_Total_MainHand[2] = [0x1A0,"float"]
  1125.     global $Atrib_Damage_Weapon_Min_Total_OffHand[2] = [0x1A1,"float"]
  1126.     global $Atrib_Damage_Weapon_Delta_Total_MainHand[2] = [0x1A2,"float"]
  1127.     global $Atrib_Damage_Weapon_Delta_Total_OffHand[2] = [0x1A3,"float"]
  1128.     global $Atrib_Attacks_Per_Second_Item_CurrentHand[2] = [0x1A4,"float"]
  1129.     global $Atrib_Damage_Weapon_Min_Total_CurrentHand[2] = [0x1A5,"float"]
  1130.     global $Atrib_Damage_Weapon_Delta_Total_CurrentHand[2] = [0x1A6,"float"]
  1131.     global $Atrib_Has_Special_Death_AnimTag[2] = [0x1A7,"int"]
  1132.     global $Atrib_Death_Type_Override[2] = [0x1A8,"int"]
  1133.     global $Atrib_In_Combat[2] = [0x1A9,"int"]
  1134.     global $Atrib_In_Conversation[2] = [0x1AA,"int"]
  1135.     global $Atrib_Last_Tick_Potion_Used[2] = [0x1AB,"int"]
  1136.     global $Atrib_Potion_Dilution_Percent[2] = [0x1AC,"float"]
  1137.     global $Atrib_Out_Of_Combat_Health_Regen_Percent[2] = [0x1AD,"float"]
  1138.     global $Atrib_Out_Of_Combat_Mana_Regen_Percent[2] = [0x1AE,"float"]
  1139.     global $Atrib_Potion_Dilution_Duration[2] = [0x1AF,"int"]
  1140.     global $Atrib_Potion_Dilution_Scalar[2] = [0x1B0,"float"]
  1141.     global $Atrib_Feared[2] = [0x1B1,"int"]
  1142.     global $Atrib_Fear_Immune[2] = [0x1B2,"int"]
  1143.     global $Atrib_Last_Damage_ACD[2] = [0x1B3,"int"]
  1144.     global $Atrib_Attached_To_ACD[2] = [0x1B4,"int"]
  1145.     global $Atrib_Attachment_ACD[2] = [0x1B5,"int"]
  1146.     global $Atrib_Normal_Attack_Replacement_Power_SNO[2] = [0x1B6,"int"]
  1147.     global $Atrib_Damage_Type_Override[2] = [0x1B7,"float"]
  1148.     global $Atrib_Minion_Count_Bonus_Percent[2] = [0x1B8,"float"]
  1149.     global $Atrib_Champion_Teleport_Next_Tick[2] = [0x1B9,"int"]
  1150.     global $Atrib_Champion_Teleport_Time_Min_In_Seconds[2] = [0x1BA,"float"]
  1151.     global $Atrib_Champion_Teleport_Time_Delta_In_Seconds[2] = [0x1BB,"float"]
  1152.     global $Atrib_Champion_Clone_Next_Tick[2] = [0x1BC,"int"]
  1153.     global $Atrib_Champion_Clone_Time_Min_In_Seconds[2] = [0x1BD,"float"]
  1154.     global $Atrib_Champion_Clone_Time_Delta_In_Seconds[2] = [0x1BE,"float"]
  1155.     global $Atrib_Champion_Clone_Hitpoint_Bonus_Percent[2] = [0x1BF,"float"]
  1156.     global $Atrib_Champion_Clone_Damage_Bonus_Percent[2] = [0x1C0,"float"]
  1157.     global $Atrib_Champion_Ghostly_Next_Tick[2] = [0x1C1,"int"]
  1158.     global $Atrib_Champion_Ghostly_Inactive_Time_Min_In_Seconds[2] = [0x1C2,"float"]
  1159.     global $Atrib_Champion_Ghostly_Inactive_Time_Delta_In_Seconds[2] = [0x1C3,"float"]
  1160.     global $Atrib_Champion_Ghostly_Active_Time_Min_In_Seconds[2] = [0x1C4,"float"]
  1161.     global $Atrib_Champion_Ghostly_Active_Time_Delta_In_Seconds[2] = [0x1C5,"float"]
  1162.     global $Atrib_Champion_Ghostly_Saved_Dodge_Chance[2] = [0x1C6,"float"]
  1163.     global $Atrib_Champion_Ghostly[2] = [0x1C7,"int"]
  1164.     global $Atrib_Base_Element[2] = [0x1C8,"int"]
  1165.     global $Atrib_Projectile_Amount_Bonus_Percent[2] = [0x1C9,"float"]
  1166.     global $Atrib_Projectile_Reflect_Chance[2] = [0x1CA,"float"]
  1167.     global $Atrib_Attack_Fear_Chance[2] = [0x1CB,"float"]
  1168.     global $Atrib_Attack_Fear_Time_Min[2] = [0x1CC,"float"]
  1169.     global $Atrib_Attack_Fear_Time_Delta[2] = [0x1CD,"float"]
  1170.     global $Atrib_Buff_Visual_Effect[2] = [0x1CE,"int"]
  1171.     global $Atrib_Buff_Icon_Start_Tick0[2] = [0x1CF,"int"]
  1172.     global $Atrib_Buff_Icon_Start_Tick1[2] = [0x1D0,"int"]
  1173.     global $Atrib_Buff_Icon_Start_Tick2[2] = [0x1D1,"int"]
  1174.     global $Atrib_Buff_Icon_Start_Tick3[2] = [0x1D2,"int"]
  1175.     global $Atrib_Buff_Icon_Start_Tick4[2] = [0x1D3,"int"]
  1176.     global $Atrib_Buff_Icon_Start_Tick5[2] = [0x1D4,"int"]
  1177.     global $Atrib_Buff_Icon_Start_Tick6[2] = [0x1D5,"int"]
  1178.     global $Atrib_Buff_Icon_Start_Tick7[2] = [0x1D6,"int"]
  1179.     global $Atrib_Buff_Icon_End_Tick0[2] = [0x1D7,"int"]
  1180.     global $Atrib_Buff_Icon_End_Tick1[2] = [0x1D8,"int"]
  1181.     global $Atrib_Buff_Icon_End_Tick2[2] = [0x1D9,"int"]
  1182.     global $Atrib_Buff_Icon_End_Tick3[2] = [0x1DA,"int"]
  1183.     global $Atrib_Buff_Icon_End_Tick4[2] = [0x1DB,"int"]
  1184.     global $Atrib_Buff_Icon_End_Tick5[2] = [0x1DC,"int"]
  1185.     global $Atrib_Buff_Icon_End_Tick6[2] = [0x1DD,"int"]
  1186.     global $Atrib_Buff_Icon_End_Tick7[2] = [0x1DE,"int"]
  1187.     global $Atrib_Could_Have_Ragdolled[2] = [0x1DF,"int"]
  1188.     global $Atrib_Ambient_Damage_Effect_Last_Time[2] = [0x1E0,"int"]
  1189.     global $Atrib_Scale_Bonus[2] = [0x1E1,"float"]
  1190.     global $Atrib_Deleted_On_Server[2] = [0x1E2,"int"]
  1191.     global $Atrib_Scripted_Fade_Time[2] = [0x1E3,"int"]
  1192.     global $Atrib_Does_No_Damage[2] = [0x1E4,"int"]
  1193.     global $Atrib_Does_Fake_Damage[2] = [0x1E5,"int"]
  1194.     global $Atrib_SlowTime_Debuff[2] = [0x1E6,"float"]
  1195.     global $Atrib_Blocks_Projectiles[2] = [0x1E7,"int"]
  1196.     global $Atrib_Frozen[2] = [0x1E8,"int"]
  1197.     global $Atrib_Freeze_Damage_Percent_Bonus[2] = [0x1E9,"float"]
  1198.     global $Atrib_Buff_Active[2] = [0x1EA,"int"]
  1199.     global $Atrib_DualWield_BothAttack_Chance[2] = [0x1EB,"float"]
  1200.     global $Atrib_Summon_Expiration_Tick[2] = [0x1EC,"int"]
  1201.     global $Atrib_Summon_Count[2] = [0x1ED,"int"]
  1202.     global $Atrib_Uninterruptible[2] = [0x1EE,"int"]
  1203.     global $Atrib_Queue_Death[2] = [0x1EF,"int"]
  1204.     global $Atrib_CantStartDisplayedPowers[2] = [0x1F0,"int"]
  1205.     global $Atrib_Wizard_Slowtime_Proxy_ACD[2] = [0x1F1,"int"]
  1206.     global $Atrib_DPS[2] = [0x1F2,"float"]
  1207.     global $Atrib_Resurrection_Power[2] = [0x1F3,"int"]
  1208.     global $Atrib_Freeze_Damage[2] = [0x1F4,"float"]
  1209.     global $Atrib_Freeze_Capacity[2] = [0x1F5,"float"]
  1210.     global $Atrib_Thaw_Rate[2] = [0x1F6,"float"]
  1211.     global $Atrib_Chilled_Dur_Bonus_Percent[2] = [0x1F7,"float"]
  1212.     global $Atrib_DOT_DPS[2] = [0x1F8,"float"]
  1213.     global $Atrib_DamageCap_Percent[2] = [0x1F9,"float"]
  1214.     global $Atrib_Item_Time_Sold[2] = [0x1FA,"int"]
  1215.     global $Atrib_Forced_Hireling_Power[2] = [0x1FB,"int"]
  1216.     global $Atrib_IsRooted[2] = [0x1FC,"int"]
  1217.     global $Atrib_RootTargetACD[2] = [0x1FD,"int"]
  1218.     global $Atrib_RootAutoDecayPerSecond[2] = [0x1FE,"float"]
  1219.     global $Atrib_RootUnitValue[2] = [0x1FF,"float"]
  1220.     global $Atrib_RootTotalTicks[2] = [0x200,"int"]
  1221.     global $Atrib_Hide_Affixes[2] = [0x201,"int"]
  1222.     global $Atrib_Rune_A[2] = [0x202,"int"]
  1223.     global $Atrib_Rune_B[2] = [0x203,"int"]
  1224.     global $Atrib_Rune_C[2] = [0x204,"int"]
  1225.     global $Atrib_Rune_D[2] = [0x205,"int"]
  1226.     global $Atrib_Rune_E[2] = [0x206,"int"]
  1227.     global $Atrib_Resistance_Stun[2] = [0x207,"float"]
  1228.     global $Atrib_Resistance_Stun_Total[2] = [0x208,"float"]
  1229.     global $Atrib_Resistance_Root[2] = [0x209,"float"]
  1230.     global $Atrib_Resistance_Root_Total[2] = [0x20A,"float"]
  1231.     global $Atrib_Resistance_Freeze[2] = [0x20B,"float"]
  1232.     global $Atrib_Resistance_Freeze_Total[2] = [0x20C,"float"]
  1233.     global $Atrib_Resistance_StunRootFreeze[2] = [0x20D,"float"]
  1234.     global $Atrib_CrowdControl_Reduction[2] = [0x20E,"float"]
  1235.     global $Atrib_Displays_Team_Effect[2] = [0x20F,"int"]
  1236.     global $Atrib_Cannot_Be_Added_To_AI_Target_List[2] = [0x210,"int"]
  1237.     global $Atrib_SkillKit[2] = [0x211,"int"]
  1238.     global $Atrib_Immune_To_Charm[2] = [0x212,"int"]
  1239.     global $Atrib_Immune_To_Blind[2] = [0x213,"int"]
  1240.     global $Atrib_Damage_Shield[2] = [0x214,"int"]
  1241.     global $Atrib_Silenced[2] = [0x215,"int"]
  1242.     global $Atrib_Diseased[2] = [0x216,"int"]
  1243.     global $Atrib_Guard_Object_ACDID[2] = [0x217,"int"]
  1244.     global $Atrib_Follow_Target_ACDID[2] = [0x218,"int"]
  1245.     global $Atrib_Follow_Target_Type[2] = [0x219,"int"]
  1246.     global $Atrib_Forced_Enemy_ACDID[2] = [0x21A,"int"]
  1247.     global $Atrib_NPC_Talk_Target_ANN[2] = [0x21B,"int"]
  1248.     global $Atrib_NPC_Conv_Target_ANN[2] = [0x21C,"int"]
  1249.     global $Atrib_Script_Target_ACDID[2] = [0x21D,"int"]
  1250.     global $Atrib_Look_Target_Server_ANN[2] = [0x21E,"int"]
  1251.     global $Atrib_Look_Target_Broadcast_Intensity[2] = [0x21F,"float"]
  1252.     global $Atrib_Look_Target_Broadcast_Radius[2] = [0x220,"float"]
  1253.     global $Atrib_Stealthed[2] = [0x221,"int"]
  1254.     global $Atrib_GemQuality[2] = [0x222,"int"]
  1255.     global $Atrib_ItemBuffIcon[2] = [0x223,"int"]
  1256.     global $Atrib_ScrollDuration[2] = [0x224,"float"]
  1257.     global $Atrib_Gizmo_Actor_SNO_To_Spawn[2] = [0x225,"int"]
  1258.     global $Atrib_Gizmo_Actor_To_Spawn_Scale[2] = [0x226,"float"]
  1259.     global $Atrib_Death_Replacement_Power_SNO[2] = [0x227,"int"]
  1260.     global $Atrib_Attachment_Handled_By_Client[2] = [0x228,"int"]
  1261.     global $Atrib_AI_In_Special_State[2] = [0x229,"int"]
  1262.     global $Atrib_AI_Used_Scripted_Spawn_Anim[2] = [0x22A,"int"]
  1263.     global $Atrib_AI_Spawned_By_Inactive_Marker[2] = [0x22B,"int"]
  1264.     global $Atrib_Headstone_Player_ANN[2] = [0x22C,"int"]
  1265.     global $Atrib_Resource_Cost_Reduction_Percent[2] = [0x22D,"float"]
  1266.     global $Atrib_Resistance_Penetration[2] = [0x22E,"float"]
  1267.     global $Atrib_Resistance_Penetration_Total[2] = [0x22F,"float"]
  1268.     global $Atrib_Resistance_Penetration_All[2] = [0x230,"float"]
  1269.     global $Atrib_Resistance_Penetration_Percent_All[2] = [0x231,"float"]
  1270.     global $Atrib_Fury_Effect_Level[2] = [0x232,"int"]
  1271.     global $Atrib_Health_Potion_Bonus_Heal_Percent[2] = [0x233,"float"]
  1272.     global $Atrib_Free_Cast[2] = [0x234,"int"]
  1273.     global $Atrib_Free_Cast_All[2] = [0x235,"int"]
  1274.     global $Atrib_Movement_Scalar_Reduction_Percent[2] = [0x236,"float"]
  1275.     global $Atrib_Movement_Scalar_Reduction_Resistance[2] = [0x237,"float"]
  1276.     global $Atrib_Damage_Absorb_Percent_All[2] = [0x238,"float"]
  1277.     global $Atrib_World_Seed[2] = [0x239,"int"]
  1278.     global $Atrib_Kill_Count_Record[2] = [0x23A,"int"]
  1279.     global $Atrib_Object_Destruction_Record[2] = [0x23B,"int"]
  1280.     global $Atrib_Single_Attack_Record[2] = [0x23C,"int"]
  1281.     global $Atrib_Environment_Attack_Record[2] = [0x23D,"int"]
  1282.     global $Atrib_Root_Immune[2] = [0x23E,"int"]
  1283.     global $Atrib_Monster_Play_Get_Hit_Bonus[2] = [0x23F,"float"]
  1284.     global $Atrib_Stored_Contact_Frame[2] = [0x240,"int"]
  1285.     global $Atrib_Buff_Icon_Count0[2] = [0x241,"int"]
  1286.     global $Atrib_Buff_Icon_Count1[2] = [0x242,"int"]
  1287.     global $Atrib_Buff_Icon_Count2[2] = [0x243,"int"]
  1288.     global $Atrib_Buff_Icon_Count3[2] = [0x244,"int"]
  1289.     global $Atrib_Buff_Icon_Count4[2] = [0x245,"int"]
  1290.     global $Atrib_Buff_Icon_Count5[2] = [0x246,"int"]
  1291.     global $Atrib_Buff_Icon_Count6[2] = [0x247,"int"]
  1292.     global $Atrib_Buff_Icon_Count7[2] = [0x248,"int"]
  1293.     global $Atrib_Observer[2] = [0x249,"int"]
  1294.     global $Atrib_Resurrect_As_Observer[2] = [0x24A,"int"]
  1295.     global $Atrib_Combo_Level[2] = [0x24B,"int"]
  1296.     global $Atrib_Combo_Time_Last_Move[2] = [0x24C,"int"]
  1297.     global $Atrib_Burrowed[2] = [0x24D,"int"]
  1298.     global $Atrib_Death_Replacement_Effect_Group_SNO[2] = [0x24E,"int"]
  1299.     global $Atrib_Checkpoint_Resurrection_Allowed_Game_Time[2] = [0x24F,"int"]
  1300.     global $Atrib_Checkpoint_Resurrection_Forced_Game_Time[2] = [0x250,"int"]
  1301.     global $Atrib_Controlling_TimedEvent_SNO[2] = [0x251,"int"]
  1302.     global $Atrib_Casting_Speed_Percent[2] = [0x252,"float"]
  1303.     global $Atrib_Using_Bossbar[2] = [0x253,"int"]
  1304.     global $Atrib_Power_Buff_0_Visual_Effect[2] = [0x254,"int"]
  1305.     global $Atrib_Power_Buff_1_Visual_Effect[2] = [0x255,"int"]
  1306.     global $Atrib_Power_Buff_2_Visual_Effect[2] = [0x256,"int"]
  1307.     global $Atrib_Power_Buff_3_Visual_Effect[2] = [0x257,"int"]
  1308.     global $Atrib_Power_Buff_4_Visual_Effect[2] = [0x258,"int"]
  1309.     global $Atrib_Power_Buff_5_Visual_Effect[2] = [0x259,"int"]
  1310.     global $Atrib_Power_Buff_6_Visual_Effect[2] = [0x25A,"int"]
  1311.     global $Atrib_Power_Buff_7_Visual_Effect[2] = [0x25B,"int"]
  1312.     global $Atrib_Store_SNO[2] = [0x25C,"int"]
  1313.     global $Atrib_Busy[2] = [0x25D,"int"]
  1314.     global $Atrib_Afk[2] = [0x25E,"int"]
  1315.     global $Atrib_Last_Action_Timestamp[2] = [0x25F,"int"]
  1316.     global $Atrib_Portal_Next_Time[2] = [0x260,"int"]
  1317.     global $Atrib_Repair_Discount_Percent[2] = [0x261,"float"]
  1318.     global $Atrib_Resource_Degeneration_Prevented[2] = [0x262,"int"]
  1319.     global $Atrib_Operatable[2] = [0x263,"int"]
  1320.     global $Atrib_Look_Override[2] = [0x264,"int"]
  1321.     global $Atrib_Spawner_Concurrent_Count_ID[2] = [0x265,"int"]
  1322.     global $Atrib_Disabled[2] = [0x266,"int"]
  1323.     global $Atrib_Skill_Override[2] = [0x267,"int"]
  1324.     global $Atrib_Skill_Override_Active[2] = [0x268,"int"]
  1325.     global $Atrib_Skill_Override_Ended[2] = [0x269,"int"]
  1326.     global $Atrib_Skill_Override_Ended_Active[2] = [0x26A,"int"]
  1327.     global $Atrib_Is_Power_Proxy[2] = [0x26B,"int"]
  1328.     global $Atrib_Force_No_Death_Animation[2] = [0x26C,"int"]
  1329.     global $Atrib_Player_WeaponClass_Anim_Override[2] = [0x26D,"int"]
  1330.     global $Atrib_Operatable_Story_Gizmo[2] = [0x26E,"int"]
  1331.     global $Atrib_Power_Buff_0_Visual_Effect_None[2] = [0x26F,"int"]
  1332.     global $Atrib_Power_Buff_0_Visual_Effect_A[2] = [0x270,"int"]
  1333.     global $Atrib_Power_Buff_0_Visual_Effect_B[2] = [0x271,"int"]
  1334.     global $Atrib_Power_Buff_0_Visual_Effect_C[2] = [0x272,"int"]
  1335.     global $Atrib_Power_Buff_0_Visual_Effect_D[2] = [0x273,"int"]
  1336.     global $Atrib_Power_Buff_0_Visual_Effect_E[2] = [0x274,"int"]
  1337.     global $Atrib_Power_Buff_1_Visual_Effect_None[2] = [0x275,"int"]
  1338.     global $Atrib_Power_Buff_1_Visual_Effect_A[2] = [0x276,"int"]
  1339.     global $Atrib_Power_Buff_1_Visual_Effect_B[2] = [0x277,"int"]
  1340.     global $Atrib_Power_Buff_1_Visual_Effect_C[2] = [0x278,"int"]
  1341.     global $Atrib_Power_Buff_1_Visual_Effect_D[2] = [0x279,"int"]
  1342.     global $Atrib_Power_Buff_1_Visual_Effect_E[2] = [0x27A,"int"]
  1343.     global $Atrib_Power_Buff_2_Visual_Effect_None[2] = [0x27B,"int"]
  1344.     global $Atrib_Power_Buff_2_Visual_Effect_A[2] = [0x27C,"int"]
  1345.     global $Atrib_Power_Buff_2_Visual_Effect_B[2] = [0x27D,"int"]
  1346.     global $Atrib_Power_Buff_2_Visual_Effect_C[2] = [0x27E,"int"]
  1347.     global $Atrib_Power_Buff_2_Visual_Effect_D[2] = [0x27F,"int"]
  1348.     global $Atrib_Power_Buff_2_Visual_Effect_E[2] = [0x280,"int"]
  1349.     global $Atrib_Power_Buff_3_Visual_Effect_None[2] = [0x281,"int"]
  1350.     global $Atrib_Power_Buff_3_Visual_Effect_A[2] = [0x282,"int"]
  1351.     global $Atrib_Power_Buff_3_Visual_Effect_B[2] = [0x283,"int"]
  1352.     global $Atrib_Power_Buff_3_Visual_Effect_C[2] = [0x284,"int"]
  1353.     global $Atrib_Power_Buff_3_Visual_Effect_D[2] = [0x285,"int"]
  1354.     global $Atrib_Power_Buff_3_Visual_Effect_E[2] = [0x286,"int"]
  1355.     global $Atrib_Power_Buff_4_Visual_Effect_None[2] = [0x287,"int"]
  1356.     global $Atrib_Power_Buff_4_Visual_Effect_A[2] = [0x288,"int"]
  1357.     global $Atrib_Power_Buff_4_Visual_Effect_B[2] = [0x289,"int"]
  1358.     global $Atrib_Power_Buff_4_Visual_Effect_C[2] = [0x28A,"int"]
  1359.     global $Atrib_Power_Buff_4_Visual_Effect_D[2] = [0x28B,"int"]
  1360.     global $Atrib_Power_Buff_4_Visual_Effect_E[2] = [0x28C,"int"]
  1361.     global $Atrib_Power_Buff_5_Visual_Effect_None[2] = [0x28D,"int"]
  1362.     global $Atrib_Power_Buff_5_Visual_Effect_A[2] = [0x28E,"int"]
  1363.     global $Atrib_Power_Buff_5_Visual_Effect_B[2] = [0x28F,"int"]
  1364.     global $Atrib_Power_Buff_5_Visual_Effect_C[2] = [0x290,"int"]
  1365.     global $Atrib_Power_Buff_5_Visual_Effect_D[2] = [0x291,"int"]
  1366.     global $Atrib_Power_Buff_5_Visual_Effect_E[2] = [0x292,"int"]
  1367.     global $Atrib_Power_Buff_6_Visual_Effect_None[2] = [0x293,"int"]
  1368.     global $Atrib_Power_Buff_6_Visual_Effect_A[2] = [0x294,"int"]
  1369.     global $Atrib_Power_Buff_6_Visual_Effect_B[2] = [0x295,"int"]
  1370.     global $Atrib_Power_Buff_6_Visual_Effect_C[2] = [0x296,"int"]
  1371.     global $Atrib_Power_Buff_6_Visual_Effect_D[2] = [0x297,"int"]
  1372.     global $Atrib_Power_Buff_6_Visual_Effect_E[2] = [0x298,"int"]
  1373.     global $Atrib_Power_Buff_7_Visual_Effect_None[2] = [0x299,"int"]
  1374.     global $Atrib_Power_Buff_7_Visual_Effect_A[2] = [0x29A,"int"]
  1375.     global $Atrib_Power_Buff_7_Visual_Effect_B[2] = [0x29B,"int"]
  1376.     global $Atrib_Power_Buff_7_Visual_Effect_C[2] = [0x29C,"int"]
  1377.     global $Atrib_Power_Buff_7_Visual_Effect_D[2] = [0x29D,"int"]
  1378.     global $Atrib_Power_Buff_7_Visual_Effect_E[2] = [0x29E,"int"]
  1379.     global $Atrib_Walk_Passability_Power_SNO[2] = [0x29F,"int"]
  1380.     global $Atrib_Passability_Power_SNO[2] = [0x2A0,"int"]
  1381.     global $Atrib_Flippy_ID[2] = [0x2A1,"int"]
  1382.     global $Atrib_Summoning_Machine_Num_Casters[2] = [0x2A2,"int"]
  1383.     global $Atrib_Summoning_Machine_Spawn_Count[2] = [0x2A3,"int"]
  1384.     global $Atrib_Summoning_Machine_Next_Spawn_Ticks[2] = [0x2A4,"int"]
  1385.     global $Atrib_Summoning_Machine_Spawn_Team[2] = [0x2A5,"int"]
  1386.     global $Atrib_Screen_Attack_Radius_Constant[2] = [0x2A6,"float"]
  1387.     global $Atrib_Damage_Done_Reduction_Percent[2] = [0x2A7,"float"]
  1388.     global $Atrib_Set_Item_Count[2] = [0x2A8,"int"]
  1389.     global $Atrib_Spawner_Countdown_Percent[2] = [0x2A9,"float"]
  1390.     global $Atrib_Attack_Slow[2] = [0x2AA,"int"]
  1391.     global $Atrib_Power_Disabled[2] = [0x2AB,"int"]
  1392.     global $Atrib_Weapon_Effect_Override[2] = [0x2AC,"int"]
  1393.     global $Atrib_Debuff_Duration_Reduction_Percent[2] = [0x2AD,"float"]
  1394.     global $Atrib_Uses_PvP_Power_Tags[2] = [0x2AE,"int"]
  1395.     global $Atrib_Trait[2] = [0x2AF,"int"]
  1396.     global $Atrib_Last_ACD_Attacked_By[2] = [0x2B0,"int"]
  1397.     global $Atrib_Gold_PickUp_Radius[2] = [0x2B1,"float"]
  1398.     global $Atrib_Client_Only_Effect[2] = [0x2B2,"int"]
  1399.     global $Atrib_Has_Doppelganger_Cloned[2] = [0x2B3,"int"]
  1400.     global $Atrib_Resource_Gain_Bonus_Percent[2] = [0x2B4,"float"]
  1401.     global $Atrib_Looping_Animation_Start_Time[2] = [0x2B5,"int"]
  1402.     global $Atrib_Looping_Animation_End_Time[2] = [0x2B6,"int"]
  1403.     global $Atrib_Looping_Animation_Suppress_Item_Tooltips[2] = [0x2B7,"int"]
  1404.     global $Atrib_Heal_Effect_Last_Played_Tick[2] = [0x2B8,"int"]
  1405.     global $Atrib_Resource_Effect_Last_Played_tick[2] = [0x2B9,"int"]
  1406.     global $Atrib_Thorns_Effect_Last_Played_tick[2] = [0x2BA,"int"]
  1407.     global $Atrib_PVP_Kills[2] = [0x2BB,"int"]
  1408.     global $Atrib_PVP_Deaths[2] = [0x2BC,"int"]
  1409.     global $Atrib_PVP_Assists[2] = [0x2BD,"int"]
  1410.     global $Atrib_PVP_Progression_Points_Gained[2] = [0x2BE,"int"]
  1411.     global $Atrib_PVP_Current_Kill_Streak[2] = [0x2BF,"int"]
  1412.     global $Atrib_PVP_Current_Death_Streak[2] = [0x2C0,"int"]
  1413.     global $Atrib_PVP_Longest_Kill_Streak[2] = [0x2C1,"int"]
  1414.     global $Atrib_PVP_Longest_Death_Streak[2] = [0x2C2,"int"]
  1415.     global $Atrib_Turn_Rate_Scalar[2] = [0x2C3,"float"]
  1416.     global $Atrib_Turn_Accel_Scalar[2] = [0x2C4,"float"]
  1417.     global $Atrib_Turn_Deccel_Scalar[2] = [0x2C5,"float"]
  1418.     global $Atrib_No_Health_Drop[2] = [0x2C6,"int"]
  1419.     global $Atrib_Leader[2] = [0x2C7,"int"]
  1420.     global $Atrib_IsContentRestrictedActor[2] = [0x2C8,"int"]
  1421.     global $Atrib_InBossEncounter[2] = [0x2C9,"int"]
  1422.     global $Atrib_God[2] = [0x2CA,"int"]
  1423.     global $Atrib_MinimapActive[2] = [0x2CB,"int"]
  1424.     global $Atrib_MinimapIconOverride[2] = [0x2CC,"int"]
  1425.     global $Atrib_MinimapDisableArrow[2] = [0x2CD,"int"]
  1426.     global $Atrib_Last_Blocked_ACD[2] = [0x2CE,"int"]
  1427.     global $Atrib_Last_Blocked_Time[2] = [0x2CF,"int"]
  1428.     global $Atrib_Deactivate_Lure[2] = [0x2D0,"int"]
  1429.     global $Atrib_Weapons_Hidden[2] = [0x2D1,"int"]
  1430.     global $Atrib_Actor_Updates_Attributes_From_Owner[2] = [0x2D2,"int"]
  1431.     global $Atrib_Taunt_Target_ACD[2] = [0x2D3,"int"]
  1432.     global $Atrib_UI_Only_Percent_Damage_Increase[2] = [0x2D4,"float"]
  1433.     global $Atrib_Projectile_Effect_SNO[2] = [0x2D5,"int"]
  1434.     global $Atrib_On_Hit_Fear_Proc_Chance[2] = [0x2D6,"float"]
  1435.     global $Atrib_On_Hit_Stun_Proc_Chance[2] = [0x2D7,"float"]
  1436.     global $Atrib_On_Hit_Blind_Proc_Chance[2] = [0x2D8,"float"]
  1437.     global $Atrib_On_Hit_Freeze_Proc_Chance[2] = [0x2D9,"float"]
  1438.     global $Atrib_On_Hit_Chill_Proc_Chance[2] = [0x2DA,"float"]
  1439.     global $Atrib_On_Hit_Slow_Proc_Chance[2] = [0x2DB,"float"]
  1440.     global $Atrib_On_Hit_Immobilize_Proc_Chance[2] = [0x2DC,"float"]
  1441.     global $Atrib_On_Hit_Knockback_Proc_Chance[2] = [0x2DD,"float"]
  1442.     global $Atrib_On_Hit_Bleed_Proc_Chance[2] = [0x2DE,"float"]
  1443.     global $Atrib_On_Hit_Bleed_Proc_Damage_Base[2] = [0x2DF,"float"]
  1444.     global $Atrib_On_Hit_Bleed_Proc_Damage_Delta[2] = [0x2E0,"float"]
  1445.     global $Atrib_Damage_Percent_Reduction_From_Ranged[2] = [0x2E1,"float"]
  1446.     global $Atrib_Damage_Percent_Reduction_From_Melee[2] = [0x2E2,"float"]
  1447.     global $Atrib_Damage_Percent_Reduction_Turns_Into_Heal[2] = [0x2E3,"float"]
  1448.     global $Atrib_Damage_Percent_Reduction_From_Elites[2] = [0x2E4,"float"]
  1449.     global $Atrib_Damage_Percent_Reduction_From_Type[2] = [0x2E5,"float"]
  1450.     global $Atrib_Damage_Percent_Bonus_Vs_Monster_Type[2] = [0x2E6,"float"]
  1451.     global $Atrib_Damage_Percent_Bonus_Vs_Elites[2] = [0x2E7,"float"]
  1452.     global $Atrib_Item_Manipulation_Timeout[2] = [0x2E8,"int"]
  1453.     global $Atrib_Picked_Up_Time[2] = [0x2E9,"int"]
  1454.     global $Atrib_Unequipped_Time[2] = [0x2EA,"int"]
  1455.     global $Atrib_Last_ACD_Killed_Time[2] = [0x2EB,"int"]
  1456.     global $Atrib_CannotDieDuring[2] = [0x2EC,"int"]
  1457.     global $Atrib_Weapon_On_Hit_Fear_Proc_Chance[2] = [0x2ED,"float"]
  1458.     global $Atrib_Weapon_On_Hit_Stun_Proc_Chance[2] = [0x2EE,"float"]
  1459.     global $Atrib_Weapon_On_Hit_Blind_Proc_Chance[2] = [0x2EF,"float"]
  1460.     global $Atrib_Weapon_On_Hit_Freeze_Proc_Chance[2] = [0x2F0,"float"]
  1461.     global $Atrib_Weapon_On_Hit_Chill_Proc_Chance[2] = [0x2F1,"float"]
  1462.     global $Atrib_Weapon_On_Hit_Slow_Proc_Chance[2] = [0x2F2,"float"]
  1463.     global $Atrib_Weapon_On_Hit_Immobilize_Proc_Chance[2] = [0x2F3,"float"]
  1464.     global $Atrib_Weapon_On_Hit_Knockback_Proc_Chance[2] = [0x2F4,"float"]
  1465.     global $Atrib_Weapon_On_Hit_Bleed_Proc_Chance[2] = [0x2F5,"float"]
  1466.     global $Atrib_Weapon_On_Hit_Bleed_Proc_Damage_Base[2] = [0x2F6,"float"]
  1467.     global $Atrib_Weapon_On_Hit_Bleed_Proc_Damage_Delta[2] = [0x2F7,"float"]
  1468.     global $Atrib_Weapon_On_Hit_Fear_Proc_Chance_MainHand[2] = [0x2F8,"float"]
  1469.     global $Atrib_Weapon_On_Hit_Fear_Proc_Chance_OffHand[2] = [0x2F9,"float"]
  1470.     global $Atrib_Weapon_On_Hit_Fear_Proc_Chance_CurrentHand[2] = [0x2FA,"float"]
  1471.     global $Atrib_Weapon_On_Hit_Stun_Proc_Chance_MainHand[2] = [0x2FB,"float"]
  1472.     global $Atrib_Weapon_On_Hit_Stun_Proc_Chance_OffHand[2] = [0x2FC,"float"]
  1473.     global $Atrib_Weapon_On_Hit_Stun_Proc_Chance_CurrentHand[2] = [0x2FD,"float"]
  1474.     global $Atrib_Weapon_On_Hit_Blind_Proc_Chance_MainHand[2] = [0x2FE,"float"]
  1475.     global $Atrib_Weapon_On_Hit_Blind_Proc_Chance_OffHand[2] = [0x2FF,"float"]
  1476.     global $Atrib_Weapon_On_Hit_Blind_Proc_Chance_CurrentHand[2] = [0x300,"float"]
  1477.     global $Atrib_Weapon_On_Hit_Freeze_Proc_Chance_MainHand[2] = [0x301,"float"]
  1478.     global $Atrib_Weapon_On_Hit_Freeze_Proc_Chance_OffHand[2] = [0x302,"float"]
  1479.     global $Atrib_Weapon_On_Hit_Freeze_Proc_Chance_CurrentHand[2] = [0x303,"float"]
  1480.     global $Atrib_Weapon_On_Hit_Chill_Proc_Chance_MainHand[2] = [0x304,"float"]
  1481.     global $Atrib_Weapon_On_Hit_Chill_Proc_Chance_OffHand[2] = [0x305,"float"]
  1482.     global $Atrib_Weapon_On_Hit_Chill_Proc_Chance_CurrentHand[2] = [0x306,"float"]
  1483.     global $Atrib_Weapon_On_Hit_Slow_Proc_Chance_MainHand[2] = [0x307,"float"]
  1484.     global $Atrib_Weapon_On_Hit_Slow_Proc_Chance_OffHand[2] = [0x308,"float"]
  1485.     global $Atrib_Weapon_On_Hit_Slow_Proc_Chance_CurrentHand[2] = [0x309,"float"]
  1486.     global $Atrib_Weapon_On_Hit_Immobilize_Proc_Chance_MainHand[2] = [0x30A,"float"]
  1487.     global $Atrib_Weapon_On_Hit_Immobilize_Proc_Chance_OffHand[2] = [0x30B,"float"]
  1488.     global $Atrib_Weapon_On_Hit_Immobilize_Proc_Chance_CurrentHand[2] = [0x30C,"float"]
  1489.     global $Atrib_Weapon_On_Hit_Knockback_Proc_Chance_MainHand[2] = [0x30D,"float"]
  1490.     global $Atrib_Weapon_On_Hit_Knockback_Proc_Chance_OffHand[2] = [0x30E,"float"]
  1491.     global $Atrib_Weapon_On_Hit_Knockback_Proc_Chance_CurrentHand[2] = [0x30F,"float"]
  1492.     global $Atrib_Weapon_On_Hit_Bleed_Proc_Chance_MainHand[2] = [0x310,"float"]
  1493.     global $Atrib_Weapon_On_Hit_Bleed_Proc_Chance_OffHand[2] = [0x311,"float"]
  1494.     global $Atrib_Weapon_On_Hit_Bleed_Proc_Chance_CurrentHand[2] = [0x312,"float"]
  1495.     global $Atrib_Weapon_On_Hit_Bleed_Proc_Damage_Base_MainHand[2] = [0x313,"float"]
  1496.     global $Atrib_Weapon_On_Hit_Bleed_Proc_Damage_Base_OffHand[2] = [0x314,"float"]
  1497.     global $Atrib_Weapon_On_Hit_Bleed_Proc_Damage_Base_CurrentHand[2] = [0x315,"float"]
  1498.     global $Atrib_Weapon_On_Hit_Bleed_Proc_Damage_Delta_MainHand[2] = [0x316,"float"]
  1499.     global $Atrib_Weapon_On_Hit_Bleed_Proc_Damage_Delta_OffHand[2] = [0x317,"float"]
  1500.     global $Atrib_Weapon_On_Hit_Bleed_Proc_Damage_Delta_CurrentHand[2] = [0x318,"float"]
  1501.     global $Atrib_Power_Damage_Percent_Bonus[2] = [0x319,"float"]
  1502.     global $Atrib_Power_Resource_Reduction[2] = [0x31A,"float"]
  1503.     global $Atrib_Power_Cooldown_Reduction[2] = [0x31B,"float"]
  1504.     global $Atrib_Power_Duration_Increase[2] = [0x31C,"float"]
  1505.     global $Atrib_Power_Crit_Percent_Bonus[2] = [0x31D,"float"]
  1506.     global $Atrib_Weapon_Crit_Chance[2] = [0x31E,"float"]
  1507.     global $Atrib_Weapon_Crit_Chance_MainHand[2] = [0x31F,"float"]
  1508.     global $Atrib_Weapon_Crit_Chance_OffHand[2] = [0x320,"float"]
  1509.     global $Atrib_Weapon_Crit_Chance_CurrentHand[2] = [0x321,"float"]
  1510.     global $Atrib_Strength_Item[2] = [0x322,"float"]
  1511.     global $Atrib_Dexterity_Item[2] = [0x323,"float"]
  1512.     global $Atrib_Intelligence_Item[2] = [0x324,"float"]
  1513.     global $Atrib_Vitality_Item[2] = [0x325,"float"]
  1514.     global $Atrib_Item_Level_Requirement_Reduction[2] = [0x326,"int"]
  1515.     global $Atrib_Item_Durability_Percent_Bonus[2] = [0x327,"float"]
  1516.     global $Atrib_Item_Indestructible[2] = [0x328,"int"]
  1517.     global $Atrib_Core_Attributes_From_Item_Bonus_Multiplier[2] = [0x329,"float"]
  1518.     global $Atrib_Waiting_To_Accept_Resurrection[2] = [0x32A,"int"]
  1519.     global $Atrib_Ghosted[2] = [0x32B,"int"]
  1520.     global $Atrib_Special_Inventory_Has_Sold[2] = [0x32C,"int"]
  1521.     global $Atrib_Power_Channel_Lockout_Time[2] = [0x32D,"int"]
  1522.     global $Atrib_Power_Buff_0_Lockout_Time[2] = [0x32E,"int"]
  1523.     global $Atrib_Power_Buff_1_Lockout_Time[2] = [0x32F,"int"]
  1524.     global $Atrib_Power_Buff_2_Lockout_Time[2] = [0x330,"int"]
  1525.     global $Atrib_Power_Buff_3_Lockout_Time[2] = [0x331,"int"]
  1526.     global $Atrib_Power_Buff_4_Lockout_Time[2] = [0x332,"int"]
  1527.     global $Atrib_Power_Buff_5_Lockout_Time[2] = [0x333,"int"]
  1528.     global $Atrib_Power_Buff_6_Lockout_Time[2] = [0x334,"int"]
  1529.     global $Atrib_Power_Buff_7_Lockout_Time[2] = [0x335,"int"]
  1530.     global $Atrib_Known_By_Owner[2] = [0x336,"int"]
  1531.     global $Atrib_Never_Deactivates[2] = [0x337,"int"]
  1532.     global $Atrib_Account_Under_Review[2] = [0x338,"int"]
  1533.     global $Atrib_Projectile_Detonate_Time[2] = [0x339,"int"]
  1534. EndFunc
  1535.  
  1536. ;;================================================================================
  1537. ;;Debug__IterateActorAtribsAll ;NOT INTENDED FOR USE!!
  1538. ;;================================================================================
  1539. func Debug__IterateActorAtribsAll($GUID)
  1540.     IterateLocalActor()
  1541.     $_Count = _MemoryRead($_ActorAtrib_Count, $d3, 'int')
  1542.     $CurrentOffset = $_ActorAtrib_4
  1543.     dim $ACTORatrib[9]
  1544.     for $i = 0 to $_Count
  1545.         $ACTORatrib[1] = _MemoryRead($CurrentOffset, $d3, 'ptr')
  1546.         $result = _ArraySearch($__ACTOR,$ACTORatrib[1], 0 , 0 , 0 , 1 , 1 , 3)
  1547.         $ACTORatrib[2] = $result
  1548.         if $result > -1 Then
  1549.             $ACTORatrib[2] = $__ACTOR[$result][2]
  1550.             $test = _MemoryRead($CurrentOffset+0x10, $d3, 'ptr')
  1551.             $test = _MemoryRead($test+0x270, $d3, 'ptr')
  1552.             $test = _MemoryRead($test, $d3, 'ptr')
  1553.             $ACTORatrib[3] = _MemoryRead($test+0x14, $d3, 'float')
  1554.             ConsoleWrite($i  & " " &$CurrentOffset & " " & $CurrentOffset+0x10 & @TAB &" Name: " & $ACTORatrib[2]& @crlf)
  1555.         EndIf
  1556.         $CurrentOffset = $CurrentOffset + $ofs_ActorAtrib_StrucSize
  1557.        
  1558.     Next
  1559. EndFunc
  1560.  
  1561. ;;=================================================================================================================================================================================================
  1562. ;Best Regards,
  1563. ;8 8888      88 b.             8 8 8888     ,88' b.             8     ,o888888o.  `8.`888b                 ,8' b.             8 8 8888888888   8 888888888o.       .-----.   .----.  .---. .-----.           
  1564. ;8 8888      88 888o.          8 8 8888    ,88'  888o.          8  . 8888     `88. `8.`888b               ,8'  888o.          8 8 8888         8 8888    `^888.   / ,-.   \ /  ..  \/_   |/ ,-.   \
  1565. ;8 8888      88 Y88888o.       8 8 8888   ,88'   Y88888o.       8 ,8 8888       `8b `8.`888b             ,8'   Y88888o.       8 8 8888         8 8888        `88. '-'  |  |.  /  \  .|   |'-'  |  |
  1566. ;8 8888      88 .`Y888888o.    8 8 8888  ,88'    .`Y888888o.    8 88 8888        `8b `8.`888b     .b    ,8'    .`Y888888o.    8 8 8888         8 8888         `88    .'  / |  |  '  ||   |   .'  /
  1567. ;8 8888      88 8o. `Y888888o. 8 8 8888 ,88'     8o. `Y888888o. 8 88 8888         88  `8.`888b    88b  ,8'     8o. `Y888888o. 8 8 888888888888 8 8888          88  .'  /__ '  \  /  '|   | .'  /__
  1568. ;8 8888      88 8`Y8o. `Y88888o8 8 8888 88'      8`Y8o. `Y88888o8 88 8888         88   `8.`888b .`888b,8'      8`Y8o. `Y88888o8 8 8888         8 8888          88 |       | \  `'  / |   ||       |
  1569. ;8 8888      88 8   `Y8o. `Y8888 8 888888<       8   `Y8o. `Y8888 88 8888        ,8P    `8.`888b8.`8888'       8   `Y8o. `Y8888 8 8888         8 8888         ,88 `-------'  `---''  `---'`-------'
  1570. ;` 8888     ,8P 8      `Y8o. `Y8 8 8888 `Y8.     8      `Y8o. `Y8 `8 8888       ,8P      `8.`888`8.`88'        8      `Y8o. `Y8 8 8888         8 8888        ,88'
  1571. ;  8888   ,d8P  8         `Y8o.` 8 8888   `Y8.   8         `Y8o.`  ` 8888     ,88'        `8.`8' `8,`'         8         `Y8o.` 8 8888         8 8888    ,o88P'  
  1572. ;   `Y88888P'   8            `Yo 8 8888     `Y8. 8            `Yo     `8888888P'           `8.`   `8'          8            `Yo 8 888888888888 8 888888888P'  
  1573. ;;=================================================================================================================================================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement