玩法机制
这一页说明 LyCamp 的实际运行规则。配置时建议先看完这里,再回到 配置说明 调整参数。
阵营战斗规则
阵营 PVP 只在 pvp-world 配置的世界中生效。
一次玩家攻击会按顺序检查:
- 攻击者所在世界是否是 PVP 世界。
- 攻击者和目标是否都有玩家数据。
- 攻击者是否已加入有效阵营。
- 目标是否已加入有效阵营。
- 目标阵营是否在攻击者阵营的
hostiles列表内。 - 当前时间是否处于该世界 PVP 开放时间内。
任意一步不满足,伤害会被取消。
PVP 时间
每个 PVP 世界都有独立的开始和结束时间:
yaml
pvp-start-time: "0 0 9 * * ?"
pvp-end-time: "0 0 18 * * ?"这里使用 cron 表达式。默认示例表示每天 9 点开始,18 点结束。不在开放时间内攻击玩家,会发送 not-pvp-message。
进入和离开 PVP 世界
must-have-camp-to-teleport: true 时,玩家传送进 PVP 世界前必须满足:
| 条件 | 说明 |
|---|---|
| 已加载玩家数据 | 玩家在线并完成数据读取 |
| 已加入阵营 | camp 不为空 |
| 该世界有阵营重生点 | respawn-location 中存在玩家阵营名 |
非 OP 玩家从 PVP 世界传送到其它世界会被阻止。默认配置建议通过 OP 指令或菜单逻辑把玩家送出 PVP 世界。
声望变化
| 场景 | 当前声望 | 累计声望 | 每日剩余额度 |
|---|---|---|---|
| 击杀敌对阵营玩家 | 增加 | 增加 | 扣除本次获得量 |
| 被玩家击杀 | 扣除 | 不变 | 不变 |
| 非玩家击杀死亡 | 扣除 | 不变 | 不变 |
管理指令 given | 增加 | 增加 | 扣除本次获得量 |
管理指令 givec | 不变 | 增加 | 不变 |
| 退出阵营 | 清空 | 清空 | 清空 |
当前声望和累计声望不会超过该阵营最高声望区间的上限,也不会低于 0。
每日刷新
玩家每日可获得声望会在跨日后刷新为阵营配置的上限。
刷新来源有两种:
| 来源 | 说明 |
|---|---|
| 玩家数据读取时 | 玩家上线读取数据后会检查是否跨日 |
| 在线定时检查 | 插件每秒检查一次整秒时刻,并对在线玩家执行跨日刷新判断 |
每日首杀状态按 last-kill-time 判断。当天还没击杀过敌对玩家时,%lyzy_first_kill% 返回未完成文本。
称号和属性
玩家加入阵营后,属性由两部分组成:
- 阵营基础属性:
camp.<阵营>.attribute - 当前累计声望命中的称号属性:
camp.<阵营>.prestige.<区间>.attribute
属性会在玩家数据加载后刷新,也会在玩家关闭背包界面后刷新。
死亡掉落
PVP 世界内,且处于 PVP 开放时间时,会处理掉落。
| 场景 | 是否处理掉落 |
|---|---|
| 被玩家击杀 | 是 |
| 非玩家击杀死亡 | 是 |
| PVP 世界内退出 | 是 |
| 非 PVP 世界死亡 | 否 |
| 非 PVP 时间死亡 | 否 |
掉落分两类:
| 类型 | 说明 |
|---|---|
| 随机掉落 | 背包前 36 格中,lore 命中 force-drop-item-lore 的物品进入掉落池,再按 force-drop-item-amount 随机掉落 |
| 必定掉落 | 背包前 36 格中,lore 命中 independent-of-the-world-force-drop-item-lore 的物品直接掉落 |
掉落后,物品会从玩家背包移除,并在玩家死亡位置自然掉落。
命令限制
在 PVP 世界内,非 OP 玩家默认不能执行命令。allow-command 中写入的是命令前缀。
yaml
allow-command:
- "/say"例如允许 /spawn,则 /spawn、/spawn test 都会放行。没有匹配前缀时会取消命令并发送禁止提示。