API/関数
Last-modified: 2010-12-01 (水) 00:15:01
AIツールから緋想天/非想天則のキャラクターを操作したり、
yield()
処理を本体プログラム側に返し、前回のyield実行から数えて1フレーム経つまで待機します。 dash()
front方向へダッシュします、frontのキーがONのまま制御が返ります。 key_reset()
全てのキーをOFF(離す)にします。 key_off(key)
指定したキーをOFFにします。 key_on(key)
指定したキーをONにします、既にONの場合は何もしません。 key_event2(key1,key2)
二つのキーを同時に押してから離します。 key_event(key)
一つのキーを押してから離します。 dattack()
dash(), key_event,key_reset() を一括して行います。 wait(time)
指定回数だけyieldを実行します。 require(filename)
指定ファイルをaiスクリプトと認識し実行します。 require("対%c2ガード.ai"); --相手がアリスなら対aliceガード.aiを読み込む といったコードが使用可能です 置換文字一覧表:
get_skill_lv(player,skill_id)
player(0で自分、1で相手)の指定ID(0~11、スキルのカードID下二桁と同じ)のスキルのLvを取得します。
get_card_id(player,num)
player(0で自分、1で相手)の指定枚数目のスペルのIDを取得します。 set_key_delay(delay)
delayで指定されたフレームだけキー入力が遅れて送られるようになります(1フレーム=1/60秒) 例: set_key_delay(0); key_on(front); set_key_delay(20); key_off(front); このコードを実行した場合、1/3秒間相手に向かって歩き続けます。 逆に以前よりも短くなった場合、すでに送られた入力は入力時のdelayにあわせて実行されます。 例: set_key_delay(0); key_on(front); set_key_delay(20); key_off(front); set_key_delay(10); key_event(ACT_A); このコードを実行した場合、1/6秒間歩いてから6Aになります。 set_data_delay(delay)
delayで指定されたフレームだけ環境変数enemy_actとenemy_frame遅れて送られるようになります(1フレーム=1/60秒) get_obj_data(player,num)
指定プレイヤーのnum+1個目のオブジェクト(射撃の弾や人形など)の情報を取得します。 id,ox,oy,hp,img,frame,oxs,oys,oid,attack_n,hit_n = get_obj_data(TAG_MY,0); id等の具体的な情報はこちら(現在情報募集中)。 set_weather_delay(delay)
極光時に発現する天候効果がわかるようになるまでの時間を設定します。 1000 - weather_delay > weather_time; が真のときだけ読めるようになります。 get_card_cost(player,num)
指定プレイヤーのnum枚目のカードのコストを返します。 get_card_cost2(player,num)
曇天の影響を受けるget_card_cost。 get_opt_xy(player,num)
指定プレイヤーのnum+1個目の付属物の座標を返します 使用例: --付属物の全座標を出力する local i = 0; while (true) do ox, oy = get_opt_xy(TAG_MY,i); if(ox==nil) then break; end print(i,ox,oy); i = i+1; end command(string)
コマンド入力記法に似た簡易言語によるキー入力を行います。 command("AA(10)A(5)236B(50)236B"); これでAAA>236B>236Bという行動を行いします(カッコ内の数字はコマンド技ごとに調整する必要があります) ※この命令はツールスレ内の有志によって開発されていたSetInput関数を基に試験的に実装されたものです。 get_deck_list()
自分のデッキリストを取得します。 deck = {get_deck_list(0)}; という形で使えばdeck[1~20]に格納できます。 get_key_stat(n)
キー指定子nがONならば1、OFFならば0が返ります。 get_key_map()
キー指定子0~9のON/OFFをまとめて取得します。 get_real_key_stat(n)
緋想天のキーコンフィグに関係なく、指定キーのON/OFFを取得します。 VK_F10 = 121; if (get_real_key_stat(VK_F10) < 0) then --F10が押されていたときの処理 end このように使います。 create_thread(name[, param1, param2...])
nameという名称の関数に0個以上の引数を与えてマイクロスレッドとして実行します。 使用例: function a() while (true) do key_event(ACT_A); yield(); end end function ab() while (true) do key_event(ACT_AB); yield(); end end -- 引数あり function push(button) while (true) do key_event(button); yield(); end end function main() create_thread("a"); create_thread("ab"); create_thread(push, ACT_BC); while (true) do yield(); end end 0.71bの修正により、create_threadした時点で指定関数を退避するようになりました。 get_special_data(player,n)
指定プレイヤーの固有な設定値を取得します。 以下一覧表
※時符「咲夜特性ストップウォッチ」は範囲内キャラのhitstopを1にし続けるスペルカードのため、ここでは識別できません。
get_obj_attackarea(player,num,n)
指定プレイヤーのnum個目のオブジェクトの攻撃判定を示す四角形のn個目を返します。 --自分の0個目のオブジェクトの0個目の攻撃判定を取得 left, top, right, bottom = get_obj_attackarea(TAG_MY,0,0); get_attackarea(player,n)
指定プレイヤーの攻撃判定を示す四角形のn個目を返します。 get_obj_hitarea(player,num,n)
指定プレイヤーのnum個目のオブジェクトの食らい判定を示す四角形のn個目を返します。 get_hitarea(player,n)
指定プレイヤーの食らい判定を示す四角形のn個目を返します。 get_correction(player,flag)
指定プレイヤーが相手にflagの特殊補正を与えているか判別します。 例: if (get_correction(0,32)) then --カウンターヒットしたときの処理 end get_version()
AI本体のバージョンを文字列として取得します。 get_fflags(player, flag)
指定プレイヤーの攻撃に関わらないフラグを取得します。 例: if(get_fflags(0,4))then --空中にいる時の処理 end get_aflags(player, flag)
指定プレイヤーの攻撃関連フラグを取得します。 例: if(get_fflags(1,1))then --下段攻撃された時の処理 end my_win_count()
自分の勝利ラウンド数を返します。 enemy_win_count()
相手の勝利ラウンド数を返します。 |