他人の空似自作物置場

th123_ai_test.zip/Readme.txt

プログラム名:th123_AI(仮)

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

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


使い方:
・StoryとVS Network以外のモードで1Pをキーボードのアリス、2Pを自分で使いたいキャラに設定します。
※ゲームパッド使いならば1Pと2Pはどちらでも構いません。
・AIスレなどでAIを入手します
・th123_ai.exeを起動します
・ファイル選択ダイアログで入手したaiを選択します。
・対戦を始めます

操作方法:
・F9	緋想天起動
・F10	非想天則(見つからなければ緋想天)起動
・F11	指定ファイルからスクリプト再読み込み
・F12	スクリプト再読み込み

インストール:
zip展開するだけ

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

ファイル解説:
th123_ai.exe		プログラム本体です。
th123_ai.ini		設定ファイルです、設定必須ではないのでスルー可。
Readme.txt		今読んでいるこれ
History.txt		更新履歴です。
document.txt		AIを書くための超簡易リファレンスです。
motion.txt		上記リファレンスの付属物です。
card.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としておけばデフォルトでダイアログ指定でき、exeファイルにドラッグ&ドロップでも読み込ませることが可能です。

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

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

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

	Q:黒窓に表示されている数値は何?
	A:aiから出力されている何かです、本プログラムから出力しているものではありません。

	Q:AIスクリプト配布したいんだけど、exeも一緒に同梱していい
	A:構いません、むしろ推奨します。
	ただし下記ライセンスの項の小難しい英文を載せておかないと怒られるかもしれません。
	詳しくはライセンスの項をお読みください。

	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:このプログラムは緋行跡付属のSWRSAddr.iniを利用することが可能です。
	対応版の緋行跡がリリースされている場合に限り、
	SWRSAddr.iniをth123_ai.exeと同じディレクトリ上に配置し、中の ; を全削除で動作するようになるかもしれません。
	ただし、あくまでも緋行跡と共通部分に限るので、見た目正常でも大して動作しない可能性が高いです。
	動作しない場合は作者の方までご連絡を。

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


作者:sweetie
メールアドレス:bnryxx332a(あっと)mail.goo.ne.jp


ライセンス:
本プログラムはMITライセンスされたプログラムLuaを使用しています。
http://www.lua.org/license.html
{{{
	Copyright (c) 1994-2008 Lua.org, PUC-Rio.

	Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

	The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
}}}
それ以外の自作部分ライセンス:
・本ライセンスにおいて、全ての条項は「変更の有無を問わず、明示暗示を問わず、商業慈善を問わず、個人法人を問わず、保持使用を問わず、有料無料を問わず」と装飾されている物として扱う。
・著作権者は本ソフトウェアに関する一切の保障義務をもたない。
・上記条項唯一の例外として、本ライセンスに違反した場合を除いて著作権者から本ソフトウェアに関する一切の法的措置を受ける事が無い事のみ保証される。
・著作権者やその他保持者がこのライセンスの範囲で行う活動に支障が無い範囲であれば何を行っても構わない。
・上記条項の”何を行っても構わない”には本ソフトウェアの製作者を偽っての再配布も含まれる。
・全ての権利の行使において、著作権者への連絡、著作権者やライセンス条項の記載、適用ライセンスなどの制限は一切存在しない。
著作権者名:sweetie


面倒な人向けライセンス解説:
Luaのライセンスをどこかに書いておけば再配布出来ます。
自作部分のライセンスについては記載義務すらありません。
上記二つだけ説明書に放り込んでおくといいでしょう。


スペシャルサンクス:
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でも動作することを確認しています。