# @taroxd metadata 1.0
# @require taroxd_core
# @id render_event
# @display 重复设置事件
# @help
# 那么这个事件会完全被该地图中的事件 event_id 代替。
# 在事件名称上备注 <render event_id map_id>
# 那么这个事件会完全被地图 map_id 中的事件 event_id 代替。
module Taroxd::RenderEvent
# 获取地图(RPG::Map)。map_id 为 0 时获取当前地图。
def self.load_map(map_id)
case map_id
when 0, $game_map.map_id
$game_map.data_object
when @last_map_id
@last_map
else
@last_map_id = map_id
@last_map = load_data sprintf("Data/Map%03d.rvdata2", map_id)
end
end
end
class RPG::Event
# 重定义:获取事件页
def pages
@rendered_pages ||= rendered_pages
end
private
def rendered_pages
return @pages unless @name =~ /<render\s+(\d+)(\s+\d+)?>/i
Taroxd::RenderEvent.load_map($2.to_i).events[$1.to_i].pages
end
end
重复设置事件
删除部分 rescue
# @taroxd metadata 1.0
# @display 删除部分 rescue
# @help 测试模式下,删除默认脚本中的部分 rescue
# @id remove_rescue
module Taroxd
RemoveRescue = $TEST
end
if Taroxd::RemoveRescue
class RPG::UsableItem::Damage
def eval(a, b, v)
[Kernel.eval(@formula), 0].max * sign
end
end
class << DataManager
def savedata_exist(index)
filename = make_filename(index)
return unless File.exist?(filename)
block_given? ? yield(filename) : filename
end
alias_method :save_game, :save_game_without_rescue
def load_game(index)
load_game_without_rescue(index) if savedata_exist(index)
end
def load_header(index)
load_header_without_rescue(index) if savedata_exist(index)
end
def delete_save_file(index)
savedata_exist(index) { |f| File.delete(f) }
end
def savefile_time_stamp(index)
savedata_exist(index) { |f| File.mtime(f) } || Time.at(0)
end
end
end
删除等级功能
# @taroxd metadata 1.0
# @id remove_level
# @display 删除等级功能
# @help 移除所有有关等级和经验值的功能
module Taroxd
# 试图访问角色等级时执行。参数即为方法的参数。
RemoveLevel = -> * { 0 }
end
class Game_Actor < Game_Battler
# 等级视为初始等级。仅用于计算属性
def level
actor.initial_level
end
%W(level_up level_down init_exp exp exp_for_level
current_level_exp next_level_exp max_level? max_level
change_exp display_level_up gain_exp final_exp_rate
reserve_members_exp_rate change_level).each do |name|
define_method name, Taroxd::RemoveLevel
end
end
Window_Base.send :define_method, :draw_actor_level, Taroxd::RemoveLevel
Window_Status.send :define_method, :draw_exp_info, Taroxd::RemoveLevel