Project1

标题: [已解决]战斗换人脚本中,如何使特定角色无法被替换? [打印本页]

作者: 海胆泡面    时间: 2024-5-3 21:17
标题: [已解决]战斗换人脚本中,如何使特定角色无法被替换?
本帖最后由 海胆泡面 于 2024-5-5 14:44 编辑

使用的战斗换人脚本应该是enghao_lim很久以前制作的战斗换人脚本,可以兼容XRXS26. 人物扩张系统 ver..05使用。


人物扩张脚本里面有一部分是规定特定编号的角色无法被交换的:
RUBY 代码复制
  1. class Scene_Menu
  2.   MENU_MEMBER_CHANGE_KEY_GO    = Input::RIGHT # 进入键
  3.   MENU_MEMBER_CHANGE_KEY_END   = Input::LEFT  # 离开键
  4.   MENU_MEMBER_CHANGE_INDEX_MIN = 0            # 可更换角色最小编号
  5.   FORCETOBATTLE_ACTORS         = []           # 不能待机的角色编号
  6.   UMBATTLABLE_ACTORS           = []           # 不能加入战斗的角色编号
  7.   UNMOVABLE_ACTORS             = []           # 不能移动的角色编号
  8. end


但是战斗换人脚本里面没找到对应的内容。

希望达成的效果是首位的队员无论在菜单换人还是战斗换人中都能固定在首位而不会被交换掉、或者在战斗结束之后自动返回首位,请问应该如何达成这一效果?

[line]1[/line]

找到解决方案了。
首先在class Scene_Battle这一行后面加入
UNMOVABLE_ACTORS = [] # 禁止移动的角色的编号
然后在if Input.trigger?(Input::C)和for i in 0...$game_party.actors.size这两行代码之间插入这些代码:
RUBY 代码复制
  1. if UNMOVABLE_ACTORS.include?($game_party.actors[@actor_window.index].id)#禁止移动开始
  2.         $game_system.se_play($data_system.buzzer_se)
  3.         return
  4.       end# 禁止移动结束

就可以了
作者: 黑米馒头    时间: 2024-5-5 10:18
unless $game_party.actors[0].id 排除首位角色




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