Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- # CUT ACTIONS BY ELEMENT
- # Author Molegato
- # Version 1.0
- #------------------------------------------------------------------------------
- # If an enemy gets a hit from a determined element, and didnt attack yet,
- # his turn gets invalidated.
- #==============================================================================
- $imported = {} if $imported.nil?
- $imported['Molegato-cut actions by element'] = true
- #==============================================================================
- # CONFIGURATION, YOU CAN TOUCH THIS
- #==============================================================================
- module MOLEGATO_ACTION_CUT
- STUN_TEXT = ' has been knocked down!'
- PLAY_SOUND = true
- STUN_SOUND = 'Evasion2'
- end
- #==============================================================================
- # END OF CONFIGURATION. EVERYTHING UNDER HERE IS A HELLISH MESS OF DEFICIENT
- # AMATEUR SCRIPTING. BE AWARE THAT MESSING WITH IT CAN RESULT IN DISASTER
- #==============================================================================
- module BattleManager
- def self.action_battlers
- return @action_battlers
- end
- def self.delete_battler_from_turn(battler)
- @action_battlers.delete(battler)
- end
- end
- class Scene_Battle < Scene_Base
- alias action_cutter_apply_item_effects apply_item_effects
- def apply_item_effects(target, item)
- if target.actor?
- data_target=target.actor
- else
- data_target=target.enemy
- end
- if item.damage.element_id==-1
- elements = @subject.atk_elements
- else
- elements = [item.damage.element_id]
- end
- if data_target.has_tag?("action_cutted")==true
- cutters=data_target.tag_check_multiple_multivalues("action_cutted")
- cutters.each do |current_cutter|
- p item.damage.element_id
- if elements.any? {|i| i==current_cutter[0].to_i()} and rand(100)<=current_cutter[1].to_i()
- if BattleManager.action_battlers.count(target)>0
- BattleManager.delete_battler_from_turn(target)
- if MOLEGATO_ACTION_CUT::PLAY_SOUND
- RPG:: SE.new( MOLEGATO_ACTION_CUT::STUN_SOUND ).play
- end
- @log_window.add_text(target.name + MOLEGATO_ACTION_CUT::STUN_TEXT)
- end
- end
- end
- end
- action_cutter_apply_item_effects(target,item)
- end
- end
- #==============================================================================
- # MOLEGATO TAG METHODS
- # Author Molegato
- # Version 1.0
- #------------------------------------------------------------------------------
- # Several methods for using tags. Needed by some of my scripts.
- #------------------------------------------------------------------------------
- # Included in some of my scripts.
- #==============================================================================
- $imported = {} if $imported.nil?
- $imported['Molegato-Sudden death'] = true
- class RPG::BaseItem
- def has_tag?(tag)
- if self.note[/<#{tag}>/mi]
- return true
- else
- return false
- end
- end
- def tag_check_value(tag)
- if self.note[/<#{tag}: (.*?)>/mi]
- return $1
- else
- return false
- end
- end
- def tag_check_multivalues(tag)
- if self.note[/<#{tag}: (.*?)>/mi]
- return $1.split(',')
- else
- return false
- end
- end
- def tag_check_multivalues(string, tag)
- if string[/<#{tag}: (.*?)>/mi]
- return $1.split(',')
- else
- return false
- end
- end
- def tag_get_block(tag)
- if self.note[/<#{tag}>(.*?)<\\#{tag}>/mi]
- return $1
- else
- return false
- end
- end
- def tag_multiple(tag)
- if tag_get_block(tag)
- var=tag_get_block(tag)
- return var.split(';')
- else
- return false
- end
- end
- def tag_check_multiple_multivalues(tag)
- if tag_multiple(tag)
- array=[]
- tag_multiple(tag).each do |each|
- array.push(tag_check_multivalues(each,tag))
- end
- return array
- else
- return false
- end
- end
- end
- class RPG::Map
- def has_tag?(tag)
- if self.note[/<#{tag}>/mi]
- return true
- else
- return false
- end
- end
- def tag_check_value(tag)
- if self.note[/<#{tag}: (.*?)>/mi]
- return $1
- else
- return false
- end
- end
- def tag_check_multivalues(tag)
- if self.note[/<#{tag}: (.*?)>/mi]
- return $1.split(',')
- else
- return false
- end
- end
- def tag_check_multivalues(string, tag)
- if string[/<#{tag}: (.*?)>/mi]
- return $1.split(',')
- else
- return false
- end
- end
- def tag_get_block(tag)
- if self.note[/<#{tag}>(.*?)<\\#{tag}>/mi]
- return $1
- else
- return false
- end
- end
- def tag_multiple(tag)
- if tag_get_block(tag)
- var=tag_get_block(tag)
- return var.split(';')
- else
- return false
- end
- end
- def tag_check_multiple_multivalues(tag)
- if tag_multiple(tag)
- array=[]
- tag_multiple(tag).each do |each|
- array.push(tag_check_multivalues(each,tag))
- end
- return array
- else
- return false
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment