| 
 
| 赞 | 5 |  
| VIP | 620 |  
| 好人卡 | 38 |  
| 积分 | 70 |  
| 经验 | 125468 |  
| 最后登录 | 2015-7-27 |  
| 在线时间 | 1666 小时 |  
 Lv4.逐梦者 
	梦石0 星屑6955 在线时间1666 小时注册时间2008-10-29帖子6710 
 | 
| 复制代码#==============================================================================
# ■ 战斗中刷新指定公共事件
#------------------------------------------------------------------------------
#   作者:后知后觉 2011-3-31
#  冲突可能:有别的脚本对 数据库->队伍 的 名字 进行处理
#  设置方法:在 数据库->队伍 的名字后面添加如下的格式 可以连续添加多次
#            @公共事件ID,TurnA,TurnB
#    公共事件ID指的是要运行的 公共事件的编号
#    TurnA 和 TurnB 为整数
#          其代表意义和队伍事件的执行条件中的 回合a+bx 一样
#  举例:幽灵*3@1,0,0
#        蜥蜴*2@1,0,2
#        蜥蜴*3@2,0,1@1,1,2
#==============================================================================
#==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle
  alias hzhj_old_main_for_common_event main
  alias hzhj_old_setup_battle_event_for_common_event setup_battle_event
  alias hzhj_old_start_phase4_for_common_event start_phase4
  #--------------------------------------------------------------------------
  # ● 主处理
  #--------------------------------------------------------------------------
  def main
    $data_troops[$game_temp.battle_troop_id].hzhj_set_new_parameters
    @hzhj_events = $data_troops[$game_temp.battle_troop_id].hzhj_events
    @hzhj_turns = $data_troops[$game_temp.battle_troop_id].hzhj_turns
    @hzhj_flags = Array.new
    hzhj_old_main_for_common_event
  end
  #--------------------------------------------------------------------------
  # ● 设置战斗事件
  #--------------------------------------------------------------------------
  def setup_battle_event
    if $game_system.battle_interpreter.running?
      return
    end
    if not @hzhj_events.empty?
      for i in 0...@hzhj_events.size
        next if @hzhj_flags[i]
        n = $game_temp.battle_turn
        a = @hzhj_turns[i][0]
        b = @hzhj_turns[i][1]
        if (b == 0 and n != a) or
           (b > 0 and (n < 1 or n < a or n % b != a % b))
          next
        end
        $game_system.battle_interpreter.setup(@hzhj_events[i].list, 0)
        @hzhj_flags[i] = true
        return
      end
    end
    hzhj_old_setup_battle_event_for_common_event
  end
  #--------------------------------------------------------------------------
  # ● 开始主回合
  #--------------------------------------------------------------------------
  def start_phase4
    hzhj_old_start_phase4_for_common_event
    @hzhj_flags.clear
  end
end
module RPG
  class Troop
    attr_writer :hzhj_events
    attr_writer :hzhj_turns
    def name
      hzhj_set_new_parameters if @hzhj_name.nil?
      return @hzhj_name
    end
    def hzhj_events
      hzhj_set_new_parameters if @hzhj_name.nil?
      return @hzhj_events
    end
    def hzhj_turns
      hzhj_set_new_parameters if @hzhj_name.nil?
      return @hzhj_turns
    end
    def hzhj_set_new_parameters
      return if not @hzhj_name.nil?
      temp = @name.split(/@/)
      @hzhj_events = Array.new
      @hzhj_turns = Array.new
      if temp.size <= 1
        @hzhj_name = temp[0].nil? ? "" : temp[0]
        return
      end
      @hzhj_name = temp.shift
      for i in 0...temp.size
        temp_e = temp[i].split(/,/)
        @hzhj_events[i] = $data_common_events[temp_e[0].to_i.abs]
        @hzhj_turns[i] = Array.new
        @hzhj_turns[i][0] = temp_e[1].to_i.abs
        @hzhj_turns[i][1] = temp_e[2].to_i.abs
      end
    end
  end
end
 | 
 评分
查看全部评分
 |