他人の空似自作物置場

th135_ai.zip/document.txt





* グローバル
** create_micro_thread(&block)
mrubyのブロックを一つ受け取り、それをマイクロスレッドとして実行する

** sleep(n = 1)
指定されたフレーム数だけ処理をスキップする

** set_equip(id1, id2, id3,id4, id5, id6, id7, id8)
指定された装備に切り替える、信仰タイプも追従する。
1から順にに打撃←↓↑→射撃←↓↑→の順。
-1を指定すると該当装備を変更しない。
可能ならばmainの外で呼ぶことを推奨しますが
使用キャラを見てから変える場合はmainの最初で呼ぶこともできます。
また、設定するとequipが設定した装備のIDを返すようになります。
複数回呼んだ場合の動作は未定義。
不正なidを設定した場合の動作も未定義。
Th135Characterを使うことでも設定できます。
※備考
プレイ中に呼んでも動作はしますが、スペルが再使用可能になったり
ブースト系アイテムが多重に機能したりと色々おかしな挙動をするので
対戦開始後に呼ぶ場合は開始直後に呼ぶのを推奨。

** require(path)
指定したファイルをmrubyスクリプトファイルとしてロードする。
読み込み対象ディレクトリはデフォルトでは以下のとおり
・exeが配置されたディレクトリ
・カレントディレクトリ

** sendkeys(c)
123456789ABCXYZのうちどれか一文字を渡すことで
それに対応するKeybd.press_*を実行する。

** command(str, sleep_time = 2)
コマンド入力記法に似た簡易言語によるキー入力を行います。
6Bや8Cなどといった文字列を与えることで直感的な実行が可能です。
sleep_timeは、AA等と書いた場合にAの間で自動で待つフレーム数となります
また(30)などと書くことで指定フレームだけ待つ作業を挟むことができます。

** set_character_id(id, color = 0)
AIで操作する対象のキャラクターを指定したキャラクターに変更します。
具体的には、キャラクターセレクト画面で誰を選んでも指定キャラになります。
使用する場合はmainの外側、グローバル領域で一度だけ呼び出すこと。
また、設定するとcharacter_idが設定したキャラのIDを返すようになります。
colorはそのままキャラクターの色パターンです。
ただし、対戦相手側とかぶった場合は変更されることがあります。
Th135Characterを使うことでも設定できます。





* Th135Characterクラス
set_equip/set_character_idメソッドを代行する便利クラスです。
あくまで上記のメソッドのラッパーにすぎないため、動作詳細はそれらに準拠します。
使用例:
Th135Character.new(:reimu)
.color(2)
.equip(1000,1000,1000,1000,1000,1000,1000,1000)
.set

** コンストラクタ(id)
キャラクターIDを設定します。
シンボルでの指定も可能です。
その際の対応表はcharacter_idの項を参照。

** color(color)
キャラクターの色を設定します。
返り値は自身のインスタンスです。

** equip(id1, id2, id3,id4, id5, id6, id7, id8)
装備を設定します。
-1で変更なしを設定できます。
返り値は自身のインスタンスです。

** set
設定した通りにゲーム側へ反映します。
「mainの外側のグローバル領域」以外で実行した場合
反映されないことがあります。
返り値は自身のインスタンスです。

** get_id
設定したidを取得します。
シンボルで設定した場合でも数値で返ります。

** get_color
設定したキャラクターの色を取得します。

** get_equip
設定した装備の配列を取得します。





* Keybdクラス
** pressLeft,pressRight,pressUp,pressDown,pressA,pressB,pressC,pressX,pressY,pressZ
** press_left,press_right,press_up,press_down,press_a,press_b,press_c,press_x,press_y,press_z
指定キーを押した状態になります。
押して離すではなく、押すだけなので注意。
また、方向キーを押した際は逆側のキーを離した状態になります。

** upLeft,upRight,upUp,upDown,upA,upB,upC,upX,upY,upZ
** up_left,up_right,up_up,up_down,up_a,up_b,up_c,up_x,up_y,up_z
指定キーを離した状態になります。

** press_front,up_front,press_back,up_back
敵の位置を基準に前後にキー入力を行います。

** up_all
全てのキーを離した状態になります。





* Th135Dataクラス
** player
Th135PlayerDataのArrayを返します。
インデックス0が1P、1が2Pになります。
単純に自身や敵の情報を取得したい場合は
current_playerやtarget_playerを使用してください。

** object
!!!!本メソッドは非推奨です、可能ならobject_arrayを使用してください!!!!
Th135ObjectDataのHashを返します。
心綺楼の内部で稀に生成される同じnameを持つobjectが発生した場合
重複したobjectを取りこぼすことがあります。

** object_array
Th135ObjectDataのArrayを返します。

** battle_time
ラウンドの残り時間を返します。

** current_bgm_index
現在流れているBGMのidを返します。
BGMの切替時など無音の場合は-1が返ります。

** stage_id
現在のステージのidを返します。

** current_player
自身が操作しているTh135PlayerDataインスタンスを取得します。

** target_player
対戦相手のTh135PlayerDataインスタンスを取得します

** player_swap,player_swap=
デフォルトtrue。
1P側として起動された際に
Th135Data.playerの0番目と1番目を入れ替えたりなど
Th135Data.playerを直に触っていても動作するようにします。
current_playerを使用しているなど
必要ない場合はfalseに設定することで無効化できます。





