查看: 2051|回复: 4

[已经解决] [这里是新人]关于NPC加入队伍的问题

[复制链接]
梦石
0
星屑
50
在线时间
7 小时
注册时间
2015-1-25
回帖
8
发表于 2015-1-25 03:26:47 | 显示全部楼层 |阅读模式

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

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

×
嗯,小白一枚,刚接触VA(其实是因为VA自带开火车系统)其实我是想让一个NPC加入队伍,但是角色列表里不显示出来,跟不跟随无所谓,请问要怎么实现呢?゚(つд`゚)
梦石
0
星屑
2816
在线时间
1051 小时
注册时间
2011-8-2
回帖
273
发表于 2015-1-25 08:18:45 | 显示全部楼层
在数据库-角色里添加一个角色名字就是那个NPC的名字就好了
为方便新人,建议大家一同换上此签名(当然我没指最下面的宣传……)
RM各版本下载链接
RMXP:http://pan.baidu.com/s/1qWLZjIW
RMVX:http://pan.baidu.com/s/1sjBhM2L
以上链接由妖精蕾贝卡 提供
--------------------------------------------------------------------------------
RMVA:http://pan.baidu.com/s/1jG1mDUY
以上链接由VIPArcher 提供
——————————————————————————
回复

使用道具 举报

闇吼者の災悪眷族

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
回帖
6408
发表于 2015-1-25 14:30:22 | 显示全部楼层
既然不显示出来也不必跟随,何必让一个角色入队呢……

直接用一个开关或者变量代替不就好了?

还是说你需要这个人物做些什么?
回复

使用道具 举报

梦石
0
星屑
50
在线时间
7 小时
注册时间
2015-1-25
回帖
8
 楼主| 发表于 2015-1-25 15:29:05 | 显示全部楼层
三途亚梦 发表于 2015-1-25 14:30
既然不显示出来也不必跟随,何必让一个角色入队呢……

直接用一个开关或者变量代替不就好了?

嗯..我大概了解了一下,貌似这样是实现不了的,其实我原本是打算让主角带着某个NPC去某个地方这样的,好比说发现了一个走失的NPC,然后我带着他回到家里之类的orz

点评

我得出门买菜,回来后再写个例子给你吧。  发表于 2015-1-25 16:42
Game_Followers 之类的地方  发表于 2015-1-25 16:06
如果只是让其跟随而不是参加战斗,就像我那个例子里说的那样,具体应该更改那些地方呢  发表于 2015-1-25 15:56
嗯,要改的地方其实不多,但是根据你的实际需要会不同。比如战斗中是否登场之类的。  发表于 2015-1-25 15:52
也就是说需要更改一下脚本的一些设置咯?  发表于 2015-1-25 15:49
回复

使用道具 举报

闇吼者の災悪眷族

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
回帖
6408
发表于 2015-1-25 20:51:47 | 显示全部楼层
这里写了一个小脚本,可以做到你需要的效果。
把人物的称号命名成“NPC”就不会在菜单中显示,也不会在战斗中登场了。
如果发现问题请回复。

※ 如果你在游戏中有一些非手动的队伍整队操作,可能会对这个脚本的效果产生影响。

点击展开/收起[pre lang="ruby" line="1"]#==============================================================================
# +++ 追加不战斗的跟随队友 +++
#==============================================================================
# 提问区应求小脚本 by 三途亚梦
#==============================================================================
# 给根据人物的别名判断这个人物是否会在以及在菜单栏显示战斗中登场。
#
#==============================================================================
module AMU
  module NPC
   
    NPC_NAME = "NPC"
    #这里设置别名为引号内文字的人物不会显示
    # ※ 注意保留引号
   
  end
end
#==============================================================================
# ■ Window_MenuStatus
#------------------------------------------------------------------------------
#  菜单画面中,显示队伍成员状态的窗口
#==============================================================================

class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 获取项目数
  #--------------------------------------------------------------------------
  def item_max
    a = 0
    $game_party.members.each do |actor|
      a += 1 if actor.nickname != AMU::NPC::NPC_NAME
    end
    return a
  end
end
#==============================================================================
# ■ Game_Party
#------------------------------------------------------------------------------
#  管理队伍的类。保存有金钱及物品的信息。本类的实例请参考 $game_party 。
#==============================================================================

class Game_Party < Game_Unit
  #--------------------------------------------------------------------------
  # ● 获取参战角色
  #--------------------------------------------------------------------------
  def battle_members
    all_members[0, max_battle_members].select {|actor| actor.exist? && actor.nickname != AMU::NPC::NPC_NAME}
  end
end
#==============================================================================
# ■ Game_Follower
#------------------------------------------------------------------------------
#  管理跟随角色的类。处理跟随角色的显示、跟随的行为等。
#   请在 Game_Followers 类中查看具体的应用。
#==============================================================================

class Game_Follower < Game_Character
  #--------------------------------------------------------------------------
  # ● 获取对应的角色
  #--------------------------------------------------------------------------
  def actor
    $game_party.members[@member_index]
  end
end
#==============================================================================
# ■ Game_Interpreter
#------------------------------------------------------------------------------
#  事件指令的解释器。
#   本类在 Game_Map、Game_Troop、Game_Event 类的内部使用。
#==============================================================================
class Game_Interpreter
  #--------------------------------------------------------------------------
  # ● 队伍管理
  #--------------------------------------------------------------------------
  alias amu_20150125_command_129 command_129
  def command_129
   amu_20150125_command_129
   party = $game_party.members
   npc = nil
   party.each do |actor|
     npc = actor if actor.nickname == AMU::NPC::NPC_NAME
     break if npc != nil
   end
   $game_party.swap_order(npc.index, party[party.size - 1].index)
   end
end
[/pre]

点评

好棒,我要的就是这种效果,目前还没发现什么问题哦,虽然还在研究中就是了,总之真的是太感谢啦('ω')♪  发表于 2015-1-25 22:39

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部