闲来无聊搞了个漂泊牧歌的CT表
<?xml version="1.0" encoding="utf-8"?><CheatTable CheatEngineTableVersion="28">
<CheatEntries>
<!-- ========== 全局时间流速(推荐:2.0~4.0) ========== -->
<CheatEntry>
<ID>10</ID>
<Description>"全局时间流速 x4(可调)"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>
aobscan(TIMESCALE,F3 0F 59 C1 F3 0F 58) // timescale = *somefloat
alloc(newmem_ts,$1000)
label(originalcode)
label(return_ts)
newmem_ts:
// 原指令:mulss xmm0,xmm1
// 我们改成:mulss xmm0,四倍
movss xmm1,// 这里改倍率:2.0=2倍,4.0=4倍
mulss xmm0,xmm1
jmp return_ts
originalcode:
mulss xmm0,xmm1
jmp return_ts
TIMESCALE:
jmp newmem_ts
nop
return_ts:
registersymbol(TIMESCALE)
TIMESCALE:
db F3 0F 59 C1
unregistersymbol(TIMESCALE)
dealloc(newmem_ts)
</AssemblerScript>
</CheatEntry>
<!-- ========== 生产速度 x4(和你改代码一样) ========== -->
<CheatEntry>
<ID>11</ID>
<Description>"生产速度 x4"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>
aobscan(PRODSPEED,F3 0F 59 88 80 00 00 00) // productionTimeMult
alloc(newmem_prod,$1000)
label(return_prod)
newmem_prod:
mulss xmm0, // 生产时间 ×4 速度
jmp return_prod
PRODSPEED:
jmp newmem_prod
nop
return_prod:
registersymbol(PRODSPEED)
PRODSPEED:
db F3 0F 59 88 80 00 00 00
unregistersymbol(PRODSPEED)
dealloc(newmem_prod)
</AssemblerScript>
</CheatEntry>
<!-- ========== 收集速度 x4(对应你那段 C# 逻辑) ========== -->
<CheatEntry>
<ID>12</ID>
<Description>"收集速度 x4"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>
aobscan(COLLECTSPEED,F3 0F 59 81 4C 01 00 00) // collectTimeReduction
alloc(newmem_col,$1000)
label(return_col)
newmem_col:
mulss xmm0, // 收集时间 ×4 速度
jmp return_col
COLLECTSPEED:
jmp newmem_col
nop
return_col:
registersymbol(COLLECTSPEED)
COLLECTSPEED:
db F3 0F 59 81 4C 01 00 00
unregistersymbol(COLLECTSPEED)
dealloc(newmem_col)
</AssemblerScript>
</CheatEntry>
<!-- ========== 工人移动速度 x2 ========== -->
<CheatEntry>
<ID>13</ID>
<Description>"工人移动速度 x2"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>
aobscan(WALKSPD,F3 0F 59 05 ?? ?? ?? ??) // workerMoveSpeed
alloc(newmem_walk,$1000)
label(return_walk)
newmem_walk:
mulss xmm0, // 移速×2
jmp return_walk
WALKSPD:
jmp newmem_walk
nop
return_walk:
registersymbol(WALKSPD)
WALKSPD:
db F3 0F 59 05
unregistersymbol(WALKSPD)
dealloc(newmem_walk)
</AssemblerScript>
</CheatEntry>
<!-- ========== 你原来的:建筑内资源不减 ========== -->
<CheatEntry>
<ID>2</ID>
<Description>"建筑内资源不减(小人开始搬运资源后开启)"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>
aobscan(INJECT,49 63 46 0C 2B C7 41)
alloc(newmem,$1000)
label(code)
label(return)
label(end)
newmem:
code:
movsxd rax,dword ptr
sub eax,edi
push eax
movzx eax,byte ptr
cmp eax,04
jne end
movzx eax,byte ptr
cmp eax,02
jb end
pop eax
jmp return
end:
pop eax
add eax,edi
jmp return
INJECT:
jmp newmem
nop
return:
registersymbol(INJECT)
INJECT:
db 49 63 46 0C 2B C7
unregistersymbol(INJECT)
dealloc(newmem)
</AssemblerScript>
</CheatEntry>
</CheatEntries>
<UserdefinedSymbols>
<Symbol Name="4.0" Type="Float" Value="4.0"/>
<Symbol Name="2.0" Type="Float" Value="2.0"/>
</UserdefinedSymbols>
</CheatTable>
保存成.CT文件,用CE加载,勾选,等待一会自动扫描内存就好了。(小人开始搬运资源后再勾选开启)
https://att.3dmgame.com/att/forum/202604/16/115048e99d0q0jju0dd0ga.jpghttps://att.3dmgame.com/att/forum/202604/16/114231dpcppuu6z6c6rrip.jpghttps://att.3dmgame.com/att/forum/202603/29/092405x8w57fubbeuxuj5w.jpg
页:
[1]