设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1745|回复: 2
打印 上一主题 下一主题

[已经过期] 求助啊,待机动作脚本的问题

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
31 小时
注册时间
2008-7-14
帖子
20
跳转到指定楼层
1
发表于 2011-7-2 17:51:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 fux2 于 2011-7-6 14:32 编辑
  1. #==============================================================================
  2. # ■ 待机动作系统(多种)
  3. #------------------------------------------------------------------------------
  4. #  企图改为随机的动态小动作...也就是更多的小动作...但尚未实现(原因:缺少素材)
  5. #   By 星子,whbm(修改随机动作)
  6. #==============================================================================
  7. class Game_Character
  8.   attr_accessor :time
  9.   attr_accessor :step_anime_in
  10.   #..........................................................................
  11.   attr_accessor :old_character
  12.   #..........................................................................
  13.   #--------------------------------------------------------------------------
  14.   # ● 初始化对像
  15.   #--------------------------------------------------------------------------
  16.   alias old_ini initialize
  17.   def initialize
  18.     old_ini
  19.     @old_character = ""
  20.     @time = 0
  21.     @step_anime_in = 0
  22.   end
  23.   TIME_LIMIT = 2  # 抓耳挠腮前的等待时间 (好象也不是帧…不知道是什么单位了)
  24.   #--------------------------------------------------------------------------
  25.   # ● 刷新画面
  26.   #--------------------------------------------------------------------------
  27.   def update   
  28.     if self.is_a?(Game_Player)# or @event.name.split(/,/)[0]=="我军"
  29.       if @time == TIME_LIMIT
  30.         temp_rand = 1
  31.         @character_name = @old_character + "_W" + temp_rand.to_s
  32.         @step_anime_in = 1
  33.         if not @step_anime_must_off
  34.           @step_anime = true
  35.         end
  36.         @time = TIME_LIMIT + 1
  37.       elsif @time < TIME_LIMIT
  38.         @step_anime_in = 0
  39.         if not @step_anime_must_on
  40.           @step_anime = false
  41.         end
  42.       end
  43.       if moving? or @move_route_forcing or $game_system.map_interpreter.running?
  44.         @time = 0
  45.         @character_name = @old_character
  46.       end
  47.       if $game_temp.message_window_showing
  48.         if not @step_anime_must_on
  49.           @step_anime = false
  50.         end
  51.       end
  52.       unless moving?
  53.         @time += 1 if @time < TIME_LIMIT
  54.       end
  55.     end
  56.     # 跳跃中、移动中、停止中的分支
  57.     if jumping?
  58.       update_jump
  59.     elsif moving?
  60.       update_move
  61.     else
  62.       update_stop
  63.     end
  64.     # 动画计数超过最大值的情况下
  65.     # ※最大值等于基本值减去移动速度 * 1 的值
  66.     if @anime_count > 16 * 4/$c3_每一步的帧数 - @move_speed # * 2#18 - @move_speed * 2
  67.       # 停止动画为 OFF 并且在停止中的情况下
  68.       if not @step_anime and @stop_count > 0
  69.         # 还原为原来的图形
  70.         @pattern = @original_pattern
  71.       # 停止动画为 ON 并且在移动中的情况下
  72.       else
  73.         # 更新图形
  74.         @pattern = (@pattern + 1) % $c3_每一步的帧数
  75.       end
  76.       # 清除动画计数
  77.       @anime_count = 0
  78.     end
  79.     # 等待中的情况下
  80.     if @wait_count > 0
  81.       # 减少等待计数
  82.       @wait_count -= 1
  83.       return
  84.     end
  85.     # 强制移动路线的场合
  86.     if @move_route_forcing
  87.       # 自定义移动
  88.       move_type_custom
  89.       return
  90.     end
  91.     # 事件执行待机中并且为锁定状态的情况下
  92.     if @starting or lock?
  93.       # 不做规则移动
  94.       return
  95.     end
  96.     # 如果停止计数超过了一定的值(由移动频度算出)
  97.     if @stop_count > (40 - @move_frequency * 2) * (6 - @move_frequency)
  98.       # 移动类型分支
  99.       case @move_type
  100.       when 1  # 随机
  101.         move_type_random
  102.       when 2  # 接近
  103.         move_type_toward_player
  104.       when 3  # 自定义
  105.         move_type_custom
  106.       end
  107.     end
  108.   end
  109. end
  110. class Game_Event < Game_Character
  111.     attr_reader   :event
  112. end
  113. class Game_Player < Game_Character
  114.   #--------------------------------------------------------------------------
  115.   # ● 刷新
  116.   #--------------------------------------------------------------------------
  117.   def refresh
  118.     # 同伴人数为 0 的情况下
  119.     if $game_party.actors.size == 0
  120.       # 清除角色的文件名及对像
  121.       #......................................................................
  122.       @old_character = ""
  123.       #......................................................................
  124.       @character_name = ""
  125.       @character_hue = 0
  126.       # 分支结束
  127.       return
  128.     end
  129.     # 获取带头的角色
  130.     actor = $game_party.actors[0]
  131.     # 设置角色的文件名及对像
  132.     @character_name = actor.character_name
  133.     #........................................................................
  134.     @old_character = actor.character_name
  135.     #........................................................................
  136.     @character_hue = actor.character_hue
  137.     # 初始化不透明度和合成方式子
  138.     @opacity = 255
  139.     @blend_type = 0
  140.   end
  141. end
复制代码
一调试的时候
就会这样子


要求也弄好了

就是莫名其妙的会这样子


可以的话麻烦帮我修正下http://dl.dbank.com/c00i5t37nr
谢谢


絕對厲害于2011-7-2 19:43补充以下内容:
哥们

Lv1.梦旅人

梦石
0
星屑
229
在线时间
596 小时
注册时间
2010-6-21
帖子
1218
2
发表于 2011-7-3 09:13:19 | 只看该作者
工程我就不下了,把我在用这个脚本给你吧,没有问题的
  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 = 200  # 抓耳挠腮前的等待时间 (好象也不是帧…不知道是什么单位了)
  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. #==============================================================================
复制代码

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
「旅」 + 200 + 2 正确回答,恭喜你获得由66RPG提供的精美好.

查看全部评分

如果我是一个美工就好啦!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
127 小时
注册时间
2009-12-19
帖子
417
3
发表于 2011-7-6 13:18:16 | 只看该作者
最简单的就是给角色一个状态,显示待机动画
无视掉。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-30 00:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表