# -- # GearHead1-GearHeart 説明書 : QRL API仕様書 # # 最終更新:Fri,11 Mar,2022 # Copyright(C)2008 G-HAL. All rights reserved. # -- ● QRLの仕様  QRL を手書きで作成する場合の仕様を以下に記します。  QRLは、lua ver.5.3系もしくは luajit ver.2.0系(lua ver.5.1系準拠)で記述します。 ◎ QRLに必須の関数 ○ 一度だけ呼び出される関数 ・新規戦闘開始時に1回だけ 「qrl_chip_start(Mek, GB)」が呼び出されます。 Mek には操作対象のメック情報が、GB にはゲームボード情報が、渡されます。 qrl_chip_start() と qrl_chip_resume() は、どちらか一方のみ呼び出されます。 後述の qrl_chip_hibernate() での保存結果は無視して構いません。 ・ロード時に1回だけ 「qrl_chip_resume(Mek, GB)」が呼び出されます。 Mek には操作対象のメック情報が、GB にはゲームボード情報が、渡されます。 qrl_chip_start() と qrl_chip_resume() は、どちらか一方のみ呼び出されます。 後述の qrl_chip_hibernate() での保存結果から状態を復帰させる事が求められます。 ・QRLの続行を破棄する場合に1回だけ 「qrl_chip_destroy(Mek, GB)」が呼び出されます。 Mek には操作対象のメック情報が、GB にはゲームボード情報が、渡されます。 qrl_chip_destroy() と qrl_chip_stop() は、どちらか一方のみ呼び出されます。 後述の qrl_chip_hibernate() での保存結果を破棄する事が求められます。 ・ゲーム終了時に1回だけ 「qrl_chip_stop(Mek, GB)」が呼び出されます。 Mek には操作対象のメック情報が、GB にはゲームボード情報が、渡されます。 qrl_chip_destroy() と qrl_chip_stop() は、どちらか一方のみ呼び出されます。 後述の qrl_chip_hibernate() での保存結果は別途維持する事が求められます。 ○ 何度も呼び出される関数 ・qrl_chip_start() もしくは qrl_chip_resume() が呼ばれた後、 「qrl_chip0000(Mek, GB)」が呼び出されます。 Mek には操作対象のメック情報が、GB にはゲームボード情報が、渡されます。 第一返値として、次に呼び出されたい QRLチップ番号の数字4桁を 文字列型として返します。 QRLチップ番号が4桁に満たない場合は上位に 0 を追加して4桁表記にします。 同梱サンプルの QRLdefault.lua では、'0002' を返していますので、 次に呼び出される QRLチップ番号は 0002 となります。 ・その後は、指定した QRLチップ番号 「qrl_chipチップ番号(Mek, GB)」が呼び出されます。 Mek には操作対象のメック情報が、GB にはゲームボード情報が、渡されます。 第一返値として、次に呼び出されたい QRLチップ番号の数字4桁を 文字列型として返します。 QRLチップ番号が4桁に満たない場合は上位に 0 を追加して4桁表記にします。 同梱サンプルの QRLdefault.lua の qrl_chip0002() では '0003' を返していますので、 次に呼び出される QRLチップ番号は 0003 となります。 ・セーブ時に毎回、 「qrl_chip_hibernate(Mek, GB)」が呼び出されます。 Mek には操作対象のメック情報が、GB にはゲームボード情報が、渡されます。 セーブ後も処理を続行します。 ○ エラー発生時に呼び出される関数 ・チップ遷移先が存在しない場合、 「qrl_chip_outofrange(Mek, GB)」が呼び出されます。 Mek には操作対象のメック情報が、GB にはゲームボード情報が、渡されます。 ○ 関数での決まり事 ・QRLチップ番号の関数「qrl_chipチップ番号(Mek, GB)」にて、 メックの動作を記述します。 Mek には操作対象のメック情報を、GB にはゲームボード情報を、渡します。 後述の API が使用できます。 ・GearHeart 側から Lua デバッガを呼び出そうとすると、 関数「call_debugger(flag)」が呼び出されます。 (1 == flag) の時はデバッガを有効に、 (0 == flag) の時はデバッガを無効に、 する事が求められます。 ◎ QRLに必須のインクルードファイル ○ 標準的なインクルードファイルとして、 require "LuaData/global_mod/global_mod"; require "LuaData/stamp"; require "LuaData/asvmacro"; require "LuaData/lib"; require "LuaData/locale"; require "LuaData/aibrain"; require "LuaData/a_star"; require "LuaData/lib4qrl"; の8つがあります。また内部的に呼ばれる物として require "LuaData/suspend"; の1つがあります。 ・global_mod.lua は拡張機能で、 「変数や定数を明示的に宣言しないと使用できなくする」ものです。 ・stamp.lua は、QRL のバージョンが書かれています。 読み込みは必須ではありません。 ・asvmacro.lua は、 GearHead1 RPG で使用する定数が定義されています。 ・lib.lua は、 汎用ライブラリ API が定義されています。 ・locale.lua と aibrain.lua は、 経路探索ライブラリ API が定義されています。 ・a_star.lua は、 A*(Dijkstra)経路探索ライブラリ API が定義されています。 ・lib4qrl.lua は、 QRL処理用の汎用ライブラリ API が定義されています。 ・suspend.lua は、 qrl_chip_hibernate(), qrl_chip_resume(), qrl_chip_destroy() での 変数の保管・復帰・破棄の処理用ライブラリです。 ◎ API 一覧およびライブラリ関数一覧 ○ global_mod.lua で追加される機能  QRL にて、変数や定数を明示的に宣言しないと使用できなくする拡張機能です。 ・define_global("定義する変数名", 初期値); グローバルなスコープを持つ変数を定義し初期値を代入します。 初期値に {} を指定すると、 global_mod.lua の影響を受けない配列変数を定義します。 ・define_const("宣言する変数名", 値); グローバルなスコープを持つ定数を宣言します。 ・define_global_array("定義する配列変数名"); グローバルなスコープを持つ配列変数を定義します。 定義した配列変数は、下記 define_global_array_index() で 使用したい添字を定義するまで使用できません。 ・define_global_array_index(定義した配列変数名, "定義する要素名", 初期値); グローバルなスコープを持つ配列変数にて、使用する要素名を定義します。 初期値に {} を指定すると、 global_mod.lua の影響を受けない配列変数を定義します。 ・local 定義する変数名; ローカルなスコープを持つ変数を定義します。 ・local 定義する変数名 = 値; ローカルなスコープを持つ変数を定義し初期値を代入します。 ○ QRLから使用できる API リファレンス  インクルードファイルを読み込まなくても使用できる API です。 ・PrintStack();  引数:無し;返値:無し;  デバッグ用。 lua のスタックの内容を表示します。 ・PrintTraceMessage( GB: GameBoardPtr; Mek: GearPtr; msg: String );  引数:GB:ゲームボード情報; Mek:メック情報; msg:表示メッセージ;返値:無し;  トレース用メッセージを表示します。 Mek がユーザ担当のメックの場合にのみ、 日時/メック名/msgの内容を画面に表示します。 ・PrintTracer( GB: GameBoardPtr; Mek: GearPtr; msg: String );  引数:GB:ゲームボード情報; Mek:メック情報; msg:座標リスト;返値:無し;  QRL Viewer にトレース用カーソルを表示します。 Mek がユーザ担当のメックの場合にのみ表示されます。 ・PrintErrorMessage( GB: GameBoardPtr; Mek: GearPtr; msg: String );  引数:GB:ゲームボード情報; Mek:メック情報; msg:座標リスト;返値:無し;  QRL で発生したエラーをユーザーに対して表示します。 Mek がユーザ担当のメックの場合にのみ表示されます。 ・GetMekName_for_Trace( Mek: GearPtr ): String;  引数:Mek:メック・パーツ・アイテム情報;返値:メックの名前;  デバッグ用。 メック・パーツ・アイテムのパイロット名とメックのフルネームを返します。 未定義の場合は '' が返ります。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 ・GetSuspendFileName( GB: GameBoardPtr; Mek: GearPtr ): String;  引数:GB:ゲームボード情報; Mek:メック情報;返値:ファイル名;  内部処理用。 QRL状態のハイバネート/レジュームに使用すべきファイル名を返します。 ・SetChipMode( GB: GameBoardPtr; Mek: GearPtr; Mode: Integer ): Boolean;  引数:GB:ゲームボード情報; Mek:メック情報; Mode:チップのモード;返値:真偽値;  QRLチップの実行モードを設定します。  Mode として QRL_CHIPMODE_NORMAL を指定するか、 SetChipMode の呼び出しを省略すると、 指定した実行内容は仮確定となり、実行はまだ行われません。 この時、このチップ自体は QRL_CHIPMODE_BEGIN での実行済みチップ数の勘定に入ります。  Mode として QRL_CHIPMODE_EXEC を指定すると、 これまで仮確定であった実行内容を確定し、実行を行います。 この時、QRL_CHIPMODE_EXEC を実行したチップ自体は QRL_CHIPMODE_BEGIN での実行済みチップ数の勘定には入りません。  Mode として QRL_CHIPMODE_BEGIN を指定した場合、 チップを1つ以上実行していた場合は QRL_CHIPMODE_EXEC と同等の処理を、 チップをまだ実行していない場合は QRL_CHIPMODE_NORMAL と同等の処理を、 行います。 この時、QRL_CHIPMODE_BEGIN を実行したチップ自体は 次回の QRL_CHIPMODE_BEGIN での実行済みチップ数の勘定に入ります。  Mode として QRL_CHIPMODE_END を指定した場合、 指定した実行内容は仮確定となり、実行はまだ行われません。 この時、QRL_CHIPMODE_END を実行したチップ自体は QRL_CHIPMODE_BEGIN での実行済みチップ数の勘定には入りません。  返値は、前回の QRL_CHIPMODE_EXEC を実行以後に、 チップを1つ以上実行していた場合は真を、 チップをまだ実行していない場合は偽を、返します。 ・RetrieveAString( S: String ): String;  引数:S:文字列;返値:文字列;  引数の文字列から、「<>」で囲まれた箇所を抽出します。 囲まれた箇所が無い場合は '' が返ります。 ・GB_ComTime( GB: GameBoardPtr ): LongInt;  引数:GB:ゲームボード情報;返値:現在時刻;  ゲーム中の秒単位の現在時刻を返します。 ・GB_Scale( GB: GameBoardPtr ): Integer;  引数:GB:ゲームボード情報;返値:スケール値;  現在の戦闘マップのスケールを返します。 ・GB_Map_Terr( GB: GameBoardPtr; X, Y: Integer ): Integer;  引数:GB:ゲームボード情報; X,Y:座標;返値:地形番号;  指定座標の地形番号を取得します。 ※注意:索敵範囲外の地形情報も得られてしまう。 ・GB_Scene( GB: GameBoardPtr ): GearPtr;  引数:GB:ゲームボード情報;返値:シーン群情報;  現在の戦闘マップ中に存在するシーン群情報を返します。 ※注意:索敵範囲外の情報も得られてしまう。 存在しない場合は NIL が返ります。 ・GB_Meks( GB: GameBoardPtr ): GearPtr;  引数:GB:ゲームボード情報;返値:メック群情報;  現在の戦闘マップ中に存在するメック群情報を返します。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 後述の MekCanSeeTarget() で索敵範囲内か否か確認して下さい。 存在しない場合は NIL が返ります。 ・TerrMan_Altitude( Terr: Integer ): Integer;  引数:Terr:地形番号;返値:高度;  指定された地形番号の高度を返します。 ・TerrMan_Obscurement( Terr: Integer ): Integer;  引数:Terr:地形番号;返値:隠蔽度合い;  指定された地形番号の隠蔽度合いを返します。 ・Mek_G( Mek: GearPtr ): Integer;  引数:Mek:メック・パーツ・アイテム情報;返値:General Descriptive;  メック・パーツ・アイテムの G値を返します。 G値は、asvmacro.lua にて GG_* で宣言されている値です。 ・Mek_S( Mek: GearPtr ): Integer;  引数:Mek:メック・パーツ・アイテム情報;返値:Specific Descriptive;  メック・パーツ・アイテムの S値を返します。 S値は、asvmacro.lua にて GS_* で宣言されている値です。 ・Mek_V( Mek: GearPtr ): Integer;  引数:Mek:メック・パーツ・アイテム情報;返値:Value Descriptive;  メック・パーツ・アイテムの V値を返します。 ・Mek_Scale( Mek: GearPtr ): Integer;  引数:Mek:メック・パーツ・アイテム情報;返値:スケール値;  メック・パーツ・アイテムのスケール値を返します。 ・Mek_Stat( Mek: GearPtr; N: Integer ): Integer;  引数:Mek:メック/キャラクタ情報; N:Stat選択;返値:内容;  指定されたメック/キャラクタの指定された Stat 値を返します。 ・Mek_Name( Mek: GearPtr ): String;  引数:Mek:メック・パーツ・アイテム情報;返値:メックの名前;  メック・パーツ・アイテムの名前を返します。 未定義の場合は '' が返ります。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 ・Mek_SubCom( Mek: GearPtr ): GearPtr;  引数:Mek:メック・パーツ・アイテム情報;返値:パーツ・アイテム情報;  メック・パーツ・アイテムに接続しているサブコンポーネントの情報を返します。 複数のパーツ・アイテムを接続している場合は、 Mek_Next() を使って順繰りに情報を取得します。 存在しない場合は NIL が返ります。 ・Mek_InvCom( Mek: GearPtr ): GearPtr;  引数:Mek:メック・パーツ・アイテム情報;返値:パーツ・アイテム情報;  メック・パーツ・アイテムに搭載しているパーツ・アイテムの情報を返します。 複数のパーツ・アイテムを搭載している場合は、 Mek_Next() を使って順繰りに情報を取得します。 存在しない場合は NIL が返ります。 ・Mek_Next( Mek: GearPtr ): GearPtr;  引数:Mek:メック・パーツ・アイテム情報;返値:メック・パーツ・アイテム情報;  GB_Meks(), Mek_SubCom(), Mek_InvCom(), Mek_Next() にて得られた メック・パーツ・アイテムの、次に並んで・接続して・搭載している メック・パーツ・アイテム情報を返します。 存在しない場合は NIL が返ります。 ・Mek_Parent( Mek: GearPtr ): GearPtr;  引数:Mek:メック・パーツ・アイテム情報;返値:メック・パーツ・アイテム情報;  GB_Meks(), Mek_SubCom(), Mek_InvCom(), Mek_Next() にて得られた メック・パーツ・アイテムを、接続・搭載している 親のメック・パーツ・アイテム情報を返します。 存在しない場合は NIL が返ります。 ・Mek_NAttValue_EpisodeData( Mek: GearPtr; S: Integer ): LongInt;  引数:Mek:メック情報; S:Specific Descriptive;返値:数値;  メックの NAG_EpisodeData 及び S で指定された変数の内容を返します。 変数が未定義ならば 0 が返ります。 S が NAS_UID ならばメックの UniqID を返します。 S が NAS_Target ならば現在着目しているメックの UniqID を返します。 S が NAS_ATarget ならば目標としているメックの UniqID を返します。 S が NAS_PrevDamage ならば直前の行動時のダメージ値を返します。 S が NAS_InitRecharge ならば攻撃のチャージが完了し攻撃可能になる時刻を返します。 S が NAS_Orders ならば指示された行動を返します。 返値は、 NAV_GotoSpot, NAV_SeekEdge, NAV_Passive, NAV_RunAway, NAV_Follow, NAV_SeekAndDestroy になります。 S が NAS_ContinuousOrders ならば次に行いたい行動を返します。 返値は、 CORD_Flirt, CORD_Chat, -16, -20, -23, -15, -22 になります。CORD_Flirt, CORD_Chat は会話、負値はリペア系行動です。 S が NAS_ChatterRecharge ならば次に Taunt を発する最短時刻を返します。 S が NAS_Ransacked は内部予約です。 S が NAS_Gutted は内部予約です。 S が NAS_Flayed は内部予約です。 ・Mek_NAttValue_Location( Mek: GearPtr; S: Integer ): LongInt;  引数:Mek:メック情報; S:Specific Descriptive;返値:数値;  メックの NAG_Location 及び S で指定された変数の内容を返します。 変数が未定義ならば 0 が返ります。 S が NAS_X ならばメックの現在位置 X座標を返します。 S が NAS_Y ならばメックの現在位置 Y座標を返します。 S が NAS_D ならばメックの現在の向きを返します。 S が NAS_Team ならばメックの所属チームを返します。 返値は、 NAV_DefNeutralTeam, NAV_DefPlayerTeam, NAV_LancemateTeam, NAV_DefEnemyTeam になります。 S が NAS_LastMenuItem は内部予約です。 S が NAS_GX ならば指示された目標位置 X座標を返します。 S が NAS_GY ならば指示された目標位置 Y座標を返します。 S が NAS_SmartAction は内部予約です。 S が NAS_SmartWeapon は内部予約です。 S が NAS_SmartCount は内部予約です。 S が NAS_SmartX は内部予約です。 S が NAS_SmartY は内部予約です。 S が NAS_SmartTarget は内部予約です。 ・Mek_NAttValue_Action( Mek: GearPtr; S: Integer ): LongInt;  引数:Mek:メック情報; S:Specific Descriptive;返値:数値;  メックの NAG_Action 及び S で指定された変数の内容を返します。 変数が未定義ならば 0 が返ります。 S が NAS_MoveMode ならば現在の移動モードを返します。 返値は、 MM_Walk, MM_Roll, MM_Skim, MM_Fly になります。 S が NAS_MoveAction ならば現在の移動状態を返します。 返値は、 NAV_Stop, NAV_NormSpeed, NAV_FullSpeed, NAV_TurnLeft, NAV_TurnRight, NAV_Reverse, NAV_Hover になります。 S が NAS_MoveETA ならば1回分の移動完了予定時刻を返します。 S が NAS_MoveStart ならば1回分の移動開始時刻を返します。 S が NAS_CallTime は内部予約です。 S が NAS_TimeLimit は滞空(ジャンプ)移動の限界時刻を返します。 S が NAS_JumpRecharge は次回の滞空(ジャンプ)移動開始可能時刻を返します。 S が NAS_SpeedoMeter は内部予約です。 ・Mek_NAttValue_Personal( Mek: GearPtr; S: Integer ): LongInt;  引数:Mek:メック情報; S:Specific Descriptive;返値:数値;  メックの NAG_Personal 及び S で指定された変数の内容を返します。 変数が未定義ならば 0 が返ります。 S が NAS_CID ならばキャラクターID を返します。 S が NAS_FactionID ならば Faction のID を返します。 S が NAS_ReTalk は内部予約です。 S が NAS_RandSeed は内部予約です。 S が NAS_RestockTime は内部予約です。 S が NAS_PickPocketRestock は内部予約です。 S が NAS_OptMax ならば指示された目標最長射程を返します。 S が NAS_OptMin ならば指示された目標最短射程を返します。 S が NAS_PerfomancePenalty は内部予約です。 S が NAS_ReactionScore は内部予約です。 ・Mek_NAttValue_Skill( Mek: GearPtr; S: Integer ): LongInt;  引数:Mek:メック情報; S:Specific Descriptive;返値:数値;  メックの NAG_Skill 及び S で指定された変数の内容を返します。 S はスキル番号を指定します。 スキル番号とスキル名の対応はソースの ghchars.pp の SkillMan: Array [] を参照。 返値はスキルのランクです。 ・Mek_NAttValue( Mek: GearPtr; G: Integer; S: Integer ): LongInt;  引数:Mek:メック情報; G:General Descriptive; S:Specific Descriptive;返値:数値;  メックの G 及び S で指定された変数の内容を返します。 変数が未定義ならば 0 が返ります。 返値は値です。 ・Mek_SetNAtt_EpisodeData( Mek: GearPtr; S: Integer; V: LongInt ): NAttPtr;  引数:Mek:メック情報; S:Specific Descriptive; V:Value;返値:変数情報;  メックの NAG_EpisodeData 及び S で指定された変数に V値を設定します。 Mek_NAttValue_EpisodeData() を参照されたし。 ・Mek_SetNAtt_Action_MoveMode( Mek: GearPtr; V: LongInt ): NAttPtr;  引数:Mek:メック情報; V:Value;返値:変数情報;  メックの NAG_EpisodeData 及び NAS_MoveMode で指定された変数に V値を設定します。 メックの移動モードを指定します。 引数は、 MM_Walk, MM_Roll, MM_Skim, MM_Fly になります。 ・Mek_SetSAtt( Mek: GearPtr; Key, Value: String ): String;  引数:Mek:情報群; Key:タグ文字列; Value:値文字列;返値:無し;  指定された情報群に、指定されたタグ文字列の指定された値内容を設定します。 ・Mek_SAttValue( Mek: GearPtr; Tag: String ): String;  引数:Mek:情報群; Tag:タグ文字列;返値:文字列;  指定された情報群の、指定されたタグ文字列の内容を返します。 何も無い場合は、空文字列が返ります。 ・Mek_GUID( Mek: GearPtr ): String;  引数:Mek:情報群;返値:文字列;  指定された情報群の、GUID を返します。 ・GUID_to_Mek( GB: GameBoardPtr; GUID: String ): GearPtr;  引数:GB:ゲームボード情報; GUID:文字列;返値:情報群;  指定された GUID を持つ情報群を返します。 見つからなければ NIL が返ります。 ・IsMasterGear( Mek: GearPtr ): Boolean;  引数:Mek:メック情報;返値:真偽値;  Mek がメック本体もしくはキャラクタ本体であれば真を返します。 Mek がアイテム/パーツ/瓦礫などであれば偽を返します。 ・FindRoot( Mek: GearPtr ): GearPtr;  引数:Mek:メック情報;返値:メック情報;  Mek の根となるメック情報を返します。 ・IsSubCom( Part: GearPtr ): Boolean;  引数:Part:パーツ情報;返値:真偽値;  Part が SubComponents か否かを返します。 ・IsInvCom( Part: GearPtr ): Boolean;  引数:Part:パーツ情報;返値:真偽値;  Part が InvComponents か否かを返します。 ・CalcMoveTime( Mek: GearPtr; GB: GameBoardPtr ): Integer;  引数:Mek:メック情報; GB:ゲームボード情報;返値:時刻;  現在行なっている行動の終了時刻を返します。 ・WeaponDC( Mek: GearPtr; AtOp: Integer ): LongInt;  引数:Mek:メック情報; AtOp:未使用;返値:ダメージ値;  メックの最大火力を返します。 ・GearCurrentDamage( Mek: GearPtr ): LongInt;  引数:Mek:メック・パーツ・アイテム情報;返値:ダメージ値;  メック・パーツ・アイテムの現在の残りダメージ値を返します。 ・GearMaxDamage( Mek: GearPtr ): Integer;  引数:Mek:メック・パーツ・アイテム情報;返値:ダメージ値;  メック・パーツ・アイテムの最大許容ダメージ値を返します。 ・GearCurrentArmor( Mek: GearPtr ): Integer;  引数:Mek:メック・パーツ・アイテム情報;返値:アーマー値;  メック・パーツ・アイテムの現在の残りアーマー値を返します。 ・GearMaxArmor( Mek: GearPtr ): Integer;  引数:Mek:メック・パーツ・アイテム情報;返値:アーマー値;  メック・パーツ・アイテムの最大アーマー値を返します。 ・PercentDamaged( Mek: GearPtr ): Integer;  引数:Mek:メック・パーツ・アイテム情報;返値:百分率;  メック・パーツ・アイテムの被害割合を返します。 100で無被害、0で完全破損、です。 ・NotDestroyed( Part: GearPtr ): Boolean;  引数:Part:メック・パーツ・アイテム情報;返値:真偽値;  メック・パーツ・アイテムが破壊されていないか否かを返します。 真で破壊されていません。 ・Destroyed( Part: GearPtr ): Boolean;  引数:Part:メック・パーツ・アイテム情報;返値:真偽値;  メック・パーツ・アイテムが破壊されているか否かを返します。 真で破壊されています。 ・TotalRepairableDamage( Mek: GearPtr; Skill: Integer ): LongInt;  引数:Part:メック・パーツ・アイテム情報; Skill:スキル番号;返値:ダメージ値;  指定されたスキルを用いて可能な修理ダメージ値を返します。 ・AreEnemies_TT( GB: GameBoardPtr; T1, T2: Integer ): Boolean;  引数:GB:ゲームボード情報; T1:チーム番号; T2:チーム番号;返値:真偽値;  指定されたチーム同士が敵か否かを返します。 真で敵です。 ・AreEnemies_MM( GB: GameBoardPtr; M1, M2: GearPtr ): Boolean;  引数:GB:ゲームボード情報; M1:メック情報; M2:メック情報;返値:真偽値;  指定されたメック同士が敵か否かを返します。 真で敵です。 ・TeamSkill( GB: GameBoardPtr; V: Integer; S: Integer ): Integer;  引数:GB:ゲームボード情報; V:チーム番号; S:スキル番号;返値:スキル値;  指定されたチームにおける指定されたスキルの最大有効値を返します。 チーム補正済みの値が返ります。 ・BaseMoveRate_withMode( Mek: GearPtr; MM: Integer ): Integer;  引数:Mek:メック情報; MM:移動モード;返値:速度;  指定されたメックの指定された移動モードにおける最大移動速度を返します。 ・BaseMoveRate_CurrentMode( Mek: GearPtr ): Integer;  引数:Mek:メック情報;返値:速度;  指定されたメックの最大移動速度を返します。 ・SkillValue( Mek: GearPtr; V: Integer ): Integer;  引数:Mek:メック情報; V:スキル番号;返値:スキルランク;  指定されたメックの指定されたスキルのランクを返します。 ・AreAllies_TT( GB: GameBoardPtr; T1, T2: Integer ): Boolean;  引数:GB:ゲームボード情報; T1:チーム番号; T2:チーム番号;返値:真偽値;  指定されたチーム同士が同盟か否かを返します。 真で同盟です。 ・AreAllies_MM( GB: GameBoardPtr; M1, M2: GearPtr ): Boolean;  引数:GB:ゲームボード情報; M1:メック情報; M2:メック情報;返値:真偽値;  指定されたメック同士が同盟か否かを返します。 真で同盟です。 ・IsSafeArea( GB: GameBoardPtr ): Boolean;  引数:GB:ゲームボード情報;返値:真偽値;  現在のマップが安全になったか否かを返します。 ・GearCurrentLocation( Mek: GearPtr ): Point;  引数:Mek:メック情報;返値:座標(X,Y,Z);  指定したメックの現在座標を返します。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 存在しない、あるいは破壊されたメックを指定すると (-1,-1,-1) が返ります。 ・OnTheMap_XY( X, Y: Integer ): Boolean;  引数:X,Y:座標;返値:指定された座標がマップ内;  指定された座標がマップ内か否かを返します。 ・OnTheMap_Mek( Mek: GearPtr ): Boolean;  引数:Mek:メック情報;返値:指定されたメックがマップ内;  指定されたメックがマップ内に居るか否かを返します。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 ・MekAltitude( GB: GameBoardPtr; Mek: GearPtr ): Integer;  引数:GB:ゲームボード情報; Mek:メック情報;返値:高度;  指定されたメックの高度を取得します。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 ・FindBlockerXYZ( GB: GameBoardPtr; X, Y, Z: Integer ): GearPtr;  引数:GB:ゲームボード情報; X,Y,Z:判定する座標;返値:メック情報;  指定された座標にいるメックの情報を取得します。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 ・UpdateShadowMap_for_General( GB: GameBoardPtr );  引数:GB:ゲームボード情報;返値:無し;  一般探索用の ShadowMap を更新します。 進入可能か否かの判定に使うマップ情報となります。 ※注意:索敵範囲外の地図も得られてしまう。 ・TileBlocksLOS_for_General( GB: GameBoardPtr; X, Y, Z: Integer ): Boolean;  引数:GB:ゲームボード情報; X,Y,Z:判定する座標;返値:真偽値;  指定された座標に進入可能か否かを取得します。 真で進入不可、偽で進入可能です。 呼び出し前に UpdateShadowMap_for_General() を実行している事が必須です。 ※注意:索敵範囲外の地図も得られてしまう。 ・IsBlocked_for_General( Mek: GearPtr; GB: GameBoardPtr; X, Y: Integer ): Boolean;  引数:Mek:メック情報; GB:ゲームボード情報; X,Y:座標;返値:進入可否;  指定された座標に指定されたメックが進入できるか否かを返します。 移動経路の有無は問いません。 移動経路が有るか否かを確認したい場合は HotMap系関数を使います。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 ・GearDestination( Mek: GearPtr ): Point;  引数:Mek:メック情報;返値:座標(X,Y,Z);  指定されたメックの移動見込み後の座標を返します。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 ・IsObstacle( GB: GameBoardPtr; Mek: GearPtr; Terrain: Integer ): Boolean;  引数:GB:ゲームボード情報; Mek:メック情報; Terrain:地形;返値:移動可否;  指定されたメックが指定された地形へ移動できるか否かを返します。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 ・MoveBlocked_for_General( Mek: GearPtr; GB: GameBoardPtr ): Boolean;  引数:Mek:メック情報; GB:ゲームボード情報;返値:移動可否;  指定されたメックが、現在の移動モードで1ターン分移動できる地形か否かを返します。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 ・IsInCover_for_General( GB: GameBoardPtr; Mek: GearPtr ): Boolean;  引数:GB:ゲームボード情報; Mek:判定したいメック;返値:真偽値;  指定されたメックが隠蔽状態か否かを判定します。 隠蔽状態なら真を、露呈していれば偽を返します。 ・DoorPresent( GB: GameBoardPtr; X, Y: Integer ): Boolean;  引数:GB:ゲームボード情報; X,Y:座標;返値:有無;  指定された座標に閉じたドアが有るか否かを返します。 ・JumpTime( Mek: GearPtr ): Integer;  引数:Mek:メック情報;返値:滞空(ジャンプ)可能時間;  指定されたメックが滞空(ジャンプ)可能な残り時間を返します。 ・MoveLegal_withMode( Mek: GearPtr; MoveMode: Integer; MoveAction: Integer; ComTime: LongInt ): Boolean;  引数:Mek:メック情報; MoveMode:移動モード; MoveAction:移動内容; ComTime:時刻;返値:可否;  指定されたメックが指定されたモードで指定された移動内容を行えるか否かを返します。 MoveMode には、MM_Walk, MM_Roll, MM_Skim, MM_Fly を渡します。 MoveAction には、NAV_Stop, NAV_NormSpeed, NAV_FullSpeed, NAV_TurnLeft, NAV_TurnRight, NAV_Reverse, NAV_Hover を渡します。 ComTime は、MM_Fly時の滞空(ジャンプ)予定時刻を渡します。 ・MoveLegal_CurrentMode( Mek: GearPtr; MoveAction: Integer; ComTime: LongInt ): Boolean;  引数:Mek:メック情報; MoveAction:移動内容; ComTime:時刻;返値:可否;  指定されたメックが現在の移動モードで指定された移動内容を行えるか否かを返します。 ・LocateTeam_GB( GB: GameBoardPtr; Team: Integer ): GearPtr;  引数:GB:ゲームボード情報; Team:情報を得たいチーム;返値:チーム情報;  指定されたチームの情報を得ます。 指定されたチームが存在しなければ NIL が返ります。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 ・CheckConversionSystem( Mek: GearPtr ): Boolean;  引数:Mek:メック情報;返値:可否;  指定されたメックが変形可能か否かを返します。 可変メックにて変形システムが破壊されている場合も否が返ります。 ・ReadyToFire( GB: GameBoardPtr; User: GearPtr; Weapon: GearPtr; CheckForm: Boolean; CheckAmmo: Boolean; CheckTime: Boolean ): Boolean;  引数:GB:ゲームボード情報; User:メック情報; Weapon:武器情報; CheckForm:要変形か検査; CheckAmmo:要弾薬装填か検査; CheckTime:要チャージか検査;返値:可否;  指定されたメックの指定された武器が、攻撃可能か否かを返します。 CheckForm が true の場合、現在の変形形態では射撃不可能な場合は否が返ります。 CheckForm が false の場合、現在の変形形態では射撃不可能な場合でも真が返ります。 CheckAmmo が true の場合、弾切れの場合は否が返ります。 CheckAmmo が false の場合、弾切れの場合でも真が返ります。 CheckTime が true の場合、未チャージの場合は否が返ります。 CheckTime が false の場合、未チャージの場合でも真が返ります。 ・Range_MM( GB: GameBoardPtr; M1, M2: GearPtr ): Integer;  引数:GB:ゲームボード情報; M1,M2:メック情報;返値:距離;  指定されたメック間の距離を返します。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 ・WeaponRange( GB: GameBoardPtr; Weapon: GearPtr ): Integer;  引数:GB:ゲームボード情報; Weapon:武器情報;返値:射程;  指定された武器の射程距離を返します。 ・RangeCheck_Mek( GB: GameBoardPtr; Master: GearPtr; Weapon: GearPtr; Target: GearPtr ): Boolean;  引数:GB:ゲームボード情報; Master:メック情報; Weapon:武器情報; Target:目標;返値:可否;  指定されたメックの指定された武器が、目標を射程におさめているか否かを返します。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 ・RangeArcCheck_Mek( GB: GameBoardPtr; Master: GearPtr; Weapon: GearPtr; Target: GearPtr ): Boolean;  引数:GB:ゲームボード情報; Master:メック情報; Weapon:武器情報; Target:目標;返値:可否;  指定されたメックの指定された武器が、目標を射程および射角におさめているか否かを返します。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 ・LocatePilot( Mek: GearPtr ): GearPtr;  引数:Mek:メック情報;返値:パイロット情報;  指定されたメックのパイロット情報を返します。 ・GearOperational( Mek: GearPtr ): Boolean;  引数:Mek:メック情報;返値:稼働可否;  指定されたメックが稼働中か否かを返します。 ・GearActive( Mek: GearPtr ): Boolean;  引数:Mek:目標情報;返値:行動可否;  指定された目標が行動可能か否かを返します。 ・TeamCanSeeTarget( GB: GameBoardPtr; Team: Integer; Target: GearPtr ): Boolean;  引数:GB:ゲームボード情報; Team:チーム情報; Target:目標情報;返値:真偽;  指定されたチームから、目標が視認できるか否かを返します。 ・MekCanSeeTarget( GB: GameBoardPtr; Mek, Target: GearPtr ): Boolean;  引数:GB:ゲームボード情報; Mek:メック情報; Target:目標情報;返値:真偽;  指定されたメックのチームから、目標が視認できるか否かを返します。 ・LocateMekByUID( GB: GameBoardPtr; UID: Integer ): GearPtr;  引数:GB:ゲームボード情報; UID:ID;返値:メック・パイロット情報;  指定された ID を持つ、メック・パイロットの情報を返します。 ・SeekGear( Mek: GearPtr; G: Integer; S: Integer ): GearPtr;  引数:Mek:メック情報; G:GG値; S:GS値;返値:パーツ情報;  メックに搭載もしくは積まれている、GG値およびGS値を持つパーツの情報を取得します。 GG値には GG_Mecha, GG_Module, GG_Character, GG_Cockpit, GG_Weapon, GG_Ammo, GG_MoveSys, GG_Holder, GG_Sensor, GG_Support, GG_Shield, GG_ExArmor, GG_Swag, GG_Prop, GG_Electronics, GG_MetaTerrain, GG_Usable, GG_RepairFuel, GG_Consumable, GG_Modifier, GG_WeaponAddOn が指定できます。 ・SeekGearByName( Meks: GearPtr; Name: String ): GearPtr;  引数:Meks:メック一覧; Name:名前;返値:メック情報;  指定した名前を持つメックをメック一覧より検索します。 ・SeekGearByPilotName( Meks: GearPtr; Name: String ): GearPtr;  引数:Meks:メック一覧; Name:名前;返値:メック情報;  指定したパイロット名を持つメックをメック一覧より検索します。 ・CharCurrentMental( PC: GearPtr ): Integer;  引数:PC:キャラクター情報;返値:メンタル値;  指定されたキャラクターのメンタル値を返します。 ・ReactionTime( Master: GearPtr ): Integer;  引数:Master:メック・キャラクター情報;返値:時間;  指定されたメック・キャラクターの反応時間を返します。 ・IsSexy( PC, NPC: GearPtr ): Boolean;  引数:PC,NPC:キャラクター情報;返値:真偽;  PCからNPCに対して誘惑スキルが有効か否かを返します。 ・TeamOrders( Mek: GearPtr ): Integer;  引数:Mek:チーム情報;返値:指令;  指定されたチームに与えた指令を返します。 デフォルトでは、指令は、NAV_SeekAndDestroy, NAV_GotoSpot, NAV_SeekEdge, NAV_Passive, NAV_RunAway, NAV_Follow の6種類があります。 ・AmmoPresent( Mek: GearPtr ): Integer;  引数:Mek:武器情報;返値:最大装弾数;  指定された武器の最大装弾数を返します。 ・AmmoSpent( Mek: GearPtr ): LongInt;  引数:Mek:武器情報;返値:使用した弾数;  指定された武器の使用した弾数を返します。 ・NeedAmmo( Weapon: GearPtr ): Boolean;  引数:Weapon:武器情報;返値:真偽;  指定された武器は弾薬を装填するタイプか否かを返します。 ・GoodAmmo( Weapon: GearPtr; Ammo: GearPtr ): Boolean;  引数:Weapon:武器情報; Ammo:弾薬情報;返値:真偽;  指定された弾薬が指定された武器に適合するか否かを返します。 ・InstallAmmo( GB: GameBoardPtr; Mek: GearPtr; Weapon: GearPtr; Ammo: GearPtr ): Boolean;  引数:GB:ゲームボード情報; User:メック情報; Weapon:武器情報; Ammo:弾薬情報;返値:成否;  指定されたメックにて、指定された武器に指定された弾薬を装填します。 ※注意:WaitAMinute を伴います。 ・ReloadAmmo( GB: GameBoardPtr; User: GearPtr; Weapon: GearPtr ): Boolean;  引数:GB:ゲームボード情報; User:メック情報; Weapon:武器情報;返値:成否;  指定されたメックにて、指定された武器に適合する弾薬を装填します。 装填する弾薬はインベントリの上から順に装填を試みます。 ※注意:WaitAMinute を伴います。 ・Remaining_of_Ammo( Ammo: GearPtr ): Integer;  引数:Ammo:弾薬情報;返値:残弾数;  指定された弾薬の残弾数を取得します。 ・MaxSeparableMode( Mek: GearPtr ): Integer;  引数:Mek:メック情報;返値:パージモード数;  指定されたメックのパージ機能のモード数を返します。 パージ機能の無いメックの場合は 0 が返ります。 ・IsSeparable( Mek: GearPtr; tag: Integer ): String;  引数:Mek:パーツ情報; tag:パージモード番号;返値:真偽;  指定されたパーツに、指定されたパージモードが、有るか否かを返します。 指定されたパージモードで、指定されたパーツに何も変化が無い場合は、空文字列が返ります。 ・SeparateWait( Mek: GearPtr; tag: Integer ): Integer;  引数:Mek:パーツ情報; tag:パージモード番号;返値:所要時間;  指定されたパーツに対して指定されたパージモードを実行した際に消費する時間を返します。 ・MaxTransformableMode( Mek: GearPtr ): Integer;  引数:Mek:メック情報;返値:変形モード数;  指定されたメックの変形機能のモード数を返します。 変形機能の無いメックの場合は 0 が返ります。 ・Transform_CurrentForm( Mek: GearPtr ): Integer;  引数:Mek:メック情報;返値:変形モード番号;  指定されたメックの現在の変形モード番号を返します。 変形機能の無いメックの場合は 0 が返ります。 ・TransformWait( Mek: GearPtr; From, To: Integer ): Integer;  引数:Mek:メック情報; From:変形前の変形モード番号; To:変形後の変形モード番号;返値:所要時間;  指定されたメックにて、指定された変形前の形態から変形後の形態への、変形所要時間を返します。 変形機能の無いメックの場合は 0 が返ります。 ・TransformGS( Mek: GearPtr; tag: Integer ): Integer;  引数:Mek:メック情報; tag:変形モード番号;返値:変形後の形態番号;  指定されたメックにて指定された変形を行なった後の、形態番号を返します。 形態番号は、GS_Battroid, GS_Zoanoid, GS_GroundHugger, GS_Arachnoid, GS_AeroFighter, GS_Ornithoid, GS_Gerwalk, GS_HoverFighter, GS_GroundCar です。 ・WaitAMinute( GB: GameBoardPtr; Mek: GearPtr; D: Integer );  引数:GB:ゲームボード情報; Mek:メック情報; D:待ち時間;返値:無し;  指定されたメックにて、指定された時間だけ何もしないで待ちます。 ※注意:WaitAMinute を伴います。 ・PrepAction( GB: GameBoardPtr; Mek: GearPtr; V: Integer );  引数:GB:ゲームボード情報; Mek:メック情報; V:行動内容;返値:無し;  指定されたメックにて、指定された行動を実行します。 行動内容には、NAV_Stop, NAV_NormSpeed, NAV_FullSpeed, NAV_TurnLeft, NAV_TurnRight, NAV_Reverse, NAV_Hover が指定できます。 ・GearUp( Mek: GearPtr );  引数:Mek:メック情報;返値:無し;  指定されたメックにて、移動モードを変更します。 MM_Walk, MM_Roll, MM_Skim, MM_Fly の優先順位で可能なものが選ばれます。 ・RollStep( r: Integer ): Integer;  引数:r:ダイス値;返値:出目;  ダイスロールを行います。 ・AIRepair( GB: GameBoardPtr; NPC, Target: GearPtr; RepairLimit: LongInt; Skill: Integer );  引数:GB:ゲームボード情報; NPC:リペアを実行するキャラクター情報; Target:リペア対象のキャラクター情報; RepairLimit:リペアの目標値; Skill:リペアに使用するスキル番号;返値:無し;  リペアを行います。 リペアの目標値に負の値を指定すると、保有している道具の総合計値とみなします。 スキル番号は 15. Mecha Tech 16. Medicine 20. First Aid 22. Bio Tech 23. General Repair が指定できます。 ・NPC_Flirtation( GB: GameBoardPtr; NPC, Target: GearPtr );  引数:GB:ゲームボード情報; NPC:行動を行なうキャラクター情報; Target:行動を行なう相手キャラクター情報;返値:無し;  Flirt を行って好感度を上げようと試みます。 ・NPC_Chatting( GB: GameBoardPtr; NPC, Target: GearPtr );  引数:GB:ゲームボード情報; NPC:行動を行なうキャラクター情報; Target:行動を行なう相手キャラクター情報;返値:無し;  会話を試みます。 ・AI_Eject( Mek: GearPtr; GB: GameBoardPtr );  引数:Mek:メック情報; GB:ゲームボード情報;返値:無し;  メックから脱出を試みます。 ・SafeToFire( GB: GameBoardPtr; Mek: GearPtr; Weapon: GearPtr; Target: GearPtr ): Boolean;  引数:GB:ゲームボード情報; Mek:メック/キャラクタ情報; Weapon:武器情報; Target:攻撃目標情報;返値:可否;  指定されたメック/キャラクタが、指定された武器を、指定された攻撃目標に対して、 射撃可能か否かを返します。 ・WGoodness( GB: GameBoardPtr; Weapon: GearPtr; Target: GearPtr ): Integer;  引数:GB:ゲームボード情報; Weapon:武器情報; Target:攻撃目標情報;返値:評価値;  指定された武器を用いて指定された攻撃目標を攻撃する際の評価値を返します。 ・AIAttacker( GB: GameBoardPtr; Mek: GearPtr; Weapon: GearPtr; Target: GearPtr );  引数:GB:ゲームボード情報; Mek:攻撃側メック情報; Weapon:攻撃武器情報; Target:攻撃対象メック情報;返値:無し;  攻撃対象を指定された武器で攻撃を行ないます。 狙撃の有無や部位、BV、は、適当にみつくろいます。 ・AttackerFrontEnd( GB: GameBoardPtr; Mek: GearPtr; Weapon: GearPtr; Target: GearPtr; AtOp: Integer );  引数:GB:ゲームボード情報; Mek:攻撃側メック情報; Weapon:攻撃武器情報; Target:攻撃対象; AtOp:BV指定;返値:無し;  攻撃対象を指定された武器の指定したBVで攻撃を行ないます。 攻撃対象はメック指定とメックの部位指定のどちらでも指定できます。 部位指定をした場合は狙撃を行います。 ・DoTransformation( GB: GameBoardPtr; Mek: GearPtr; NewForm: Integer );  引数:GB:ゲームボード情報; Mek:メック情報; NewForm:変形後形態;返値:無し;  変形を行ないます。 ※注意:WaitAMinute を伴います。 ・DoPurgeParts( GB: GameBoardPtr; Mek: GearPtr; SelectMode: Integer );  引数:GB:ゲームボード情報; Mek:メック情報; SelectMode:パージモード番号;返値:無し;  パーツパージを行ないます。 ※注意:WaitAMinute を伴います。 ・NPC_CombatTaunt( GB: GameBoardPtr; Mek: GearPtr; msg: String );  引数:GB:ゲームボード情報; Mek:メック情報; msg:メッセージID;返値:無し;  罵声なり気勢なりをあげます。 ・NPC_Speaks( GB: GameBoardPtr; Mek: GearPtr; msg: String );  引数:GB:ゲームボード情報; Mek:メック情報; msg:メッセージ本文;返値:無し;  発言します。 ・SoundEffect( GB: GameBoardPtr; Mek: GearPtr; name: String );  引数:GB:ゲームボード情報; Mek:メック情報; name:効果音ファイル名;返値:無し;  効果音を鳴らします。 ○ lib.lua で追加される API リファレンス ・reldir2dir(target_dir, current_dir: Integer): Integer;  引数:target_dir:目標の絶対方位; current_dir:現在の絶対方位;返値:相対方位;  目標に向かう方位を取得します。 0 が正面、+45 が右斜め前、+90 が右横、+135 が右斜め後ろ、+180 が真後ろ、 -45 が左斜め前、-90 が左横、-135 が左斜め後ろ、 真上もしくは真下は 0、 となっています。 ・relpos2dir(x_rel, y_rel, z_rel, current_dir: Integer): Integer;  引数:x_rel,y_rel,z_rel:目標への相対座標; current_dir:現在の絶対方位;返値:相対方位;  目標に向かう方位を取得します。 0 が正面、+45 が右斜め前、+90 が右横、+135 が右斜め後ろ、+180 が真後ろ、 -45 が左斜め前、-90 が左横、-135 が左斜め後ろ、 真上もしくは真下は 0、 となっています。 ・GetModule(P: GearPtr): GearPtr;  引数:P:コンポーネント一覧;返値:モジュール情報;  コンポーネント一覧からモジュールを探し、 最初に見つかったモジュール情報を返します。 見つからない場合は nil が返ります。 ○ locale.lua で追加される API リファレンス ・UpdateShadowMap_for_HotMap( GB: GameBoardPtr );  引数:GB:ゲームボード情報;返値:無し;  HotMap 生成用の ShadowMap を更新します。 進入可能か否かの判定に使うマップ情報となります。 ※注意:索敵範囲外の地図も得られてしまう。 ・TileBlocksLOS_for_HotMap( GB: GameBoardPtr; X, Y, Z: Integer ): Boolean;  引数:GB:ゲームボード情報; X,Y,Z:判定する座標;返値:真偽値;  指定された座標に進入可能か否かを取得します。 真で進入不可、偽で進入可能です。 呼び出し前に UpdateShadowMap_for_HotMap() を実行している事が必須です。 ※注意:索敵範囲外の地図も得られてしまう。 ・IsBlocked_for_HotMap( Mek: GearPtr; GB: GameBoardPtr; X, Y: Integer ): Boolean;  引数:Mek:メック情報; GB:ゲームボード情報; X,Y:座標;返値:進入可否;  指定された座標に指定されたメックが進入できるか否かを返します。 移動経路の有無は問いません。 移動経路が有るか否かを確認したい場合は HotMap系関数を使います。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 ・ForwardMoveBlocked_for_HotMap( Mek: GearPtr; GB: GameBoardPtr ): Boolean;  引数:Mek:メック情報; GB:ゲームボード情報;返値:移動可否;  指定されたメックが、前進移動できる地形か否かを返します。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 ・IsInCover_for_HotMap( GB: GameBoardPtr; Mek: GearPtr ): Boolean;  引数:GB:ゲームボード情報; Mek:判定したいメック;返値:真偽値;  指定されたメックが隠蔽状態か否かを判定します。 隠蔽状態なら真を、露呈していれば偽を返します。 ○ aibrain.lua で追加される API リファレンス ・HotMap[FFMap][X][Y]: Integer;  引数:FFMap:マップID番号; X,Y:現在座標;返値:評価値;  GetHotMap() で生成したマップにて、生成時に指定した検索対象から現在座標までの評価値を返します。 ・ColdMap[FFMap][X][Y]: Integer;  引数:FFMap:マップID番号; X,Y:現在座標;返値:指定座標に存在する物品の数;  GetHotMap() で生成したマップにて、指定した現在座標に存在する物品の数を返します。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 ・InitMaps();  引数:無し;返値:無し;  HotMap と ColdMap の初期設定を行います。 QRL 開始時に1回のみ実行が必要です。 ・ClearHotMaps();  引数:無し;返値:無し;  HotMap の消去を行います。 QRL のターン開始時に実行が必要です。 ・HotMapFloodFill(GB: GameBoardPtr; N, MM: Integer);  引数:GB:ゲームボード情報; N:HotMap番号; MM:HotMoveMode()番号;返値:無し;  下記の Calc_*() からの被呼用関数です。 設定された情報に基づいて指定された番号の HotMap を生成します。 ・Calc_FollowMap(GB: GameBoardPtr; N, UID, MM: Integer);  引数:GB:ゲームボード情報; N:HotMap番号; UID:目標UID; MM:移動モード;返値:無し;  UID を目標とした、指定された番号の HotMap を生成します。 ・Calc_SpotMap(GB: GameBoardPtr; N, PDat, MM);  引数:GB:ゲームボード情報; N:HotMap番号; PDat:目標座標; MM:移動モード;返値:無し;  座標 PDat を目標とした、指定された番号の HotMap を生成します。 ・Calc_EdgeMap(GB: GameBoardPtr; N, PDat, MM);  引数:GB:ゲームボード情報; N:HotMap番号; PDat:目標方角; MM:移動モード;返値:無し;  方角 PDat のマップ端を目標とした、指定された番号の HotMap を生成します。 ・Calc_NearestEdgeMap(GB: GameBoardPtr; N, MM);  引数:GB:ゲームボード情報; N:HotMap番号; MM:移動モード;返値:無し;  全てのマップ端を目標とした、指定された番号の HotMap を生成します。 ・Calc_SDMap(GB: GameBoardPtr; N, Team, MM);  引数:GB:ゲームボード情報; N:HotMap番号; Team:チーム番号; MM:移動モード;返値:無し;  指定されたチームから見た敵を目標とした、 指定された番号の HotMap を生成します。 ・Calc_TeamMap(GB: GameBoardPtr; N, Team, MM);  引数:GB:ゲームボード情報; N:HotMap番号; Team:チーム番号; MM:移動モード;返値:無し;  指定されたチームから見た友軍を目標とした、 指定された番号の HotMap を生成します。 ・GetHotMap(GB: GameBoardPtr; Team: Integer; MM: Integer; O: Integer): Integer;  引数:GB:ゲームボード情報; Team:検索対象; MM:移動モード; O:検索モード;返値:生成した HotMap のマップID番号;  指定した検索対象に向かって、指定した移動モードと検索モードで移動する際に利用する ColdMap および HotMap のマップID番号を返します。 利用する ColdMap および HotMap は NumFFMap枚分がキャッシュされます。 O が ORD_SeekEnemy ならば、Team にとって敵である索敵範囲内の最寄りのメックへ向かって 移動する為のマップを生成します。 O が ORD_SeekSingleModel ならば、Team の存在する位置を目標として 移動する為のマップを生成します。※注意:索敵範囲外でも見えてしまうマップを生成する。 O が ORD_SeekSpot ならば、Team を座標とみなして 移動する為のマップを生成します。GetHotMap_XY() から使う時専用。 O が ORD_SeekEdge ならば、Team で指定した方角のマップ端を目標ラインとして 移動する為のマップを生成します。 Team で指定する方角は 0 から 8 までで、順に、右,右下,下,左下,左,左上,上,右上、です。 O が ORD_SeekTeam ならば、Team にとって友軍である最寄りのメックへ向かって 移動する為のマップを生成します。 ・GetHotMap_XY(GB: GameBoardPtr; X, Y: Integer; MM: Integer): Integer;  引数:GB:ゲームボード情報; X,Y:検索座標; MM:移動モード;返値:生成した HotMap のマップID番号;  指定した検索座標に向かって、指定した移動モードで移動する際に利用する ColdMap および HotMap のマップID番号を返します。 利用する ColdMap および HotMap は NumFFMap枚分がキャッシュされます。 ・SelectPurgePartsMode(Mek: GearPtr; GB: GameBoardPtr);  引数:Mek:メック情報; GB:ゲームボード情報;返値:無し;  指定されたメックの、ダメージを負った部位のパーツパージを行います。 ※注意:行動を計画するのみで、実行には qrl_chip_exec の実行が必要です。 ・SelectFastestFormMode(Mek: GearPtr; GB: GameBoardPtr);  引数:Mek:メック情報; GB:ゲームボード情報;返値:無し;  指定されたメックを、最高速度が出る形態に変形します。 ※注意:行動を計画するのみで、実行には qrl_chip_exec の実行が必要です。 ・SelectHeavyFormMode(Mek: GearPtr; GB: GameBoardPtr);  引数:Mek:メック情報; GB:ゲームボード情報;返値:無し;  指定されたメックを、バトロイドもしくはガウォークに変形します。 ※注意:行動を計画するのみで、実行には qrl_chip_exec の実行が必要です。 ・SelectMoveMode(Mek: GearPtr; GB: GameBoardPtr);  引数:Mek:メック情報; GB:ゲームボード情報;返値:無し;  指定されたメックを、最高速度が出る移動モードに変更します。 ・AttackTargetOfOppurtunity(GB: GameBoardPtr; Mek: GearPtr);  引数:GB:ゲームボード情報; Mek:メック情報;返値:無し;  てきとーに見繕って敵を攻撃します。 ・Wander(Mek: GearPtr; GB: GameBoardPtr);  引数:Mek:メック情報; GB:ゲームボード情報;返値:無し;  てきとーにその辺をうろつきます。 ・XMoveTowardsGoal(GB: GameBoardPtr; Mek: GearPtr; HM: Integer; OptMax, OptMin: Integer): Boolean;  引数:GB:ゲームボード情報; Mek:メック情報; HM:HotMap番号; OptMax,OptMin:距離範囲;返値:成否;  HotMap に従い、HotMap生成時に指定したゴールから指定した距離範囲となる様な移動を試みます。 OptMax より遠い場合は近づきます。 OptMax 〜 OptMin の範囲内の場合は留まります。 OptMin より近い場合は遠ざかります。 OptMax, OptMin 両方に 0 を指定した場合は、とにかく近づきます。 ※注意:行動を計画するのみで、実行には qrl_chip_exec の実行が必要です。 ・MoveTowardsGoal(GB: GameBoardPtr; Mek, HM);  引数:GB:ゲームボード情報; Mek:メック情報; HM:HotMap番号;返値:無し;  HotMap に従い、HotMap生成時に指定されたゴールに向かって移動を試みます。 できないなら、Wander() します。 ※注意:行動を計画するのみで、実行には qrl_chip_exec の実行が必要です。 ・MillAround(GB: GameBoardPtr; Mek);  引数:GB:ゲームボード情報; Mek:メック情報;返値:無し;  その場で停止するか左右に振り向くかします。 ・FleeFromGoal(GB: GameBoardPtr; Mek, HM);  引数:GB:ゲームボード情報; Mek:メック情報; HM:HotMap番号;返値:無し;  HotMap に従い、HotMap生成時に指定されたゴールから遠ざかる様に移動を試みます。 できないなら、MillAround() します。 ・HotMoveMode(Mek: GearPtr): Integer;  引数:Mek:メック情報;返値:移動モード;  指定されたメックの移動モードを返します。 ※注意:索敵範囲外の敵メック情報も得られてしまう。 ・LancemateUsefulAction(Mek: GearPtr; GB: GameBoardPtr);  引数:Mek:メック情報; GB:ゲームボード情報;返値:無し;  NAS_ContinuousOrders が設定されていなければ修理を試みます。 NAS_ContinuousOrders が CORD_Flirt なら目標に接近を試み Flirt します。 NAS_ContinuousOrders が CORD_Chat なら目標に接近を試み Chat します。 それら以外ならてきとーに NAS_ContinuousOrders を設定します。 ※注意:行動を計画するのみで、実行には qrl_chip_exec の実行が必要です。 ・Seek_And_Destroy(Mek: GearPtr; GB: GameBoardPtr);  引数:Mek:メック情報; GB:ゲームボード情報;返値:無し;  敵を探して移動し攻撃します。 ※注意:行動を計画するのみで、実行には qrl_chip_exec の実行が必要です。 ・SetNewOrders(GB: GameBoardPtr; Mek: GearPtr);  引数:GB:ゲームボード情報; Mek:メック情報;返値:無し;  指定されたメックの所属チームに指定された行動パターンをメックに設定します。 ないなら NAV_SeekANdDestroy に設定します。 ・GOTO_SPOT(Mek: GearPtr; GB: GameBoardPtr);  引数:Mek:メック情報; GB:ゲームボード情報;返値:無し;  指定されたメックに設定された目標地点に向かって移動します。 合わせて AttackTargetOfOppurtunity() します。 ※注意:行動を計画するのみで、実行には qrl_chip_exec の実行が必要です。 ・GOTO_EDGE(Mek: GearPtr; GB: GameBoardPtr);  引数:Mek:メック情報; GB:ゲームボード情報;返値:無し;  指定されたメックに設定された目標のマップ端に向かって移動します。 合わせて AttackTargetOfOppurtunity() します。 ※注意:行動を計画するのみで、実行には qrl_chip_exec の実行が必要です。 ・PASSIVE(Mek: GearPtr; GB: GameBoardPtr);  引数:Mek:メック情報; GB:ゲームボード情報;返値:無し;  敵に向かって FleeFromGoal() します。 ・RUNAWAY(Mek: GearPtr; GB: GameBoardPtr);  引数:Mek:メック情報; GB:ゲームボード情報;返値:無し;  全速で直進します。 ※注意:行動を計画するのみで、実行には qrl_chip_exec の実行が必要です。 ・FOLLOW(Mek: GearPtr; GB: GameBoardPtr);  引数:Mek:メック情報; GB:ゲームボード情報;返値:無し;  指定されたUID目標に向かって移動します。 合わせて AttackTargetOfOppurtunity() します。 ※注意:行動を計画するのみで、実行には qrl_chip_exec の実行が必要です。 ・ShouldEject(Mek: GearPtr; GB: GameBoardPtr): Boolean;  引数:Mek:メック情報; GB:ゲームボード情報;返値:真偽値;  イジェクトするべきか否か判定します。 ○ a_star.lua で追加される API リファレンス  ※ 未完成 ※ ○ lib4qrl.lua で追加される API リファレンス ・qrl_chip_exec(GB, Mek)  引数:GB:ゲームボード情報; Mek:メック情報;返値:無し;  後述 aibrain.lua 内の API にて計画した内容を実行します。 ○ suspend.lua で追加される API リファレンス ・Hibernate(fname: String)  引数:fname:ファイル名;返値:無し;  ファイル fname へ、QRL で使用している変数の内容を保存します。 ・Resume(GB: GameBoardPtr; fname: String)  引数:GB:ゲームボード情報; fname:ファイル名;返値:無し; ファイル fname から、Hibernate() で保存した変数の内容を 読み込みます。 ・Destroyed(fname: String)  引数:fname:ファイル名;返値:無し; ファイル fname へ、Hibernate() で保存した変数の内容を ファイルごと破棄します。 (C) 2008 G-HAL [ End of File ]