| GAMEMASTERです。
> 例として、ゾイド/ゼロを使います。 > ライガーゼロイエガーが、マップにいて、地形が合わなく、シュナイダーに換装したいとき、ホバーカーゴに戻れば、ホバーカーゴの特殊能力(?)として、換装できるようにしたいのですが、ある程度は作り方わかってるんですが・・・うまく作成できません。 > ぜひ、皆様の力をかしてください。
換装は通常インターミッション時にしか変形することが出来ませんが、Transformコマンドは適用出来ます。
まず、ユニット「ライガーゼロイエガー」の換装先を取得する必要があります。これはユニット用特殊能力「換装」に付加されたデータ内容(=の後の文字列)として記述されていますので、Info関数を使用します。 この時、換装先が複数存在するとそれぞれの形態が半角スペースで接続された文字列としてInfo関数は返してきます。SRCにおいてはこのような文字列を「リスト」と呼んでおり、LLength関数及びLIndex関数によってリストの要素数と要素内容を調べることが出来ます。これによって、複数の換装先を1つずつ得ることが出来るようになります。
後は、以上の手段で得た換装先を配列に格納してからAskコマンドでどの換装先に変形するか選択肢を表示させます。
これを、「ライガーゼロイエガー」が格納されている時のみという条件を設定した「ホバーカーゴ」のユニットコマンドとして設定します。
*ユニットコマンド 換装 ホバーカーゴ (Status(ライガーゼロイエガーのパイロット) = 格納):
For i = 1 To LLength(Info(ユニットデータ,Unit(ライガーゼロイエガーのパイロット),特殊能力データ,換装)) 換装先[i] = LIndex(Info(ユニットデータ,Unit(ライガーゼロイエガーのパイロット),特殊能力データ,換装),i) Next
Ask 換装先 換装先を選択して下さい キャンセル可
Transform ライガーゼロイエガーのパイロット 換装先[選択]
Exit
なお、「ライガーゼロイエガー」が複数パイロット間で乗り換え可能である場合や「ホバーカーゴ」以外に母艦が存在する場合、相応の修正が必要です。
参考になれば幸いです。
もう時間がないようでございますね。では、これにて退散させてもらいましょう。
|