Project1

标题: 如何使用RM自带的列队行进功能触发公共事件 [打印本页]

作者: 明净碎翼    时间: 2019-6-24 17:09
标题: 如何使用RM自带的列队行进功能触发公共事件
刚刚看了这个可以单独移动列队行进队友的脚本 https://rpg.blue/thread-217652-1-1.html
那有没有办法对着队友按按空格触发公共事件的脚本呢?
我的设想是只有一个队友,要是能兼容上面那个脚本就更好了
作者: 魔法丶小肉包    时间: 2019-6-27 21:24
考虑到默认系统中玩家操控的角色按下方向键会直接移动,因此添加了领队原地选择方向的功能,默认键位下按住键盘上的A键,再按方向键可原地调整方向(做到随时面向队友)
如果玩家面向队友,默认键位下按回车或者空格键可触发 1号变量的值 的公共事件
比如:1号变量值为1,那么面向队友按下空格键,会触发1号公共事件的内容
此脚本针对的是楼主所说的只有1个队友的情况下写的,如果队友不止一个的话我是不管的
RUBY 代码复制
  1. class Game_Player
  2.   def do_new_direction
  3.     if Input.press?(:X)
  4.       if Input.trigger?(:UP)
  5.         set_direction(8)
  6.       elsif Input.trigger?(:DOWN)
  7.         set_direction(2)
  8.       elsif Input.trigger?(:LEFT)
  9.         set_direction(4)
  10.       elsif Input.trigger?(:RIGHT)
  11.         set_direction(6)
  12.       end
  13.     end
  14.   end
  15.   alias mfxrbmbi190316 move_by_input
  16.   def move_by_input
  17.     return if Input.press?(:X)
  18.     mfxrbmbi190316
  19.   end
  20.   alias mfxrbupdate190627 update
  21.   def update
  22.     do_new_direction
  23.     mfxrbupdate190627
  24.     update_play_command
  25.   end
  26.   def has_follower?(index,x,y)
  27.     @followers[index].x == x && @followers[index].y == y
  28.   end
  29.   def follower_ahead?
  30.     e_x = $game_player.x + 1
  31.     e_x2 = $game_player.x - 1
  32.     e_y = $game_player.y + 1
  33.     e_y2 = $game_player.y - 1
  34.     a = has_follower?(0,e_x,$game_player.y)
  35.     b = has_follower?(0,e_x2,$game_player.y)
  36.     c = has_follower?(0,$game_player.x,e_y)
  37.     d = has_follower?(0,$game_player.x,e_y2)
  38.     if (a && $game_player.direction == 6) or (b && $game_player.direction == 4) or(c && $game_player.direction == 2) or (d && $game_player.direction == 8)
  39.       return true
  40.     else
  41.       return false
  42.     end
  43.   end
  44.   def update_play_command
  45.     return unless follower_ahead?
  46.     if Input.trigger?(:C) && $game_variables[1].is_a?(Integer)
  47.       $game_temp.reserve_common_event($game_variables[1])
  48.     end
  49.   end
  50. end

作者: 明净碎翼    时间: 2019-6-28 23:47
魔法丶小肉包 发表于 2019-6-27 21:24
考虑到默认系统中玩家操控的角色按下方向键会直接移动,因此添加了领队原地选择方向的功能,默认键位下按住 ...

其实问这个问题之后我又脑补了一下....除非修改跟随的设定(比如等待几帧再跟上)....否则永远没办法脸对着第二个队友,各种卡位之类的问题应该也会有...不过还是非常感谢挽尊!这段脚本也能作为我这个还在跟着教程改菜单的萌新的参考!




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