Advertisement
Zetu

Event Amplifier v1.01

Jul 12th, 2011
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.78 KB | None | 0 0
  1. # // Event Amplifier
  2.  
  3.  
  4. # // Regular Expressions (In Event Comment)
  5. # <bool: *>  : Adds a script condition to event page.
  6. # <x/y += *> : Offsets X/Y coordinate of event.
  7.  
  8. # // Added Features
  9. # self_var   : Variable Local to Event (Like Self Switch)
  10.  
  11. module Z21
  12.  
  13.   module REGEXP
  14.     BOOL = /<(?:bool|condition)[ :]*(.*)>/i
  15.     OFFSET = /<([xy])[ :]*(.*)>/i
  16.   end
  17. end
  18.  
  19. class Game_Event
  20.  
  21.   alias z21conditions_met? conditions_met? unless $@
  22.   def conditions_met?(page)
  23.     return false unless z21regexp_conditions_met?(page)
  24.     return z21conditions_met?(page)
  25.   end
  26.  
  27.   def z21regexp_conditions_met?(page)
  28.     for line in page.list
  29.       next unless line.code == 108
  30.       line.parameters[0].scan(Z21::REGEXP::BOOL){|condition|
  31.         return false unless eval(condition[0])
  32.       }
  33.     end
  34.     return true
  35.   end
  36.  
  37. end
  38.  
  39. class Game_Interpreter
  40.   def event
  41.     return $game_map.events[@event_id]
  42.   end
  43.   def self_var
  44.     return event.self_var
  45.   end
  46. end
  47.  
  48. class Game_Event
  49.  
  50.   def self_var
  51.     return $self_var[@event.id, @map.map_id]
  52.   end
  53.  
  54.   def self_var=(new_value)
  55.     $self_var[@event.id, @map.map_id] = new_value
  56.   end
  57.  
  58. end
  59.  
  60. class Game_SelfVariables
  61.  
  62.   def initialize
  63.     @data = {}
  64.   end
  65.  
  66.   def [](key)
  67.     return @data[key].nil? ? 0 : @data[key]
  68.   end
  69.  
  70.   def []=(key, value)
  71.     @data[key] = value
  72.   end
  73.  
  74. end
  75.  
  76. class Scene_Title < Scene_Base
  77.  
  78.   alias z21create_game_objects create_game_objects unless $@
  79.   def create_game_objects
  80.     z21create_game_objects
  81.     $self_var = Game_SelfVariables.new
  82.   end
  83.  
  84. end
  85.  
  86. class Scene_File < Scene_Base
  87.  
  88.   alias z21write_save_data write_save_data unless $@
  89.   def write_save_data(file)
  90.     z21write_save_data(file)
  91.     Marshal.dump($game_player,         file)
  92.   end
  93.  
  94.   alias z21read_save_data read_save_data
  95.   def read_save_data(file)
  96.     z21read_save_data(file)
  97.     $self_var = Marshal.load(file)
  98.   end
  99.  
  100. end
  101.  
  102. class Game_Character
  103.  
  104.   alias z21screen_x screen_x unless $@
  105.   def screen_x
  106.     return z21screen_x + z21_offset_x
  107.   end
  108.  
  109.   alias z21screen_y screen_y unless $@
  110.   def screen_y
  111.     return z21screen_y + z21_offset_y
  112.   end
  113.  
  114.   def z21_offset_x
  115.     return 0 unless self.is_a?(Game_Event)
  116.     return z21_offset[0]
  117.   end
  118.  
  119.   def z21_offset_y
  120.     return 0 unless self.is_a?(Game_Event)
  121.     return z21_offset[1]
  122.   end
  123.  
  124.   def z21_offset
  125.     param = [0, 0]
  126.     return param if @page.nil?
  127.     for line in @page.list
  128.       next unless line.code == 108
  129.       line.parameters[0].scan(Z21::REGEXP::OFFSET){|matches|
  130.         for match in matches
  131.           case $1.upcase
  132.           when "X"
  133.             param[0] += $2.to_i
  134.           when "Y"
  135.             param[1] += $2.to_i
  136.           end
  137.         end
  138.       }
  139.     end
  140.     return param
  141.   end
  142.  
  143. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement