| このサブルーチンは単にArgs(1)に入れたパイロットの経験値を返す関数です。 (データに指定されている経験値ではなく、プレー中に確認できるレベルの横 の括弧内にあるあの数値です。紛らわしいのでここでは累積経験値と呼びます。) 従って、今回の件に限らずこのCall関数はどのパイロットに対しても汎用的に 使用できます。
このサブルーチンは、
@。召還されたユニットが参加する攻撃イベントラベルで同ユニットの累積 経験値をこのサブルーチンで取得、変数に収納。 A。攻撃後または破壊イベントラベルでもう一度同ユニットの累積経験値を取得。 B。@とAの結果の差を求め、それを召還元ユニットに加える。 ※手順@は変数のやりくりのしようによっては省略できます。
という手順を踏むのに使用します。
具体的に示した方が分りやすいでしょうか...
まず、 召還インクルード内でユニットが召還された時点で「累積経験値[ユニットID]」 という変数に「0」を指定。(ユニットIDは召還された方のものです。)
攻撃後 全 全: If 対象ユニット = 召還されたユニット Then 攻撃後累積経験値 = ExpCheck(対象ユニット) ExpUp 召還元ユニット (攻撃後累積経験値 - 累積経験値[対象ユニットID]) 累積経験値[対象ユニットID] = 攻撃後累積経験値 EndIf 破壊 全: If 相手ユニット = 召還されたユニット Then 攻撃後累積経験値 = ExpCheck(相手ユニット) ExpUp 召還元ユニット (攻撃後累積経験値 - 累積経験値[相手ユニットID]) 累積経験値[相手ユニットID] = 攻撃後累積経験値 EndIf Exit
以上のイベントラベルをインクルードファイルに付加してください。 ※If文やユニット名等は適当に入れたのでご自分のソースに合うように変更 してください。一目見て分ると思いますが、これは上で示した手順@を必要と しない方法です。
|