Project1

标题: 待机动作脚本遇到的小问题,请高手解答 [打印本页]

作者: zang3649758    时间: 2011-6-17 18:10
标题: 待机动作脚本遇到的小问题,请高手解答
游戏运行时最后那行出现报错,不知道是哪里出了问题……
class Game_Character
  attr_accessor :time
  attr_accessor :step_anime_in
  #..........................................................................
  attr_accessor :old_character
  #..........................................................................
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #--------------------------------------------------------------------------
  alias old_ini initialize
  def initialize
    old_ini
    @old_character = ""
    @time = 0
    @step_anime_in = 0
  end
  TIME_LIMIT = 2  # 抓耳挠腮前的等待时间 (好象也不是帧…不知道是什么单位了)
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update   
    if self.is_a?(Game_Player)# or @event.name.split(/,/)[0]=="我军"
      if @time == TIME_LIMIT
        temp_rand = rand(2) + 1
        @character_name = @old_character + "_W" + temp_rand.to_s
        @step_anime_in = 1
        if not @step_anime_must_off
          @step_anime = true
        end
        @time = TIME_LIMIT + 1
      elsif @time < TIME_LIMIT(就是这行)
     …………………………后面还有,就不粘贴了
     


zang3649758于2011-6-17 20:12补充以下内容:
没人吗- -dsu_plus_rewardpost_czw
作者: flzt5354    时间: 2011-6-17 21:18
什么错也不说,天知道,代码也不完整,怎么看
elsif @time < TIME_LIMIT
如果时间少于2,
执行你没粘贴的代码=。=
作者: zhixin1997    时间: 2011-6-17 21:22
球完整代码
作者: zang3649758    时间: 2011-6-17 22:34
本帖最后由 zang3649758 于 2011-6-17 22:39 编辑

完整的- -
class Game_Character
  attr_accessor :time
  attr_accessor :step_anime_in
  #..........................................................................
  attr_accessor :old_character
  #..........................................................................
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #--------------------------------------------------------------------------
  alias old_ini initialize
  def initialize
    old_ini
    @old_character = ""
    @time = 0
    @step_anime_in = 0
  end
  TIME_LIMIT = 2  # 抓耳挠腮前的等待时间 (好象也不是帧…不知道是什么单位了)
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update   
    if self.is_a?(Game_Player)# or @event.name.split(/,/)[0]=="我军"
      if @time == TIME_LIMIT
        temp_rand = rand(2) + 1
        @character_name = @old_character + "_W" + temp_rand.to_s
        @step_anime_in = 1
        if not @step_anime_must_off
          @step_anime = true
        end
        @time = TIME_LIMIT + 1
      elsif @time < TIME_LIMIT
        @step_anime_in = 0
        if not @step_anime_must_on
          @step_anime = false
        end
      end
      if moving? or @move_route_forcing or $game_system.map_interpreter.running?
        @time = 0
        @character_name = @old_character
      end
      if $game_temp.message_window_showing
        if not @step_anime_must_on
          @step_anime = false
        end
      end
      unless moving?
        @time += 1 if @time < TIME_LIMIT
      end
    end
    # 跳跃中、移动中、停止中的分支
    if jumping?
      update_jump
    elsif moving?
      update_move
    else
      update_stop
    end
    # 动画计数超过最大值的情况下
    # ※最大值等于基本值减去移动速度 * 1 的值
    if @anime_count > 16 * 4/$c3_每一步的帧数 - @move_speed # * 2#18 - @move_speed * 2
      # 停止动画为 OFF 并且在停止中的情况下
      if not @step_anime and @stop_count > 0
        # 还原为原来的图形
        @pattern = @original_pattern
      # 停止动画为 ON 并且在移动中的情况下
      else
        # 更新图形
        @pattern = (@pattern + 1) % $c3_每一步的帧数
      end
      # 清除动画计数
      @anime_count = 0
    end
    # 等待中的情况下
    if @wait_count > 0
      # 减少等待计数
      @wait_count -= 1
      return
    end
    # 强制移动路线的场合
    if @move_route_forcing
      # 自定义移动
      move_type_custom
      return
    end
    # 事件执行待机中并且为锁定状态的情况下
    if @starting or lock?
      # 不做规则移动
      return
    end
    # 如果停止计数超过了一定的值(由移动频度算出)
    if @stop_count > (40 - @move_frequency * 2) * (6 - @move_frequency)
      # 移动类型分支
      case @move_type
      when 1  # 随机
        move_type_random
      when 2  # 接近
        move_type_toward_player
      when 3  # 自定义
        move_type_custom
      end
    end
  end
end
class Game_Event < Game_Character
    attr_reader   :event
end
class Game_Player < Game_Character
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    # 同伴人数为 0 的情况下
    if $game_party.actors.size == 0
      # 清除角色的文件名及对像
      #......................................................................
      @old_character = ""
      #......................................................................
      @character_name = ""
      @character_hue = 0
      # 分支结束
      return
    end
    # 获取带头的角色
    actor = $game_party.actors[0]
    # 设置角色的文件名及对像
    @character_name = actor.character_name
    #........................................................................
    @old_character = actor.character_name
    #........................................................................
    @character_hue = actor.character_hue
    # 初始化不透明度和合成方式子
    @opacity = 255
    @blend_type = 0
  end
end  


