Thanks for the cheat. 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?
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.
<?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>
Well, this still works. At least part of what I needed. Though I still don't understand how to initialize the care package. I do get deliveries but it's always random. Whatever I set in care package is ignored.