関連項目:Q413.Info関数がうまく動きません。どこにミスがあるのでしょうか?
◆仕様補足説明
関数全般に共通することですが、
Info関数において引数を間違えたとしても、エラーにはなりません。
その場合、返り値が不測の値(たいていの場合、空文字列「""」)となるだけで、処理は続行されてしまいます。
「データ区分」は省略可能である場合が多いですが、省略してしまうと動作が異なる場合があります。
指定するようにしておいたほうが無難でしょう。
◆仕様補足説明
Info関数に慣れていない場合に多く犯す間違いとして
Info([データ区分,]データ,情報種類,…)
の「データ」部分を指定しないというものがあります。
以下が例になります。
誤:
Info(ユニット, 武器, 対象ユニット使用武器番号, 属性所有, 実)
(「データ」が抜けており、「情報種類」も不適切な例)
Info(ユニット, 対象ユニット使用武器番号, 属性所有, 実) Info(対象ユニット使用武器番号, 属性所有, 実)
正:
Info(ユニット, 対象ユニットID, 武器, 対象ユニット使用武器番号, 属性所有, 実)「データ区分」を省略するのであれば
Info(対象ユニットID, 武器, 対象ユニット使用武器番号, 属性所有, 実)
誤:
Info(パイロット,性格)正:
Info(パイロット,対象パイロット,性格)
誤:
Info(パイロット, 対象ユニットID, 格闘)正:
Info(パイロット, 対象パイロット, 格闘) Info(パイロット, PilotID(対象ユニットID), 格闘)
◆仕様補足説明
→「バトルコンフィグデータ」の計算式
バトルコンフィグデータからサブルーチンを呼ぶようにした時、
サブルーチン内でInfo関数を使用する場合には特に、 バトルコンフィグ変数 に十分注意してください。
→「バトルコンフィグデータ」の計算式 には、Info関数の書式とバトルコンフィグ変数とでかち合っているもののリストがあります。
◆保証未確認動作(確認ver 2.2.25)
ヘルプ記載のほか、次の情報種類などが可能です。
◆保証未確認動作(確認ver 2.2.32)
データ区分が"パイロット"の場合は、そのパイロットが現在習得しているスペシャルパワー名のリストが返ります。
データ区分が"パイロットデータ"の場合は、そのパイロットのデータに設定されている全てのスペシャルパワー名のリストが返ります。
◆保証未確認動作(確認ver 2.2.32)
データ区分が"パイロット"の場合には、特殊能力"集中力"や"SP消費減少"によって変化した後のSP消費量の値が返ります。
データ区分が"パイロットデータ"の場合は、それら特殊能力は考慮されません。*1
◆保証未確認動作(確認ver 2.2.25)
Info(パイロット,データ,特殊能力数)
Info(パイロットデータ,データ,特殊能力数)
ヘルプには
>パイロット及びパイロットデータの場合はパイロット用特殊能力のみが対象になる。 >また、付加されたパイロット用特殊能力は含まれない
とあります。
ただし、同じ種類のパイロット用特殊能力で「付加」ではないもの(パイロットデータのものと SetSkill されたもの)と付加されたものの両方が修得された場合、たいていの特殊能力では付加されたもののみが有効です(有効なもの優先順位についてはこちらを参照)が、このときはカウントされます。
またこのとき、Info(パイロット,データ,特殊能力関連情報種類,…) で参照されるのは付加された特殊能力です。無効にされている「付加」でないほうの特殊能力ではありません。
例: パイロットデータで特殊能力「切り払い」を持たないパイロットが、ユニット用特殊能力「パイロット能力付加="切り払いLv…"」を持つユニットに搭乗した場合、Info(パイロット,データ,特殊能力数) で特殊能力「切り払い」はカウントされません。
他方、パイロットデータで特殊能力「切り払い」を持つパイロットが、同じユニットに搭乗した場合、有効なのは上と同じくユニットデータに書かれた「切り払い」ですが、カウントされます。
そして、たとえば Info(パイロット,データ,特殊能力レベル,番号) ではユニットデータに書かれたほうの切り払いレベルが返され、 Info(パイロット,データ,特殊能力データ,番号) ではユニットデータに書かれた別名が返されます。
◆
Info(パイロット,データ,特殊能力数)
レベル「0」を指定して SetSkil することにより封印された特殊能力は、カウントされません。
◆仕様補足説明
情報種類: 武器, 武器名 or 番号, 属性
「|」の右側に書かれた非表示属性も含めたものが返ります。
◆仕様補足説明
情報種類: 武器, 武器名 or 番号, 属性所有, 属性タイプ
最大射程1の武器でも、「格」属性が付いていなければ、
"属性タイプ" に "格" を指定しても返り値は 0 です。
同様に、最大射程2以上の武器でも、「射」属性が付いていなければ、
"属性タイプ" に "射" を指定しても返り値は 0 です。
◆仕様補足説明
情報種類: 武器, 武器名 or 番号, 属性レベル,属性タイプ
レベル指定されていない属性の場合、「0」が返ります。
レベル指定の有無に関わらず動作する属性(特殊効果攻撃属性など)を属性タイプに指定する場合には注意が必要です。
例:
スリープ,0,1,3,+10,-, -, 20,AACA,+10,眠 スリープ,0,1,3,+10,-, -, 20,AACA,+10,眠L3の二つは、実際の効果は同じだが、
Info関数の情報種類に
"武器,スリープ,属性レベル,眠"
を指定した場合、上の武器は「0」 下の武器は「3」 が返る。
◆仕様補足説明
情報種類: マップ, X, Y, 移動コスト
飛行ユニットも通過できない地形の移動コストは、"-"ではなく、"500"が返ります。
例:
(1,1)地点の地形が壁(地形データは下記)の場合、「Info(マップ, 1, 1, 移動コスト) = 500」になります。39 壁, wall 空, -, 0, 0 衝突