scjackson wrote: ↑Fri Aug 26, 2022 2:50 pm
It's a shame that for Max Maturity, Max Fertility, Max Incubation, Mature Age apply to the entire map. It's very funny to see all the critters lay eggs all at the same time but very impractical. Would it be able to apply to selected unit?
You don't want the extra meat,then ?
You can always explore the SelectedTarget component if you can't find your desire options in the table.
Here's a script, need to enable SelectedTarget script first, you can set a hotkey for this script, though.
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>37595</ID>
<Description>"SelectedTarget:Fertility/Incubation/Age/AttributeLevel"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{$lua}
if syntaxcheck then return end
[ENABLE]
local list,pointer,ca,cl,cn=getAddress('[[SelectedTarget]+10]+30')
for i=0,readInteger(list+0x10)-1 do
pointer=readPointer(readPointer(readPointer(list)+i*0x10+8)+0x28)
ca,cl,cn=mono_object_findRealStartOfObject(pointer)
--printf('%X:%s',pointer,classname)
if cn:find('Modifiers') then
pointer=getAddress(string.format('[[%X+Modifiers.amounts]+Amounts.ModifierList]+10',ca))
for i=0,readInteger(pointer+8)-1 do
cl=readPointer(readPointer(pointer)+i*8+0x20)
cn=readPointer(string.format('[%X+AmountInstance.modifier]+Amount.Id',cl))
cn=readString(cn+0x14,readInteger(cn+0x10)*2,true)
if cn:find('Fertility')then writeFloat(cl+getAddress('AmountInstance.value'),100)end
if cn:find('Age')then writeFloat(cl+getAddress('AmountInstance.value'),10)end
if cn:find('Incubation')then writeFloat(cl+getAddress('AmountInstance.value'),100)end
end
end
if cn:find('AttributeLevels') then
pointer=getAddress(string.format('[%X+AttributeLevels.levels]+10',ca))
for i=0,readInteger(pointer+8)-1 do
cl=readPointer(readPointer(pointer)+i*8+0x20)
writeInteger(cl+getAddress('AttributeLevel.level'),1000)
end
end
end
[DISABLE]
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>