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

Project1

 找回密码
 注册会员
搜索

修改后的按键加速脚本问题!请教冲突到底在哪里?

查看数: 1388 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2009-10-27 19:30

正文摘要:

本帖最后由 幻耶 于 2009-10-27 19:32 编辑 以下脚本是实现按SHIFT键让角色前冲一段距离,而我又在Game_Player的update下添加了这一句:@move_speed = $game_party.actors[0].agi/200 + 2.5 用来把角色行走速度与 ...

回复

secondsen 发表于 2009-10-28 12:12:10
本帖最后由 secondsen 于 2009-10-28 12:16 编辑

我没有你那些个图片阿。。。所以把图片的都注释掉了。。OTZ

这样改
那段脚本复制成这样。。
  1. class Game_Player
  2.   attr_accessor :move_speed
  3.   #--------------------------------------------------------------------------
  4.   # ● フレーム更新
  5.   #--------------------------------------------------------------------------
  6.   alias old_update update
  7.   def update
  8.     unless $game_system.map_interpreter.running? or
  9.       @move_route_forcing or $game_temp.message_window_showing
  10.       if Input.press?(Input::SHIFT)
  11.         if @move_speed != 6
  12.           @move_speed = 6
  13.           move_route = RPG::MoveRoute.new
  14.           move_route.repeat = false
  15.           move_route.list.clear
  16.           move_command = RPG::MoveCommand.new
  17.           move_command.code = @direction / 2
  18.           5.times{move_route.list.push(move_command.clone)}
  19.           move_command.code = 0
  20.           move_route.list.push(move_command)
  21.           force_move_route(move_route)
  22.           @character_name_run = @character_name
  23.           @character_name = @character_name + "rush"
  24.           Audio.se_play("Audio/SE/"+"013-Move01",80,100)
  25.           $game_temp.common_event_id = 51
  26.         end
  27.       else
  28.         if @move_speed != $game_party.actors[0].agi/200.0 + 2.5
  29.           @move_speed = $game_party.actors[0].agi/200.0 + 2.5
  30.           @character_name = @character_name_run
  31.         end
  32.       end  
  33.     end
  34.     old_update
  35.     if @move_route_forcing
  36.       if not @move_route.skippable and not moving? and not jumping?
  37.         @move_route_index = @move_route.list.size - 1
  38.         return
  39.       end
  40.     end
  41.   end
  42. end
复制代码
另外再改一个地方

Scene_Title

在131行处  也就是  
    # 设置初期同伴位置
    $game_party.setup_starting_members
之后插入这一句就可以了
  1. $game_player.move_speed = $game_party.actors[0].agi/200.0 + 2.5
复制代码
这句就是你的速度的计算公式

另外,还有个大问题,你摁住shift试一试,我估计你不是想要一直前冲的脚本把。。。前冲还能转向。。。
幻耶 发表于 2009-10-28 09:31:03
就是这个工程,缺省脚本都没动,只加了一个前冲脚本,一进游戏就出错,如果改成4楼那样行走图就换不了了

Project8测试加速前冲.rar

188.82 KB, 下载次数: 48

幻耶 发表于 2009-10-28 09:12:31
把@character_name改成nil?好像没有吧,

我开了一个全新的工程测试,在Game_Player的update下添加:@move_speed = $game_party.actors[0].agi/200 + 2.5 ,然后再插进第一楼的脚本,运行进游戏还是会出错
secondsen 发表于 2009-10-27 23:41:27
本帖最后由 secondsen 于 2009-10-27 23:43 编辑

你要把这两个关联起来,就不用改game_player直接在你的这个脚本上改就可以。。。。

  1. class Game_Player
  2.   #--------------------------------------------------------------------------
  3.   # ● フレーム更新
  4.   #--------------------------------------------------------------------------
  5.   alias old_update update
  6.   def update
  7.     unless $game_system.map_interpreter.running? or
  8.       @move_route_forcing or $game_temp.message_window_showing
  9.       if Input.press?(Input::SHIFT)
  10.         if @move_speed != 6
  11.           @move_speed = 6
  12.           move_route = RPG::MoveRoute.new
  13.           move_route.repeat = false
  14.           move_route.list.clear
  15.           move_command = RPG::MoveCommand.new
  16.           move_command.code = @direction / 2
  17.           5.times{move_route.list.push(move_command.clone)}
  18.           move_command.code = 0
  19.           move_route.list.push(move_command)
  20.           force_move_route(move_route)
  21.           #@character_name_run = @character_name
  22.           #@character_name = @character_name + "rush"
  23.           Audio.se_play("Audio/SE/"+"013-Move01",80,100)
  24.           #$game_temp.common_event_id = 51
  25.         end
  26.       else
  27.         if @move_speed != $game_party.actors[0].agi/200.0 + 2.5
  28.           @move_speed = $game_party.actors[0].agi/200.0 + 2.5
  29.           #@character_name = @character_name_run
  30.         end
  31.       end  
  32.     end
  33.     old_update
  34.     if @move_route_forcing
  35.       if not @move_route.skippable and not moving? and not jumping?
  36.         @move_route_index = @move_route.list.size - 1
  37.         return
  38.       end
  39.     end
  40.   end
  41. end
复制代码
自己看看有什么不同把。。。那样改的话反而会影响这个脚本。。。。另外,我没有碰到你说的问题啊。。。。

另外,我个人估计,你有可能是哪里把@character_name改成nil了。。。具体你这个脚本怎么弄得,我就不得而知了
幻耶 发表于 2009-10-27 20:29:09
本帖最后由 幻耶 于 2009-10-27 20:50 编辑

这个怎么检查啊。。。脚本盲:'(
而且跑动图变化和@move_speed 有什么关系?
secondsen 发表于 2009-10-27 20:19:05
在精灵类里报错的。。。nil加到字符串了。。。检查下你变为跑动图的那个字符串吧
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-12-29 09:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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