はじめまして。バフ(ATK↑等)について質問があります。
件名通りの内容ですが、バフへの耐性(0~100%)を持ったステートを作る方法がありましたら教えていただきたいです(例:ATKバフにかかる確率が半分(50%)、あるいは無効(0%)になるステートなど)。デバフに関しては設定できるのですが、バフはできないみたいなので…。
【解決済み】バフへの耐性を持ったステートを作る方法
【解決済み】バフへの耐性を持ったステートを作る方法
最後に編集したユーザー 揚げ豆腐 [ 2025年2月08日(土) 18:22 ], 累計 1 回
Re: バフへの耐性を持ったステートを作る方法
最低限の機能を持たせるならこんな感じですかね。
本格的に改造するなら特徴システムに手を加えますけど
ステート限定で単発改造ならこの程度でもパフォーマンスに大して影響を与えないと思います。
ステートのメモ欄に
<最大HP強化有効度 200%>
<攻撃力強化有効度 50%>
<運強化有効度 0%>
と書けば反映されます。
最大HPと最大MPはデフォルトだと全角英字な事に注意してください。
データベース>用語タブの「能力値」の単語を引用しています。
数値チェックをする場合はbuff_rate(param_id)で取得してください。
[0から7番]が[最大HPから運]に対応しています。
本格的に改造するなら特徴システムに手を加えますけど
ステート限定で単発改造ならこの程度でもパフォーマンスに大して影響を与えないと思います。
コード: 全て選択
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ● 強化有効度の取得
#--------------------------------------------------------------------------
def buff_rate(param_id)
param = Vocab::param(param_id)
states.inject(1.0){|r, state| r * (state.note =~ /<#{param}強化有効度 (\d+)%>/ ? $1.to_i * 0.01 : 1.0) }
end
#--------------------------------------------------------------------------
# ○ 使用効果[能力強化]
#--------------------------------------------------------------------------
alias :_old_item_effect_add_buff :item_effect_add_buff
def item_effect_add_buff(user, item, effect)
return unless rand < buff_rate(effect.data_id)
_old_item_effect_add_buff(user, item, effect)
end
end
<最大HP強化有効度 200%>
<攻撃力強化有効度 50%>
<運強化有効度 0%>
と書けば反映されます。
最大HPと最大MPはデフォルトだと全角英字な事に注意してください。
データベース>用語タブの「能力値」の単語を引用しています。
数値チェックをする場合はbuff_rate(param_id)で取得してください。
[0から7番]が[最大HPから運]に対応しています。
コード: 全て選択
# パーティメンバーの攻撃力強化有効度をコンソールに表示
p $game_party.members.map{|m| m.buff_rate(2)}
Re: バフへの耐性を持ったステートを作る方法
無事にできました! 早速使わせていただきます!
作っていただきありがとうございました!
作っていただきありがとうございました!