Elin
Not enough ratings
スロットマシン自動化AutoHotkeyスクリプト
By Kebab-
無料のスクリプトエンジン「AutoHotkey」を使って、パルミアのカジノなどにあるスロットマシンを自動で行うスクリプトです。
※使用は自己責任でお願いします。また、複数環境で確認していないため、正常に動作しない可能性があります。
   
Award
Favorite
Favorited
Unfavorite
はじめに
このスクリプトについて
Elin各地にあるスロットマシンを自動化し、幸運のエヘカトル様を一列に揃えるスクリプトです。
betを100にすれば一瞬で数十万コインが稼げるので、カジノの景品交換やコインをハンマーで破壊する製作スキル稼ぎなどに役立つかなと思います。
たまに絵柄が揃わない場合がありますが、大目に見てもらえると助かります。

このスクリプトは、「セットアップ用スクリプト」と「メインスクリプト」に分けて作成されています。
セットアップが面倒な場合は「すぐに使いたい場合」のセクションに飛んでください。

AutoHotkey v2のインストール
AutoHotkeyは、Windows 用の無料のオープンソース スクリプト言語です。これを使用すると、フォーム入力、自動クリック、マクロなど、あらゆる種類のタスクに対して、小規模から複雑なスクリプトを簡単に作成できます。

以下のリンクからAutoHotkey v2をダウンロード、インストールしてください。
https://www.autohotkey.com/
セットアップ用スクリプトの作成
1. AutoHotkey Dashアプリケーションを開き、「New Script」をクリックします。
2. ファイル名を「elin_auto_slot_setup.ahk」にして「Create」をクリックします。
3. 作成されたファイルを右クリックし、内容を編集します。
4. 下記のスクリプトをコピー&ペーストし、保存して閉じます。

; elin_auto_slot_setup.ahk #Requires AutoHotkey v2.0 ; Initial Setup SendMode "Input" ; Declare ease of use variables CoordFileLoc := A_WorkingDir "\slot_coords.txt" ApplicationName := "Elin.exe" MouseX := 0 MouseY := 0 ; create a txt file to store the coordinates in and check if it fails for debugging if (FileExist(CoordFileLoc)) { try { FileDelete CoordFileLoc } catch as Err { MsgBox "Can't Open '" CoordFileLoc "' ." . "'n'n" Type(Err) ": " Err.Message Exit } } ; Gain Focus for main game window if not WinActive("ahk_exe" ApplicationName) if WinExist("ahk_exe" ApplicationName) WinActivate ; setup where we move the mouse in the right places and save the Positions MsgBox " ( 幸運のエヘカトルの絵柄の左上角にカーソルを移動してください Enterを押すとY座標を取得します )",, 4096 WinActivate sleep 50 ; Store the coordinates in the txt file, repeat this a bunch of times MouseGetPos &MouseX, &MouseY ; attempt to create the new coord file and check if falure for debugging try { FileAppend MouseY "`n", CoordFileLoc } catch as Err { MsgBox "Can't Open '" CoordFileLoc "' ." . "'n'n" Type(Err) ": " Err.Message Exit } MsgBox " ( スロット左列中段の左側の突起にカーソルを移動してください Enterを押すとX座標を取得します )",, 4096 WinActivate sleep 50 MouseGetPos &MouseX, &MouseY FileAppend MouseX "`n", CoordFileLoc MsgBox " ( スロット右列中段の右側の突起にカーソルを移動してください Enterを押すとX座標を取得します )",, 4096 WinActivate sleep 50 MouseGetPos &MouseX, &MouseY FileAppend MouseX "`n", CoordFileLoc MsgBox " ( スロット開始ボタン上部の緑色の部分にカーソルを移動してください Enterを押すと座標を取得します )",, 4096 WinActivate sleep 50 MouseGetPos &MouseX, &MouseY FileAppend MouseX "`n", CoordFileLoc FileAppend MouseY "`n", CoordFileLoc ExitApp
セットアップ
1. まずはElinでスロットマシンを使用して、スロットマシン内のどこでもいいので幸運のエヘカトル様の絵柄を1つ以上表示します。


2. 「elin_auto_slot_setup.ahk」をダブルクリックして起動します。
3. カーソルを置く場所を示すメッセージウィンドウが表示されるので、指示に合わせてカーソルを移動し、Enterキーを押します。
4. メッセージウィンドウが出てこなくなれば完了です。

※注意
Enterキーを押しても何も起こらない場合、メッセージウィンドウをクリックしてからカーソルを指示された位置に戻してください。
メッセージウィンドウが邪魔な場合、ドラッグして邪魔にならない場所に移動してください。
操作に失敗した場合はスクリプトを閉じて再度実行してください。


以下に期待するカーソル位置の一例を貼ります。(一応厳密に合わせなくても大丈夫なはずです)
指示① 幸運のエヘカトルの絵柄の左上角


指示② スロット左列中段の左側の突起


指示③ スロット右列中段の右側の突起


指示④ スロット開始ボタン上部の緑色の部分

すぐに使いたい場合 ※セットアップした方はスキップ
前項までのセットアップは解像度の違いなどに対応するための作業になるので、面倒な方のために
Elinの解像度を筆者に合わせることでセットアップをスキップできるようにしました。
※セットアップした方はこのセクションは飛ばしてください

1. まずはメインスクリプトと同じフォルダに「slot_coords.txt」というテキストファイルを作成し、以下の内容を貼り付けてください。

488 800 1154 1277 488

