他人の空似自作物置場

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

プログラム名:th123_AI(仮)

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


使い方:
・StoryとVS Network以外のモードで1PをAIで使うキャラ、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:このAI使ったら緋想天(非想天則)のデータ壊れる可能性ある?
	A:ありません。
	本アプリはキーボード入力以外で緋想天もしくは非想天則の動作に干渉することはありません。
	あくまでキーボード操作によってのみ動作するAIです。

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

	Q:キーコンフィグぐらいAI側で何とかしろよ
	A:キーコンフィグキーボード操作のみでは実現できません。
	ご了承ください。

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

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

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

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

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

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

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

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

	Q:aiの書き方まったくわからん
	A:一部変人以外寄せ付けないのは仕様です。
	改善計画はありますが、GUIによる開発環境が用意されることはおそらく10年待ってもありません。
	ご了承ください

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

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

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

	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があれば動作しますが、作者以外には理解不能だと思われるので
	作者が対応するのをお待ちください。

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

	Q:てんこあいしてる?
	A:いや別に

	Q:シャンハーイ?
	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読込は緋行跡が非常に寛大なライセンスであり、作者が緋想天および非想天則が出るたびに更新したくないために実装されています、中の人が同じわけではありません。
ただ、AIの機能拡大に伴いSwrAddr.iniだけでは足らなくなり結局使いまわす事態は一度も来ないままとなりました。
キーボードエミュレート→keybd_event、情報の読み取り→ReadProcessMemory、スクリプト→Lua、ということでベース部分は技術も労力も大して注ぎ込まれていません、きっと誰でも作れます。
本プログラムは緋想天および非想天則の動作内容にキーボード操作を除いて一切影響を与えません、あくまで情報読み取りのみを行っています。
影響を与えうる動作一覧:
	ウィンドウをアクティブにする際に使うCreateRemoteThread
	AIスクリプトからのキーボード入力
	情報読み取りに使うOpenProcess、ReadProcessMemory
rep2prof、pn2cのコードを大量に使用しています、そのため一部意味がないコードが存在します。
コンパイル環境はVC++18.00.21005.1(VisualC++2013 Express)を使用しています。

        
2013/12/23 ver0.96
バグ報告機能などと競合していたためexeファイルの暗号化を廃止
get_obj_dataでfflagsとaflagsを返すように
document.txtのリンク切れを修正
ビルド環境をVisualStudio2013に変更

2012/04/21 ver0.95d
非想天則起動前にF12を押すと落ちていた不具合を修正
攻撃範囲関連で常に不正な値を返していたのを修正

2012/04/08 ver0.95c
AIManagerなどで同時起動すると落ちることがあった不具合の修正
AIManagerから起動した場合に指定キャラを無視していた不具合を修正
requireを使うとスクリプトリロード時に強制終了していた不具合を修正

2012/04/07 ver0.95b
Windows7でファイル選択ダイアログが動作しない不具合を修正

2012/04/04 ver0.95a
KernelXP.dllを廃止
exeファイルを暗号化した
get_hitareaが一部状況で値がおかしくなる不具合を修正

2012/04/01 ver0.95
非想天則1.10aに対応

2012/03/18 ver0.94b
コンパイル環境の変更(VisualC++11 Beta)
PANIC後の再読み込みが機能していなかったのを修正

2010/12/01	ver0.94a
コンパイル環境の変更
get_special_dataの13と14が動作するように

2010/03/14	ver0.94
環境変数act_blockの追加

2010/01/28	ver0.93a
get_obj_dataで返るHPがおかしかった不具合の修正

2010/01/24	ver0.93
環境変数my_win_count、enemy_win_countを実装
非想天則1.10に対応

2010/01/23	ver0.92a
ver0.91より環境変数の小数点以下が切り捨てられていた不具合の修正
ver0.91eの修正によりリロード時自動的に非想天則がアクティブにならなかった不具合の修正

2010/01/23	ver0.92
関数get_key_stat2、get_key_map2を実装

2010/01/22	ver0.91e
ver0.91dの修正により、環境変数が初期化される前にロード処理が走っていた不具合を修正

2010/01/20	ver0.91d
ver0.91cの修正によりリロード機能が正常に動作していなかった不具合の修正
ver0.91cの修正によりリロード時自動的に非想天則がアクティブにならなかった不具合の修正
環境変数my_rei_stop,enemy_rei_stopを追加

