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

Project1

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

[已经解决] 修改后的按键加速脚本问题!请教冲突到底在哪里?

 关闭 [复制链接]

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
跳转到指定楼层
1
发表于 2009-10-27 19:30:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 幻耶 于 2009-10-27 19:32 编辑

以下脚本是实现按SHIFT键让角色前冲一段距离,而我又在Game_Player的update下添加了这一句:@move_speed = $game_party.actors[0].agi/200 + 2.5 用来把角色行走速度与角色的AGI关联起来,但是一运行进游戏就如下图出错,去掉前冲脚本就正常,请教如何让它们并存呢???


前冲脚本
  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 != 4
  28.           @move_speed = 4
  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
复制代码

11.JPG (8.39 KB, 下载次数: 3)

11.JPG
囡囚囨囚囨図囨囧

Lv1.梦旅人

梦石
0
星屑
60
在线时间
61 小时
注册时间
2006-9-15
帖子
946
2
发表于 2009-10-27 20:19:05 | 只看该作者
在精灵类里报错的。。。nil加到字符串了。。。检查下你变为跑动图的那个字符串吧
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
3
 楼主| 发表于 2009-10-27 20:29:09 | 只看该作者
本帖最后由 幻耶 于 2009-10-27 20:50 编辑

这个怎么检查啊。。。脚本盲:'(
而且跑动图变化和@move_speed 有什么关系?
囡囚囨囚囨図囨囧
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
61 小时
注册时间
2006-9-15
帖子
946
4
发表于 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了。。。具体你这个脚本怎么弄得,我就不得而知了
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
5
 楼主| 发表于 2009-10-28 09:12:31 | 只看该作者
把@character_name改成nil?好像没有吧,

我开了一个全新的工程测试,在Game_Player的update下添加:@move_speed = $game_party.actors[0].agi/200 + 2.5 ,然后再插进第一楼的脚本,运行进游戏还是会出错
囡囚囨囚囨図囨囧
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
6
 楼主| 发表于 2009-10-28 09:31:03 | 只看该作者
就是这个工程,缺省脚本都没动,只加了一个前冲脚本,一进游戏就出错,如果改成4楼那样行走图就换不了了

Project8测试加速前冲.rar

188.82 KB, 下载次数: 48

囡囚囨囚囨図囨囧
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
61 小时
注册时间
2006-9-15
帖子
946
7
发表于 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试一试,我估计你不是想要一直前冲的脚本把。。。前冲还能转向。。。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
8
 楼主| 发表于 2009-10-28 12:59:55 | 只看该作者
本帖最后由 幻耶 于 2009-10-28 13:25 编辑

非常感谢!!!麻烦了

001-Fighter01rush.png (25.89 KB, 下载次数: 3)

001-Fighter01rush.png
囡囚囨囚囨図囨囧
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-30 03:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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