关于 PveMode
此插件没有自己的功能
此插件仅用作其他插件
的 API 从兼容的事件和插件中创建可配置的 PVE 模式
支持的插件
应用程序接口
void EventAddPveMode(string shortname, JObject configJson, Vector3 position, float radius, HashSet<uint> crates, HashSet<uint> scientists, HashSet<uint> tanks, HashSet<ulong> owner, BasePlayer owner)
创建 PVE 事件模式
- shortname – 事件名称
- configJson – PVE 模式配置(更多详细信息见下面的描述)
- position – 事件在地图上的位置
- radius – 事件区域的半径
- crates – 所有事件 crate (包括锁定的 crate) 的列表
- scientists – 活动期间所有活跃的 NPC 的列表
- tanks – 所有 Bradley 事件的列表
- owners – 所有事件所有者的列表(如果您需要多次创建事件区域,则此参数是必需的)
- owner – 事件所有者(如果您需要与所有者一起运行事件,则此参数是必需的)
void EventRemovePveMode(string shortname, bool addCooldownOwners)
删除事件的 PVE 模式
- shortname – 事件名称
- addCooldownOwners – 如果此参数在 PVE 模式配置中处于活动状态,是否应该为所有事件所有者设置冷却时间?(如果您需要多次创建 Event Zone 并仅在最后一次迭代中发出 cooldown,则此参数是必需的)
void EventAddCrates(string shortname, HashSet<uint> crates)
如果在 PVE 模式下处于活动状态,则向事件添加 crate
- shortname – 事件名称
- crates – 要添加的事件 crate 列表(包括锁定的 crate)
void EventAddScientists(string shortname, HashSet<uint> scientists)
如果在 PVE 模式下处于活动状态,则向事件中添加 NPC
- shortname – 事件名称
- scientists – 要添加的事件 NPC 列表
void EventAddTanks(string shortname, HashSet<uint> tanks)
如果在 PVE 模式下处于活动状态,则将 Bradley 添加到事件中
- shortname – 事件名称
- tanks – 要添加的 Bradleys 事件列表
HashSet<ulong> GetEventOwners(string shortname)
返回活动运行期间所有活动所有者的 SteamID 列表
- shortname – 事件名称
ulong GetEventOwner(string shortname)
返回当前活动所有者的 SteamID(如果没有活动所有者,则返回 0)
- shortname – 事件名称
void SetEventOwner(string shortname, ulong owner)
设置当前 Event Owner
- shortname – 事件名称
- owner – 玩家的 SteamID
HashSet<string> GetEventsPlayer(ulong id)
返回玩家所在的事件区域列表
- id – 玩家的 SteamID
Dictionary<string, double> GetTimesPlayer(ulong id)
返回事件列表以及玩家上次参与事件的时间
- id – 玩家的 SteamID
PVE 模式配置
- float Damage (浮点伤害) – 玩家成为事件所有者所必须造成的伤害量
- HashSet<ScaleDamageConfig> ScaleDamage – 用于计算成为 Event Owner 的伤害系数
- bool LootCrate – 如果不是活动所有者或他们的团队,其他玩家和团队可以掠夺箱子吗?[对/错]
- bool HackCrate – 如果不是活动所有者或他们的团队,其他玩家和团队可以破解上锁的箱子吗?[对/错]
- bool LootNpc – 如果不是活动所有者或他们的团队,其他玩家和团队可以掠夺 NPC 尸体吗?[对/错]
- bool DamageNpc – 如果不是活动所有者或他们的团队,其他玩家和团队可以对 NPC 造成伤害吗?[对/错]
- bool DamageTank – 如果不是活动所有者或他们的团队,其他玩家和团队可以对 Bradley 造成伤害吗?[对/错]
- bool TargetNpc – 如果不是活动所有者或他们的团队,Npc 可以攻击其他玩家和团队吗?[对/错]
- bool TargetTank – 如果不是 Event Owner 或他们的团队,Bradley 可以攻击其他玩家和团队吗?[对/错]
- bool CanEnter – 如果不是 Event Owner 或其团队,则允许其他玩家和团队进入 Event Zone?[对/错]
- bool CanEnterCooldownPlayer – 允许作为事件所有者具有有效冷却时间的玩家进入事件区域?[对/错]
- int TimeExitOwner – 事件所有者可以离开事件区域并保留所有权的时间 [秒]
- int AlertTime – 事件所有者状态结束之前的警告时间 [秒]
- bool RestoreUponDeath – 阻止 RestoreUponDeath 插件在事件区域中运行?(玩家在活动区时会掉落枪支和物品栏)[对/错]
- double CooldownOwner – 事件所有者的冷却计时器,直到他们可以再次获得头衔,在玩家是其所有者的事件结束后 [秒]
- int Darkening – 圆顶变暗 (0 – 禁用圆顶)
例:
JObject config = new JObject { ["Damage"] = 500f, ["ScaleDamage"] = new JArray { new JObject { ["Type"] = "NPC", ["Scale"] = 1f }, new JObject { ["Type"] = "Bradley", ["Scale"] = 2f } }, ["LootCrate"] = false, ["HackCrate"] = false, ["LootNpc"] = false, ["DamageNpc"] = false, ["DamageTank"] = false, ["TargetNpc"] = false, ["TargetTank"] = false, ["CanEnter"] = false, ["CanEnterCooldownPlayer"] = true, ["TimeExitOwner"] = 300, ["AlertTime"] = 60, ["RestoreUponDeath"] = true, ["CooldownOwner"] = 86400, ["Darkening"] = 12 };
聊天命令
EventsTime – 向玩家显示自上次参与事件以来经过的时间列表
控制台命令(仅限 RCON)
ClearTimePveMode {steamid} – 清除 SteamID 为 ({steamid}) 的玩家上次参与活动的时间列表