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

Project1

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

[有事请教] [已解决]战斗换人脚本中,如何使特定角色无法被替换?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
190
在线时间
15 小时
注册时间
2024-1-28
帖子
3
跳转到指定楼层
1
发表于 2024-5-3 21:17:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 海胆泡面 于 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


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

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




找到解决方案了。
首先在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# 禁止移动结束

就可以了

Lv3.寻梦者

梦石
0
星屑
3241
在线时间
1866 小时
注册时间
2010-6-19
帖子
1207
2
发表于 2024-5-5 10:18:54 | 只看该作者
unless $game_party.actors[0].id 排除首位角色
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-19 13:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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