お世話になっております。計算に関する内容で恐縮ですが、トピック失礼します。
変数の限界値設定(トリアコンタン様作) - VariableLimitation.js
前提として、こちらのプラグインを使用させていただき
変数最小値を0とし負の値にならないようにしています。
能力値をスキルによって奪い合う(都度加算、減算処理)ようなシステムを考えております。
値は奪われた分(奪われた値は別途変数に保管)しか取り戻せないというシステムを理想としているのですが
例として、能力値が2奪われている状態で能力値を5奪い返すスキル(5加算)を使用した際
この場合は能力値に2加算としたいのですが5加算となってしまいます。
奪われている能力値以上に数値が加算されていってしまうこととなり困っております。
伝わりづらいかもしれません、申し訳ございません。
奪われた能力値合計の変数から実際に減算できた分の値を求めることが出来れば、その値を元の能力値加算に使用すれば解決すると考えた次第ですが方法がわかりません。
よろしければアドバイスなどいただけないでしょうか。
よろしくお願いいたします。
【解決済み】変数で減算できた値を求めたい
【解決済み】変数で減算できた値を求めたい
最後に編集したユーザー ツクシ [ 2024年7月27日(土) 23:18 ], 累計 1 回
Re: 変数で減算できた値を求めたい
色々方法はあると思いますが
まあ基本的な考え方にそって行うと以下のようになるかと思います。
使用する変数
奪われた値
奪い返すスキルの値(今回の場合は5を代入した変数)
能力値
減算できた値
ループを使用して、奪われた値か、奪い返すスキルの値が0になるまで
能力値と減算できた値に1を加算する
----
ループの最初
条件分岐:奪われた値が0ならループを中断する
条件分岐:奪い返すスキルの値が0ならループを中断する
上記条件を満たしてない場合、以下の処理をする
能力値+1
減算できた値+1
奪われた値-1
奪い返すスキルの値-1
ループの最初に戻る
----
これで、奪われた数だけ能力値を増やして、減算できた数をカウントできます。
が、別に減算できた数をカウントしなくてもいい方法もあるので、記載しておきます。
ようは、奪われた数より多く回復したらダメってことなのだから
奪われた数より、奪い返すスキルの値が大きい場合と、そうじゃない場合で処理をわければいいと思います。
なので
---
条件分岐:奪われた数 が 奪い返すキルの値 以上なら 能力値+奪い返すスキルの値 で
上記条件を満たしてない場合、能力値+奪われた数 で計算する。
---
と、いいと思います。
まあ基本的な考え方にそって行うと以下のようになるかと思います。
使用する変数
奪われた値
奪い返すスキルの値(今回の場合は5を代入した変数)
能力値
減算できた値
ループを使用して、奪われた値か、奪い返すスキルの値が0になるまで
能力値と減算できた値に1を加算する
----
ループの最初
条件分岐:奪われた値が0ならループを中断する
条件分岐:奪い返すスキルの値が0ならループを中断する
上記条件を満たしてない場合、以下の処理をする
能力値+1
減算できた値+1
奪われた値-1
奪い返すスキルの値-1
ループの最初に戻る
----
これで、奪われた数だけ能力値を増やして、減算できた数をカウントできます。
が、別に減算できた数をカウントしなくてもいい方法もあるので、記載しておきます。
ようは、奪われた数より多く回復したらダメってことなのだから
奪われた数より、奪い返すスキルの値が大きい場合と、そうじゃない場合で処理をわければいいと思います。
なので
---
条件分岐:奪われた数 が 奪い返すキルの値 以上なら 能力値+奪い返すスキルの値 で
上記条件を満たしてない場合、能力値+奪われた数 で計算する。
---
と、いいと思います。
Re: 変数で減算できた値を求めたい
頂いた情報で理想の動作を実現できました!ありがとうございます。ゆわか さんが書きました: ---
条件分岐:奪われた数 が 奪い返すキルの値 以上なら 能力値+奪い返すスキルの値 で
上記条件を満たしてない場合、能力値+奪われた数 で計算する。
---
より単純でメンテがしやすそうな上記の方を使わせて頂きます。
書かれてみると単純な仕組みだと分かりますが、1人だとどうもそこまでの答えに至れず...
数字・計算関連が苦手なので助かりました。