<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="38">
<CheatEntries>
<CheatEntry>
<ID>0</ID>
<Description>"test_named_pointer_offset"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>globalalloc(___,$1000)
___:/// world->+00: playerList, +08: enemyList
dq ___+100, ___+200, 0
___+80: /// choseListIdx
dq 0
___+0a0:/// chosePlayerIdx
dq 0
___+0c0:/// choseEnemyIdx
dq 0
___+0e0:/// choseCharIdx
dq 0
___+100: /// playerList-> +00: count, +08:first [0], +010: [1] and so on
dq 3, ___+410, ___+430, ___+450
___+200: /// enemyList-> +00: count, +08:first [0], +010: [1] and so on
dq 3, ___+610, ___+630, ___+650
___+410: /// charcter-> +00: lvl, +04:str +08: vit +0c: dex +10: name
dd #1,#111,#121,#131
db 'Tina',0
___+430: /// charcter-> +00: lvl, +04:str +08: vit +0c: dex +10: name
dd #2,#112,#122,#132
db 'Rock',0
___+450: /// charcter-> +00: lvl, +04:str +08: vit +0c: dex +10: name
dd #3,#113,#123,#133
db 'Celes',0
___+610: /// charcter-> +00: lvl, +04:str +08: vit +0c: dex +10: name
dd #11,#211,#212,#213
db 'Kafka',0
___+630: /// charcter-> +00: lvl, +04:str +08: vit +0c: dex +10: name
dd #22,#221,#222,#223
db 'Omega',0
___+650: /// charcter-> +00: lvl, +04:str +08: vit +0c: dex +10: name
dd #33,#231,#232,#233
db 'TheEnd',0
[ENABLE]
{$lua}
--
local function reg(sym)return function(addr)
addr = type(addr)=='number' and addr or getAddressSafe(addr)
if addr then registerSymbol(sym, addr)end -- without third paramter set as true, the symbol is saved to ct table
end end
local function setSyms(cnt)
if not getAddressSafe'___' and cnt>0 then
synchronize(createTimer, 1000, setSyms,cnt-1)
else
reg'aWorld' '___'
reg'ofs_World.PlayerList' '0'
reg'ofs_World.EnemyList' '8'
reg'aChoseListIdx' "___+80"
reg'aChosePlayerIdx' "___+a0"
reg'aChoseEnemyIdx' "___+c0"
reg'aChoseCharIdx' "___+e0"
reg'aPlayerList' "___+100"
reg'aEnemyList' "___+200"
reg"ofs_list.Count" "0"
reg"ofs_list.First" "8"
reg"ofs_char.lvl" "0"
reg"ofs_char.str" "4"
reg"ofs_char.vit" "8"
reg"ofs_char.dex" "c"
reg"ofs_char.name" "10"
end
end
if not syntaxcheck then synchronize(createTimer, 1000, setSyms, 10)end
[DISABLE]
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>19</ID>
<Description>"playerIdx"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:first
1:second
2:third
</DropDownList>
<LastState Value="0" RealAddress="005310A0"/>
<ShowAsSigned>1</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>aChosePlayerIdx</Address>
</CheatEntry>
<CheatEntry>
<ID>18</ID>
<Description>"enemyIdx"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:first
1:second
2:third
</DropDownList>
<LastState Value="0" RealAddress="005310C0"/>
<ShowAsSigned>1</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>aChoseEnemyIdx</Address>
</CheatEntry>
<CheatEntry>
<ID>2</ID>
<Description>"chosen Player [a group created with an address]"</Description>
<LastState Value="" RealAddress="00000000"/>
<ShowAsSigned>1</ShowAsSigned>
<GroupHeader>1</GroupHeader>
<Address>___+00</Address>
<Offsets>
<Offset>0</Offset>
<Offset>8+(DWORD)[aChosePlayerIdx]*8</Offset>
</Offsets>
<CheatEntries>
<CheatEntry>
<ID>3</ID>
<Description>"lvl"</Description>
<ShowAsSigned>1</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+ofs_char.lvl</Address>
</CheatEntry>
<CheatEntry>
<ID>7</ID>
<Description>"str"</Description>
<ShowAsSigned>1</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+ofs_char.str</Address>
</CheatEntry>
<CheatEntry>
<ID>6</ID>
<Description>"vit"</Description>
<ShowAsSigned>1</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+ofs_char.vit</Address>
</CheatEntry>
<CheatEntry>
<ID>5</ID>
<Description>"dex"</Description>
<ShowAsSigned>1</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+ofs_char.dex</Address>
</CheatEntry>
<CheatEntry>
<ID>4</ID>
<Description>"name"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>String</VariableType>
<Length>16</Length>
<Unicode>0</Unicode>
<CodePage>0</CodePage>
<ZeroTerminate>1</ZeroTerminate>
<Address>+ofs_char.name</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>11</ID>
<Description>"chosen Enemy"</Description>
<LastState Value="" RealAddress="00000000"/>
<ShowAsSigned>1</ShowAsSigned>
<GroupHeader>1</GroupHeader>
<Address>___+08</Address>
<Offsets>
<Offset>0</Offset>
<Offset>8+(DWORD)[aChoseEnemyIdx]*8</Offset>
</Offsets>
<CheatEntries>
<CheatEntry>
<ID>12</ID>
<Description>"lvl"</Description>
<ShowAsSigned>1</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+ofs_char.lvl</Address>
</CheatEntry>
<CheatEntry>
<ID>13</ID>
<Description>"str"</Description>
<ShowAsSigned>1</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+ofs_char.str</Address>
</CheatEntry>
<CheatEntry>
<ID>14</ID>
<Description>"vit"</Description>
<ShowAsSigned>1</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+ofs_char.vit</Address>
</CheatEntry>
<CheatEntry>
<ID>15</ID>
<Description>"dex"</Description>
<ShowAsSigned>1</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+ofs_char.dex</Address>
</CheatEntry>
<CheatEntry>
<ID>16</ID>
<Description>"name"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>String</VariableType>
<Length>16</Length>
<Unicode>0</Unicode>
<CodePage>0</CodePage>
<ZeroTerminate>1</ZeroTerminate>
<Address>+ofs_char.name</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>20</ID>
<Description>"chosen Character"</Description>
<Options moHideChildren="1"/>
<LastState Value="" Activated="1" RealAddress="00000000"/>
<ShowAsSigned>1</ShowAsSigned>
<GroupHeader>1</GroupHeader>
<Address>___+(DWORD)[aChoseListIdx]*8</Address>
<Offsets>
<Offset>0</Offset>
<Offset>8+(DWORD)[aChoseCharIdx]*8</Offset>
</Offsets>
<CheatEntries>
<CheatEntry>
<ID>26</ID>
<Description>"listIdx"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:PlayerList
1:EnemyList
</DropDownList>
<LastState Value="0" RealAddress="00531080"/>
<ShowAsSigned>1</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>aChoseListIdx</Address>
</CheatEntry>
<CheatEntry>
<ID>27</ID>
<Description>"charIdx"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:first
1:second
2:third
</DropDownList>
<LastState Value="1" RealAddress="005310E0"/>
<ShowAsSigned>1</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>aChoseCharIdx</Address>
</CheatEntry>
<CheatEntry>
<ID>28</ID>
<Description>"---"</Description>
<LastState Value="" RealAddress="00000000"/>
<GroupHeader>1</GroupHeader>
</CheatEntry>
<CheatEntry>
<ID>29</ID>
<Description>"lvl"</Description>
<ShowAsSigned>1</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+ofs_char.lvl</Address>
</CheatEntry>
<CheatEntry>
<ID>22</ID>
<Description>"str"</Description>
<ShowAsSigned>1</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+ofs_char.str</Address>
</CheatEntry>
<CheatEntry>
<ID>23</ID>
<Description>"vit"</Description>
<ShowAsSigned>1</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+ofs_char.vit</Address>
</CheatEntry>
<CheatEntry>
<ID>24</ID>
<Description>"dex"</Description>
<ShowAsSigned>1</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+ofs_char.dex</Address>
</CheatEntry>
<CheatEntry>
<ID>25</ID>
<Description>"name"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>String</VariableType>
<Length>16</Length>
<Unicode>0</Unicode>
<CodePage>0</CodePage>
<ZeroTerminate>1</ZeroTerminate>
<Address>+ofs_char.name</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
<UserdefinedSymbols/>
<LuaScript>
</LuaScript>
</CheatTable>