いつもお世話になっております。
現在、製作中のゲームでは
アクター、エネミーに毒や麻痺等のマイナスのステートが付加された時は
デフォルトの命中率(hit)を25%加算
HP再生や隠れる等のプラスのステートが付加された時は
デフォルトの回避率(eva)を25%加算する事で
そのアクター、エネミーに付加されているステートの個数をカウントしています。
ステートに関しては、これで問題ないのですが
同じ様に能力値の強化・弱体の個数をカウントしようにも
データベース上では強化・弱体には特徴を追加する事ができません。
アクター、エネミーに付加されているバフの段階が
@buffs[param_id] < 0 なら命中率(hit)を25%加算
@buffs[param_id] > 0 なら回避率(eva)を25%加算として
1段階目か2段階目かには関わらず、強化・弱体が付加されている個数をカウントしたい場合は
どの様にスクリプトを記述したら良いのでしょうか?
【RGSS3】アクター、エネミーに付加された強化・弱体の数を数えたい
Re: 【RGSS3】アクター、エネミーに付加された強化・弱体の数を数えたい
命中率はこんな感じかな?
回避率も似たような感じでやって下さい
コード: 全て選択
class Game_BattlerBase
alias buff_hit_eva_hit hit
def hit
buff_hit_eva_hit + @buffs.inject(0) {|r, v| v < 0 ? r + 25 : r } / 100.0
end
end
現在サポート終了中
Re: 【RGSS3】アクター、エネミーに付加された強化・弱体の数を数えたい
TOMO様、ご返答ありがとうございます。
教えて頂いたスクリプトを試した所
能力の弱体に関しては命中率でカウントが出来る様になりました。
ですが、強化に関しての回避率でのカウントが上手くいきません。
シンプルに『hit』を『eva』に、『v < 0』を『V > 0』に置き換えればいけると思ったのですが
何か違うのでしょうか?
教えて頂いたスクリプトを試した所
能力の弱体に関しては命中率でカウントが出来る様になりました。
ですが、強化に関しての回避率でのカウントが上手くいきません。
コード: 全て選択
class Game_BattlerBase
alias buff_hit_eva_hit eva
def eva
buff_hit_eva_hit + @buffs.inject(0) {|r, v| v > 0 ? r + 25 : r } / 100.0
end
end
何か違うのでしょうか?
Re: 【RGSS3】アクター、エネミーに付加された強化・弱体の数を数えたい
「buff_hit_eva_hit」はhitで既に使ってるので別のにして下さい(詳しくはヘルプの「alias」を見て下さい)
※例
※例
コード: 全て選択
class Game_BattlerBase
alias buff_hit_eva_eva eva
def eva
buff_hit_eva_eva + @buffs.inject(0) {|r, v| v > 0 ? r + 25 : r } / 100.0
end
end
現在サポート終了中
Re: 【RGSS3】アクター、エネミーに付加された強化・弱体の数を数えたい
TOMO様、ご返答ありがとうございます。
申し訳ありません。こちらで再度詳しく検証してみたところ
このスクリプトでは『回避率のカウントが出来ない』のではなく
『アクター側の命中率(hit)、回避率(eva)、会心率(cri)がカウント出来ない』みたいです。
エネミー側では全て問題なく動作する上に、アクター側でもxparam(3)~xparam(9)の
『会心回避率』から『TP再生率』までは普通にカウント出来るので
何が原因なのかは全く分かりません。
なので、命中率(hit)や回避率(eva)を使わずに
弱体とマイナスステートでは会心回避率(cev)を
強化とプラスステートでは魔法回避率(mev)を用いることで
対応させて頂きました。
どうもありがとうございました。
申し訳ありません。こちらで再度詳しく検証してみたところ
このスクリプトでは『回避率のカウントが出来ない』のではなく
『アクター側の命中率(hit)、回避率(eva)、会心率(cri)がカウント出来ない』みたいです。
エネミー側では全て問題なく動作する上に、アクター側でもxparam(3)~xparam(9)の
『会心回避率』から『TP再生率』までは普通にカウント出来るので
何が原因なのかは全く分かりません。
なので、命中率(hit)や回避率(eva)を使わずに
弱体とマイナスステートでは会心回避率(cev)を
強化とプラスステートでは魔法回避率(mev)を用いることで
対応させて頂きました。
どうもありがとうございました。