请阅读更新说明
在游戏中添加可自定义的、人类的、非玩家角色。让你的城市更热闹一点!
创建一个新的NPC,并对其进行编辑。
它会在你所站的地方被创造出来,并且看起来和你一样。使用/npc_add XXXX (来自/npc_list的npc ID) 会将NPC克隆到您的位置
NPC_EDIT
编辑NPC (不需要,如果你只是做/npc_add),那么你可以使用命令: /npc
NPC_END
停止编辑NPC
NPC
通过单独输入命令,您将看到当前设置的值。选项值:
您将需要使用航路点插件。创建一组带有名称的航点,并在编辑npc时使用/NPC航点名称。
NPC套件:
您将需要套件插件。创建一个新的工具包插件,就像你通常做的,然后:
/kit添加名称 “随机描述”-authlevel2 (设置了级别,因此没有玩家可以使用该套件,只有管理员和npc)
然后在编辑NPC时执行: /npc套件名称 (与套件ofc同名)
NPC攻击移动和寻路:
寻路仍然不完美,但它正在到达那里。目前,主要的问题并不是真正来自寻路,而是来自HumanNPC插件,因为我写的方式,所以我需要重写插件的一部分,以做出更好的动作和玩家攻击。
您将需要下载Rust的寻路,以使NPC攻击动作正常工作。如果NPC在5秒内找不到任何路径,它将停止以实体为目标,并以完整的健康状态返回其生成点。
注:所有NPC都有唯一的用户id (BasePlayer.us erID),因此您可以通过用户id轻松保存NPC的信息。
OnHitNPC(BasePlayer npc, HitInfo info)
当NCP被击中时调用
OnUseNPC(BasePlayer npc, BasePlayer player)
当NCP被使用时调用 (瞄准NPC时按下使用)
OnEnterNPC(BasePlayer npc, BasePlayer player)
当玩家进入NPC的范围时调用
OnLeaveNPC(BasePlayer npc, BasePlayer player)
当玩家超出NPC的范围时调用
OnKillNPC(BasePlayer npc, hitinfo)
当NPC被杀时调用
OnNPCPosition(BasePlayer npc, Vector3 pos)
当NPC到达一个航路点并更改为下一个航路点时调用
OnNPCRespawn(BasePlayer npc)
当NPC重生时调用
OnLootNPC(PlayerLoot loot, BaseEntity target, string npcId)
当NPC被抢劫时调用
CreateNPCHook(Vector3 position, Quaternion currentRot, string name = "NPC", ulong clone = 0, bool saved = true)
创建npc并返回BasePlayer
{
"Weapon To FX": {
"pistol_eoka": "fx/weapons/vm_eoka_pistol/attack",
"pistol_revolver": "fx/weapons/vm_revolver/attack",
"rifle_ak": "fx/weapons/vm_ak47u/attack",
"rifle_bolt": "fx/weapons/vm_bolt_rifle/attack",
"shotgun_pump": "fx/weapons/vm_waterpipe_shotgun/attack",
"shotgun_waterpipe": "fx/weapons/vm_waterpipe_shotgun/attack",
"smg_thompson": "fx/weapons/vm_thompson/attack"
}
}
在游戏中添加可自定义的、人类的、非玩家角色。让你的城市更热闹一点!
这些NPC不再用于战斗或射击,而是被其他插件使用。
特点- 完全可配置
- 可以说嗨,当你接近他们
- 可以说再见,当你离开他们
- 当你尝试与他们互动时可以说些什么 (使用)
- 可以说哎哟,当你打他们
- 当你杀他们的时候可以说你是个杀人犯
- 支持多个消息 (随机选择一个)
- 设置他们的名字
- 设置他们的工具包 (需要工具包插件)
- 设置航路点,以便他们可以在地图上四处走动
- 设置,如果他们是无懈可击
- 设置他们的重生时间,如果他们死了
- Npc可以保护自己
- 设置NPC追逐速度
- 设置NPC伤害
- 设置NPC最大追逐距离
- 设置NPC最大视图距离
- 设置NPC敌意
- 命中时设置NPC逃避
- 让NPC找到并坐在它找到的椅子上
- 在追逐或使用航路点时,NPC将尝试自动检测最佳地面位置 (规避期间除外,工作待定)
命令
此插件使用相同的语法提供聊天和控制台命令。在聊天中使用命令时,请在其前面加上正斜杠: “/”。- /npc_add => 创建一个新的NPC并编辑它
- /npc_edit [id] => 编辑您正在查看的NPC或指定的ID
- /npc_remove [id] => 删除您正在查看的NPC或指定的ID
- /npc_sound => 为您的npc录制声音
- /npc_end => 停止编辑NPC
- /npc选项值 => 设置NPC的选项值
- /npc_reset =>移除所有npc
- /npc_pathtest => 跟随NPC路径
- /npc_list => 列出所有npc
- /npc_way [id] => 绘制您正在查看的NPC的路径或指定的ID
创建一个新的NPC,并对其进行编辑。
它会在你所站的地方被创造出来,并且看起来和你一样。使用/npc_add XXXX (来自/npc_list的npc ID) 会将NPC克隆到您的位置
NPC_EDIT
编辑NPC (不需要,如果你只是做/npc_add),那么你可以使用命令: /npc
NPC_END
停止编辑NPC
NPC
通过单独输入命令,您将看到当前设置的值。选项值:
- 攻击距离XX =>NPC与目标之间的距离需要NPC忽略目标并返回到产卵
- 再见重置/"TEXT" "TEXT2" 等 =>不要忘记 \ ",当玩家离开NPC时会说什么
- 损坏量XXX =>NPC击中玩家时造成的伤害
- 损坏距离XXX =>NPC击中玩家的最小距离 (默认为3,狙击手可能需要20-30?)
- 损坏间隔XXX => NPC在再次攻击之前必须等待的时间间隔 (以秒为单位)
- 启用true/false => 启用 (默认) 或禁用NPC而不删除它 (请注意,当您编辑机器人时,它将保持活动状态,直到您说/npc_end)
- 半径XXX =>NPC将检测玩家的半径
- 健康XXX =>_ 设置NPC的健康 (受rust限制为最大100)_
- hello reset/"TEXT" "TEXT2" 等 =>不要忘记 \ ",当玩家接近NPC时会说什么
- 伤害重置/"TEXT" "TEXT2" 等 =>不要忘记 \ ",设置一个消息告诉玩家,当他伤害了NPC
- 敌对真/假_=> 设置NPC敌对,将攻击玩家的视线 (半径为视线限制)_
- 无敌真/假 =>设置NPC是否无懈可击
- kill reset/"TEXT" "TEXT2" 等 =>不要忘记 \ ",设置一个消息告诉玩家,当他杀死NPC
- 套件重置/"KitName" =>要设置此NPC的工具包,需要套件插件(见下文)
- lootable true/false_ => 设置NPC是否可lootable或not_
- 最大距离XXX =>与NPC可以运行的生成点的最大距离 (攻击玩家时)
- name "THE NAME" =>为NPC设置名称
- respawn true/false XX =>_ 要将其设置为XX秒后死亡时respawn,默认为instant respawn_
- spawn new =>_ 设置新的生成位置_
- 速度XXX =>设置NPC运行速度 (在追逐玩家时)
- stopandtalk true/false XXX_ => 设置当玩家与NPC交谈时,NPC是否应该停止,如果为true则需要多少时间。
- 使用reset/"TEXT" "TEXT2" 等 => 不要忘记 \ ",这将是说当玩家按下使用npc_
- playTune真/假允许npc播放曲调
- 航路点重置/"航路点列表名称" =>设置NPC的航路点
- hitchance float_ => 击中目标的机会_
- fireduration float=> 开火时间
- 重新挂载浮子=> 重新加载时间
- 防御真/假_=> 攻击如果被攻击_
- 逃避真/假_=> 移动,如果被攻击时被击中_
- evdist float_ => 命中时要移动多远 (内置一些随机)_
- Allowsit_ => 找到附近的椅子,坐在产卵_
- follow_ => 跟随攻击者,因为他们超出了范围 (默认为true,与旧版本一样)
- 坐_=> 让NPC坐 (切换allowsit)_
- 站立_=> 使NPC站立 (切换allowsit)_
- needsAmmo真/假_=> 需要库存中有弹药才能射击_
- 声音 => 录制的声音名称
- soundonenter => 回车时播放声音 (true/false)
- soundonuse => 在使用时播放声音 (真/假)
您将需要使用航路点插件。创建一组带有名称的航点,并在编辑npc时使用/NPC航点名称。
NPC套件:
您将需要套件插件。创建一个新的工具包插件,就像你通常做的,然后:
/kit添加名称 “随机描述”-authlevel2 (设置了级别,因此没有玩家可以使用该套件,只有管理员和npc)
然后在编辑NPC时执行: /npc套件名称 (与套件ofc同名)
NPC攻击移动和寻路:
寻路仍然不完美,但它正在到达那里。目前,主要的问题并不是真正来自寻路,而是来自HumanNPC插件,因为我写的方式,所以我需要重写插件的一部分,以做出更好的动作和玩家攻击。
您将需要下载Rust的寻路,以使NPC攻击动作正常工作。如果NPC在5秒内找不到任何路径,它将停止以实体为目标,并以完整的健康状态返回其生成点。
对于开发人员
钩子被实现以允许其他插件与此交互。它们都没有返回值 (如果需要,可以编辑)。如果有意义,可以添加新的钩子。注:所有NPC都有唯一的用户id (BasePlayer.us erID),因此您可以通过用户id轻松保存NPC的信息。
OnHitNPC(BasePlayer npc, HitInfo info)
当NCP被击中时调用
OnUseNPC(BasePlayer npc, BasePlayer player)
当NCP被使用时调用 (瞄准NPC时按下使用)
OnEnterNPC(BasePlayer npc, BasePlayer player)
当玩家进入NPC的范围时调用
OnLeaveNPC(BasePlayer npc, BasePlayer player)
当玩家超出NPC的范围时调用
OnKillNPC(BasePlayer npc, hitinfo)
当NPC被杀时调用
OnNPCPosition(BasePlayer npc, Vector3 pos)
当NPC到达一个航路点并更改为下一个航路点时调用
OnNPCRespawn(BasePlayer npc)
当NPC重生时调用
OnLootNPC(PlayerLoot loot, BaseEntity target, string npcId)
当NPC被抢劫时调用
CreateNPCHook(Vector3 position, Quaternion currentRot, string name = "NPC", ulong clone = 0, bool saved = true)
创建npc并返回BasePlayer
用法
- 通过与玩家交谈和互动的npc使您的服务器更加生动
- 创建史诗般的小怪物,每X时间产卵,一旦被杀死,就会得到战利品 (使用Rust Kits插件)
- 创建其他插件,可以给玩家任务 (Hunt RPG正在路上)
- 创建使用NPC管理银行,任务,交易,商店的其他插件
- 只限于你的想象力-可能性是无限的!
配置
设置和选项可以在HumanNPC文件下的config目录。建议使用编辑器和验证程序,以避免格式问题和语法错误。{
"Weapon To FX": {
"pistol_eoka": "fx/weapons/vm_eoka_pistol/attack",
"pistol_revolver": "fx/weapons/vm_revolver/attack",
"rifle_ak": "fx/weapons/vm_ak47u/attack",
"rifle_bolt": "fx/weapons/vm_bolt_rifle/attack",
"shotgun_pump": "fx/weapons/vm_waterpipe_shotgun/attack",
"shotgun_waterpipe": "fx/weapons/vm_waterpipe_shotgun/attack",
"smg_thompson": "fx/weapons/vm_thompson/attack"
}
}
资源
HumanNPC教程TODO
- 区域呼叫寻求帮助
- 朋友列表不atack
- 修复规避
- 跟随/攻击超时
未实施
- 添加项目符号动画 => 不知道我可以:/可能控制客户端
- 不同的半径聊天和敌对 (不打算实现,太多的检查)
- 把它变成BotSpawn等人。
学分
- Nogrod,这个插件的原作者
- rfc1920,用于帮助维护插件