Cheat EngineでLuaを実行するには以下の4パターンあります。
1.Auto Assemblerスクリプト内で{$lua}と記述する。これとは違う方法で
luaCallもあります。
2.Memory View -> Tools -> Lua Engine
純粋にLuaを実行し、テストしたい場合に使用します。
3.Table -> Show Cheat Table Lua Script
ここにLuaを記述するとCTに関連付けられ、CTを開いたときに実行されるようになります。
4.C:\Program Files\Cheat Engine 7.2\autorun
autorunフォルダに.luaファイルを置くとCheat Engine起動時に実行されます。
ネット上からダウンロードした拡張機能はこのフォルダに入れましょう。
1番が主力になります。Auto Assemblerで実装しにくいものはLuaに切り替ると良いです。
特定のキーを押している間だけ値を固定する
{$lua}
if syntaxcheck then return end
[ENABLE]
t = createTimer()
t.Interval = 10
t.OnTimer = function()
if isKeyPressed(VK_L) then
writeInteger('["ac_client.exe"+0010F4F4]+148',30)
end
end
[DISABLE]
t.destroy()
参考動画
Luaスクリプトの解説
{$lua}はAAスクリプト内でluaを記述する際に必要な宣言
Auto Assemblerに戻すには{$asm}と記述する
2行目は構文チェックを無効化している
[ENABLE]セクション
createTimerでTimerクラスのインスタンスを生成
Intervalには指定された関数を何ミリ秒ごとに実行するかを、
OnTimerには実行する関数を代入する
function()
if isKeyPressed(VK_L) then
writeInteger('["ac_client.exe"+0010F4F4]+148',30)
end
end
上記の関数が10ミリ秒ごとに繰り返し実行される
isKeyPressedはgetAsyncKeyStateのluaバージョン
指定されたキーが押されている場合はtrueが返される
trueならwriteIntegerで指定されたアドレスに値を書き込む
[DISABLE]セクション
スクリプトをオフにしたときにdestroyメソッドを呼び出し、インスタンスをメモリから削除
自動でアタッチ
PROCESS_NAME = 'Game.exe'
local autoAttachTimer = nil
local autoAttachTimerInterval = 100
local autoAttachTimerTicks = 0
local autoAttachTimerTickMax = 5000
local function autoAttachTimer_tick(timer)
if getProcessIDFromProcessName(PROCESS_NAME) ~= nil then
timer.destroy()
openProcess(PROCESS_NAME)
elseif autoAttachTimerTickMax > 0 and autoAttachTimerTicks >= autoAttachTimerTickMax then
timer.destroy()
end
autoAttachTimerTicks = autoAttachTimerTicks + 1
end
autoAttachTimer = createTimer(MainForm)
autoAttachTimer.Interval = autoAttachTimerInterval
autoAttachTimer.OnTimer = autoAttachTimer_tick
Table -> Show Cheat Table Lua Scriptを開き、上記のLuaスクリプトを貼り付ける。
'Game.exe'をアタッチしたいプロセス名に書き換えれば完成!
CTを開くとスクリプトが実行され、自動でアタッチされるようになります。
CTに関連付けされているLuaスクリプトを自動で実行するかどうかは、
Edit -> Settings -> General Settingsから変更できます。
CE Luaのドキュメントについて
Cheat Engine LuaのドキュメントはメニューバーのHelpにあります。
どんな関数があるのか、関数の返り値、引数は何かを確認できるのですが、
そのままだとsyntax highlightが適用されないため読みづらいです。
これの解決策として、メニューバーのTableからShow Cheat Table Lua Scriptを開き、
そこに先ほどのドキュメントをコピペすると読みやすくなります。
目的の関数の仕様を調べたいときは、Ctrl + Rを押してから検索すると確認できます。
追記
上記サイトの日本語化ファイルをダウンロードすると、日本語化されたCE Luaのドキュメントが同封されています。感謝!
※Ver 6.8.2時点での翻訳なので、情報が古くなっています。
GitHubにある最新のドキュメント(英語)と併用して不足分を補填すると良いです。
- 関連記事
-