忍者ブログ

へぷたなすくろーる

RPGツクールのブログです。イベント講座とRGSS3スクリプト配布をやってます♪

Home > > [PR] Home > スクリプト素材(RGSS3) > RGSS3_HP/MP/TPゲージによるステータス変動

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

RGSS3_HP/MP/TPゲージによるステータス変動

現在HPやMPの割合に応じて、ステータスの増減を行えるスクリプトです。
設定を変えることで様々な使い方ができます。
リメイク素材として「ゲージによるステータス変動・改」が公開中です。
こちらのサポートも継続しますが、ほぼ上位互換なので改の利用をおすすめします。

こんなときに使おう
HPが少なくなると防御力が上がるようにしたい。
MPが多いほど魔法力と魔法防御が上がるステートを作りたい。
TPが増えると攻撃力が上がるが防御力が下がるようにしたい。

使い方
初期設定を変更することで様々なカスタマイズが可能です。
ATK_UP_STATE = "ステートID"
ここで指定したステートが付与されているときだけ攻撃力の変動がおきます。
0にした場合はステートに関係なく常時変動するようになります。
攻撃力の変動を使わない場合は-1にして下さい。

ATK_UP_RATE = "増加量"
攻撃力の増加量を設定します。
本来の攻撃力を100%として、ゲージ0のときは(100+増加量)%になります。
ゲージが半分のときは(100+増加量/2)%、ゲージMAX時は常に100%です。

ATK_HP_MP_TP = "1 / 2 / 3"
どのゲージを参照するかの設定です。
1ならHP、2ならMP、3ならTPによって変動します。

DEF、MAT、MDFに関しても同じように設定します。

その他
増加量の設定が少しわかりにくいですが、ゲージ0/半分/MAXを抜き出して考えると楽です。

Ver.1.1  小数点が入っていた不都合を修正(小数点以下は切り捨てになります)

Ver.2b  競合対策としてエイリアスの強化(なるべくリストの下に入れてください)
      ステータス画面、装備画面、ショップ画面において変動を無効に。


スクリプト(Ver.1.1)をダウンロード
スクリプト(Ver.2b)をダウンロード

拍手[11回]

PR
Responses8 Responses
1.無題 レンさん (2013/01/05 20:16) [Edit]

こちらのスクリプトの方をDLさせていただきました。
これからも頑張ってください。
一つ質問があるのですが、可能であればこのゲージによる能力変動の効果を味方側のみに適用するといった設定はできないでしょうか?
正確には、味方パーティーメンバーは設定通りゲージによる能力上昇効果を受け、敵側はゲージ効果を一切受けないといったかたちにしたいのですが・・・。
不躾なお願いをして申し訳ございませんが、もしよろしければご検討お願い致します。

Re:無題 奈々(なな) (2013/01/06 00:51)

>レンさん
DL報告ありがとうございます。
要望に関しては簡単にできますよ~!

スクリプト内の
class Game_Battler < Game_BattlerBase

class Game_Actor < Game_Battler
に変えてください。
これでバトラー(つまりアクターとエネミーの両方)に対して行っていた改変が
アクターのみの改変となるため、エネミーは従来通りのゲージに関係ない能力値になります。
もし何か問題が出たら言って下さい。ではでは。

2.無題 レンさん (2013/01/06 21:49) [Edit]

お早い御返事ありがとうございます。
仰られる通りに改変したら私の思い描いていたようになってくれました。
個人的な我侭に対応していただき本当にありがとうございました。
これからも応援していますので頑張ってください。

3.無題 レンさん (2013/01/09 22:52) [Edit]

何度もコメントして申し訳ございません。
今気が付いたのですが、このスクリプトを導入するとステータス画面や装備画面での能力数値が
スクリプト内で設定した上昇値分、常にあがっているのは仕様なのでしょうか?

例)TPゲージMAX状態で攻撃力+25%に設定していると、装備画面で攻撃力100の武器を装備すると数値上で125上昇してしまいます。

Re:無題 奈々(なな) (2013/01/10 00:55)

レンさん、こんばんわ。

結論から言うと仕様です。
試しに特徴の「攻撃力*150%」とかを付けてみると分かりますが
ステータス画面や装備画面で出てくる能力値は
全ての影響を受けた「最終的な数値」で表示されるようになっているからです。
(この例の場合、武器攻撃力も1.5倍になります)

先程調べたところシーンクラスの判別ができるみたいなので
スクリプトの「通常能力値の取得(再定義)」の部分で
def~の上の行に
unless SceneManager.scene_is?(Scene_Equip) or SceneManager.scene_is?(Scene_Status)
endの下の行にもう1つend
を加えれば装備画面とステータス画面ではゲージによる変動を無効にできると思います。
(前回のと同じ仕組みで、特定画面でスクリプトを無効にすることでデフォルトの仕様が適用されます)
もしショップでも変動なしのステータスを表示したい場合は、更に
or SceneManager.scene_is?(Scene_Shop)を追加するといった按配です。

4.無題 レンさん (2013/01/10 23:08) [Edit]

御返信りがとうございます。
試してみたのですが

