Gene_Settlement
Gene_Settlement 插件文档
Gene_Settlement 插件文档
概述
Gene_Settlement 是一个地牢结算系统插件,用于处理地牢副本的战利品分配和展示。主要功能包括:
- 地牢结算物品池抽取
- 战利品展示界面
- 玩家间战利品查看
发包文档
打开界面收包
界面收包(服务端 → 客户端)
界面名称: Gene_Settlement_View
包处理器: GeneSettlement_TeamData
收包数据结构 (teammateData):
teammateData 是一个 Map<String, String> 类型的数据结构,包含所有队友的索引化信息。
数据格式说明:
-
队友名称数据
- 键格式:
GeneSettlement_PlayerName_${index} - 值类型:
String - 值内容: 队友的玩家名称
- 说明:
index从 0 开始递增,对应队友列表中的顺序
- 键格式:
-
队友UUID数据
- 键格式:
GeneSettlement_PlayerUuid_${index} - 值类型:
String - 值内容: 队友的UUID字符串形式
- 说明:
index从 0 开始递增,与队友名称使用相同的索引
- 键格式:
完整数据示例:
// teammateData 数据结构示例
val teammateData = mapOf(
"GeneSettlement_PlayerName_0" to "玩家A",
"GeneSettlement_PlayerUuid_0" to "12345678-1234-1234-1234-123456789abc",
"GeneSettlement_PlayerName_1" to "玩家B",
"GeneSettlement_PlayerUuid_1" to "87654321-4321-4321-4321-cba987654321",
// ... 更多队友数据
)
使用说明:
- 每个队友在数据中占用两个键值对(名称和UUID)
- 索引
index从 0 开始连续递增 - 名称和UUID使用相同的索引对应同一个玩家
- 如果没有队友,
teammateData为空 Map
界面收包处理器
客户端收包处理器(客户端 → 服务端)
收包ID: Gene_Settlement
处理器说明:
所有客户端发往服务端的交互都通过 Gene_Settlement 收包ID进行处理,参数格式统一为4个参数。
1. give_loot - 获取未翻牌槽位数据
功能描述: 从指定地牢和难度中抽取指定数量的战利品,并在客户端显示未翻开的牌槽。
参数说明:
data[0]:"give_loot"(操作类型)data[1]:dungeonKey(String) - 地牢标识符data[2]:difficulty(String) - 难度等级data[3]:count(Int, 可选) - 抽取数量,默认值为3
返回数据:
- 槽位ID格式:
GeneSettlement_UnDrawn_Slot_{index} index: 从0开始,根据count参数决定槽位数量- 每个槽位包含抽取到的物品数据
示例:
// 抽取3个物品(默认count)
// 返回: GeneSettlement_UnDrawn_Slot_0, GeneSettlement_UnDrawn_Slot_1, GeneSettlement_UnDrawn_Slot_2
// 抽取5个物品
// 返回: GeneSettlement_UnDrawn_Slot_0 到 GeneSettlement_UnDrawn_Slot_4
2. show_other_loot - 显示其他玩家战利品
功能描述: 根据目标玩家UUID和自定义索引,显示其他玩家的已翻牌战利品数据。
参数说明:
data[0]:"show_other_loot"(操作类型)data[1]:targetUuid(String) - 目标玩家的UUID字符串data[2]:targetIndex(Int) - 自定义显示索引(用于区分不同玩家)
返回数据:
- 槽位ID格式:
GeneSettlement_OtherPlayer_{targetIndex}_Slot_{i} targetIndex: 调用方自定义的索引i: 目标玩家的第几个牌槽(从0开始)
示例:
// 显示玩家A(uuid=xxx)的战利品,索引为1
// 返回: GeneSettlement_OtherPlayer_1_Slot_0, GeneSettlement_OtherPlayer_1_Slot_1, ...
3. request_view_loot - 请求查看玩家战利品
功能描述: 当玩家翻开第一个牌后,向所有队友发送翻牌通知,让他们知道当前翻牌进度。
参数说明:
data[0]:"request_view_loot"(操作类型)data[1]:targetUuidStr(String) - 目标玩家的UUID字符串data[2]:lootNumber(String) - 战利品编号
发送数据包:
- 界面名称:
Gene_Settlement_View - 包处理器:
GeneSettlement_LootData
数据内容:
val lootData = mapOf(
"GeneSettlement_LootData_PlayerName" to player.name,
"GeneSettlement_LootData_PlayerUuid" to player.uniqueId.toString(),
"GeneSettlement_LootData_LootNumber" to lootNumber
)
4. quit_dungeon - 退出副本
功能描述: 玩家退出当前副本。
参数说明:
data[0]:"quit_dungeon"(操作类型)data[1]:targetUuidStr(String) - 目标玩家的UUID字符串
调用说明: 调用DPlus系统执行退出副本逻辑,只需要传入目标玩家UUID即可。
数据结构
Settlement 配置结构
# 地牢配置示例
DungeonKey: "jzysc" # 地牢唯一标识符
pools:
easy: # 难度等级
- id: "item_id_1" # 物品ID
amount: 1 # 物品数量
weight: 10 # 权重(影响抽取概率)
- id: "item_id_2"
amount: 2
weight: 5
normal:
- id: "item_id_3"
amount: 1
weight: 8
PoolItem 数据类
- id: 物品配置ID
- item: ItemStack对象
- amount: 物品数量
- weight: 抽取权重
插件工作日志
| 提交时间 | 提交内容 |
|---|---|
| 2025-12-27 13:38:52 +0800 | 修正quit_dungeon填写参数导致无法退出副本问题 |
| 2025-12-26 22:56:56 +0800 | 更新加载数据信息以及补充数据包 |
| 2025-12-25 11:01:08 +0800 | 更新发包界面结构 |
| 2025-12-25 10:45:55 +0800 | 新增quit_dungeon退出副本 |
| 2025-12-23 20:19:02 +0800 | [feat]修改仓库gradle地址 |
| 2025-12-23 20:16:45 +0800 | [feat]初始化提交 |
| 2025-12-20 21:58:03 +0800 | Initial commit |
插件工作日志