MEBTerritory

原创 插件 MEBTerritory 1.0.0

请登录后获取
版权类型
原创
API版本
5.x.x
版权链接
#
语言支持
多语言
[MD] ### 功能 - **两点选角圈地**:用选区工具标记两个角(手机版选点:长按/点击=第一个点/第二个点;电脑版选点:左键/右键=第一个点/第二个点),两点之间的矩形即为领地。**高度不限**,领地覆盖从地底到天空的整个垂直范围。每人同时只能拥有一块领地。面积上限、单边长度上限、领地之间的最小间隔均可配置。 - **领地升级**:默认最高10级,可通过配置文件提高上限。升级不改变领地大小。圈地费、升级费与每日维护费均基于圈地时确定的面积计算。同等级的领地使用相同的升级标准,差异仅来自面积。 - **邀请与申请**:户主可直接邀请玩家;其他玩家可提交申请,由户主同意或拒绝。 - **领地保护**:非成员不可破坏或放置方块、开启容器、使用桶、在领地内攻击玩家。爆炸不会破坏领地内的方块。 - **领地传送点**:`/territory home`,户主与成员均可使用。 - **出售与转让**:可挂牌定价供其他玩家从市场购买,也可无偿转让。成交时系统收取可配置的手续费。 - **每日维护费**:按自然日收取一次。欠费的领地将被冻结,冻结期间仅户主与最高权限可建造,且传送点不可用。冻结超过配置的天数后领地被释放。 - **MEB营地联动**:市长可为营地圈一块**固定大小**的领地,费用从**营地捐献池**扣除。加入营地即获得营地领地的编辑权限。领地信息中显示营地名、营地 ID 与营地等级。户主的同居对象自动获得领地编辑权限。 - **MEB浮空字联动**:安装 MEBFloatingText 后,户主在领地内选定位置,插件在该处维护一块信息浮空字。**提示内容为统一格式,由配置文件配置。** 浮空字归户主所有并由 MEBTerritory 托管,**OP 无权删除或修改**,仅户主本人与最高权限可操作。 - **MEBGUI联动**:进服发放菜单物品(电脑版右键打开界面)。GUI 操作与指令共用同一业务层,两者校验一致。 ### 指令 `/territory`,别名 `/ter` `/land` `/领地`。玩家不带参数执行时打开 GUI(需安装MEBForms)。 | 子指令 | 用法 | 说明 | |---|---|---| | `help` | `/territory help` | 查看指令帮助 | | `gui` | `/territory gui` | 打开领地图形界面 | | `tool` | `/territory tool` | 获取领地选区工具 | | `item` | `/territory item` | 补发 GUI 唤醒物品 | | `pos1` / `pos2` | `/territory pos1` | 将所在位置设为第一个 / 第二个角 | | `claim` | `/territory claim` | 使用已选的两个角圈定领地 | | `campclaim` | `/territory campclaim` | 为营地圈定领地(**仅市长**,费用走捐献池) | | `info` | `/territory info [领地ID]` | 查看领地详细信息,不填 ID 时查看自己的 | | `here` | `/territory here` | 查看当前所处领地的信息 | | `list` | `/territory list [页码]` | 查看全服领地列表 | | `upgrade` | `/territory upgrade` | 升级领地 | | `invite` | `/territory invite <玩家名>` | 授予玩家领地编辑权限 | | `kick` | `/territory kick <玩家名>` | 移除领地成员 | | `apply` | `/territory apply [领地ID]` | 申请编辑权限,不填 ID 时申请当前所处领地 | | `accept` / `deny` | `/territory accept <玩家名>` | 同意 / 拒绝申请 | | `members` | `/territory members` | 查看成员与待处理申请 | | `sethome` | `/territory sethome` | 将传送点设在所在位置,须位于领地内 | | `home` | `/territory home` | 传送到领地传送点 | | `sell` | `/territory sell <价格>` | 挂牌出售领地 | | `unsell` | `/territory unsell` | 取消出售 | | `buy` | `/territory buy <领地ID>` | 购买在售领地 | | `market` | `/territory market` | 查看在售领地列表 | | `transfer` | `/territory transfer <玩家名>` | 无偿转让领地 | | `pay` | `/territory pay` | 补缴欠费并解冻领地 | | `abandon` | `/territory abandon` | 放弃领地并领取部分退款 | | `text` | `/territory text [off]` | 在所在位置设置领地浮空字,`off` 为撤除 | | `delete` | `/territory delete <领地ID>` | 强制删除领地(**仅最高权限**) | | `reload` | `/territory reload` | 重载配置与领地数据(**仅最高权限**) | ### 权限 | 权限节点 | 默认 | 说明 | |---|---|---| | `MEBTerritory.ge` | 所有人 | 使用 `/territory` | | `MEBTerritory.master` | `false` | 管理全部领地,含 `delete` 与 `reload` | OP 不具备领地管理权限。最高权限的判定满足以下任一条件即可:控制台、持有 `MEBTerritory.master` 权限节点、为 MEBSociety 的「最高权限」。 ### 领地上的身份 | 身份 | 可建造 | 可管理(升级 / 邀请 / 出售 / 传送点 / 删除) | |---|---|---| | 最高权限 | 是 | 是 | | 户主(营地领地为市长) | 是 | 是 | | 成员(被邀请或申请通过) | 是 | 否 | | 户主的同居对象 | 是 | 否 | | 营地成员(营地领地) | 是 | 否 | | 访客 | 否 | 否 | 领地因欠费冻结期间,仅户主与最高权限可建造。 ### 给其他插件的接口 `MengBao\MEBTerritory\API\TerritoryAPI` 是供其他插件调用的稳定接口。 ```php use MengBao\MEBTerritory\API\TerritoryAPI; if (TerritoryAPI::isAvailable() && TerritoryAPI::getEffectiveLevel($playerName) >= 5) { //解锁 5 级内容 } ``` | 方法 | 返回 | |---|---| | `isAvailable()` | MEBTerritory 是否已装且已启用 | | `getPlayerLevel(string)` | 玩家自己领地的等级,无领地或已冻结时返回 `0` | | `getEffectiveLevel(string)` | 「自己领地」与「所在营地领地」等级中的较大值 | | `getCampsiteLevel(string)` | 玩家所在营地领地的等级,无则返回 `0` | | `getMaxLevel()` | 配置的等级上限 | | `getPlayerTerritory(string)` / `hasTerritory(string)` | `Territory` 对象 / 布尔值 | | `getTerritoryAt(string, Vector3)` / `getTerritoryOf(Player)` | 指定位置所在的领地 | | `canBuildAt(Player, string, Vector3)` | 该玩家能否在指定位置修改方块 | | `isOwner(Territory, string)` / `canBuild(Territory, string)` | 身份判断 | 冻结中的领地等级按 `0` 返回。接口仅开放查询操作。 ### 依赖(可选) | 插件 | 装上解锁 | 不装时 | |---|---|---| | **MEBForms** | GUI 界面 | GUI 不可用并输出启动警告,全部指令不受影响 | | **MEBSociety**(2.0.8+) | 游戏币、营地领地、营地等级加成、同居编辑权限、升级材料 | 所有费用不予收取,营地与同居相关功能不可用 | | **MEBFloatingText**(1.2.0+) | 领地信息浮空字 | 浮空字功能不可用 | 使用 MEBSociety 2.0.7 及更早版本时,营地等级与专属物品尚不存在,插件将输出警告并把领地升级降级为仅收取游戏币。 ### 配置与数据 数据目录 `plugin_data/MEBTerritory/`: - `Settings.yml` —— 配置文件,缺失键在启动时自动补齐。 - `Territories.yml` —— 领地数据。损坏的条目会被跳过并在日志中提示,文件内容保留不动。 `Settings.yml` 主要默认值: | 键 | 默认 | 说明 | |---|---|---| | 语言 | `zh_CN` | 语言代码(`zh_CN` / `en_US`) | | 选区工具 | `wooden_axe` | 选区工具物品 | | 个人领地最大面积 | 10000 | 个人领地面积上限 | | 领地单边最大长度 / 最小长度 | 256 / 5 | 单边长度限制 | | 领地之间的最小间隔 | 3 | 领地之间的最小间隔,0 表示允许相邻 | | 允许圈地的世界 / 禁止圈地的世界 | `[]` / `[]` | 白名单(留空表示全部世界)与黑名单,黑名单优先 | | 个人领地每格圈地费 / 升级费 / 每日维护费 | 10 / 6 / 0.1 | 每格单价 | | 营地领地每格圈地费 / 升级费 / 每日维护费 | 5 / 3 / 0.05 | 营地领地的每格单价 | | 营地领地边长 | 256 | 营地领地的固定边长 | | 领地最大等级 | 10 | 等级上限 | | 免材料的领地等级上限 | 2 | 该等级之前的升级仅收取游戏币 | | 每多少格领地消耗一个升级材料 | 500 | 材料数量随面积增长 | | 单次升级材料数量上限 | 64 | 单次升级的材料上限 | | 放弃领地返还比例 | 0.3 | 放弃领地时按圈地费返还的比例 | | 领地交易手续费比例 | 0.05 | 成交时系统收取的比例 | | 启用每日维护费 | `true` | 维护费开关 | | 欠费自动释放天数 | 14 | 冻结达该天数后释放领地,0 表示永不释放 | | 保护方块交互 / 保护容器 / 领地内禁止PVP / 领地内禁止爆炸破坏 | `true` | 保护开关 | | 提示冷却(s) | 2 | 保护提示的冷却时间 | | 进出领地提示 / 进出提示用聊天栏 | `true` / `false` | 进出提示;`false` 表示使用物品栏上方的小字 | | 启用领地浮空字 / 浮空字高度偏移 | `true` / 1.6 | 浮空字开关与高度偏移 | | 领地浮空字格式 | 见文件 | 全服统一模板,变量见下 | | 启用GUI唤醒物品 / 唤醒物品 | `true` / `compass` | 进服发放的菜单物品 | | 领地成员数量上限 | 20 | 0 表示不限 | | 列表每页显示数量 | 8 | 列表每页条数 | 浮空字可用变量:`{id}` `{owner}` `{name}` `{level}` `{max_level}` `{area}` `{size}` `{members}` `{campsite}` `{CID}` `{campsite_level}` `{state}`。 ### 费用 默认单价下,面积为 `A`、等级为 `L` 的领地: | 项目 | 计算式 | |---|---| | 圈地 | `10 × A` | | `L` 级升 `L+1` 级 | `6 × A × L` | | 每日维护费 | `0.1 × A × (1 + (L−1) × 0.1)` | | 升级材料(3 级及以上) | 同等级解锁的营地专属物品,需要 `ceil(A ÷ 500)` 个,上限 64 个 | 材料需求将领地等级与营地进度关联:领地无法超过 2 级,直至其所在营地达到对应等级并解锁该物品;成员可从每周福利箱领取,或在专属物品市场购买。 ### 说明 - 领地为高度不限的二维矩形,仅存储与比较 x/z 坐标。 - 选区仅保存在内存中,玩家退出时清除。 - 维护费任务每小时执行一次,按**自然日**而非经过时长收费,因此在服务器运行的任意一天恰好收取一次。 - 指令与 GUI 共用同一业务层(`TerritoryService`),GUI 回调在写入数据时重新校验权限。 - 营地领地的户主判定跟随**市长**,而非存储固定的玩家名,因此转让市长职位时领地控制权随之转移。 - 启动时清理所属营地已不存在的领地,以及无对应领地的残留浮空字。 --- [/MD]
  • 4F6186C98214F83A253E156A8A506F23.webp
    4F6186C98214F83A253E156A8A506F23.webp
    256.5 KB · 查看: 4
  • 34F6436B805BFDA2E0427D21F0F78760.webp
    34F6436B805BFDA2E0427D21F0F78760.webp
    312.3 KB · 查看: 4
  • 92C189110E44A79F199016047C867B7F.webp
    92C189110E44A79F199016047C867B7F.webp
    104.6 KB · 查看: 3
  • 9312C4B67A027A72B1138ACF98836F1E.webp
    9312C4B67A027A72B1138ACF98836F1E.webp
    382.2 KB · 查看: 4
  • EB3CF674E7C8644A3E6D2C66FC1CD419.webp
    EB3CF674E7C8644A3E6D2C66FC1CD419.webp
    325.5 KB · 查看: 4
作者
梦宝
价格
100.00金粒
下载
0
查看
38
首次发布
最后更新

评分

0.00 星 0 次评分

梦宝 的其他资源

后退
顶部 底部