unless SceneManager.scene_is?(Scene_Equip) or SceneManager.scene_is?(Scene_Status)
def param(param_id)
value = param_base(param_id) + param_plus(param_id)
value *= param_rate(param_id) * param_buff_rate(param_id) * param_by_nana(param_id)
[[value, param_max(param_id)].min, param_min(param_id)].max.to_i
end
end

この導入の仕方はどこかミスしているのでしょうか?
これだと装備画面やステータス画面でゲージ補正が入った数値が表示されてしまうのですが・・・。

Re:無題 奈々(なな) (2013/01/11 01:51)

調べてみますのでしばらくお待ちください。

調べ終わりました。私の間違いで、追加する場所が悪かったです。
複雑な記述になりそうだったのと、需要もあると思ったので新しくスクリプトにしておきました。
Ver.2bをダウンロードしてお使いください。
(その上で、前々回のclassの書き換えが必要です)

ステータス画面で変動がないため、確認する場合には
イベントで変数にパーティメンバーのステータスを代入してF9で確認し
ステータス画面や装備画面の表示と見比べるなどしてください。

5.無題 レンさん (2013/01/12 18:14) [Edit]

何度も要望を出してしまい申し訳ございません。
おかげさまで理想のかたちにすることが出来ました。

Re:無題 奈々(なな) (2013/01/13 13:03)

いえいえ、無事解決して良かったです。
また何かありましたらいつでもどうぞ。

6.No Title ゴンベさん (2013/09/27 11:50) [Edit]

こちらのスクリプトありがたく使わせていただいてます!

HPが多い程ダメージが上がる設定にしたいんですが
増加量設定がいまいちわかりません
勉強不足ですみませんが教えてください><

Re:No Title 奈々(なな) (2013/09/27 21:31)

「自分のHPが多いほど、相手に与えるダメージが上がる」
ということで合っていますか?
それは、HPが少ないほどダメージが下がると同じですよね。

増加量の設定はマイナスの数を入れられます。
仮に-100とした場合
HPが100%ならステータスも100%、2%ならステータスも2%と
HPとステータスの%が同じになるように出来ます。

-50とした場合だと
HPが100%ならステータスは100%、2%ならステータスは51%と
HPが2%下がるごとに、ステータスが1%下がるように出来ます。

7.無題 キルシーさん (2013/11/08 22:34) [Edit]

こちらのスクリプトをダウンロードさせていただきました!
質問があるのですが、初期TPの値を50として、そこからゲーシが上がるほど攻撃力が上がり、逆に下がるほど防御力が下がるといったような設定にすることは可能でしょうか?
自分の頭ではいまいち理解できなくて・・・

Re:無題 奈々(なな) (2013/11/09 18:43)

基本的に、ゲージは0%から100%まで変動を参照するため
「TP50とTP0では攻撃力が同じ」
「TP50とTP100では防御力が同じ」
こういう設定ができません。
そのため、スクリプトを改変する必要があります。

75行目の
val = NanaSeven::ATK_UP_RATE * (1 - self.tp_rate) * 0.01 + 1

val = NanaSeven::ATK_UP_RATE * (1 - [self.tp_rate,50].max) * 0.01 + 1

87行目の
val = NanaSeven::DEF_UP_RATE * (1 - self.tp_rate) * 0.01 + 1

val = NanaSeven::DEF_UP_RATE * (1 - [self.tp_rate,50].min) * 0.01 + 1

にそれぞれ書き換えて下さい。
その上で
ATK_UP_STATE = 0
ATK_UP_RATE = -100
ATK_HP_MP_TP = 3
DEF_UP_STATE = 0
DEF_UP_RATE = -100
DEF_HP_MP_TP = 3
という感じに設定すればお望みの動作になります。

この場合、データベースの攻撃力と防御力の数値は倍にして下さい。
なぜなら、基準となるTP50の状態で、半減された数値になるからです。
(今のところ設定方法が難解なのはご容赦下さい……)

8.無題 キルシーさん (2013/11/10 13:04) [Edit]

なるほど、データベース上の数値も弄る必要があるわけですね・・・
お返事ありがとうございます!
わざわざ改変方法まで書いていただいて、助かりました!

Re:無題 奈々(なな) (2013/11/10 17:31)

ああ、大事なことを忘れてました!
ver.2bの方は要望で、ステータス画面などで変動がオフになってます。
なので古いバージョンを使って頂いた方が良いでしょう。
改変箇所も66行目と78行目になります。内容は同一です。

うーん、こうして見ると応用性が低いので
素材自体をリメイクしてみようかと思います。
公開するまでは確約できませんが……。
ともあれ、こちらも参考になりました。ご質問ありがとうございました。

  • お名前
  • タイトル
  • メールアドレス
  • URL
  • パスワード

ブログ内検索

アーカイブ

最新コメント

[01/20 NONAME]
[01/16 NONAME]
[12/30 NONAME]
[12/13 NONAME]
[12/01 NONAME]

プロフィール

バナー

HN:奈々(なな)
RPGツクールVXAceを中心に製作を行っています。 スクリプト、イラスト、ドット絵など広くちょこちょこ手を出していますので、 できる範囲で他のツクーラーさんのお手伝いができたらなと思っています。