2. Elinの設定を開き、グラフィック > スクリーンから「ウィンドウサイズを固定」にチェック、幅/高さを1920x1080にして適用をクリックしてください。
メインスクリプトの作成
ここまででセットアップ用スクリプトと同じフォルダに「slot_coords.txt」が作成されたと思います。これはスクリプト用の座標を保存した場所です。

1. セットアップ用スクリプトと同様の手順で「elin_auto_slot.ahk」を作成してください。
2. 作成されたファイルを右クリックし、内容を編集します。
3. 下記のスクリプトをコピー&ペーストし、保存して閉じます。

※[必要に応じて変更]の値は実行環境に合わせて変更してください。

; elin_auto_slot.ahk #Requires AutoHotkey v2.0 ; ------------------------------------------------ ; [必要に応じて変更] PlayLimit := 100 ; 自動実行の上限(スタミナ等にあわせて調整) LeftDelay := 955 ; 左列の遅延(絵柄が揃わない場合に調整) MiddleDelay := 950 ; 中央列の遅延(絵柄が揃わない場合に調整) RightDelay := 955 ; 右列の遅延(絵柄が揃わない場合に調整) ; ------------------------------------------------ ; ------------------------------------------------ ; [変更不要] ApplicationName := "Elin.exe" FileName := A_WorkingDir "\slot_coords.txt" Px := 0 Py := 0 StartDelay := 500 EndDelay := 500 LuckyColor := 0xFFFF5B StartColor := 0x59A068 Tolerance := 0 ; ------------------------------------------------ Pause try { FileObj := FileOpen(FileName, "r") ; Set coordinates from setup file LineY := FileObj.ReadLine() LineX1 := FileObj.ReadLine() LineX2 := FileObj.ReadLine() LineStartX := FileObj.ReadLine() LineStartY := FileObj.ReadLine() ColumnWidth := (LineX2 - LineX1) / 3 FileObj.Close() } catch as Err { MsgBox "Can't Open '" FileName "' ." . "'n'n" Type(Err) ": " Err.Message Exit } MouseMove LineStartX, LineStartY PlayCount := 0 Loop { ; Elinが起動しているか確認 if not WinActive("ahk_exe" ApplicationName) { if WinExist("ahk_exe" ApplicationName) WinActivate } else { if PixelSearch(&Px, &Py, LineStartX - 10, LineStartY - 10, LineStartX + 10, LineStartY + 10, StartColor) { MouseClick "left", LineStartX, LineStartY PlayCount := PlayCount + 1 ; プレイ回数増加 Loop { Sleep(StartDelay) ; StartDelay[ms]だけ待つ Loop { if PixelSearch(&Px, &Py, LineX1, LineY, LineX1 + ColumnWidth, LineY, LuckyColor, Tolerance) { Sleep(LeftDelay) ; 1回転まで待つ Send("{Space}") ; スペースを押す break } } Loop { if PixelSearch(&Px, &Py, LineX1 + ColumnWidth, LineY, LineX1 + (ColumnWidth*2), LineY, LuckyColor, Tolerance) { Sleep(MiddleDelay) ; 1回転まで待つ Send("{Space}") ; スペースを押す break } } Loop { if PixelSearch(&Px, &Py, LineX2 - ColumnWidth, LineY, LineX2, LineY, LuckyColor, Tolerance) { Sleep(RightDelay) ; 1回転まで待つ Send("{Space}") ; スペースを押す break } } Sleep(EndDelay) ; EndDelay[ms]だけ待つ break } } if (PlayCount >= PlayLimit) { MsgBox Format("{1}回分プレイ完了", PlayLimit) Send("{Escape}") ; 終了 } } } F1::Pause -1 F2::Reload Esc::ExitApp
動作確認
1. Elinでスロットマシンを開き、betを好きな値に設定してください。
2. メインスクリプトの「elin_auto_slot.ahk」をダブルクリックしてください。
3. 起動時はポーズ状態のため、F1キーを押すと自動実行が開始します。

F1キーを押すと一時停止/解除、F2キーを押すとスクリプトをリロードして一時停止、Escキーを押すとスクリプトが終了します。

正しく動作していればスロットマシンが開始し、幸運のエヘカトル様が一列に揃うはずです。
絵柄がズレたまま一向に揃わなかったり、自動実行が上手く動かない場合はセットアップをやり直してみてください。

※※※スクリプト実行中はタブを切り替えたり他のウィンドウを操作することはできません※※※


※処理の判定にピクセルの色を使っている都合上、グラフィックの設定などによってはスクリプトが全く動かない場合があるかもしれません。
その場合はメインスクリプトの[変更不要]欄にある、LuckyColor(エヘカトル柄左の黄色判定)、StartColor(開始ボタン選択可能時の色判定)、Tolerance(色の許容範囲、デフォルトは完全一致)あたりを弄ると動く可能性があります。
おわりに
以上で設定は完了です。

バスケットボールの自動化など手元で作ってありますが、他のガイドの焼き増しになりそうなのでスロットマシンの自動化を紹介してみました。
内容に関して質問がある場合や動作しない場合は気軽にコメントしてください。

2 Comments
-UoG-Leroy.exe 25 Dec, 2024 @ 12:24am 
never mind. fixed it. for those who had to translate the page on a browser, make sure to copy from the untranslated page. auto translate borks the script
-UoG-Leroy.exe 25 Dec, 2024 @ 12:19am 
not working for me, but maybe i misunderstood the execution enviornment part. how do I know which one I have?