本帖最后由 余烬之中 于 2014-8-15 13:07 编辑
方法一 事件方法
让一个变量为A角色的等级
另一个变量为B角色的等级
如果两个不相等
就把A等级减去B等级 存入变量
提升B的等级 提升的值为这个变量
方法二 脚本方法
#============================================================================== # ** ActorLevelRelated #============================================================================== module ActorLevelRelated List = { 1 => 2 # 一号和二号关联 一号升级/降级导致二号升级/降级 反之不然 } end #============================================================================== # ** Game_Actor #============================================================================== class Game_Actor [:level_up, :level_down, :change_level].each do |sym| old = instance_method(sym) define_method sym do |*args| old.bind(self).call *args return unless ActorLevelRelated::List.key? id related = $game_actors[ActorLevelRelated::List[id]] return if related.nil? related.change_level(@level, false) if related.level != @level end end end
#==============================================================================
# ** ActorLevelRelated
#==============================================================================
module ActorLevelRelated
List = {
1 => 2 # 一号和二号关联 一号升级/降级导致二号升级/降级 反之不然
}
end
#==============================================================================
# ** Game_Actor
#==============================================================================
class Game_Actor
[:level_up, :level_down, :change_level].each do |sym|
old = instance_method(sym)
define_method sym do |*args|
old.bind(self).call *args
return unless ActorLevelRelated::List.key? id
related = $game_actors[ActorLevelRelated::List[id]]
return if related.nil?
related.change_level(@level, false) if related.level != @level
end
end
end
|