2010/01/19	ver0.91c
スクリプトの内部動作を大幅に変更

2010/01/12	ver0.91b
get_special_dataでダイアモンドハードネスの情報を取得出来る用に

2009/12/02	ver0.91a
command関数で22,44,66,88といった入力が行えなかった不具合の修正

2009/11/15	ver0.91
スクリプトの内部実装を若干変更

2009/10/24	ver0.90c
is_card_use、my_spell、my_cardが晴嵐時でも通常通りの値を返していた不具合の修正
内部的にいくつかの環境変数の処理方法を変更
get_card_cost2において、本来であれば-1を返すべき場面で-2を返していた不具合を修正
非想天則の極光時にweather_delayが正常に動作していなかった不具合の修正

2009/10/24	ver0.90b
enemy_hitstopが常にmy_hitstopと同じ値になっていた不具合の修正

2009/10/15	ver0.90a
iniのPlayerの設定が1か2以外のとき、強制的に1P扱いするはずが場合により2P扱いしていた不具合の修正
ゲームパッド使用時、動作側検出処理を微修正

2009/10/14	ver0.90
環境変数aflags、fflagsを実装
関数get_aflags、get_fflagsを実装

2009/10/13	ver0.89
get_obj_hitareaおよびget_obj_attackareaで一部取得に失敗していた不具合の修正
上記変更に伴うobj関連内部動作の大幅な変更
create_threadで生成されたスレッドが場合により実行順序が入れ替わる可能性があった不具合の修正
create_threadにおいて可変引数の受け渡し機能に対応(Thx 東方緋想天 AI関連スレッド2 >>155)

2009/10/11	ver0.88c
食らい判定が極少量ずれていたため算出方法を変更した。

2009/10/10	ver0.88b
キーコンフィグにて今まで認識していなかった一部記号キーも認識するようになった。
F11キーとF12キーの検出率が悪かった不具合の修正
iniに緋想天もしくは非想天則終了時にth123_aiも終了する機能、AppDownExitを追加
0.88aより同時起動した場合にキーコンフィグが正常に取得できていなかった不具合の修正

2009/10/09	ver0.88a
get_special_dataにおいて8/16/13/14/9/15番が動作していなかった不具合の修正
get_special_dataで長視「赤月下(インフレアドムーン)」の残フレーム数を取得できるように
AIManagerから起動後、F11を押して別AIを読み込んだ場合でも起動時のAIのものとしてエラー報告が動作していた不具合の修正
キーボード使用時、AI動作側自動認識の精度向上

2009/10/08	ver0.88
th123_ai.exeエラー時の報告先を変更した
AIManagerから起動された時に限り、スクリプトエラー時にエラー内容をサーバに登録する機能の追加
0.86fよりパチュリーおよび優曇華を使用時に例外を吐いていた致命的不具合の修正
get_special_data関数の全機能が非想天則に対応

2009/10/07	ver0.87a
キーボード使用時、AI動作側検出の精度を向上

2009/09/27	ver0.87
0.86fの自動起動の修正に漏れがあった問題を修正
0.80よりエラー時にサーバへエラー情報を送信する機能が動いていなかった不具合の修正
環境変数my_timestop/enemy_timestopの追加
get_obj_dataの返り値に攻撃範囲の数と食らい範囲の数を追加。
get_version関数を追加。
get_special_dataで神奈子ゲージと諏訪子ゲージを取得可能に。
環境変数stage_numberの追加
環境変数bgm_numberの追加

2009/09/27	ver0.86f
ver0.80よりStartupTH105が機能していなかった不具合の修正(Thx 「東方緋想天 AI関連スレッド2」 >>114)
iniにStartupTH123を追加。
StartuoTH105およびStartupTH123の自動書き換え機能の廃止
get_skill_lvが場合により正常な値を返さないことがあった不具合の修正(Thx 「東方緋想天 AI関連スレッド2」 >>116)
get_card_idが場合により正常な値を返さないことがあった不具合の修正
get_card_costが場合により正常な値を返さないことがあった不具合の修正
get_card_cost2が場合により正常な値を返さないことがあった不具合の修正
get_hitareaが場合により正常な値を返さないことがあった不具合の修正
get_attackareaが場合により正常な値を返さないことがあった不具合の修正
get_special_dataが場合により正常な値を返さないことがあった不具合の修正
get_skill_lvでパチュリーの112~114のLvを取得できなかった不具合の修正
自動起動が場合により動かないことがあった不具合の修正

