| おはようございます。FESRCのかせうかです。
支援会話、再現は可能です。方法を以下に示します。
1.支援可能な組み合わせ毎に、グローバル変数「友好度[(対象パイロット名)_(相手パイロット名)]」、「支援レベル[(対象パイロット名)_(相手パイロット名)]」を作成する。変数は0で初期化(作成時に0をSet)。 *これは最初のシナリオのプロローグで行うと良い
2.任意のタイミングで、友好度の変数の値を増やす(Incrコマンドが有効です)。ひとつ例示します。
例) ターン 1 味方: #出撃中の味方名を配列に保存(ForEachコマンドの中でForEachコマンドは使えないため) Local i = 1 Local 味方名 ForEach 味方 #変数「対象パイロット」で得られるのは名称ではなくIDなので、名称は次のように取得する Set 味方名[i] Pilot(対象ユニットID) Incr i Next
#支援可能な組み合わせのユニットが共に出撃しているなら、友好度を上昇 ForEach 味方 For i = 1 To Count(味方名) If IsDefined(友好度[Pilot(対象ユニットID) & "_" & 味方名[i]]) Then Incr 友好度[Pilot(対象ユニットID) & "_" & 味方名[i]] #友好度が一定以上なら会話可能にする If 3 < 友好度[Pilot(対象ユニットID) & "_" & 味方名[i]] Then Switch 支援レベル[Pilot(対象ユニットID) & "_" & 味方名[i]] Case 0 RestoreEvent ("会話 " & Pilot(対象ユニットID) & " " & 味方名[i]) EndSw EndIf EndIf Next Next Exit
3.会話イベントを定義する。支援レベルの変数に応じて内容を変更し、会話の中で支援レベルの変数の値を増やす。
2と3はData\System\Include.eve内に書くと良いかと思います。 支援レベルを実際に戦闘に反映させる方法は‥ これはこれで複雑なので、また別の機会に。(会話時にSetRelationするのも一つの手です)
例示したソースは、支援レベルが0の時にのみ、会話イベントを発生させます。 (これはソースが実際にどのように動くのかをヘルプを片手に確かめていただき、足りない部分をルシンさんご自身に埋めていただくために、わざとこうしています)
システムの再現というと、どうしてもインクルードの領分になりますが、コツさえわかれば、結構何でもできちゃいます。
上記の仕組みは、書き方にやや複雑な所はありますが、やってる事は実は意外とシンプルです。
参考になれば幸いです。それではっ
|