スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

RPGツクールの小ネタのお時間。略して小ネタイム(笑)Part.2『MP消費半分』の小数点を切り上げよう!

こんにちは^^
厳しい暑さが続く中、皆さまはいかがお過ごしでしょうか?
ツクツクの方は捗っていますでしょうか?

さて、今回は前回大好評だった←え?『RPGツクールの小ネタのお時間。略して小ネタイム』のpart2を
やりたいと思います^^;
今回の題材は、『MP消費半分防具の値』についてです。

このMP消費半分防具というのは、データベースの防具にあるオプションでこれにチェックを入れると
スキルや魔法を使うときの消費MPが半分になる防具を作られるという、優れたシロモノですね。

しかーし!自分は納得いかない点があります。
実はこの消費半分ていうのが曲者で、半分にした結果、値に小数点が出た場合は切り捨てられてしまうのです!
例えばMP消費半分の防具を装備して、消費のスキルを見るとになりますね?
まあ、消費半分なので当然の結果です。

これが消費の場合だったらどうでしょう?
5÷2=2.5 小数点切捨てなので消費がなんとになってしまいます。
なんとまあ、プレイヤーに優しい仕様なんでしょう^^
でも、まだここまでは許容範囲です。

では、これがの場合なら? 1÷2=0.5
賢明な方なら、もう言わなくてもお分かりですね。

なんと消費が0のチートスキルになっちゃいます~><

特に自分が今ツクっているゲームはHPやMPがデフレ傾向なので、スキルの消費MPも普通に小さい値です。
もちろん、消費1のスキルもあります。そして、レアアイテムとして消費半分防具も用意したい。
これは困った…

と、言うわけで前置きが長くなりましたが、今回は消費半分効果の小数点を切り上げする小ネタを紹介します。

気になる方は↓こちらから



スクリプトからGame_Battlerの568行目にあるスキルの消費 MP 計算↓を見ます。

  #--------------------------------------------------------------------------
  # ● スキルの消費 MP 計算
  #     skill : スキル
  #--------------------------------------------------------------------------
  def calc_mp_cost(skill)
    if half_mp_cost
      return skill.mp_cost / 2
    else
      return skill.mp_cost
    end
  end

574行目にある"return skill.mp_cost / 2"でMP消費半分防具を付けているときの
半分処理をしているので、ココを弄ってやることで自由自在に設定を変えられます。

それで先ほど書いた消費半分の小数点を切り上げたい場合は↓の様に書き換えてやります。

  #--------------------------------------------------------------------------
  # ★● スキルの消費 MP 計算
  #     skill : スキル
  #--------------------------------------------------------------------------
  def calc_mp_cost(skill)
    if half_mp_cost
      return (skill.mp_cost / 2.0).ceil
    else
      return skill.mp_cost
    end
  end

はい!たったこれだけで消費MP半分の小数点は切り上げになります。
軽く説明しますと"skill.mp_cost"というのが、スキルの基本消費ポイントで"/"というのが÷に当たります。
そして".ceil"という単語はRubyの小数点を切り上げるメソッドです。

メソッドとはRubyで使うプログラム用語みたいなものです(間違ってたらすみません^^:)
この他にも小数点を四捨五入する".round"というメソッドとかもあります。
詳しく知りたい方は各自で『ruby 切り上げ』辺りでググってみましょう。Rubyは面白いですよ^^

で、この式なんですが"MP消費5ポイント"とすると、それを半分にしてやりたいので
2.0(小数点以下で計算しないとRubyでは小数点が処理されない)で割ってやります。
そうすると値は2.5になりますね。
次に、その値の2.5を切り上げメソッド".ceil"で処理してやると値が3、つまり"MP消費3ポイント"と
なるわけです。
※()は普通の数学と同じで先に計算するという意味です。

これで、MP消費1のスキルも消費半分なら0というチートスキル(笑)になることも無くなりますね^^

どうでしょう?実際試してみて効果の程を見てみてください^^
あと、この2.0という数値は半分と同意味なので、これを3.0に変えてやればMP消費三分の一とかも可能です。
まあ、いろいろと自由に弄ってみてください。
あ、くれぐれもバックアップは忘れずにね!

いかがでしたでしょうか?説明が余り上手くなくてすみません^^;
この小ネタが少しでも、貴方のツクールライフのお役に立てれば幸いです。
それでは良い週末をノシ
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

mo-to

Author:mo-to
RGSSとJavaScriptを学んで弄って遊んでいます。
まだまだひよっこですが宜しくお願いします。
所持ツクールはXP、VX、VXAce、MV
Twitter

リンクはフリーです。ご自由にどうぞ。

最新記事
最新コメント
カテゴリ
カウンター
T.COOL人気記事ランキング
検索フォーム
リンク
月別アーカイブ
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。