2009/09/24	ver0.86e
ver0.86よりobj_disおよびobj_dis2で未発見時10000ではなく2147483647を返していた不具合の修正。

2009/09/23	ver0.86d
中間ファイルが削除されずそのまま放置される事があった不具合の修正

2009/09/22	ver0.86c
ドキュメントにver0.86分の説明が記載されていなかったので追記(Thx 「東方緋想天 AI関連スレッド2」 >>94)
get_special_dataにおいて三粒の水滴使用個数・三粒の水滴無敵時間・竜星無敵時間が取得できるように

2009/09/21	ver0.86b
内部リリース

2009/09/20	ver0.86a
対戦開始時オートリロード機能が動いていなかった不具合の修正(Thx 「東方緋想天 AI関連スレッド2」 >>79)
対戦開始時オートリロードにおいて、黒窓が最前列になることがあった不具合の修正
ver0.86においてデバッグ出力が動いたままだった不具合の修正
F9キーで緋想天を起動する機能の追加
th123_ai起動後に緋想天と非想天則を行き来すると動作がおかしくなっていた不具合の修正

2009/09/20	ver0.86
attack_power環境変数を追加
defense_power環境変数を追加
speed_power環境変数を追加
get_special_dataの国士無双使用個数取得が使用可能に
get_special_dataにおいて制御棒・身代わり人形・天狗団扇・グリモワールの使用個数が取得できるように

2009/09/19	ver0.85a
緋想天もしくは非想天則を自動で最前面にする機能が動作していなかった不具合の修正
ver0.85でデバッグ出力を消し忘れていた不具合の修正
is_th105環境変数を追加
is_th123環境変数を追加

2009/09/19	ver0.85
get_special_data,get_deck_listを除く全機能の非想天則対応完了

2009/09/18	ver0.84
内部リリース

2009/09/18	ver0.83a
内部リリース

2009/09/17	ver0.83
th123_ai.iniを読み込んでいなかった不具合の修正
Playerが2でもほとんどの場合においてPlayer=1として扱われる不具合の修正
SWRSAddr.ini読み込み時、一部正常に読み込まれないことがあった不具合の修正

2009/09/16	ver0.82
ver0.81より一部設定が常にデフォルト値として扱われていた不具合の修正
ver0.81よりHPの値が正しくなかった不具合の修正

2009/09/12	ver0.81
StartupAIに最後が % で終わる文字を指定しているとエラー終了していた不具合の修正
SWRSAddr.iniも読み込むように変更

2009/04/29	ver0.80
緋想天が非アクティブ時に緋想天を終了するとth105_aiが固まった不具合の修正

2009/04/16	ver0.78d
リロードした際に黒窓をアクティブにする機能を緋想天フルスクリーン時は抑制するように修正
iniで黒窓を手前に表示する機能のON/OFFを設定可能に出来るMyWindowActive項目を追加
iniで0を設定した際、場合により誤動作する可能性があった不具合の修正

2009/04/13	ver0.78c
リロードした際に黒窓も手前になる機能の追加
get_obj_dataを使用した際にluaスタックが破損し、返り値が不定になっていた不具合の修正

2009/04/11	ver0.78b
一部状況下でget_card_cost,get_card_cost2,get_card_idを使用した場合に例外を吐く不具合の修正(Thx 例外報告を行ってくれた誰か)
ストーリーモードでキャラクターが同時に三人存在する状況になった場合に例外を吐く不具合の修正
一定時間処理が滞った際にチート対策コードが誤動作する可能性があった不具合の修正
緋想天自動実行に失敗した場合にファイル選択ダイアログを出すように変更
iniに緋想天自動実行する際のパスを設定できるStartupTH105項目を追加
上記項目を自動的に更新する機能の追加

2009/04/10	ver0.78
二重起動時にPlayerが反転する機能の廃止
二重起動時に一つ目とは逆のPlayerを使う機能の追加
io.lines関数で任意のファイルをオープンできてしまった不具合の修正
get_obj_dataで取得できる情報の追加
iniに小数点を含む値を設定すると場合により例外を吐く可能性があった不具合の修正(Thx 例外報告を行ってくれた誰か)
iniに緋想天起動タイミングを設定できるth105_start項目を追加

2009/03/01	ver0.77b
ver0.76bのエラー修正が上手くいっていなかった不具合を修正(したつもり)

2009/03/01	ver0.77
get_obj_dataに返り値追加
チート対策1がver0.76より動作していなかった問題の修正
チート対策3
構文エラーを起こしてからリロードすると例外を吐いていた不具合の修正
Luaスクリプトエラーの検地方法を一部従来方式に巻き戻し(ファイル占有問題対策)

2009/03/01	ver0.76b
ファイル読み書き機能周辺で問題が起こりそうだった箇所を修正
一部状況下で例外エラーする可能性があった不具合を修正(Thx 例外報告を行ってくれた誰か)
実数演算において例外エラーを吐く可能性があったのを修正したつもり(未確認)

2009/02/26	ver0.76a
ゲームパッドをキーボードと誤認することがあった不具合の修正
例外報告機能が動いていなかった不具合の修正
一部APIで不正な引数を検地できていなかった不具合の修正
set_key_delayが正常に動作していなかった不具合の修正
is_ard_useが正常に動作していなかった不具合の修正

2009/02/24	ver0.76
環境変数my_correctionとenemy_correctionの実装
関数get_correctionを実装
F11キーによるファイル選択読み込み機能が正常に動作していなかった不具合の修正

2009/02/24	ver0.75
一部状況下でPlayerが反転する不具合の修正
get_opt_xyで小町の霊魂の位置を取得できるように
エラーが起きても検地できなくなっていた不具合の修正)
io以下の関数を使用可能に(一部関数の仕様が公式のものとは異なります)
環境変数my_hitarea_nとenemy_hitarea_nとmy_attackarea_nとenemy_attackarea_nを実装
関数get_obj_attackareaとget_attackareaとget_obj_hitareaとget_hitareaの実装
Luaスクリプトエラーの検地方法を変更(2009/03/01:書き忘れに付き追記)

2009/02/20	ver0.74
Ver0.72から一部環境下で例外を吐いていた不具合の修正(Thx 例外報告を行ってくれた誰か)
get_obj_dataの返り値を一つ追加
環境変数my_img、enemy_imgを実装
get_opt_xyが正常に動作していなかった不具合の修正
get_opt_xyでアリスの人形位置を取得できるように
get_special_dataで取れるデータをいくつか追加

2009/02/19	ver0.73b
command関数の一部機能が正常に動作していなかった問題の修正

2009/02/19	ver0.73a
my_xspeed、my_yspeed、enemy_xspeed、enemy_yspeedにアクセスできなかった不具合の修正

2009/02/17	ver0.73
チート対策その2
0.72でcommand関数が正常に動作していなかった不具合の修正
iniに設定された側がゲームパッドになっている場合、もう一方に切り替える機能の追加
th105_aiが多重起動されている場合に、もう一方の操作に切り替える機能の追加

2009/02/16	ver0.72
環境変数my_xspeed、my_yspeed、enemy_xspeed、enemy_yspeedを実装
require関数とiniのStartupAIに機能追加
チート対策
緋想天探索中にF10キーで自動起動する機能の追加

2009/02/15	ver0.71b
create_threadが正常に動作しなかった不具合の修正
上記変更に伴って、各種関数の書き直し
create_threadの動作内容が若干変更されました

2009/02/04	ver0.71a
yieldを一度も呼ばずにスレッド終了すると例外を吐いていたバグの修正(Thx 例外報告を行ってくれた誰か)
x==exのときx>exとして扱われていた問題を修正

2009/02/03	ver0.71
AI動作中はアイコンが変わる機能の追加
関数get_special_dataを実装
環境変数my_hitstopとenemy_hitstopを実装

2009/02/02	ver0.70a
対戦開始前にリロードすると例外を吐いていた問題を修正
aiスクリプトでmain関数が終了すると固まっていた不具合を修正

2009/02/01	ver0.70
擬似マイクロスレッドからきちんとしたマイクロスレッドに
関数create_threadを実装
上記二つの変更に伴いyieldの挙動が変更されました。
アイコンが表示されるようになりました(thx「東方緋想天 関連ツールスレッド2」>>948)

2009/01/29	ver0.68
require関数の挙動を一部変更
タイトルバーにバージョン表記を追加。
対戦開始ごとに自動でリロードされる機能の追加。
キャラクターごとに読み込むスクリプトを変更する機能を追加

