| GAMEMASTERです。
> ある特定のパイロットが戦闘をして経験値を得ると、 > 別のパイロットが同じ量の経験値を得られるようにしたいのです。 > 過去ログを調べてみると、似たような質問があり、 > そこに提示されていたものを少し変えてみたのですが、 > まったく機能しませんでした。 > > 損傷率 エマージー=マクスフェル(ピンチ) 50: > Talk > エマージー ピ、ピンチだ、デンジャラスだ… た、助けて…!! > Talk エマージー > 助けて!僕の、 スーパーピンチクラッシャーッ!! > End > Wait 5 > PlaySound Sword.wav > WhiteIn 1 > Unit スーパーピンチ 0 > Ride スーパーピンチ > Launch スーパーピンチ X(エマージー) Y(エマージー) > Set 累積経験値[UnitID(スーパーピンチ)] 0 > Enable エマージー=マクスフェル(ピンチ) バリア > Enable エマージー=マクスフェル(ピンチ) 支配 > Disable スーパーピンチ パーツ分離 > PlaySound Search.wav > ClearEvent > ClearEvent "エマージー=マクスフェル(ピンチ) 50" > ClearEvent "破壊 エマージー=マクスフェル(ピンチ)" > Wait 15 > Exit > > 攻撃後 スーパーピンチ 敵: > If 対象ユニット = スーパーピンチ Then > 攻撃後累積経験値 = ExpCheck(UnitID(スーパーピンチ)) > ExpUp エマージー (攻撃後累積経験値 - 累積経験値[UnitID(エマージー)]) > 累積経験値[UnitID(エマージー)] = 攻撃後累積経験値 > EndIf > 破壊 敵: > If 相手ユニット = スーパーピンチ Then > 攻撃後累積経験値 = ExpCheck(UnitID(スーパーピンチ)) > ExpUp エマージー (攻撃後累積経験値 - 累積経験値[UnitID(エマージー)]) > 累積経験値[UnitID(エマージー)] = 攻撃後累積経験値 > EndIf > Exit > > こんなかんじでスーパーピンチが得た経験値を、 > エマージーにも同量与えたいのですが… > おそらくID部分などに問題がたくさんあると思います。 > 過去ログの説明を読んでも、少しわからないので > どなたかお教えいただけませんでしょうか?
ExpCheckという関数は存在しません。 その掲示に記載されていないサブルーチンのことでしたら、バージョン1.6系列の「安定版」を使用している限り累積経験値を取得する関数が存在しないのでいずれにせよ実現不可能です。
実現させるには、バージョン1.7系列の「開発版」に追加されたInfo関数のパラメータタイプ「累積経験値」を使用しましょう。
損傷率 エマージー=マクスフェル(ピンチ) 50:
Talk エマージー ピ、ピンチだ、デンジャラスだ… た、助けて…!! Talk エマージー 助けて!僕の、 スーパーピンチクラッシャーッ!! End
Wait 5
PlaySound Sword.wav
WhiteIn 1
Unit スーパーピンチ 0 Ride スーパーピンチ
Launch スーパーピンチ X(エマージー) Y(エマージー)
Set 累積経験値[スーパーピンチ] Info(パイロット,スーパーピンチ,累積経験値)
Enable エマージー=マクスフェル(ピンチ) バリア Enable エマージー=マクスフェル(ピンチ) 支配 Disable スーパーピンチ パーツ分離
PlaySound Search.wav
ClearEvent ClearEvent "エマージー=マクスフェル(ピンチ) 50" ClearEvent "破壊 エマージー=マクスフェル(ピンチ)"
Wait 15
Exit
攻撃後 スーパーピンチ 敵:
If 対象ユニット = スーパーピンチ Then
攻撃後累積経験値 = Info(パイロット,スーパーピンチ,累積経験値) ExpUp エマージー=マクスフェル(ピンチ) (攻撃後累積経験値 - 累積経験値[スーパーピンチ]) 累積経験値[スーパーピンチ] = 攻撃後累積経験値
EndIf
Exit
破壊 敵:
If 相手ユニット = スーパーピンチ Then
攻撃後累積経験値 = Info(パイロット,スーパーピンチ,累積経験値) ExpUp エマージー=マクスフェル(ピンチ) (攻撃後累積経験値 - 累積経験値[スーパーピンチ]) 累積経験値[スーパーピンチ] = 攻撃後累積経験値
EndIf
Exit
なお、このInfo関数は0〜499の範囲でしか値が返されないので、戦闘の結果レベルが上がった場合に「攻撃後累積経験値」の値が「累積経験値[スーパーピンチ]」より小さくなっている可能性があり、この時ExpUpコマンドの段階で経験値が減少されてしまいます。また、1度に501以上の経験値を入手した場合もフォロー出来ていません。 これを解決するには、変数を1つ増やしてパイロットのレベルも管理するようにして下さい。
参考になれば幸いです。
もう時間がないようでございますね。では、これにて退散させてもらいましょう。
|