Heartbreak61

「Simple Stupid」 Bulk Change

Apr 14th, 2013
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.83 KB | None | 0 0
  1. # Simple Stupid Bulk Change (for RPG::BaseItem)
  2. # by Heartbreak61
  3.  
  4. # Difficulty : Medium, Hard
  5.  
  6. %Q(
  7.  
  8. WARNING: USE AT YOUR OWN RISK!
  9.          TIDAK UNTUK PENGGUNA RM VX ACE YANG BELUM MEMAHAMI RGSS3 SAMA SEKALI!
  10.  
  11. * Cara pakai:
  12.     [:skills, 131..140, "hit_type = 2" ]
  13.   akan mengubah "Hit Type" skill dengan id 131~140 menjadi "Magical"
  14.  
  15. * Untuk memasukkan value berupa string gunakan tanda '\' sebelum tanda kutip (")
  16.  contoh:
  17.    [:actors, 1..3, "name = \"My Character\""]
  18.  akan mengubah nama actor dengan id 1~3 menjadi "My Character"
  19.  
  20. * parameter untuk data yang bisa digunakan:
  21.  :actors, :classes, :skills, :items, :weapons, :armors, :enemies, :states
  22.  
  23. * Keterangan lebih lanjut lihat Help File >> RGSS Reference Manual >> Game Library
  24.  RPGVXAce Data Structure >> RPG::BaseItem
  25.  untuk tentang Attribute apa saja yang bisa diubah
  26.  
  27. * Setelah selesai melakukan Bulk Changing, reload project untuk melihat perubahan
  28.  di RM Editor
  29.  
  30. * SANGAT dianjurkan untuk
  31.  menggunakan block comment (ctrl + A kemudian ctrl + Q) atau
  32.  mengganti value id range menjadi 0 atau
  33.  mengganti value command menjadi ""
  34.  
  35.  pada script ini setelah melakukan Bulk Changing!
  36.  Script ini akan melakukan overwrite terus-menerus pada data anda setiap game
  37.  mulai dijalankan. Jadi apabila anda telah melakukan edit manual dan anda
  38.  lupa melakukan salah satu dari 3 poin di atas, ada kemungkinan data anda akan
  39.  di overwrite kembali dengan metode Bulk Changing!
  40.  
  41. * Thanks to TheoAllen for the idea
  42.  
  43. )
  44.  
  45. module HBK
  46.  @bulk_change = [
  47.  #[data, id range, command]
  48.  [:actors, 0, ""], # jangan lupa koma!
  49.  [:classes, 0, ""], # koma!
  50.  [:skills, 0, ""], #koma!
  51.  [:items, 0, ""],
  52.  [:weapons, 0, ""],
  53.  [:armors, 0, ""],
  54.  [:enemies, 0, ""],
  55.  [:states, 0, ""], # koma!
  56.  #-----------------------------------------------------------------------------
  57.  ]
  58.  
  59.  def self.bulk_change;@bulk_change;end
  60. end
  61.  
  62. module DataManager
  63.  class << self
  64.    alias bulk_change_load_database load_database
  65.  end
  66.  
  67.  def self.load_database
  68.    bulk_change_load_database
  69.    initiate_bulk_change
  70.  end
  71.  
  72.  def self.initiate_bulk_change
  73.    ary = HBK.bulk_change
  74.    ary.each {|n|
  75.    next if n.nil? || n[1] == 0 || n[1].nil? || n[2] == "" || n[2].nil?
  76.    if n[1].is_a?(Fixnum)
  77.      id == n[1]
  78.      run_bulk_change(n[0], id, n[2])
  79.    elsif n[1].is_a?(Range)
  80.      n[1].each { |id| run_bulk_change(n[0], id, n[2]) }
  81.    end
  82.    }
  83.  end
  84.  
  85.  def self.run_bulk_change(data, id, command)
  86.    if data == :actors
  87.      str = "$data_actors[#{id}]."
  88.      str += command
  89.      eval(str) rescue nil
  90.      save_data($data_actors, "Data/Actors.rvdata2")
  91.    elsif data == :classes
  92.      str = "$data_classes[#{id}]."
  93.      str += command
  94.      eval(str) rescue nil
  95.      save_data($data_classes, "Data/Classes.rvdata2")
  96.    elsif data == :skills
  97.      str = "$data_skills[#{id}]."
  98.      str += command
  99.      eval(str) rescue nil
  100.      save_data($data_skills, "Data/Skills.rvdata2")
  101.    elsif data == :items
  102.      str = "$data_items[#{id}]."
  103.      str += command
  104.      eval(str) rescue nil
  105.      save_data($data_items, "Data/Items.rvdata2")
  106.    elsif data == :weapons
  107.      str = "$data_weapons[#{id}]."
  108.      str += command
  109.      eval(str) rescue nil
  110.      save_data($data_weapons, "Data/Weapons.rvdata2")
  111.    elsif data == :armors
  112.      str = "$data_armors[#{id}]."
  113.      str += command
  114.      eval(str) rescue nil
  115.      save_data($data_armors, "Data/Armors.rvdata2")
  116.    elsif data == :enemies
  117.      str = "$data_enemies[#{id}]."
  118.      str += command rescue nil
  119.      eval(str) rescue nil
  120.      save_data($data_enemies, "Data/Enemies.rvdata2")
  121.    elsif data == :states
  122.      str = "$data_states[#{id}]."
  123.      str += command
  124.      eval(str) rescue nil
  125.      save_data($data_states, "Data/States.rvdata2")
  126.    end
  127.  end
  128. end #DataManager
Advertisement
Add Comment
Please, Sign In to add comment