2009/01/27	ver0.67
my_cardとenemy_cardがカードゲージ1未満のとき動作がおかしかったのを修正
小数点演算で極小の値を扱おうとすると例外を吐いていたバグの修正
緋想天が存在しないとき、自動で緋想天を立ち上げる機能の追加。

2009/01/25	ver0.66
enemy_dirとmy_dirとis_dir_frontが一部状況下で正常動作していなかったバグを修正
ver0.61の方法では不十分だったので再度バグ修正(Thx 例外報告を行ってくれた誰か)
例外送信にVersion情報を追加

2009/01/24	ver0.65
例外送信時にY/Nで送信するか選べるように変更

2009/01/24	ver0.64
key_delay、data_delay、weather_delayに代入した場合にもset_xxx_delay関数と同じ効果があるように変更
例外エラー時にある程度詳細情報を表示する機能の追加
上記内容を自動でサーバーに報告する機能の追加
スクリプトエラーのENTER待ちがおかしかったバグを修正
一部状況で非常にリロードし辛かった問題を修正
AI読み込みタイミングが緋想天発見後ではなく、th105_ai起動時だった不具合の修正
プロファイル名が長いときget_deck_list関数が失敗していた不具合の修正

2009/01/21	ver0.63
luaエンジンをdllから内蔵式に変更
関数get_key_statとget_key_mapを実装
ver0.62の更新で1フレームでも同期ずれが起きた際にkey_resetされていた不具合を修正
一部状況下でリロード出来なかった問題を修正
標準ライブラリのosから時間関連機能のみ使えるように変更
関数get_real_key_statを実装
同期精度の向上その2

2009/01/20	ver0.62
同期精度を向上
F11キーを押すことでスクリプトを選択してリロードできる機能の追加
自動認識できるキーの追加
get_deck_listの対象指定を廃止し自分のデッキしか見れないように変更

2009/01/19	ver0.61
極稀に例外を吐く可能性のあったバグを修正

2009/01/18	ver0.60
関数get_deck_listを実装
data_delayが+1されて作用していた不具合の修正(この修正により既存スクリプトがずれる可能性があります)
F12キーを押すことでスクリプトをリロードする機能の追加
エラー時に終了ではなくリロードするように変更

2009/01/17	ver0.55
get_obj_data使用時に強制終了する恐れがあったバグの修正
get_obj_dataの返り値にHPを追加
関数get_opt_xyを実装
対戦終了後にキーが入りっぱなしになる不具合を修正
関数get_card_cost2を実装

2009/01/16	ver0.54
緋想天がアクティブでないときにAIの動作を中断する機能の追加(thx「東方緋想天 関連ツールスレッド2」>>652)
キー入力が20ms程度遅延する事があったバグの修正
is_card_useにおいて、一部状況下で使用できるのに偽が返っていた問題を修正
関数get_card_costを実装
晴嵐時にmy_card,enemy_card,get_card_id,get_card_costは-1になるように変更(暫定)

2009/01/15	ver0.53
環境変数is_dir_front、my_dir、enemy_dirを実装

2009/01/15	ver0.52
関数is_card_useを廃止
環境変数is_card_useを実装
環境変数weather2とweather_timeを実装
環境変数weather_delayを実装
関数set_weather_delayを実装

2009/01/14	ver0.51
環境変数dis_x,dis_y,dis2の実装
関数commandを実装
関数is_card_useを実装
緋想天発見時に自動的に緋想天をアクティブにする機能の追加

2009/01/13	ver0.50
2P側にもAIを適用できる機能の追加

2009/01/12	ver0.48
get_card_id関数にデバッグ用の文字出力コードが混入したままであったバグの修正
タイトルバーの更新頻度を下げるように変更

2009/01/10	ver0.47
関数get_obj_dataを実装
環境変数obj_nをenemy_obj_nに名称変更
環境変数my_obj_nを実装
AIにget_obj_dataを使って人形振起を使うコードを追加

2009/01/08	ver0.46
key_offでUPかDOWNを指定するとLEFTかRIGHTがONになることがあった不具合の修正
my_frameの取得ができていなかった不具合の修正
環境変数battle_timeを追加
lua標準のdebugライブラリを使用可能に(ver0.45の書き忘れ)

