他人の空似自作物置場

th105_ai.zip/Readme.txt

プログラム名:th105_AI

用途:東方緋想天で独自AI

注意:
このプログラムは現在オープンαテスト段階です。
知的好奇心を満たすためならどんな苦労も厭わない!という類の人以外触らないことをお勧めします。


使い方:
・StoryとVS Network以外のモードで1Pをキーボードのアリス、2Pを自分で使いたいキャラに設定します。
※ゲームパッド使いならば1Pと2Pはどちらでも構いません
・ai.exeを起動します。
・対戦を始めます。
・場合によりtest.aiを編集して楽しみます。

インストール:
zip解凍するだけ

アンインストール:
レジストリもテンポラリファイルも弄っておりません。
フォルダごと削除するだけですっきりさっぱりおさらばできます。

ファイル解説:
th105_ai.exe		プログラム本体です。
th105_ai.ini		設定ファイルです、設定必須ではないのでスルー可。
Readme.txt		今読んでいるこれ
History.txt		更新履歴です。
script/test.ai		AIスクリプトです、テキストエディタで書き換えることで動作内容を変更できます。
document.txt		test.aiを書くための超簡易リファレンスです。
motion.txt		上記リファレンスの付属物です。
skill.txt		同上
spell.txt		同上

免責事項:
これに同梱されたプログラムその他が原因で発生したいかなる損害を当方は一切関知しません。
また、全てのプログラムがウイルスではないという証明も、ウイルスに感染していないという証明もありません。
自己責任でお使いください。

