关于 PveMode
此插件没有自己的功能
此插件仅用作其他插件
的 API 从兼容的事件和插件创建可配置的 PVE 模式
支持的插件
应用程序接口
void EventAddPveMode(string shortname, JObject configJson, Vector3 position, float radius, HashSet<uint> crates, HashSet<uint> scientists, HashSet<uint> tanks, HashSet<ulong> owners, BasePlayer owner)
创建 PVE 事件模式
- shortname – 事件名称
- configJson – PVE 模式配置(更多详细信息见下面的说明)
- position – 事件在地图上的位置
- radius – 事件区域的半径
- 板条箱 – 所有事件板条箱(包括锁定的板条箱)的列表
- 科学家 – 活动期间活跃的所有 NPC 列表
- 坦克 – 所有布拉德利事件的列表
- owners – 所有事件所有者的列表(如果需要多次创建事件区域,则此参数是必需的)
- owner – 事件所有者(如果需要与所有者一起运行事件,则此参数是必需的)
void EventRemovePveMode(string shortname, bool addCooldownOwners)
删除事件的 PVE 模式
- shortname – 事件名称
- addCooldownOwners – 如果此参数在 PVE 模式配置中处于活动状态,是否应该为所有事件所有者提供冷却时间?(如果您需要多次创建事件区域并且仅在最后一次迭代中发出冷却时间,则此参数是必需的)
void EventAddCrates(string shortname, HashSet<uint> crates)
如果在 PVE 模式下处于活动状态,则将 crate 添加到事件中
- shortname – 事件名称
- crates – 要添加的事件 crate 列表(包括锁定的 crate)
void EventAddScientists(string shortname, HashSet<uint> scientists)
如果在 PVE 模式下处于活动状态,则将 NPC 添加到事件中
- shortname – 事件名称
- 科学家 – 要添加的已添加事件 NPC 列表
void EventAddTanks(string shortname, HashSet<uint> tanks)
如果在 PVE 模式下处于活动状态,则将 Bradley 添加到事件中
- shortname – 事件名称
- tanks – 要添加的 Bradleys 事件列表
HashSet<ulong> GetEventOwners(string shortname)
在活动运行期间返回所有事件所有者的 SteamID 列表
- shortname – 事件名称
ulong GetEventOwner(string shortname) 返回当前 Event Owner 的 SteamID(如果没有 Event Owner,则返回 0)
- shortname – 事件名称
void SetEventOwner(string shortname, ulong owner)
设置当前事件所有者
- shortname – 事件名称
- owner – 玩家的 SteamID
HashSet<string> GetEventsPlayer(ulong id)
返回玩家所在的事件区域的列表
- id – 玩家的 SteamID
字典<字符串,双精度> GetTimesPlayer(ulong id)
返回事件列表和玩家上次参与事件的时间
- id – 玩家的 SteamID
PVE模式配置
- 浮动伤害 – 玩家为成为事件所有者而必须造成的伤害量
- HashSet<ScaleDamageConfig> ScaleDamage – 用于计算成为事件所有者的损坏系数
- bool LootCrate – 如果不是活动所有者或他们的团队,其他玩家和团队可以掠夺板条箱吗?[真/假]
- bool HackCrate – 如果不是活动所有者或他们的团队,其他玩家和团队可以破解锁定的板条箱吗?[真/假]
- bool LootNpc – 如果不是活动所有者或他们的团队,其他玩家和团队可以掠夺 NPC 尸体吗?[真/假]
- bool DamageNpc – 如果不是活动所有者或他们的团队,其他玩家和团队可以对 NPC 造成伤害吗?[真/假]
- bool DamageTank – 如果不是事件所有者或他们的团队,其他玩家和团队可以对布拉德利造成伤害吗?[真/假]
- bool TargetNpc – 如果不是事件所有者或他们的团队,NPC 可以攻击其他玩家和团队吗?[真/假]
- bool TargetTank – 如果不是事件所有者或他们的团队,布拉德利可以攻击其他玩家和团队吗?[真/假]
- bool CanEnter – 如果不是活动所有者或其团队,是否允许其他玩家和团队进入活动区域?[真/假]
- 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}) 的玩家上次参与活动的时间列表