关于 Pve 模式
该插件没有自己的功能
该插件仅用作其他插件的API
使用兼容的事件和插件创建可配置的PVE模式
支持的插件
- 空中事件
- 港口活动
- 水事件
- 卫星天线事件
- 电厂事件
- 垃圾场事件
- 可防御的基地
- 怪物首领
- 更好的NPC
- 护航
应用程序编程接口
void EventAddPveMode(string shortname, JObject configJson, Vector3position, float radius, HashSet<uint> crates, HashSet<uint>科学家, HashSet<uint>坦克, HashSet<ulong>owners, BasePlayerowner) 创建PVE事件
模式
- Shortname – 事件名称
- configJson – PVE 模式配置(更多详细信息在下面的描述中)
- 位置 – 地图上的事件位置
- radius – 事件区域的半径
- crates – 所有事件 crate 的列表(包括锁定的 crate)
- 科学家 – 事件期间所有活跃的 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(stringshortname, HashSet<uint>scientists)
如果在 PVE 模式下处于活动状态,则将 NPC 添加到事件中
- Shortname – 事件名称
- 科学家 – 要添加的添加事件 NPC 列表
void EventAddTanks(string Shortname, HashSet<uint> Tanks)
如果在 PVE 模式下处于活动状态,则将 Bradley 添加到事件中
- Shortname – 事件名称
- 坦克 – 要添加的添加布拉德利事件列表
HashSet<ulong> GetEventOwners(string Shortname)
返回事件操作期间所有事件所有者的 steamID 列表
- Shortname – 事件名称
ulong GetEventOwner(stringshortname)
返回当前EventOwner的SteamID(如果没有EventOwner则返回0)
- Shortname – 事件名称
void SetEventOwner(stringshortname, ulongowner)
设置当前事件所有者
- Shortname – 事件名称
- 所有者 – 玩家的 SteamID
HashSet<string> GetEventsPlayer(ulong id)
返回玩家所在的事件区域列表
- id – 玩家的 SteamID
Dictionary<string, double> GetTimesPlayer(ulong id)
返回事件列表以及玩家上次参与该事件的时间
- id – 玩家的 SteamID
PVE模式配置
- 浮动 伤害 – 玩家必须造成的伤害才能成为事件所有者
- HashSet<ScaleDamageConfig> ScaleDamage – 计算成为事件所有者的损害系数
- bool LootCrate – 如果不是活动所有者或他们的团队,其他玩家和团队可以掠夺箱子吗? [真假]
- bool HackCrate – 如果不是活动所有者或其团队,其他玩家和团队是否可以破解锁定的箱子? [真假]
- bool LootNpc – 如果不是活动所有者或他们的团队,其他玩家和团队是否可以掠夺 NPC 尸体? [真假]
- bool DamageNpc – 如果不是事件所有者或他们的团队,其他玩家和团队是否可以对 NPC 造成伤害? [真假]
- bool DamageTank – 如果不是赛事所有者或他们的团队,其他玩家和团队是否可以对 Bradley 造成伤害? [真假]
- bool TargetNpc – 如果不是活动所有者或其团队,Npc 是否可以攻击其他玩家和团队? [真假]
- bool TargetTank – 如果不是赛事所有者或其团队,布拉德利是否可以攻击其他玩家和团队? [真假]
- bool CanEnter – 如果不是活动所有者或其团队,是否允许其他玩家和团队进入活动区? [真假]
- bool CanEnterCooldownPlayer – 是否允许具有活动冷却时间的玩家作为事件所有者进入事件区域? [真假]
- int TimeExitOwner – 事件所有者可以离开事件区域并保留所有权的时间[秒]
- int AlertTime – 事件所有者状态结束之前的警告时间 [秒]
- bool RestoreUponDeath – 阻止 RestoreUponDeath 插件在事件区中运行? (玩家在活动区时会掉落枪支和物品栏)[true/false]
- double CooldownOwner – 事件所有者的冷却计时器,直到玩家作为其所有者的事件结束后,他们可以再次获得标题[秒]
- int Darkening – 圆顶变暗(0 – 禁用圆顶)
Example:
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 })的玩家 上次参加活动 的时间列表