#============================================================================== # ■ RGSS3 アクター制限アイテム・スキル Ver1.01 by 星潟 #------------------------------------------------------------------------------ # 特定のアクター以外には使用できない、もしくは # 特定のアクターには使用できないアイテム・スキルの作成が可能になります。 # 戦闘時の場合、効果がなくなります。(選択は出来ます) # スキル習得アイテム等への設定に役立ちます。 #============================================================================== # アイテムのメモ欄に設定 #------------------------------------------------------------------------------ # <アクター制限:1> # # このアイテムはアクターID1にしか有効ではなくなります。 #------------------------------------------------------------------------------ # <アクター制限:1,2> # # このアイテムはアクターID1と2にしか有効ではなくなります。 #------------------------------------------------------------------------------ # <アクター禁止:1> # # このアイテムはアクターID1には無効になります。 #------------------------------------------------------------------------------ # <アクター禁止:1,2> # # このアイテムはアクターID1と2には無効になります。 #------------------------------------------------------------------------------ # <シーン制限:0> # # このアイテムのアクター制限・アクター禁止の効果は非戦闘時限定になります。 #------------------------------------------------------------------------------ # <シーン制限:1> # # このアイテムのアクター制限・アクター禁止の効果は戦闘時限定になります。 #============================================================================== module AL_ITEM #アクター制限の設定用キーワードを指定。 Word1 = "アクター制限" #アクター禁止の設定用キーワードを指定。 Word2 = "アクター禁止" #シーン制限の設定用キーワードを指定。 Word3 = "シーン制限" end class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # スキル/アイテムの適用テスト #-------------------------------------------------------------------------- alias item_test_actor_limit item_test def item_test(user, item) data = item_test_actor_limit(user, item) return false if !data if self.actor? case item.limit_scene when 0;flag = !$game_party.in_battle when 1;flag = $game_party.in_battle when 2;flag = true end if flag a = item.actor_effectable_limit_id data = false if !a.empty? && !a.include?(self.id) a = item.actor_effectable_seal_id data = false if !a.empty? && a.include?(self.id) end end data end end class RPG::UsableItem < RPG::BaseItem #-------------------------------------------------------------------------- # アクター制限 #-------------------------------------------------------------------------- def actor_effectable_limit_id @actor_effectable_limit_id ||= /<#{AL_ITEM::Word1}[::](\S+)>/ =~ note ? $1.to_s.split(/\s*,\s*/).inject([]) {|r,i| r.push(i.to_i)} : [] end #-------------------------------------------------------------------------- # アクター禁止 #-------------------------------------------------------------------------- def actor_effectable_seal_id @actor_effectable_seal_id ||= /<#{AL_ITEM::Word2}[::](\S+)>/ =~ note ? $1.to_s.split(/\s*,\s*/).inject([]) {|r,i| r.push(i.to_i)} : [] end #-------------------------------------------------------------------------- # シーン制限 #-------------------------------------------------------------------------- def limit_scene @limit_scene ||= /<#{AL_ITEM::Word3}[::](\d+)>/ =~ note ? $1.to_i : 2 end end