武器・防具の装備条件に通常の装備条件に加えて、
該当するステートにかかっているかどうかを条件に追加したスクリプトを
作成してほしいと思い投稿しました
ただ、これは汎用性がないので、へぷたなすくろーる様の装備条件の追加スクリプトに
ステート条件を追加する改変が可能であればこちらを教えていただきたいです
へぷたなすくろーる様の装備条件の追加のURL
https://heptanas.mamagoto.com/Entry/239/
へぷたなすくろーる様のスクリプトは規約により、改変した素材を公開する場合は元のスクリプトが必要な
パッチ形式にしなければならないので、難しくなってしまう場合は改変する箇所をご指示いただければ
こちらでスクリプトの改変を行います
解決:[VXace]装備条件にステートを追加
Re: [VXace]装備条件にステートを追加
アロエ様
こんな感じで大丈夫でしょうか?
パッチ形式なので元素材の下に導入してください
<装備条件 ステート n>
で指定できます
こんな感じで大丈夫でしょうか?
パッチ形式なので元素材の下に導入してください
<装備条件 ステート n>
で指定できます
コード: 全て選択
class Game_BattlerBase
#--------------------------------------------------------------------------
# ● 装備条件(ステート)
#--------------------------------------------------------------------------
def equip_stateid_ok?(item)
return true if item.note.scan(/\<\s*装備条件\s*ステート\s*(\d+)\s*\>/).empty?
item.note.scan(/\<\s*装備条件\s*ステート\s*(\d+)\s*\>/).any? { |s_id| self.state?(s_id[0].to_i) }
end
#--------------------------------------------------------------------------
# ● 装備可能判定(再定義)
#--------------------------------------------------------------------------
def equippable?(item)
return false unless item.is_a?(RPG::EquipItem)
return false if equip_type_sealed?(item.etype_id)
return false unless equip_actorid_ok?(item)
return false unless equip_classid_ok?(item)
return false unless equip_status_ok?(item)
return false unless equip_stateid_ok?(item)
return equip_wtype_ok?(item.wtype_id) if item.is_a?(RPG::Weapon)
return equip_atype_ok?(item.atype_id) if item.is_a?(RPG::Armor)
return false
end
end
Re: [VXace]装備条件にステートを追加
DEDEN様、今回は要望に応えていただき本当にありがとうございます
テストも問題なくこれで解決とさせていただきます
テストも問題なくこれで解決とさせていただきます
Re: [VXace]装備条件にステートを追加
DEDEN様へ
解決としましたが、もう一つだけリクエストが増えてしまいました
申し訳ありませんが応えていただければ幸いです
装備条件を満たさなくなり
装備できなくなった装備を自動で外すにはどうすればよいでしょうか?
解決としましたが、もう一つだけリクエストが増えてしまいました
申し訳ありませんが応えていただければ幸いです
装備条件を満たさなくなり
装備できなくなった装備を自動で外すにはどうすればよいでしょうか?
Re: [VXace]装備条件にステートを追加
アロエ 様
こちらのテストではマップでも戦闘中でもステートを解除した際は自動で装備も外れることを確認しました
これは私が付けた機能ではなく、RGSS3のデフォルト仕様によるものです(特徴機能を使えば特定の操作で装備条件を満たさなくなるという状況は起こりうるため)
なのでアロエ様の環境ではステートを解除しても外れないのであれば何らかのスクリプト素材によってこの機能が無効化されている可能性があります
もしくはデフォルトには存在しない方法でステートを解除した場合は装備可能判定チェックが入らないのかもしれません
イベントコマンドやアイテム使用によるステート解除でも装備は外れませんか?
こちらのテストではマップでも戦闘中でもステートを解除した際は自動で装備も外れることを確認しました
これは私が付けた機能ではなく、RGSS3のデフォルト仕様によるものです(特徴機能を使えば特定の操作で装備条件を満たさなくなるという状況は起こりうるため)
なのでアロエ様の環境ではステートを解除しても外れないのであれば何らかのスクリプト素材によってこの機能が無効化されている可能性があります
もしくはデフォルトには存在しない方法でステートを解除した場合は装備可能判定チェックが入らないのかもしれません
イベントコマンドやアイテム使用によるステート解除でも装備は外れませんか?
Re: [VXace]装備条件にステートを追加
DEDEN様へ
他のスクリプトがない状態で試したところ
どうやらイベントコマンドの全回復のみ装備がはずれないようです
これに対応することは可能でしょうか?
他のスクリプトがない状態で試したところ
どうやらイベントコマンドの全回復のみ装備がはずれないようです
これに対応することは可能でしょうか?
Re: [VXace]装備条件にステートを追加
アロエ 様
検証ありがとうございます
こちらでも全回復では装備が外れない事を確認しました
テスト不足で申し訳ありませんでした
原因を調べたところ、アイテム使用やステートの変更コマンドで使われているremove_stateメソッドではrefreshを走らせているのに
全回復のclear_statesではそれを行っていない事でした
修正自体は簡単ですが、何故デフォルトでこれを行っていないのか分からないのが少し怖いですね
ただのミスなら良いのですが、意図的なものならば不具合が出る可能性もあります
以下の修正コードを導入すれば問題は解消すると思いますが、もしも全回復で何らかの不具合が発生した場合はまたお知らせください
検証ありがとうございます
こちらでも全回復では装備が外れない事を確認しました
テスト不足で申し訳ありませんでした
原因を調べたところ、アイテム使用やステートの変更コマンドで使われているremove_stateメソッドではrefreshを走らせているのに
全回復のclear_statesではそれを行っていない事でした
修正自体は簡単ですが、何故デフォルトでこれを行っていないのか分からないのが少し怖いですね
ただのミスなら良いのですが、意図的なものならば不具合が出る可能性もあります
以下の修正コードを導入すれば問題は解消すると思いますが、もしも全回復で何らかの不具合が発生した場合はまたお知らせください
コード: 全て選択
class Game_BattlerBase
#--------------------------------------------------------------------------
# ● 全回復
#--------------------------------------------------------------------------
alias recover_all_deden recover_all
def recover_all
recover_all_deden
refresh
end
end
Re: 解決:[VXace]装備条件にステートを追加
DEDEN様、対応ありがとうございます
もし何かの問題があればこの記事か別の記事にてお知らせしようと思います
もし何かの問題があればこの記事か別の記事にてお知らせしようと思います