Skip to main content

一个基于 EndStone 的幸运之柱小游戏插件 / A Lucky Pillar mini-game plugin based on EndStone.

Project description

EndStone-EasyLuckyPillar

EndStone-EasyLuckyPillar

一个基于 EndStone 的幸运之柱小游戏插件 / A Lucky Pillar mini-game plugin based on EndStone.

Powered by EndStone.

README README_EN

Github Version GitHub License Python Platform Downloads


📖 简介

EndStone-EasyLuckyPillar 是一个专为 Endstone 服务器设计的多人竞技类幸运之柱小游戏插件。玩家需要在不断缩小的边界中争夺资源,通过破坏幸运柱获取随机物品,同时躲避边界伤害,成为最后的幸存者。插件支持多场次管理、自定义物品池、粒子特效、音效系统等功能,为服务器管理员提供灵活的游戏配置选项。


✨ 核心特性

特性 描述
🎮多场次管理 支持创建和管理多个游戏场次
🏛️幸运之柱 每场游戏不定数量的幸运之柱
🔥边界缩放 游戏区域逐渐缩小,增加紧张感
粒子特效 自定义粒子效果,增强视觉体验
🔊音效系统 边界缩小、胜利、倒计时等音效
🎁物品池系统 丰富的随机掉落物品
⏱️任务系统 物品投放、事件触发等定时任务

🗂️ 目录结构

服务器根目录/
├── logs/
│   └── EasyLuckyPillar/                 # 日志目录
│       └── easyluckypillar_YYYYMMDD.log  # 主日志文件
├── plugins/
│   ├── endstone_easyluckypillar-x.x.x-py3-none-any.whl  # 插件主文件
│   └── EasyLuckyPillar/                 # 插件资源目录
│       └── config/
│           └── config.json              # 配置文件

🚀 快速开始

安装步骤

  1. 下载插件

  2. 安装插件

    # 将插件主文件复制到服务器 plugins 目录
    cp endstone_easyluckypillar-x.x.x-py3-none-any.whl plugins/
    
  3. 配置插件

    • 编辑 plugins/EasyLuckyPillar/config/config.json 配置文件
    • 根据需要自定义游戏场次和物品池
  4. 启动服务器

    • 重启服务器或使用 /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
}

🛠️ 故障排除

常见问题

❓ 游戏无法开始

检查步骤:

  1. 确认游戏场次配置正确
    /lp
    
  2. 检查玩家数量是否达到最小要求
  3. 查看日志文件
    cat logs/EasyLuckyPillar/easyluckypillar_*.log
    
❓ 粒子效果不显示

排查方法:

  1. 确认粒子效果已启用
    "particles": {
      "enabled": true
    }
    
  2. 检查粒子类型是否正确
  3. 查看日志文件确认是否有错误
❓ 音效不播放

排查方法:

  1. 确认音效已启用
    "sounds": {
      "enabled": true
    }
    
  2. 检查音效类型是否正确
  3. 检查音量和音调设置

📊 日志文件说明

日志文件 位置 用途
主日志 logs/EasyLuckyPillar/easyluckypillar_YYYYMMDD.log 记录游戏运行日志和错误信息

📄 许可证

本项目采用 AGPL-3.0 许可证开源。

版权所有 (c) 2023 梦涵LOVE

本程序是自由软件:您可以自由地重新发布和修改它,
但必须遵循AGPL-3.0许可证的条款。

完整许可证文本请参阅 LICENSE 文件。


👥 贡献指南

欢迎提交 Issue 和 Pull Request!

  1. Fork 项目仓库
  2. 创建功能分支
    git checkout -b feature/AmazingFeature
    
  3. 提交更改
    git commit -m 'Add some AmazingFeature'
    
  4. 推送分支
    git push origin feature/AmazingFeature
    
  5. 创建 Pull Request

🌟 支持与反馈


⭐ 如果这个项目对你有帮助,请给我们一个 Star!

Star History Chart

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

endstone_easyluckypillar-0.1.4.tar.gz (41.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

endstone_easyluckypillar-0.1.4-py3-none-any.whl (38.7 kB view details)

Uploaded Python 3

File details

Details for the file endstone_easyluckypillar-0.1.4.tar.gz.

File metadata

File hashes

Hashes for endstone_easyluckypillar-0.1.4.tar.gz
Algorithm Hash digest
SHA256 ee634226500ecce67cf4b16b4c8628b0ebba07e4964b43cb9037364e396b9aca
MD5 f75b371587975646b157f18c2f890336
BLAKE2b-256 85aa74e5f9e68bffb8e8062a004d7f243bf49c415a061fbf21442ff10aa5cefb

See more details on using hashes here.

File details

Details for the file endstone_easyluckypillar-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for endstone_easyluckypillar-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ea19c6a44822295032485cb07f0f30115360925b281bae3c88dc4c823ec10e2c
MD5 3c56789fb4372a2a8e97bbb4f63679f3
BLAKE2b-256 00a18f1507367b8a4407b78232245f996e3f79d1d0c46871ff4b38322082e146

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page