include("database.lua"); include("addresses.lua"); include("classes/player.lua"); include("classes/inventory.lua"); include("classes/camera.lua"); include("classes/waypoint.lua"); include("classes/waypointlist.lua"); include("classes/waypointlist_wander.lua"); include("classes/node.lua"); include("settings.lua"); include("functions.lua"); settings.load(); database.load(); staticbase_party = 0x00A00118 local proc = getProc(); local dynptr = memoryReadUInt( proc, staticbase_party ) + 0x68; local tableptr = memoryReadUInt( proc, dynptr ) ; printf("Bases: static = 0x%X, dynamic = 0x%X, table = 0x%X\n\n", staticbase_party, dynptr, tableptr) PartyEntry = class( function( self, slot ) self.Address = tableptr + ( ( slot - 1 ) * 0x60 ); self.InUse = false; self.Name = ""; if ( self.Address ~= nil and self.Address ~= 0 ) then self:update(); end; end ); function PartyEntry:update() local oldId = self.Id; if (memoryReadInt( proc, self.Address ) == 1) then self.InUse = true self.Name = memoryReadString( proc, self.Address + 0x08) end -- printf( "Address: %X, InUse: %s\n", self.Address, self.InUse ); end Party = class( function( self ) self.PartyEntries = {}; for slotNumber = 1, 32, 1 do self.PartyEntries[slotNumber] = PartyEntry( slotNumber ); if(self.PartyEntries[slotNumber].InUse) then printf( "Party Member [" .. tostring(slotNumber) .. "]: " .. self.PartyEntries[slotNumber].Name .. "\n") end; end end ); function main() pty = Party() end startMacro(main, true);