- 需要插件(必装)
-
![1691945727252 1691945727252](https://rustsb.com/data/attachments/1/1054-8144ae5d54a7468bd123efef44261d7f.jpg)
插件简介
奇遇事件,这次的设计并不像传统任务插件那样可以让玩家随时随地,或随机就能领取到。插件有一个范围定时器,在间隔时间内随机发出,全服玩家都可以看到右上角的图标图示。
图标会在指定时间持续显示,当然玩家也可以点击图标收起成一个小标志,而不会持续遮挡屏幕。
而只有第一个玩家完成了任务,才会得到奖励,届时奇遇事件也会宣布结束,也就是先到者得。
奇遇事件
数字 | 事件类型 | 介绍 |
---|---|---|
0 | 击杀 | 击杀由插件创建/地图上自带的NPC。 |
1 | 收集 | 在指定地图网格收集到指定的物品。 |
2 | 使用 | 在指定地图网格使用指定的物品。 |
3 | 到访 | 前往指定的地图网格。 |
4 | 建造 | 在指定地图网格建造指定的物品。 |
击杀:在配置文件中,自带了一个生成功能,如果开启了生成,则随机到击杀任务时,插件会在指定位置自动生成一个Npc或动物,取决于你写的类型。玩家需要到指定位置击杀它才算完成(属于困难难度)。而如果不依靠插件生成,也就不需要限制
位置,那玩家只需要在指定的时间击杀你指定名字或类型的npc即可完成(属于简单难度)
收集:这里建议写入可拾取类物品,如地上的矿石,木头,南瓜之类的短名称,当然你也可以直接写入采集后的矿石,木头短名,这样玩家需要在奇遇提示的坐标处挖到木头或矿石才算完成
使用:这里只的是物品中有额外按钮【打开】【食用】【使用】类的物品,玩家需要根据奇遇指引的坐标达到指定位置,然后使用你指定的物品即可完成。
到访:最简单的一类任务,只需要玩家到达指定网格坐标即可。
建造:需要玩家前往指定地图坐标建造/放置指定的物品,在
物品任务目标->物品短名称
中填写实体的短名称,如果你要指定某个皮肤的物品则填入物品皮肤ID
选项,否则请保持为0(无/任何皮肤即可)。这五种奇遇任务,都是先到先得,只计算第一个优先完成的玩家哦。
奇遇权限
如果配置了权限,那么则代表需要该权限才能收到奇遇事件的通知。我的建议是,你可以配合其他【执行指令】类的插件事件,来给玩家某奇遇的权限,尤其是一些奖励丰厚的奇遇。
设计理念
这款插件也算是很有剧情代入感的任务玩法,当然这取决于你对任务如何描述。以下是一些参考
近日在<b><color=#8AF1FDFF>%坐标%</color></b>坐标处有狼王出没,击杀可获得大量强化石! |
在<b><color=#8AF1FDFF>%坐标%</color></b>坐标处天色异变!时空猎人可能穿梭于此! |
昨日神仙托梦,一分钟内击杀一只野猪可获机缘福佑! |
<b><color=#8AF1FDFF>%坐标%</color></b>处一声炸响,千年柳树修成正果!若有幸砍到些木材甚好! |
在<b><color=#8AF1FDFF>%坐标%</color></b>坐标处受日月精华影响,传闻在此地喝下【花茶】可感悟颇深! |
需要注意的是,除非由插件生成击杀目标": 你写入false,其他所有类型的任务你都需要在介绍配置中使用
%坐标%
占位符,以便显示正确的网格坐标位置。因为每次插件都会随机位置。控制台指令
- DWDE START - 立即开启奇遇事件。
- DWDE STOP - 关闭当前进行中的奇遇事件。
配置文件
基础设置
最小间隔时间
- 奇遇事件的最小间隔时间。最大间隔时间
- 奇遇事件的最大间隔时间。提示消息缩小时间
- 提示消息UI的缩小倒计时。结束消息消失时间
- 结束消息UI的消失倒计时。结束到访事件检查间隔消失时间
- 每隔多少秒检查一次是否有玩家到达了指定区域(不建议太频繁)。
事件列表
任务类型
- 详见上方表格。任务权限(需要该权限进行,空=无)
- 如果不为空,那么则代表需要该权限才能收到奇遇事件的通知。任务持续时间(秒)
- 该任务的持续时间,设置为0则代表禁用该事件。击杀任务目标(仅限任务类型=0)
- 仅限任务类型为击杀任务目标名称
- 任务目标名称- 如果将
由插件生成击杀目标
设置为true
,则代表着生成NPC的名字。 - 如果
由插件生成击杀目标
为false
,则代表着击杀的目标名/预制短名。
- 如果将
由插件生成击杀目标
- 由插件自行生成NPC。任务目标预制(仅限插件生成)
- 插件生成的NPC预制件路径,可以是人形NPC,也可以是动物。任务目标血量(仅限插件生成)
- 插件生成的NPC血量。
物品任务目标(仅限任务类型=1、2)
- 仅限任务为收集、使用物品短名称
- 如果任务类型为1(收集):为需要收集的物品短名称。
- 如果任务类型为2(使用):为需要使用的物品短名称。
物品皮肤ID
- 如果任务类型为1(收集):为需要收集的物品皮肤ID。
- 如果任务类型为2(使用):为需要使用的物品皮肤ID。
开始通知
- 事件开始时的通知消息,支持变量:%坐标%
。结束通知
- 事件无人完成时的结束通知消息。完成通知
- 事件被完成时的通知消息,支持变量:%玩家名称%
、%坐标%
完成任务奖励
- 完成任务时的奖励随机执行一条(false = 全部执行)
- 如果设置为
true
则随机执行一条指令。 - 如果设置为
false
则执行全部的指令。
- 如果设置为
执行指令列表
- 要执行的指令列表。
默认配置文件
JSON:
{
"基础设置": {
"最小间隔时间": 600.0,
"最大间隔时间": 3600.0,
"提示消息缩小时间": 15.0,
"结束消息消失时间": 10.0,
"到访事件检查间隔": 30.0
},
"事件列表": [
{
"任务类型": 0,
"任务权限(需要该权限进行,空=无)": "",
"任务持续时间(秒)": 300.0,
"击杀任务目标(仅限任务类型=0)": {
"任务目标名称": "狼王",
"由插件生成击杀目标": true,
"任务目标预制(仅限插件生成)": "assets/rust.ai/agents/wolf/wolf.prefab",
"任务目标血量(仅限插件生成)": 1000.0
},
"物品任务目标(仅限任务类型=1、2)": {
"物品短名称": "supertea",
"物品皮肤ID": 0
},
"开始通知": "听闻在<b>%坐标%</b>坐标处有狼王出没,击杀后有机遇获得奖励!",
"结束通知": "狼王已离开,奇遇事件已结束。",
"完成通知": "恭喜%玩家名称%在<b>%坐标%</b>偶遇狼王并将其击杀,获得了奖励!",
"完成任务奖励": {
"随机执行一条(false = 全部执行)": true,
"执行指令列表": [
"o.grant user %STEAMID% vip"
]
}
},
{
"任务类型": 0,
"任务权限(需要该权限进行,空=无)": "",
"任务持续时间(秒)": 300.0,
"击杀任务目标(仅限任务类型=0)": {
"任务目标名称": "狂暴科学家",
"由插件生成击杀目标": true,
"任务目标预制(仅限插件生成)": "assets/rust.ai/agents/npcplayer/humannpc/scientist/scientistnpc_heavy.prefab",
"任务目标血量(仅限插件生成)": 8888.0
},
"物品任务目标(仅限任务类型=1、2)": {
"物品短名称": "",
"物品皮肤ID": 0
},
"开始通知": "听闻在<b>%坐标%</b>坐标处有狂暴科学家出没,击杀后有机遇获得奖励!",
"结束通知": "狂暴科学家已离开,奇遇事件已结束。",
"完成通知": "恭喜%玩家名称%在<b>%坐标%</b>偶遇狂暴科学家并将其击杀,获得了奖励!",
"完成任务奖励": {
"随机执行一条(false = 全部执行)": true,
"执行指令列表": [
"o.grant user %STEAMID% vip"
]
}
},
{
"任务类型": 0,
"任务权限(需要该权限进行,空=无)": "",
"任务持续时间(秒)": 300.0,
"击杀任务目标(仅限任务类型=0)": {
"任务目标名称": "boar",
"由插件生成击杀目标": false,
"任务目标预制(仅限插件生成)": "",
"任务目标血量(仅限插件生成)": 0.0
},
"物品任务目标(仅限任务类型=1、2)": {
"物品短名称": "",
"物品皮肤ID": 0
},
"开始通知": "听闻第一个击杀野猪后有机遇获得奖励!",
"结束通知": "奇遇事件已结束。",
"完成通知": "恭喜%玩家名称%击杀了野猪,获得了奖励!",
"完成任务奖励": {
"随机执行一条(false = 全部执行)": true,
"执行指令列表": [
"o.grant user %STEAMID% vip"
]
}
},
{
"任务类型": 1,
"任务权限(需要该权限进行,空=无)": "",
"任务持续时间(秒)": 300.0,
"击杀任务目标(仅限任务类型=0)": {
"任务目标名称": "",
"由插件生成击杀目标": false,
"任务目标预制(仅限插件生成)": "",
"任务目标血量(仅限插件生成)": 0.0
},
"物品任务目标(仅限任务类型=1、2)": {
"物品短名称": "wood",
"物品皮肤ID": 0
},
"开始通知": "听闻在<b>%坐标%</b>收集木头,有机遇获得奖励!",
"结束通知": "奇遇事件已结束。",
"完成通知": "恭喜%玩家名称%在<b>%坐标%</b>收集到了木头,获得了奖励!",
"完成任务奖励": {
"随机执行一条(false = 全部执行)": true,
"执行指令列表": [
"o.grant user %STEAMID% vip"
]
}
},
{
"任务类型": 2,
"任务权限(需要该权限进行,空=无)": "",
"任务持续时间(秒)": 300.0,
"击杀任务目标(仅限任务类型=0)": {
"任务目标名称": "",
"由插件生成击杀目标": false,
"任务目标预制(仅限插件生成)": "",
"任务目标血量(仅限插件生成)": 0.0
},
"物品任务目标(仅限任务类型=1、2)": {
"物品短名称": "wood",
"物品皮肤ID": 0
},
"开始通知": "听闻在<b>%坐标%</b>喝下 纯正木茶,有机遇获得大量木头奖励!",
"结束通知": "奇遇事件已结束。",
"完成通知": "恭喜%玩家名称%在<b>%坐标%</b>喝下了纯正木茶,获得了奖励!",
"完成任务奖励": {
"随机执行一条(false = 全部执行)": true,
"执行指令列表": [
"o.grant user %STEAMID% vip"
]
}
},
{
"任务类型": 3,
"任务权限(需要该权限进行,空=无)": "",
"任务持续时间(秒)": 120.0,
"击杀任务目标(仅限任务类型=0)": {
"任务目标名称": "",
"由插件生成击杀目标": false,
"任务目标预制(仅限插件生成)": "",
"任务目标血量(仅限插件生成)": 0.0
},
"物品任务目标(仅限任务类型=1、2)": {
"物品短名称": "",
"物品皮肤ID": 0
},
"开始通知": "听闻在<b>%坐标%</b>的玩家,有几率获得奖励!",
"结束通知": "奇遇事件已结束。",
"完成通知": "恭喜%玩家名称%在<b>%坐标%</b>获得了奇遇奖励!",
"完成任务奖励": {
"随机执行一条(false = 全部执行)": true,
"执行指令列表": [
"o.grant user %STEAMID% vip"
]
}
}
]
}
UI
在事件开始时/结束/被完成,会在屏幕右上角弹出UI提示。![1691404009611 1691404009611](https://rustsb.com/data/attachments/0/992-a9c76e343bf843227f2a8dad88667e3e.jpg)
过段时间后会自动缩小成图标。
![1691404081922 1691404081922](https://rustsb.com/data/attachments/0/993-0343e715be3b345b2d0fa5dbd80769cc.jpg)
点击图标可以再次查看全部提示。
根据不同类型的奇遇,有不同的图标显示。
![1691404469969 1691404469969](https://rustsb.com/data/attachments/0/994-ce0ed3a5f9046a6c2b507179a0836b06.jpg)
Hooks
代码:
void OnDWDynamicEventSuccess(BasePlayer Player, int Type)