一个基于 EndStone 的幸运之柱小游戏插件 / A Lucky Pillar mini-game plugin based on EndStone.
Powered by EndStone.
EndStone-EasyLuckyPillar 是一个专为 Endstone 服务器设计的多人竞技类幸运之柱小游戏插件。玩家需要在不断缩小的边界中争夺资源,通过破坏幸运柱获取随机物品,同时躲避边界伤害,成为最后的幸存者。插件支持多场次管理、自定义物品池、粒子特效、音效系统等功能,为服务器管理员提供灵活的游戏配置选项。
| 特性 | 描述 |
|---|---|
| 🎮多场次管理 | 支持创建和管理多个游戏场次 |
| 🏛️幸运之柱 | 每场游戏不定数量的幸运之柱 |
| 🔥边界缩放 | 游戏区域逐渐缩小,增加紧张感 |
| ✨粒子特效 | 自定义粒子效果,增强视觉体验 |
| 🔊音效系统 | 边界缩小、胜利、倒计时等音效 |
| 🎁物品池系统 | 丰富的随机掉落物品 |
| ⏱️任务系统 | 物品投放、事件触发等定时任务 |
服务器根目录/
├── logs/
│ └── EasyLuckyPillar/ # 日志目录
│ └── easyluckypillar_YYYYMMDD.log # 主日志文件
├── plugins/
│ ├── endstone_easyluckypillar-x.x.x-py3-none-any.whl # 插件主文件
│ └── EasyLuckyPillar/ # 插件资源目录
│ └── config/
│ └── config.json # 配置文件
-
下载插件
-
安装插件
# 将插件主文件复制到服务器 plugins 目录 cp endstone_easyluckypillar-x.x.x-py3-none-any.whl plugins/ -
配置插件
- 编辑
plugins/EasyLuckyPillar/config/config.json配置文件 - 根据需要自定义游戏场次和物品池
- 编辑
-
启动服务器
- 重启服务器或使用
/reload命令 - 插件会自动生成默认配置文件
- 重启服务器或使用
配置文件位于:plugins/EasyLuckyPillar/config/config.json
{
// 🎮 游戏场次配置
"sessions": {
"1": {
"name": "默认场次",
"center_pos": { "x": 0, "y": 100, "z": 0 }, // 场次中心位置
"pillars": {
// 幸运柱位置配置
"1": { "x": 0, "y": 99, "z": 0 },
"2": { "x": 0, "y": 99, "z": -16 },
"3": { "x": 16, "y": 99, "z": 0 },
"4": { "x": 0, "y": 99, "z": 16 },
"5": { "x": -16, "y": 99, "z": 0 },
"6": { "x": -11, "y": 99, "z": -11 },
"7": { "x": 11, "y": 99, "z": -11 },
"8": { "x": -11, "y": 99, "z": 11 },
"9": { "x": 11, "y": 99, "z": 11 }
},
"min_players": 2, // 最小玩家数
"wait_area": {
// 等待区域
"pos1": { "x": -20, "y": 100, "z": -20 },
"pos2": { "x": 20, "y": 100, "z": 20 }
},
"border": {
// 边界配置
"initial_radius": 20, // 初始半径
"min_radius": 4, // 最小半径
"shrink_interval": 300, // 缩小间隔(刻)
"shrink_amount": 4, // 每次缩小量
"damage_per_second": 5 // 每秒伤害
},
"particles": {
// 粒子效果配置
"enabled": true,
"particle_type": "minecraft:falling_border_dust_particle",
"particle_height": 10,
"particle_y_offset": -48,
"horizontal_step": 2,
"vertical_step": 1,
"view_distance": 4
},
"sounds": {
// 音效配置
"enabled": true,
"border_shrink_sound": "random.explode",
"border_shrink_volume": 10.0,
"border_shrink_pitch": 1.0,
"victory_sound": "mob.enderdragon.death",
"victory_volume": 10.0,
"victory_pitch": 1.0,
"countdown_sound": "random.orb",
"countdown_volume": 10.0,
"game_end_sound": "mob.wither.death",
"game_end_volume": 10.0,
"game_end_pitch": 1.0
},
"tasks": {
// 任务配置
"item_interval": 100, // 物品投放间隔(刻)
"event_interval": 1200, // 事件触发间隔(刻)
"border_check_interval": 20, // 边界检查间隔(刻)
"particle_interval": 20, // 粒子更新间隔(刻)
"scoreboard_update_interval": 20 // 计分板更新间隔(刻)
}
}
},
// 🎁 物品池配置(物品id+权重)
"item_pool": {
"cobblestone": 100,
"dirt": 100,
"sand": 80,
"gravel": 80,
"planks": 100,
"log": 80,
"glass": 60,
"wool": 60,
"stone": 80,
"andesite": 70,
"diorite": 70,
"granite": 70
}
}| 命令 | 描述 |
|---|---|
/lp |
打开幸运之柱菜单 |
/lp menu |
打开幸运之柱菜单 |
/lp leave |
离开当前场次 |
| 命令 | 描述 |
|---|---|
/lpadmin reload |
重载配置文件 |
/lpadmin init |
初始化配置文件 |
/lpadmin add <name> |
添加新场次 |
/lpadmin remove <SessionID> |
删除指定场次 |
/lpadmin setcenter <SessionID> |
设置场次中心位置 |
/lpadmin addpillar <SessionID> |
添加幸运柱 |
/lpadmin removepillar <SessionID> <PillarID> |
删除幸运柱 |
/lpadmin setpillar <SessionID> <PillarID> |
设置幸运柱位置 |
/lpadmin setwaitarea <SessionID> |
设置等待区域 |
/lpadmin start <SessionID> |
开始指定场次的游戏 |
/lpadmin stop <SessionID> |
停止指定场次的游戏 |
粒子效果可以在配置文件中自定义,包括粒子类型、高度、偏移量等参数:
"particles": {
"enabled": true,
"particle_type": "minecraft:falling_border_dust_particle",
"particle_height": 10,
"particle_y_offset": -48,
"horizontal_step": 2,
"vertical_step": 1,
"view_distance": 4
}游戏中的各种音效可以在配置文件中自定义,包括音效类型、音量和音调:
"sounds": {
"enabled": true,
"border_shrink_sound": "random.explode",
"border_shrink_volume": 10.0,
"border_shrink_pitch": 1.0,
"victory_sound": "mob.enderdragon.death",
"victory_volume": 10.0,
"victory_pitch": 1.0,
"countdown_sound": "random.orb",
"countdown_volume": 10.0,
"game_end_sound": "mob.wither.death",
"game_end_volume": 10.0,
"game_end_pitch": 1.0
}物品池可以在配置文件中自定义,包括各种物品及其出现概率:
"item_pool": {
"diamond": 10,
"gold_ingot": 40,
"iron_ingot": 50,
"bread": 60
}边界可以在配置文件中自定义,包括初始半径、最小半径、缩小间隔等参数:
"border": {
"initial_radius": 20,
"min_radius": 4,
"shrink_interval": 300,
"shrink_amount": 4,
"damage_per_second": 5
}❓ 游戏无法开始
检查步骤:
- 确认游戏场次配置正确
/lp
- 检查玩家数量是否达到最小要求
- 查看日志文件
cat logs/EasyLuckyPillar/easyluckypillar_*.log
❓ 粒子效果不显示
排查方法:
- 确认粒子效果已启用
"particles": { "enabled": true }
- 检查粒子类型是否正确
- 查看日志文件确认是否有错误
❓ 音效不播放
排查方法:
- 确认音效已启用
"sounds": { "enabled": true }
- 检查音效类型是否正确
- 检查音量和音调设置
| 日志文件 | 位置 | 用途 |
|---|---|---|
| 主日志 | logs/EasyLuckyPillar/easyluckypillar_YYYYMMDD.log |
记录游戏运行日志和错误信息 |
本项目采用 AGPL-3.0 许可证开源。
版权所有 (c) 2023 梦涵LOVE
本程序是自由软件:您可以自由地重新发布和修改它,
但必须遵循AGPL-3.0许可证的条款。
完整许可证文本请参阅 LICENSE 文件。
欢迎提交 Issue 和 Pull Request!
- Fork 项目仓库
- 创建功能分支
git checkout -b feature/AmazingFeature
- 提交更改
git commit -m 'Add some AmazingFeature' - 推送分支
git push origin feature/AmazingFeature
- 创建 Pull Request
