I updated the attribute search function in the script a little, this should be a bit quicker, at least it is on my pc.
If you see any issues in this code, lets talk about it
Code:
Func IterateActorAtribs2($_GUID, $_REQ)
$ret = GetAttribute(BitOR($_REQ[0], 0xFFFFF000))
$val = _MemoryRead($ret, $d3, $_REQ[1])
return $val
EndFunc
Func GetAttribute($offset)
$CAttribFormula = _MemoryRead($ActorAtrib_4 + 0x10, $d3, 'ptr')
$_418 = _MemoryRead($CAttribFormula + 0x418, $d3, 'ptr')
$AttributesMap = _MemoryRead($CAttribFormula + 0x8, $d3, 'ptr')
$IndexMask = BitAND($_418, ($offset ^ (BitShift($offset, 0x10))))
$_res = ($AttributesMap + 4 * $IndexMask)
$result = _MemoryRead($_res, $d3, 'ptr')
If $result <> 0 Then
While _MemoryRead($result, $d3, 'ptr') <> $offset
$result = _MemoryRead($result, $d3, 'ptr')
If $result = 0 Then
ExitLoop
EndIf
Wend
EndIf
return $result
EndFunc