Project1

标题: 求4方行走图待机脚本 [打印本页]

作者: bfcode    时间: 2009-10-15 20:23
标题: 求4方行走图待机脚本
脚本几乎不懂,希望大家帮助我,行走图待机脚本
作者: pudding    时间: 2009-10-15 21:56
本帖最后由 pudding 于 2009-10-15 22:00 编辑
  1. #需要一个行走图 XXXX_W.png,比如以 001-Fighter01.png
  2. #为人物行走图的话,就需要一个 001-Fighter01_W.png 的待机行走图。
  3. #==============================================================================
  4. # 本脚本来自www.66rpg.com,转载和使用请保留此信息
  5. #==============================================================================

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

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

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

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

  128. #==============================================================================
  129. # 本脚本来自www.66rpg.com,转载和使用请保留此信息
  130. #==============================================================================
复制代码
提供图片
34行 改等待X秒后,才开始有待机的动作
作者: wolf1315    时间: 2009-10-16 15:06
谢谢楼上的朋友分享我也正在找这个脚本卡徒界王修真研究生生活录
作者: bfcode    时间: 2009-10-16 16:29
本帖最后由 bfcode 于 2009-10-16 16:30 编辑

谢谢了
作者: bfcode    时间: 2009-10-16 16:32
那个29发生了故障...




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