2009/01/07	ver0.45
関数set_key_delayとset_data_delayを実装
上記に伴って環境変数key_delayとdata_delayを実装
wait関数がyield関数と等価になっていた不具合を修正
key_on,key_offで斜めも入力できるように(10~13)、それに伴い他のキー入力関数でも斜め入力が機能します。
環境変数d_front,d_back,u_front,u_backを実装

2008/12/31	ver0.44
1Pがゲームパッドの状態で対戦画面に入ると場合により例外を吐いていたのを修正

2008/12/30	ver0.43
読み込むaiファイルをダイアログから選択するように
wait関数を追加(指定回数だけyield関数を実行)
get_skill_lv関数を追加(指定したスキルのLvを取得する)
get_spell_id関数を追加(指定した位置のカードIDを取得する)
require関数を追加(別ファイルをaiとして実行する)

2008/12/27	ver0.42
luaから読み取れる情報にmy_frame/enemy_frameを追加

2008/12/26	ver0.41
luaから読み取れる情報にmy_card/enemy_card/my_air/enemy_airを追加
上の変更に伴ってAIの内容を微修正

2008/12/26	ver0.40
Lua標準ライブラリからioとdebugを使用禁止に(thx「東方緋想天 関連ツールスレッド2」>>447-448)
上記変更に伴って外部読込式に戻す。
スクリプトの流れをなんちゃってマイクロスレッド方式に変更(yieldの実装)

2008/12/25	ver0.31
Sleepする時間を固定16msから処理時間依存に
対戦中以外はSleepする時間を1000msに
AIに中距離以上なら射撃をグレイズする処理追加
吹き飛び属性の攻撃を当てたら6Bするように
スペカ使用に失敗したら切り替えるように
pn2cの機能が生きていたのを削除

2008/12/24	ver0.30
オブジェクトの位置を認識できるように(thx「東方緋想天 関連ツールスレッド2」>>419,425)
AIをオブジェクト座標を元にしたガード、危険がなければ接近する分岐を追加
Luaの標準ライブラリを使うことで危険な処理が実行可能なため、外部読み込みを一旦禁止に

2008/12/23	ver0.21
キーコンフィグを緋想天から読み取るように
AIに天候、霊力、スペカ枚数、相手被弾モーション分岐を追加

2008/12/22	ver0.20
AIを直にコーディングする方式からLuaスクリプト方式に変更
キーの入力方式を修正(fix)

2008/12/21	ver0.10
とりあえず試作


        
  • ver0.96
  • ver0.95d
  • ver0.95c
  • ver0.95b
  • ver0.95a
  • ver0.95

  • ver0.94b

  • ver0.94a

  • ver0.94

  • ver0.93a

  • ver0.93

  • ver0.92a

  • ver0.92

  • ver0.91e

  • ver0.91d

  • ver0.91c

  • ver0.91b

  • ver0.91a

  • ver0.91

  • ver0.90c

  • ver0.90b

  • ver0.90a

  • ver0.90

  • ver0.89

  • ver0.88c

  • ver0.88b

  • ver0.88a

  • ver0.88

  • ver0.87a

  • ver0.87

  • ver0.86f

  • ver0.86e

  • ver0.86d

  • ver0.86c

  • ver0.86b

  • ver0.86a

  • ver0.86

  • ver0.85a

  • ver0.85

  • ver0.84

  • ver0.83a

  • ver0.83

  • ver0.82

  • ver0.81

  • ver0.80

  • ver0.78d

  • ver0.78c

  • ver0.78b

  • ver0.78

  • ver0.77b

  • ver0.77

  • ver0.76b

  • ver0.76a

  • ver0.76

  • ver0.75

  • ver0.74

  • ver0.73b

  • ver0.73a

  • ver0.73

  • ver0.72

  • ver0.71b

  • ver0.71a

  • ver0.71

  • ver0.70a

  • ver0.70

  • ver0.68

  • ver0.67

  • ver0.66

  • ver0.65

  • ver0.64

  • ver0.63

  • ver0.62

  • ver0.61

  • ver0.60

  • ver0.55

  • ver0.54

  • ver0.53

  • ver0.52

  • ver0.51

  • ver0.50

  • ver0.48

  • ver0.47

  • ver0.46

  • ver0.45

  • ver0.44

  • ver0.43

  • ver0.42

  • ver0.41

  • ver0.40

  • ver0.31

  • ver0.30

  • ver0.21

  • ver0.20

  • ver0.10