动态PVP通过创建/删除区域管理器区域和相关的PVE插件排除映射,为混合PVE/PVP服务器提供PVP区域的自动管理。
示例:
//Requires: TruePVE
//Requires: ZoneManager
using System;
可以基于 “阻止构建” 体积来自动计算纪念碑事件区域几何形状。
注:动态PVP会自动将禁用的事件添加到配置文件中,用于香草纪念碑,火车隧道路段以及当前加载的地图中的任何命名纪念碑。
请在卸载插件后编辑数据文件,以避免丢失更改。
自动态PVP 4.3.0起,真正的PVE 2.2.3ExcludePlayerAPI可用于实现PVP延迟,而不是内置的CanEntityTakeDamage挂钩处理程序。这是强烈推荐因为允许真正的PVE执行所有损坏计算既更有效,又允许跨多个PVP插件创建的区域/延迟解决损坏规则。
真正的PVEExcludePlayer可以在配置文件中显式激活支持,但是当检测到真正的PVE 2.2.3并且在配置文件中启用了所有PVP延迟损坏类型时,它也会自动激活。
重要说明
为了增加与所选PVE插件的兼容性,建议将其添加为DynamicPVP.cs中的硬依赖项。示例:
//Requires: TruePVE
//Requires: ZoneManager
using System;
事件类型
动态PVP可以为以下类型的事件自动管理区域管理器区域和相关PVE插件排除映射的创建和删除:一般事件
这些是基于以下香草世界事件的动态PVP事件:- 布拉德利APC死亡
- 巡逻直升机死亡
- 供应下降 (定时空投)
- 供应信号 (称为空投)
- 可装卸的板条箱 (奇努克和可选的货船和/或石油钻机板条箱)
- 巨型挖掘机点火/激活
- 货船
纪念碑事件
这些是基于游戏或自定义地图定义的纪念碑的静态PVP事件。可以基于 “阻止构建” 体积来自动计算纪念碑事件区域几何形状。
注:动态PVP会自动将禁用的事件添加到配置文件中,用于香草纪念碑,火车隧道路段以及当前加载的地图中的任何命名纪念碑。
自定义事件
这些是用户定义的自动或定时事件,通过dynpvp命令,并在动态PVP的数据文件中配置。请在卸载插件后编辑数据文件,以避免丢失更改。
PVP延迟
动态PVP支持PVP退出延迟 (或简称 “PVP延迟”) 的每事件配置。这是一种机制,使玩家在退出PVP区域后的配置时间内仍被视为处于PVP状态,为了防止他们在战斗中利用PVE/PVP区域边界。自动态PVP 4.3.0起,真正的PVE 2.2.3ExcludePlayerAPI可用于实现PVP延迟,而不是内置的CanEntityTakeDamage挂钩处理程序。这是强烈推荐因为允许真正的PVE执行所有损坏计算既更有效,又允许跨多个PVP插件创建的区域/延迟解决损坏规则。
真正的PVEExcludePlayer可以在配置文件中显式激活支持,但是当检测到真正的PVE 2.2.3并且在配置文件中启用了所有PVP延迟损坏类型时,它也会自动激活。
权限
此插件使用权限系统。要分配权限,请使用oxide.grant <user or group> <name or steam id> <permission>。要删除权限,请使用oxide.revoke <user or group> <name or steam id> <permission>。- dynamicpvp.admin-- 允许玩家使用dynpvp命令
命令
此插件使用相同的语法提供聊天和控制台命令。在聊天中使用命令时,请在其前面加上正斜杠: “/”。- dynpvp help或dynpvp h-- 查看帮助
- dynpvp add <eventName> [timed]-- 创建自定义事件记录。如果timed指定,则它将是一个定时事件
- dynpvp remove <eventName>-- 删除自定义事件记录
- dynpvp start <eventName>-- 启动自定义事件
- dynpvp stop <eventName>-- 停止自定义事件
- dynpvp edit <eventName> true或dynpvp edit <eventName> false-- 启用或禁用 (分别) 自动事件的自动启动状态
- dynpvp edit <eventName> move-移动自定义事件到您的当前位置
- dynpvp edit <eventName> <time>-- 更改定时事件的持续时间 (以秒为单位)
- dynpvp list-- 显示所有自定义事件
- dynpvp show-暂时显示几何在游戏中的所有活动区域
配置
设置和选项可以在DynamicPVP文件下的config目录。建议使用编辑器和验证程序,以避免格式问题和语法错误。重要说明
- 对于每个启用的事件,您必须定义大于零的区域半径或区域大小。如果不执行此操作,区域创建将失败,并显示4.3.0时的错误日志。半径优先于大小,因此如果要创建矩形框区域,请将半径设置为零。
- 玩家可见的圆顶只能为半径定义的 “球体” 区域创建。由尺寸定义的 “盒子” 区域没有圆顶。管理员可以通过/dynpvp show命令。
- PVP延迟标志:
- ZonePlayersCanDamageDelayedPlayers-PVP区域中的玩家可以在PVP延迟中损坏玩家
- DelayedPlayersCanDamageDelayedPlayers-PVP延迟中的玩家可能会损坏PVP区域中的玩家
- DelayedPlayersCanDamageZonePlayers-PVP延迟中的玩家可能会损坏PVP延迟中的玩家
- 固定旋转:
- 这通常仅对具有箱形区域的纪念碑事件有用。如果true,则该区域将相对于世界旋转; 如果false,它将相对于纪念碑旋转。通常,您需要将此设置为false因为通常最重要的是盒子覆盖纪念碑,不管它的世界方向如何。
配置文件示例
代码:
{
"Global Settings": {
"Enable Debug Mode": true,
"Log Debug To File": false,
"Compare Radius (Used to determine if it is a SupplySignal)": 50.0, // Used to distinguish whether supply drops originate from a Supply Signal or a timed drop
"If the entity has an owner, don't create a PVP zone": true, // "Entity" refers to the one that triggered the event, such as Bradley or Heli
"PVP Delay Flags": "ZonePlayersCanDamageDelayedPlayers, DelayedPlayersCanDamageZonePlayers, DelayedPlayersCanDamageDelayedPlayers"
},
"Chat Settings": {
"Command": "dynpvp",
"Chat Prefix": "[DynamicPVP]: ",
"Chat Prefix Color": "#00FFFF",
"Chat SteamID Icon": 0
},
"General Event Settings": {
"Bradley event settings": {
"Event Duration": 600.0,
"Enable Bots (Need BotSpawn Plugin)": false,
"BotSpawn Profile Name": "Bradley",
"Enable Event": true,
"Enable PVP Delay": true, // When a player leaves the area for a period of time, they can still be hurt by other players
"PVP Delay Time": 10.0,
"Enable Domes": true, // This will be ignored for cube zones
"Domes Darkness": 8,
"Delay In Starting Event": 0.0,
"Delay In Stopping Event": 0.0,
"TruePVE Mapping": "exclude", // Tells PVE plugin to exclude this from PVE rules, making it a PVP zone
"Transform Position": { // Move the position of the zone; use `dynpvp show` to see x/y/z for non-fixed rotation zones
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"Use Blacklist Commands (If false, a whitelist is used)": true,
"Command List (If there is a '/' at the front, it is a chat command)": [
"kill",
"/god"
],
"Dynamic pvp zone settings": {
"Zone Radius": 100.0, // Defines a spherical zone
"Zone Size": { // Defines a box zone if Zone Radius is zero, otherwise ignored
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"Zone Rotation": 0.0, // Box zone rotation
"Fixed Rotation": false,
"Zone Comfort": 0.0,
"Zone Radiation": 0.0,
"Zone Temperature": 0.0,
"Zone Radius": "100",
"Enter Message": "Entering a PVP area!",
"Leave Message": "Leaving a PVP area.",
"Eject Spawns": "",
"Permission Required To Enter Zone": "",
"Extra Zone Flags": [
"notp",
"undestr"
]
}
}
},
"Monument Event Settings": {
"Large Fishing Village": {
"Enable Event": false,
"Delay In Starting Event": 0.0,
"Delay In Stopping Event": 0.0,
"Holster Time On Enter (In seconds, or 0 to disable)": 0.0,
"Enable PVP Delay": false,
"PVP Delay Time": 10.0,
"TruePVE Mapping": "exclude",
"Use Blacklist Commands (If false, a whitelist is used)": true,
"Command works for PVP delayed players": false,
"Command List (If there is a '/' at the front, it is a chat command)": [],
"Enable Domes": true,
"Domes Darkness": 8,
"Dynamic PVP Zone Settings": {
"Zone Comfort": 0.0,
"Zone Radiation": 0.0,
"Zone Temperature": 0.0,
"Enable Safe Zone": false,
"Eject Spawns": "",
"Zone Parent ID": "",
"Enter Message": "Entering a PVP area!",
"Leave Message": "Leaving a PVP area.",
"Permission Required To Enter Zone": "",
"Extra Zone Flags": [],
"Zone Radius": 0.0,
"Zone Size": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"Zone Rotation": 0.0,
"Fixed Rotation": false,
"Auto-calculate zone geometry (overwrites existing values)": false // determines whether Zone Radius, Zone Size, Zone Rotation, Fixed Rotation, and Transform Position should be calculated automatically and overwritten
},
"Zone ID": "",
"Transform Position": {
"x": 0.0,
"y": 0.0,
"z": 0.0
}
}
}
}