Q&A:
	Q:キーボードプレイヤーなんだけど、キーがかぶって対戦できない
	A:プロファイルから使うキーを読み込んでいます。
	なので、AI用に使わないであろうキーを設定してあげればキーボーダーでも問題なく対戦できます。
	ただし、アルファベット以外を設定した場合に問題が起こることが多いので
	基本的にアルファベットのみで設定することをお勧めします。

	Q:緋想天で対戦画面に入るたびにすぐ強制終了するんだけど
	A:一つ下と二つ下のQ&Aのほうをご覧ください。

	Q:PANIC: ほにゃらら〜と表示されてすぐ終了してしまう
	A:AIの中でエラーしています。
	本プログラムがaiで想定されたものよりも古いと思われます。
	もし最新版でも同じエラーが出る場合、aiの作者さんまでご連絡を

	Q:認識はしているけど動きがメチャクチャ
	A:1P側がキーボードの設定になっていないか、指定されているキーが未対応のキーだと思われます。
	数字、記号、テンキー、その他特殊キーは認識しない可能性があります。
	qwertyuiopaなど、アルファベットを使ったキーコンフィグのプロファイルを用意してください。

	Q:「外部に通信しようとしています、許可しますか?」的なダイアログ出るんだが
	A:th105_ai本体で致命的問題が起きた場合に自動でエラーを作者宛に送信するよう組まれています。
	そのため、一部セキュリティーソフトは起動時、もしくは送信時に上記のようなダイアログを出してユーザーに同意を求めてくる可能性があります。
	ブロックしても使用に問題はないので、デバッグなんてシラネという方や作者信じられませんという方はブロックしてください。

	Q:スクリプトの読み直しが面倒
	A:F12を押せば再読み込みされます
	ただし反応が少々悪目なので、長めに押さないと反応しないかもしれません。
	またAIがアクティブでなくともリロード動作は可能です(エディタで編集後即リロードできるように)

	Q:いちいち別スクリプト読むためにini書き換えるの面倒
	A:F11キーからダイアログを開いて読み込めます。
	また、iniでdialogとしておけばデフォルトでダイアログ指定でき、ドラッグ&ドロップでも読み込ませることが可能です。

	Q:タイトルバーに色々表示されているけど何これ
	A:特に意味はありません、気にしたら負け。

	Q:黒窓は使い辛いし無駄にスペースとりすぎ
	A:仕様です。

	Q:test.aiの書き方まったくわからん
	A:現在αテスト中に付き一部変人以外寄せ付けないのは仕様です。
	スレで作者を煽りつつマターリお待ちください。

	Q:黒窓に表示されている数値は何?
	A:aiから出力されている何かです、本プログラムから出力しているものではありません。
	(0.40ころまではデフォルトで1Pと2Pのアクション値を出力していましたが廃止しました)

	Q:スクリプトの○○の動作おかしくね?
	A:アルファテスト中に付き(ry
	緋想天ツールスレか作者メールアドレスまで連絡してもらえれば直るかもしれません。

	Q:AIが極稀に意図しない動作をする
	A:仕様です。
	緋想天に一切の害を与えないよう設計されているため同期が完全ではありません。
	なので、AIにもかかわらずキー入力失敗したり、射撃を見落としたりします。
	ただし、本当にバグの可能性もあるので作者に報告してくれてもかまいません。

	Q:AIで○○なことをしたいけど今のAPIだけでは実現できない
	A:作者の力不足です。
	緋想天ツールスレか作者メールアドレスまで要望を投げてもらえればいつか実装されるかもしれません。

	Q:set_key_delayとset_data_delayって何が違うの?
	A:set_key_delayはキー入力全てに影響しますが、set_data_delayは敵の状態取得のみが遅くなります。
	そのため、超反応を抑止したいならset_data_delayだけで十分でしょう。

	Q:緋想天更新かかって使えなくなったんだけど
	A:このプログラムは緋行跡付属のSwrAddr.iniを利用することが可能です。
	対応版の緋行跡がリリースされている場合に限り、
	SwrAddr.iniをai.exeと同じディレクトリ上に配置し、中の ; を全削除で動作するようになるかもしれません。
	ただし、あくまでも緋行跡と共通部分に限るので、見た目正常でも大して動作しない可能性が高いです。
	動作しない場合は作者の方までご連絡を。

	Q:その他バグをみつけた or 動作しない or 要望がある
	A:緋想天ツールスレに書き込んでもらえれば、確認次第対応可能であれば対応します。
	どうしても直に伝えたい場合、公開しても問題が無いメールアドレスにて
	下部に記載されたアドレスまでメールをどうぞ。


作者:名無し
メールアドレス:bnryxx332a(あっと)mail.goo.ne.jp
ライセンス:
本プログラムはMITライセンスされたプログラムLuaを使用しています。
http://www.lua.org/license.html
Copyright (c) 1994-2008 Lua.org, PUC-Rio. 

それ以外の自作部分について、ほぼ全ての権利を放棄しています。
再配布・改変・転用・売買などなど全て自由です。
たとえ「作者を偽っての再配布」をしたとしてもなんら法的措置に訴えることはありません。
また、上記の権利を行使する際に
作者へ連絡・作者の明記・ライセンスの制限・使用用途の制限・配布先の制限・ソースコードの配布などといった条件を課すことはありません。
全ての権利は無条件で行使することが可能です。


スペシャルサンクス:
freelight6	テストプレイ、モーション値の収集、その他色々
ツールスレ931	モーション値の収集および表の整形
同419,425	オブジェクト情報に関する技術提供
同447,448	Luaエンジン初期化に関する技術提供
同652		緋想天アクティブ判別方法
同948		アイコン画像の提供
その他、ツールスレおよびAIスレ住民全て


技術情報(と、どうでもいい話):
SwrAddr.iniが読込は緋行跡が非常に寛大なライセンスであり、作者が緋想天が出るたびに更新したくないために実装されています、中の人が同じわけではありません。
キーボードエミュレート→keybd_event、情報の読み取り→ReadProcessMemory、スクリプト→Lua、ということで技術も労力も大して注ぎ込まれていません、きっと誰でも作れます。
本プログラムは緋想天の動作内容にキーボード操作を除いて一切影響を与えません、あくまで情報読み取りのみを行っています。
緋想天に影響を与えうる動作一覧:
	カードリスト読み込み時に行うProfile以下のファイルへのアクセス
	ウィンドウをアクティブにする際に使うCreateRemoteThread
	AIスクリプトからのキーボード入力
	情報読み取りに使うOpenProcess、ReadProcessMemory
rep2prof、pn2cのコードを大量に使用しています、そのため一部意味がないコードが存在します。
コンパイル環境はコマンドライン版VC++14.00.50727.762、CodeGear付属のBCC32でも動作することを確認しています。
VC版は何かライブラリ依存(msvcrXX.dll?)しているようなので、リリース版はver6.0からBCC一本になりました。