Project1

标题: 如何在菜单中隐藏某一位队员? [打印本页]

作者: 银河拱门    时间: 2020-3-18 02:41
标题: 如何在菜单中隐藏某一位队员?
队伍中加入了一位“帮手系”角色。玩家无法在战斗中操作TA(TA由系统自动战斗),也无法更换TA的装备。
不过,玩家可以给TA使用恢复剂等物品,TA也会跟在队伍后面开火车…
有没有办法可以在菜单界面隐藏这位“帮手系”角色呢?

此外在 VA 的装备/技能界面中按 Page up/Page down 可以快捷切换至其他队员。不知道这个也有没有办法阻拦…?
感觉好像很麻烦的亚子,如果只有单单可以在菜单中隐藏队员的方法也帮大忙啦(…)
作者: Nil2018    时间: 2020-3-18 12:47
  1. #==============================================================================
  2. # +++ 三途亚梦 追加不战斗的跟随队友 +++
  3. #==============================================================================
  4. # 提问区应求小脚本 by 三途亚梦
  5. #==============================================================================
  6. # 给根据人物的别名判断这个人物是否会在以及在菜单栏显示、战斗中登场。
  7. # 使用本脚本,如果在地图上有队伍随机乱序的操作话会出现bug。
  8. #==============================================================================
  9. module AMU
  10.   module NPC

  11.     NPC_NAME ="不在菜单中显示"     #"NPC"
  12.     #这里设置别名(角色称号)为引号内文字的人物不会显示
  13.     # ※ 注意保留引号

  14.   end
  15. end
  16. #==============================================================================
  17. # ■ Window_MenuStatus
  18. #------------------------------------------------------------------------------
  19. #  菜单画面中,显示队伍成员状态的窗口
  20. #==============================================================================
  21. class Window_MenuStatus < Window_Selectable
  22.   #--------------------------------------------------------------------------
  23.   # ● 获取项目数
  24.   #--------------------------------------------------------------------------
  25.   def item_max
  26.     a = 0
  27.     $game_party.members.each do |actor|
  28.       a += 1 if actor.nickname != AMU::NPC::NPC_NAME
  29.     end
  30.     return a
  31.   end
  32. end
  33. #==============================================================================
  34. # ■ Game_Party
  35. #------------------------------------------------------------------------------
  36. #  管理队伍的类。保存有金钱及物品的信息。本类的实例请参考 $game_party 。
  37. #==============================================================================

  38. class Game_Party < Game_Unit
  39.   #--------------------------------------------------------------------------
  40.   # ● 获取参战角色
  41.   #--------------------------------------------------------------------------
  42.   def battle_members
  43.     all_members[0, max_battle_members].select {|actor| actor.exist? && actor.nickname != AMU::NPC::NPC_NAME}
  44.   end
  45. end
  46. #==============================================================================
  47. # ■ Game_Follower
  48. #------------------------------------------------------------------------------
  49. #  管理跟随角色的类。处理跟随角色的显示、跟随的行为等。
  50. #   请在 Game_Followers 类中查看具体的应用。
  51. #==============================================================================
  52. class Game_Follower < Game_Character
  53.   #--------------------------------------------------------------------------
  54.   # ● 获取对应的角色
  55.   #--------------------------------------------------------------------------
  56.   def actor
  57.     $game_party.members[@member_index]
  58.   end
  59. end
  60. #==============================================================================
  61. # ■ Game_Interpreter
  62. #------------------------------------------------------------------------------
  63. #  事件指令的解释器。
  64. #   本类在 Game_Map、Game_Troop、Game_Event 类的内部使用。
  65. #==============================================================================
  66. class Game_Interpreter
  67.   #--------------------------------------------------------------------------
  68.   # ● 队伍管理
  69.   #--------------------------------------------------------------------------
  70. class Game_Interpreter
  71.   #--------------------------------------------------------------------------
  72.   # ● 队伍管理
  73.   #--------------------------------------------------------------------------
  74.   alias amu_20150125_command_129 command_129
  75.   def command_129
  76.    amu_20150125_command_129
  77.   party = $game_party.members
  78.    if $game_actors[@params[0]].nickname == AMU::NPC::NPC_NAME || party.any?{|a| a.nickname == AMU::NPC::NPC_NAME}
  79.      npc = nil
  80.      party.each do |actor|
  81.        npc = actor if actor.nickname == AMU::NPC::NPC_NAME
  82.        break if npc != nil
  83.      end
  84.      $game_party.swap_order(npc.index, party[party.size - 1].index)
  85.     end
  86.   end
  87. end
复制代码

作者: 银河拱门    时间: 2020-3-18 13:46
Nil2018 发表于 2020-3-17 20:47

好像末尾缺了个end… 加上去之后运行游戏会跳这个BUG ↓



摸索着尝试把73行的 class Game_Interpreter 删掉了(…)虽然不会报错了,但这样的话NPC不会加入战斗诶…
作者: MCCF    时间: 2020-3-18 13:58
多了个class Game_Interpreter
把第73行删掉试试?
顺便,如果要NPC加入战斗的话,第35-48行有可能需要删除。
作者: 银河拱门    时间: 2020-3-18 17:53
MCCF 发表于 2020-3-17 21:58
多了个class Game_Interpreter
把第73行删掉试试?
顺便,如果要NPC加入战斗的话,第35-48行有可能需要删除 ...

解决了!感谢指点!




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