それは、シン達SEED持ちのパイロットデータを弄ってた時の事。
スパロボの様に最初は???にしといて後から能力を表示させる為に、こんな感じで定義した。
ちなみに、種割りの処理自体はデータフォルダ直下のインクルファイルに定義。
アビリティ使用後のラベルを呼び出して、パイロット差し替え。
戻す時も、それぞれ個別にインクルで呼び出し。
※シンのを例にとってみた。PCデザインでは行間あるからおかしく見えるかも。
できれば携帯からの閲覧を推奨。でも携帯も半角表記になるからなぁ(汗)
#Pilot.txt(SEEDフォルダ)
シン=アスカ
〜前略〜
特殊能力
???(SEED), 1
SEED(シン), 1
〜中略〜
=
=
=
SEED覚醒,再行動, 〜解説から属性まで省略〜 (SEED(シン))
#alias.txt(Systemフォルダ)
???(SEED)
ダミー特殊能力名=???
???=解説 この能力は現在使用する事ができない。
SEED(シン)
ダミー特殊能力名=SEEDSEED=解説 〜略〜
んで、SetSkillコマンドを使って、???の状態にしたい時は説明用能力に0を指定、使用可能にしたい時は逆に???に0を指定。
これで一応コンパイルは通ったんだけど、ここで問題が発生。
使用可能状態の時に、表示されなければならないはずのSEED説明用の能力と、そして発動用のアビリティが表示されない………!
最初はバトルコンフィグインクルのSEEDとダミー名称が同じな為の誤作動かと思ったが、そんなはずもなく。
そして、シンだけでなくアスランとキラも同じ状況になってると判明。
最初に判明した時は原因がよく分からなかったので、説明用能力をエリアスからパイロットデータへの直接記述に切り替え。
つまり、
SEED説明(シン), 1
を
特殊能力Lv1=(SEED),1
SEED=解説 〜略〜, 1
に書き換えたと言う事。
後、アビリティの必要技能も一部書き換え。
これで一応正常動作したんだけど、最近使い始めたSRCSeeKというエディタで編集する時にLv省略表記の括弧付けと解説の対応が上手くいかなくなり、能力の解説分がお亡くなりに。
これは不味いと思い、何とかしてエリアスで成立出来ないかと試行錯誤。
それと並行して他に亡くなった特殊能力の修正も行なっていた中、SEED勢とは別に???による能力制御を予定していたヒイロの能力表記が正常に行けた事が判明。
彼についてはSetSkillによる制御ではなく、単純に前後期でのデータ差し替え。
???の中身についてはここでは秘密と言う事で。
これによって「もしかしたら能力自体が認識されてないのかも」と仮説を立てる事ができた。
試しにInfo関数による能力所持判定を行なってみたら………案の定未所持の返答が。
念の為に種割れ後のデータで所持判定……………。
こっちは所持してると返ってきた。
これはデータを分ければ解決できると判断し、試しにシンの種割れ前のデータを分割。
流れ的にはこうなる。<分割前>
種割れ前
↑
SetSkillで能力所持有無を制御
インクルでパイロットデータの差し替え
↓
種割れ後<分割後>
前期(種割れ不可)
↓
種割れが使用可能になるタイミングで差し替え
↓
後期(種割れ可)
↑
インクルでパイロットデータの差し替え
↓
種割れ後
そして、分割後の後期データで所持判定したら、見事に所持してると返ってきた。
結論としては、
『パイロットデータで特殊能力としてエリアス定義のパイロット用能力を連続で指定した場合、後で定義した方の能力は認識されずエラーにもならない』という事らしい。
バグか、それとも単に私の書式ミスか…………。
一応本体は安定版、2.2系列の最新版で試したんだけど…と言っておく。