| どうも。上条です。
*プロローグ: Global ユニット経験値 Exit
#Global変数はプロローグで宣言するだけでOKです。
*破壊 敵: *破壊 中立: #攻撃後イベントは破壊時には発動しないので、破壊イベントが必要です。
If Party(相手ユニットID) <> 味方 Exit *攻撃後 全 味方: #破壊イベントにあわせ、対象ユニットと相手ユニットを入れ替えました。
Local 敵ユニットランク 味方ユニットランク 敵ユニット経験値 ユニットニックネーム #インクルード内だけで用いられる変数であれば、Local変数の宣言をしておくとよいでしょう。
ユニットニックネーム = Nickname(相手ユニットID) ランク上昇値 味方ユニットランク = Rank(相手ユニットID) If 味方ユニットランク = 10 Exit #これは一応。
敵ユニットランク = Rank(対象ユニットID) 味方ユニット経験値上限[相手ユニットID] = Int(Info(ユニット,相手ユニットID,経験値) * (5 + (味方ユニットランク * 0.5))) #ランクに関わらず一定というのは…と思いましたので。 #不要だと思ったら戻してください。
敵ユニット経験値 = Int(Info(ユニット,対象ユニットID,経験値) * (1 + (敵ユニットランク * 0.05))) #前のままですと、倍率がおかしいように思いましたので。 #ここはあくまで提案という形にしておきます。
If HP(対象ユニット) <> 0 Then 敵ユニット経験値 = Int(敵ユニット経験値 / 10) EndIf Incr ユニット経験値[相手ユニットID] 敵ユニット経験値 If ユニット経験値[相手ユニットID] > 味方ユニット経験値上限[相手ユニットID] Then ランク上昇値 = 0 Do Incr ランク上昇値 Incr ユニット経験値[相手ユニットID] (0 - 味方ユニット経験値上限[相手ユニットID]) Loop While (ユニット経験値[相手ユニットID] > 味方ユニット経験値上限[相手ユニットID]) #まずないのかもしれませんが、一度に2ランク以上上がる場合を想定しています。
RankUp 対象ユニットID ランク上昇値 AutoTalk $(ユニットニックネーム)は$(敵ユニット経験値)を手に入れて;ランクが$(味方ユニットランク)から$(味方ユニットランク + ランク上昇値)にレベルアップ!!! End Else AutoTalk $(ユニットニックネーム)は$(敵ユニット経験値)の経験値を手に入れた! End EndIf Exit
以上、勝手に改変させていただいた部分があることをお詫びいたします。 では、これにて。
|