Project1

标题: 请教脚本里调用公共事件的问题 [打印本页]

作者: 幻耶    时间: 2009-11-23 14:28
标题: 请教脚本里调用公共事件的问题
本帖最后由 幻耶 于 2009-11-23 14:35 编辑

下面的脚本配合全键盘脚本使用,功能是按下D键让角色前冲一段距离的同时调用51号公共事件,在游戏中发现有时候D键按多了之后51号公共事件不调用了,怎么才能保证每次按下D键都会调用51号公共事件??
  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 Kboard.trigger?($R_Key_D)
  11.         $game_temp.common_event_id = 51
  12.         if @move_speed != 6
  13.           @move_speed = 6
  14.           move_route = RPG::MoveRoute.new
  15.           move_route.repeat = false
  16.           move_route.list.clear
  17.           move_command = RPG::MoveCommand.new
  18.           move_command.code = @direction / 2
  19.           5.times{move_route.list.push(move_command.clone)}
  20.           move_command.code = 0
  21.           move_route.list.push(move_command)
  22.           force_move_route(move_route)
  23.           @character_name_run = @character_name
  24.           @character_name = @character_name + "rush"
  25.           Audio.se_play("Audio/SE/"+"013-Move01",80,100)

  26.         end
  27.       else
  28.         if @move_speed != $game_party.actors[0].agi/300.0 + $game_party.actors[0].dex/600.0 + 2.5
  29.           @move_speed = $game_party.actors[0].agi/300.0 + $game_party.actors[0].dex/600.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.   def refresh_start
  43.     @character_name_run = @character_name
  44.   end
  45. end
复制代码

作者: 奶油Da蛋糕    时间: 2009-11-23 15:17
本帖最后由 奶油Da蛋糕 于 2009-11-23 15:41 编辑

...
作者: 幻耶    时间: 2009-11-23 15:25
本帖最后由 幻耶 于 2009-11-23 15:41 编辑

我用的是那个雷欧纳德的全键盘~改,所以 if Kboard.keyb($R_Key_D) == 1 不认!
另外不调用公共事件的情况发生的概率不高,但是一旦发生,就一直不能调用了,除非存盘退出再读取进游戏才恢复

地址:
http://rpg.blue/viewthread.php?t ... 8%E9%94%AE%E7%9B%98
作者: 幻耶    时间: 2009-11-24 08:24
另外我所调用的公共事件里有一个循环判断脚本,这个有没有影响?
  1. for i in 1..20
  2. x  = $game_variables[7]
  3. y  = $game_variables[8]
  4. x1 = $game_map.events[i].x
  5. y1 = $game_map.events[i].y
  6. if (x-x1).abs<=1 and (y-y1).abs<=1
  7.    $game_temp.common_event_id = i + 100
  8.    break
  9. end
  10. end
复制代码

作者: 幻耶    时间: 2009-11-25 09:31

作者: 幻耶    时间: 2009-11-26 15:23

作者: 幻耶    时间: 2009-11-30 16:09
本帖最后由 幻耶 于 2009-11-30 16:10 编辑

顶~

058.gif (1.24 KB, 下载次数: 0)

058.gif

11.gif (1.59 KB, 下载次数: 1)

11.gif





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