zang3649758于2011-6-17 22:37补充以下内容:
进入游戏后,点开始游戏,显示的
作者: 懒De说    时间: 2011-6-18 09:16
错误提示是什么?
作者: zang3649758    时间: 2011-6-18 14:04
懒De说 发表于 2011-6-18 09:16
错误提示是什么?

elsif @time < TIME_LIMIT
错误的那行
作者: 懒De说    时间: 2011-6-18 15:51
本帖最后由 懒De说 于 2011-6-18 15:52 编辑
  1. #==============================================================================
  2. # 本脚本来自www.66rpg.com,转载和使用请保留此信息
  3. #==============================================================================

  4. #==============================================================================
  5. # ■ Game_Character (分割定义 1)
  6. #------------------------------------------------------------------------------
  7. #  处理角色的类。本类作为 Game_Player 类与 Game_Event
  8. # 类的超级类使用。
  9. #==============================================================================

  10. class Game_Character
  11. attr_accessor :time
  12. #--------------------------------------------------------------------------
  13. # ● 初始化对像
  14. #--------------------------------------------------------------------------
  15. alias old_ini initialize
  16. def initialize
  17.    old_ini
  18.    @time = 0
  19. end
  20. end

  21. #==============================================================================
  22. # ■ Game_Player
  23. #------------------------------------------------------------------------------
  24. #  处理主角的类。事件启动的判定、以及地图的滚动等功能。
  25. # 本类的实例请参考 $game_player。
  26. #==============================================================================

  27. class Game_Player < Game_Character
  28. TIME_LIMIT = 10  # 抓耳挠腮前的等待时间 (好象也不是帧…不知道是什么单位了)
  29. #--------------------------------------------------------------------------
  30. # ● 画面更新
  31. #--------------------------------------------------------------------------
  32. def update
  33.    # 本地变量记录移动信息
  34.    last_moving = moving?
  35.    if @time == TIME_LIMIT
  36.      @character_name = @character_name + "_W"
  37.      @scratch = true
  38.      @step_anime = true
  39.      @time = TIME_LIMIT + 1
  40.    elsif @time < TIME_LIMIT
  41.      @scratch = false
  42.      @step_anime = false
  43.    end
  44.    if @scratch == false
  45.      @old_pic = @character_name
  46.    end
  47.    # 移动中、事件执行中、强制移动路线中、
  48.    # 信息窗口一个也不显示的时候
  49.    unless moving? or $game_system.map_interpreter.running? or
  50.           @move_route_forcing or $game_temp.message_window_showing
  51.      # 如果方向键被按下、主角就朝那个方向移动
  52.      case Input.dir4
  53.      when 2
  54.        move_down
  55.        @time = 0
  56.        @scratch = false
  57.        @character_name = @old_pic
  58.      when 4
  59.        move_left
  60.        @time = 0
  61.        @scratch = false
  62.        @character_name = @old_pic
  63.      when 6
  64.        move_right
  65.        @time = 0
  66.        @scratch = false
  67.        @character_name = @old_pic
  68.      when 8
  69.        move_up
  70.        @time = 0
  71.        @scratch = false
  72.        @character_name = @old_pic
  73.      end
  74.    end
  75.    # 本地变量记忆坐标
  76.    last_real_x = @real_x
  77.    last_real_y = @real_y
  78.    super
  79.    # 角色向下移动、画面上的位置在中央下方的情况下
  80.    if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
  81.      # 画面向下卷动
  82.      $game_map.scroll_down(@real_y - last_real_y)
  83.    end
  84.    # 角色向左移动、画面上的位置在中央左方的情况下
  85.    if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
  86.      # 画面向左卷动
  87.      $game_map.scroll_left(last_real_x - @real_x)
  88.    end
  89.    # 角色向右移动、画面上的位置在中央右方的情况下
  90.    if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
  91.      # 画面向右卷动
  92.      $game_map.scroll_right(@real_x - last_real_x)
  93.    end
  94.    # 角色向上移动、画面上的位置在中央上方的情况下
  95.    if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
  96.      # 画面向上卷动
  97.      $game_map.scroll_up(last_real_y - @real_y)
  98.    end
  99.    # 不在移动中的情况下
  100.    unless moving?
  101.      @time += 1 if @time < TIME_LIMIT
  102.      # 上次主角移动中的情况
  103.      if last_moving
  104.        # 与同位置的事件接触就判定为事件启动
  105.        result = check_event_trigger_here([1,2])
  106.        # 没有可以启动的事件的情况下
  107.        if result == false
  108.          # 调试模式为 ON 并且按下 CTRL 键的情况下除外
  109.          unless $DEBUG and Input.press?(Input::CTRL)
  110.            # 遇敌计数下降
  111.            if @encounter_count > 0
  112.              @encounter_count -= 1
  113.            end
  114.          end
  115.        end
  116.      end
  117.      # 按下 C 键的情况下
  118.      if Input.trigger?(Input::C)
  119.        # 判定为同位置以及正面的事件启动
  120.        check_event_trigger_here([0])
  121.        check_event_trigger_there([0,1,2])
  122.      end
  123.    end
  124. end
  125. end

  126. #==============================================================================
  127. # 本脚本来自www.66rpg.com,转载和使用请保留此信息
  128. #==============================================================================
复制代码
给你这个吧
这个可以用




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1