スクリプト/配列を使わない経験値制Lvアップ(履歴ID:67)

最終投稿者:Kakusei33 mini rampart22 更新:2011/04/09 15:12:53
配列を使わない、初心者でもできる(?)経験値制LVアップスクリプトの書き方をやっていきます。
※wiki投稿は今回が初めてなので、説明が変になったりするかもしれません。指摘はびしばしお願いします

先に経験値を使う方法を考えてくれた方々には悪いのですが、
正直、配列はよくわからない・・・

僕は配列を使わずにいろいろやってきたので、その1つ、経験値制LVアップを教えます。
それでは、説明しましょう。
※2DRPGで使用することを目的しています。2Dアクションで使用するとエラーが発生し兼ねませんので注意。

開始スクリプトには

setVariable("LVアップまでの経験値", 10)
setVariable("総合経験値", 1)
def exp()
speak("ゲット!\n経験値 ",getVariable("ゲット経験値"), "")
setVariable("総合経験値", getVariable("総合経験値") + getVariable("ゲット経験値"))
#↓今持っている経験値が、次LVアップする数値を超えている場合
if getVariable("総合経験値") > getVariable("LVアップまでの経験値")
speak("LVアップ!")
levelUp()
speak("LV.",getLevel(), "になった\nいろいろ能力が上がった(笑)")
#↓次LVアップするまでの経験値を10足します。
setVariable("LVアップまでの経験値", getVariable("LVアップまでの経験値") + 10) 
setVariable("総合経験値", 1)
end
end

↑空白入れるとみやすくなるんですがね・・・自分は普段入れないので、すみません

ごちゃごちゃした変数の説明をしますね。

変数「LVアップまでの経験値」この数値を超えるとLVアップします。
変数「ゲット経験値」敵から手に入れた経験値。
変数「総合経験値」今まで溜めた経験値。

変数名長すぎますね。自分でわかるなら短くしてもらってもかまいませんです

敵に書くスクリプト

startTurnBattle(7637, 7637, 7637)
if getTurnBattleResult() == 
    getTurnBattleWin()
  #勝ったとき
setVariable("ゲット経験値", 15)
exp()  
setFlag("1", true)

elsif getTurnBattleResult() ==
    getTurnBattleLose()
  #負けたとき


elsif getTurnBattleResult() ==
    getTurnBattleRunAway()
  #逃げたとき
  

end

変数「ゲット経験値」に適量の経験値を設定してください
めんどくさいですが、敵に変数「ゲット経験値」一つ一つ設定する必要があります。
そこらへんは配列を必要としない方法なので、我慢してください(殴

スタートターンバトルのところは、設定したい敵のidに変えてください。
変えないと動作しません。

有効条件にはこう書いてください
!getFlag("1")

敵を復活させるには、「スクリプト/コツ/敵を倒すとお金が手に入る」を参考にしてみてください

敵復活を必要としない場合は、ENEMYに
setVariable("ゲット経験値", 15)
exp()

と書くだけで十分です。あ、もちろん経験値は変えてください


説明はこれでオワリです。お疲れ様です。

たぶんいまのままじゃ、文章的にわかりにくいと思うので、
わかりやすく書き直してほしいです。すみません。

ちなみに、この方法はさんぽクエスト - 【2DRPG】に使っています。
どんな感じになるか、見てみるのもいいかもしれませんね。