新增用户组药效等级上限配置,与Java端双向打通

配合 Java 端 6f92028(原版药效强度上限 256)。原版 /effect 的
amplifier 硬上限是 255,即药效强度 1~256,此前 Web 侧封顶写死
255 且各建表点口径不一,本次统一为 max_effect_level 配置项。

改动:
- web_user_groups 增加 max_effect_level 列(默认 256)
  · sync.php / land_api.php / core.php 全部 8 处建表块补列
  · 3 处迁移表补 ALTER 条目,老库自动升级
- api/sync.php syncUserGroups:Java 推送时接收并写入 max_effect_level,
  <=0 或超过 256 一律归一到 256(原版硬上限不可突破)
- api/land_api.php 新增 getLandMaxEffectLevel():按领地所有者所属
  最高优先级用户组取上限,无组则 256;handleUpdateLandField 写入
  give_effects 时改用该上限 clamp(原先硬编码 255)
- api/land_api.php update_user_group 读写补该字段
- admin.php 用户组新建/编辑弹窗补「药效等级上限」输入框
  (1~256,默认 256),并附原版范围说明;两处提交参数同步带上

规则:普通玩家(未加入任何用户组)固定按 256 封顶,严禁超限;
加入用户组后按组配置封顶,填 256 即不额外限制。
This commit is contained in:
ypsdf1
2026-10-04 19:26:05 +08:00
parent 419b677aa9
commit 4160c60aa6
4 changed files with 70 additions and 11 deletions
+1
View File
@@ -645,6 +645,7 @@ function initTables(SQLite3 $db) {
land_price_per_sqm INTEGER DEFAULT -1,
max_lands INTEGER DEFAULT -1,
max_effects INTEGER DEFAULT 5,
max_effect_level INTEGER DEFAULT 256,
home_limit INTEGER DEFAULT 0,
join_price INTEGER DEFAULT 0,
auto_renew INTEGER DEFAULT 0,