if trueONLY_PRINT_ZERO_DAMAGE = true # <- Change this value to <false> if a zero-damage # attack is not printed!CONSOLE_OUTPUT = false # Print on console <true> or as a box <false># --------------------------------------------------# Don't do changes below this line unless you know what you are doing# --------------------------------------------------# Method redefinition check: (Not trustworthy)results = Array.new%w( item_apply item_test item_hit item_eva item_cri item_element_rate pdr mdrmake_damage_value rec apply_critical apply_variance apply_guard ).each do |name| regex = /def #{name}\W/ hits = $RGSS_SCRIPTS.select { |set| regex === set[3] } if hits.length > 2 or (hits.length > 1 and name != "item_apply") results.push([name, hits.map { |set| "[%03d:%s]" % [$RGSS_SCRIPTS.index(set), set[1] || "NO VALID NAME"] }]) endendunless results.empty? send(CONSOLE_OUTPUT ?

rint : :msgbox, "Some Methods may have been defined multiple times:\n" + results.map { |name, scripts| "#{name} : #{scripts.join(", ")}" }.join("\n"))end# Test:$item_test_array = nil$testmethod_cnt = 0class Module def log_method_result_test(method) method_alias = :"$ALIASFORDAMAGETEST__#{$testmethod_cnt += 1}__" alias_method(method_alias, method) define_method(method) do |*args| result = send(method_alias, *args) if $item_test_array != nil $item_test_array.push([self, method, result]) end return result end endendclass RPG::UsableItem log_method_result_test

physical?) log_method_result_test

magical?)endclass RPG::UsableItem:

amage log_method_result_test

eval) log_method_result_test

recover?)endclass Game_Battler alias_method

item_apply_ILC_test, :item_apply) def item_apply(user, item) $item_test_array = Array.new item_apply_ILC_test(user, item) # --- Evaluate: if (@result.hp_damage == 0 and @result.mp_damage == 0) or not ONLY_PRINT_ZERO_DAMAGE send(CONSOLE_OUTPUT ?

rint : :msgbox, "===============================\n" \ "#{user.name} uses #{item.name} on #{self.name}\n" \ "causing damage for #{@result.hp_damage} HP and #{@result.mp_damage} MP:\n"\ "-------------------------------\n" \ "Item Test: #{find_test_result(self, :item_test)}, " \ "Hit Rate: #{find_test_result(self, :item_hit)}, " \ "Evasion Rate: #{find_test_result(self, :item_eva)}\n" \ "Used: #{@result.used}\n" \ "Missed: #{@result.missed}\n" \ "Evaded: #{@result.evaded}\n" \ "#{@result.hit? ? "SUCCESS" : "FAILURE" }\n" \ "-------------------------------\n" \ "Formula Result: #{find_test_result(item.damage, :eval)}\n" \ "Element Rate: #{find_test_result(self, :item_element_rate)}\n" \ "Physical Rate: #{find_test_result(item,

hysical?)} " \ "-> #{find_test_result(self,

dr)}\n" \ "Magical Rate: #{find_test_result(item, :magical?)} " \ "-> #{find_test_result(self, :mdr)}\n" \ "Recovery Rate: #{find_test_result(item.damage, :recover?)} " \ "-> #{find_test_result(self, :rec)}\n" \ "Damage after critical: #{find_test_result(self, :apply_critical)}\n"\ "Damage after variance: #{find_test_result(self, :apply_variance)}\n"\ "Damage after guard: #{find_test_result(self, :apply_guard)}\n" \ "===============================\n\n") end $item_test_array = nil end def find_test_result(source, method) res = $item_test_array.select { |set| set[0, 2] == [source, method] } return res.collect { |set| set[2] } end log_method_result_test

item_test) log_method_result_test

item_hit) log_method_result_test

item_eva) log_method_result_test

item_cri) log_method_result_test

item_element_rate) log_method_result_test

pdr) log_method_result_test

mdr) log_method_result_test

rec) log_method_result_test

apply_critical) log_method_result_test

apply_variance) log_method_result_test

apply_guard)endend