* Th135ObjectDataクラス
** x,y
座標を返します

** life
残りHPを返します。

** motion
現在のモーション番号を返します

** key_take
現在のモーションの何番目の分割を表示しているか

** frame
現在分割の何フレーム目かを返します。

** flag_attack
自身の攻撃判定に関わるフラグを返します。

** direction
向き情報を返します。
左方向を向いている場合は-1
右方向を向いている場合は1

** name
自身の内部識別名です。
Th135Data.objectにおけるキーと同じ文字列が設定されます。

** owner
自身を所有するプレイヤー名です。

** flag_state
自身の状態に関わるフラグを返します。

** hit_stop_time
ヒットストップ残りフレームを取得します。

** speed.x,speed.y
速度を返します。





* Th135PlayerDataクラス
Th135ObjectDataクラスを継承しているため、そちらの機能も全て使用出来ます

** win
勝利したラウンド数を返します。

** mana
残り霊力を返します。

** guard
残りガードゲージを返します。
残り霊力の最大値でもあります。

** popular_good,popular_hate
人気ゲージを返します

** popular_high_time,popular_low_time,climax_time
人気者ボーナス、ペナルティ、人気爆発状態の残りフレーム数を返します。

** character_id,character_name
キャラクターの種別を返します。
以下対応表
  reimu:0
  marisa:1
  ichirin:2
  hijiri:3
  futo:4
  miko:5
  nitori:6
  koishi:7
  mamizou:8
  kokoro:9

** equip
装備IDの配列(長さ8固定)を返します。
0から順に打撃←↓↑→射撃←↓↑→。
装備なしの場合はnil。

** spell_card_time
宣言中スペルの残りフレーム数を返します。
宣言中ではない場合0を返します。

** spell_card_id
宣言中スペルのIDを返します。
宣言中ではない場合nilを返します。

** spell_card_name
宣言中スペルの名前を返します。
宣言中ではない場合空文字列("")を返します。

** guard_baria
バリアガード発動中ならtrueを返します。

** baria_standby
バリアガード待機中ならtrueを返します。

** faith_type
信仰タイプを返します。
数値と信仰タイプの関連は以下のとおり。
0:無
1:神
2:道
3:仏

** star
魔理沙の粉飾魔の星の数を返します。
魔理沙以外のキャラの場合nilが返ります。

** unzan_rage
一輪の怒りゲージの量を返します。
5000で最大値となり、怒り状態になります。
一輪以外のキャラの場合はnilが返ります。

** unzan_rage_time
一輪の怒り状態の残りフレーム数を返します。
一輪以外のキャラの場合はnilが返ります。

** chant
聖の詠唱行動の残り回数を返します。
聖以外のキャラの場合はnilが返ります。

** chant_id
聖の詠唱したスキルのIDを返します。
聖以外のキャラもしくは一度も詠唱していない場合はnilが返ります。

** dish
布都の現在設置されている皿であるobjectのHashを返します。
布都以外のキャラの場合は空のHashが返ります。

** dish_level
布都の皿のレベル(通常20枚毎に+1される)を返します。
布都以外のキャラの場合はnilが返ります。

** broken_dish
布都が壊した皿の枚数を返します。
布都以外のキャラの場合はnilが返ります。

** popular_level
神子の人気レベルを返します。
神子以外のキャラの場合はnilが返ります。

** popular
神子の人気量を返します。

** bullet
にとりの残りエネルギーを返します。
にとり以外のキャラの場合はnilが返ります。

** pre_auto_count
こいしのコマンド準備中フレームを返します。
ゲーム中で言うと該当アイコンが点滅している状態で、技は発動しない時間です。
0から順に強打撃/強射撃/必殺技になります。
こいし以外のキャラの場合はnilが返ります。

** auto_count
こいしのコマンド待機フレームを返します。
待機時間が無限な技など、ものによってはマイナスとなることもあります。
ゲーム中で言うと点滅が収まり条件を満たせば技が発生する状態です。
0から順に強打撃/強射撃/必殺技になります。
こいし以外のキャラの場合はnilが返ります。

** raccoon
マミゾウの残り手下数を返します。
マミゾウ以外のキャラの場合はnilが返ります。

** revive
マミゾウの手下補充の残りフレーム数を返します。
マミゾウ以外のキャラの場合はnilが返ります。

** faith_type_emotion
こころの感情の状態を返します。
0から順に無神道仏。
こころ以外のキャラの場合はnilが返ります。

** object
!!!!本メソッドは非推奨です、可能ならobject_arrayを使用してください!!!!
所有するObjectのHashを返します。
キーはObjectのnameで返ってくる値と同じです。
心綺楼の内部で稀に生成される同じnameを持つobjectが発生した場合
重複したobjectを取りこぼすことがあります。

** object_array
所有するObjectのArrayを返します。

** spell_guage
現在のスペルゲージを返します。
lifeと同じまで貯まるとスペルカードの宣言が可能になります。

** spell_alert
スペルカード宣言可能かどうかを返します。

** atk_rate
攻撃力倍率を返します。

** def_rate
防御力倍率を返します。

** mana_stop_count
霊力回復停止フレームを返します。

** combo.damage,combo.hit,combo.rate,combo.stun
コンボ情報を取得します。
自分が敵に与えたコンボではなく、敵から受けた攻撃の情報な点に注意。
damageが被ダメージ、hitが被弾回数
rateがダメージレート、stunがスタン値