3dm_16590774 发表于 2026-5-27 20:58

闲来无聊搞了个漂泊牧歌的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加载,勾选,等待一会自动扫描内存就好了。(小人开始搬运资源后再勾选开启)

恶魔的饱食 发表于 2026-5-27 21:42

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]
查看完整版本: 闲来无聊搞了个漂泊牧歌的CT表