查看: 2504|回复: 7

[已经过期] 如何使用RM自带的列队行进功能触发公共事件

[复制链接]
梦石
0
星屑
210
在线时间
24 小时
注册时间
2019-6-22
回帖
4
发表于 2019-6-24 17:09:56 | 显示全部楼层 |阅读模式

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

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

×
刚刚看了这个可以单独移动列队行进队友的脚本 https://rpg.blue/thread-217652-1-1.html
那有没有办法对着队友按按空格触发公共事件的脚本呢?
我的设想是只有一个队友,要是能兼容上面那个脚本就更好了
梦石
0
星屑
6375
在线时间
1473 小时
注册时间
2015-7-25
回帖
609

极短25参与开拓者

发表于 2019-6-27 21:24:34 | 显示全部楼层
考虑到默认系统中玩家操控的角色按下方向键会直接移动,因此添加了领队原地选择方向的功能,默认键位下按住键盘上的A键,再按方向键可原地调整方向(做到随时面向队友)
如果玩家面向队友,默认键位下按回车或者空格键可触发 1号变量的值 的公共事件
比如:1号变量值为1,那么面向队友按下空格键,会触发1号公共事件的内容
此脚本针对的是楼主所说的只有1个队友的情况下写的,如果队友不止一个的话我是不管的
[pre lang="ruby"]class Game_Player
  def do_new_direction
    if Input.press?(:X)
      if Input.trigger?(:UP)
        set_direction(8)
      elsif Input.trigger?(:DOWN)
        set_direction(2)
      elsif Input.trigger?(:LEFT)
        set_direction(4)
      elsif Input.trigger?(:RIGHT)
        set_direction(6)
      end
    end
  end
  alias mfxrbmbi190316 move_by_input
  def move_by_input
    return if Input.press?(:X)
    mfxrbmbi190316
  end
  alias mfxrbupdate190627 update
  def update
    do_new_direction
    mfxrbupdate190627
    update_play_command
  end
  def has_follower?(index,x,y)
    @followers[index].x == x && @followers[index].y == y
  end
  def follower_ahead?
    e_x = $game_player.x + 1
    e_x2 = $game_player.x - 1
    e_y = $game_player.y + 1
    e_y2 = $game_player.y - 1
    a = has_follower?(0,e_x,$game_player.y)
    b = has_follower?(0,e_x2,$game_player.y)
    c = has_follower?(0,$game_player.x,e_y)
    d = has_follower?(0,$game_player.x,e_y2)
    if (a && $game_player.direction == 6) or (b && $game_player.direction == 4) or(c && $game_player.direction == 2) or (d && $game_player.direction == 8)
      return true
    else
      return false
    end
  end
  def update_play_command
    return unless follower_ahead?
    if Input.trigger?(:C) && $game_variables[1].is_a?(Integer)
      $game_temp.reserve_common_event($game_variables[1])
    end
  end
end[/pre]

点评

所以只需要用1个变量就可以解决了,没有必要100+index  发表于 2019-6-27 22:50
脚本中采用了变量1,那么这个1是可以随便改的。这里的变量1的值仅仅决定了执行几号公共事件,跟面向哪个队友无关,因为队友只有1个  发表于 2019-6-27 22:48
这里是只考虑1个队友的情况,所以不必取角色ID。因为考虑到随着游戏剧情的改变每次触发的公共事件是不同的,所以利用了变量来解决问题  发表于 2019-6-27 22:46
不对..INDEX都是啊..还是算了..  发表于 2019-6-27 22:19
$game_temp.reserve_common_event($game_variables[100+index]) 这样可以么..萌新不懂脚本..还是说该取角色ID?  发表于 2019-6-27 22:18
笨肉包的游戏讨论群932812135 (实时更新) 喜欢的话欢迎加入~
目前的坑
??? #像素风OC游戏 准备中 短篇-约5小时
花城梦之心 #像素风OC游戏 系统开发+素材绘制中
【不可思议的迷宫】幽灵契约外传:歌莉娅 v0.4 游戏文件已更新
同时更新中~ (沉迷摸鱼中~更新速度较慢请见谅w)
这是属于笨肉包一个人的旅行~(这只肉包又在摸鱼!
旅途的最终目标~ ???(保密~
回复

使用道具 举报

梦石
0
星屑
210
在线时间
24 小时
注册时间
2019-6-22
回帖
4
 楼主| 发表于 2019-6-28 23:47:00 | 显示全部楼层
魔法丶小肉包 发表于 2019-6-27 21:24
考虑到默认系统中玩家操控的角色按下方向键会直接移动,因此添加了领队原地选择方向的功能,默认键位下按住 ...

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

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部