コメント

このコメントは、【トピック】経験値へのコメントです。

コメントの内容

Nyan mini rurun9(投稿日:2010/08/04 18:08/04/10)
変数を用意して管理するという点では
お金も経験値も一緒ですね。

表示方法については
既に2通りの方法が確立されているようです。
・カスタムメニューとして項目を増やす方法
・常時、画面上にテキスト配置してしまう方法
これらについては
wiki スクリプト/カスタムメニュー
wiki スクリプト/コツ/お店の作り方
wiki スクリプト/コツ/敵を倒すとお金が手に入る
を見ると詳しく書かれています。
特に掲示板での議論の跡が参考になるかと。
常時表示する方は、自由な位置にテキストを配置する、も理解してないといけませんね。


次にレベルアップですが
関数はココにあるのを組み合わせてつくります。
wiki 仕様/ゲーム内レベルアップ
例として
wiki スクリプト/ゲーム内レベルアップ
が用意されています。
こちらは倒した敵の種類と数から計算しているもので、複雑ながらバランスが崩壊しないように考えられた、凄いヤツです。
複雑過ぎて解読に激しく時間がかかるのはご愛嬌。

でもせっかく変数で経験値expをカウントしているのなら、
expが一定値を超えたらレベルが上がる、で充分ですよね?
つまり使う関数は levelUp() と levelUpPartyMember(キャラID) だけ。
ならばそれを実現する処理を、開始スクリプトにユーザー定義関数でつ
くっちゃいましょー。
#開始スクリプトに追加する

setVariable("exp",0) #プレイヤーの経験値
setVariable("nextexp",10) #次のレベルアップまでに必要な経験値

def expcheck()
 if getVariable("nextexp") <= getVariable("exp")
   levelUp()
   setVariable("nextexp", 2*getVariable("nextexp") )
   setVariable("exp",0)
 end
end

これで戦闘勝利後に、exp を増やした後に
expcheck()
と書くだけで済みます。

プレイヤーキャラの分しか書いてないけど、こんな感じで。
次に必要な値を2倍にする必要性もないけど、そこは敵に割り振るexpやゲーム全体の調整次第。
敵が配置型なのかランダムエンカウントなのか、ゲームによっても違いますし…
レベルアップ毎にexpを0に戻しているので、累積的な経験値の表示がしたいなら、別の変数に入れておく必要もありますね。
パーティメンバーがある程度固定なら、expを配列にしておくと、繰り返しでくくるだけで、複数人のレベルアップにも対応できると思います。

コメントの内容(一番最初の投稿)

Nyan mini rurun9(投稿日:2010/08/04 18:08/04/10)
変数を用意して管理するという点では
お金も経験値も一緒ですね。

表示方法については
既に2通りの方法が確立されているようです。
・カスタムメニューとして項目を増やす方法
・常時、画面上にテキスト配置してしまう方法
これらについては
wiki スクリプト/カスタムメニュー
wiki スクリプト/コツ/お店の作り方
wiki スクリプト/コツ/敵を倒すとお金が手に入る
を見ると詳しく書かれています。
特に掲示板での議論の跡が参考になるかと。
常時表示する方は、自由な位置にテキストを配置する、も理解してないといけませんね。


次にレベルアップですが
関数はココにあるのを組み合わせてつくります。
wiki 仕様/ゲーム内レベルアップ
例として
wiki スクリプト/ゲーム内レベルアップ
が用意されています。
こちらは倒した敵の種類と数から計算しているもので、複雑ながらバランスが崩壊しないように考えられた、凄いヤツです。
複雑過ぎて解読に激しく時間がかかるのはご愛嬌。

でもせっかく変数で経験値expをカウントしているのなら、
expが一定値を超えたらレベルが上がる、で充分ですよね?
つまり使う関数は levelUp() と levelUpPartyMember(キャラID) だけ。
ならばそれを実現する処理を、開始スクリプトにユーザー定義関数でつ
くっちゃいましょー。
#開始スクリプトに追加する

setVariable("exp",0) #プレイヤーの経験値
setVariable("nextexp",10) #次のレベルアップまでに必要な経験値

def expcheck()
 if getVariable("nextexp") <= getVariable("exp")
   levelUp()
   setVariable("nextexp", 2*getVariable("nextexp") )
   setVariable("exp",0)
 end
end

これで戦闘勝利後に、exp を増やした後に
expcheck()
と書くだけで済みます。

プレイヤーキャラの分しか書いてないけど、こんな感じで。
次に必要な値を2倍にする必要性もないけど、そこは敵に割り振るexpやゲーム全体の調整次第。
敵が配置型なのかランダムエンカウントなのか、ゲームによっても違いますし…
レベルアップ毎にexpを0に戻しているので、累積的な経験値の表示がしたいなら、別の変数に入れておく必要もありますね。
パーティメンバーがある程度固定なら、expを配列にしておくと、繰り返しでくくるだけで、複数人のレベルアップにも対応できると思います。