一字成兵配置表头与字段字典
v2.0 · 2026-10-27 · 当前数值规则20261027
36张逻辑表、303字段;OH正式工作簿及读取契约需真实导表验证。数值范围用宽数值,属性定点原文以字符串精确表示,不截成32位整数。
01YZBattleDefine
YZBattle.xlsm · YZBattleDefine 单行(YZBattle)
规则20261027:对兵/对城10000;基础间隔1500ms,最小500ms,最慢比例2;生产9000ms,运输850ms。
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| spawn_ms | int | 营地出兵周期;模拟毫秒 | 必填;按业务规则校验,0不是自动继承;— |
| first_spawn_ms | int | 营地首批产兵延迟;模拟毫秒 | 必填;按业务规则校验,0不是自动继承;— |
| route_step_ms | int | 棋盘每格行进基准时长;模拟毫秒 | 必填;按业务规则校验,0不是自动继承;— |
| move_scale_bp | int | 战场移动全局倍率;万分比;10000=1倍或100% | 必填;按业务规则校验,0不是自动继承;— |
| stack_k_bp | int | 额外字层统一系数;万分比;10000=1倍或100% | 必填;按业务规则校验,0不是自动继承;— |
| unit_damage_bp | int | 对单位伤害系数;万分比;10000=1倍或100% | 必填;按业务规则校验,0不是自动继承;— |
| castle_damage_bp | int | 对城伤害系数;万分比;10000=1倍或100% | 必填;按业务规则校验,0不是自动继承;— |
| min_damage_fp | string | 命中伤害下限;定点十进制整数字符串;10000=1属性/逻辑单位 | 必填;按业务规则校验,0不是自动继承;精确解析,运行使用足够宽数值,禁止32位截断;— |
| armor_denominator_fp | string | 护甲减伤分母常数;定点十进制整数字符串;10000=1属性/逻辑单位 | 必填;按业务规则校验,0不是自动继承;精确解析,运行使用足够宽数值,禁止32位截断;— |
| damage_reduce_cap_bp | int | 减伤比例上限;万分比;10000=1倍或100% | 必填;按业务规则校验,0不是自动继承;— |
| base_attack_interval_ms | int | 基础攻击间隔;模拟毫秒 | 1500;— |
| min_attack_interval_ms | int | 最小攻击间隔;模拟毫秒 | 500;— |
02YZMode
YZBattle.xlsm · YZMode 每模式一行(YZBattle)
教学/AI/塔/试用;共享出兵,限时与结算区别由模式配置
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| time_limit_ms | int | 该模式限时;模拟毫秒 | 必填;按业务规则校验,0不是自动继承;— |
| timeout_rule | string | 超时胜负比较规则;文本/枚举 | castle_hp_ratio_loss_on_equal=比较剩余城血百分比,我方严格高才胜;tower_fail=塔超时失败;trial_end=试用结束;— |
| free_split_count | int | 新三口牌免费额度;整数 | 必填;按业务规则校验,0不是自动继承;— |
| hero_series_limit | int | 免费或可登记系列上限;整数 | 普通局登记上限;塔免费系列数;不表示最多只能有两个武将单位;— |
| series_gate_type | string | 武将系列限制规则;文本/枚举 | registered_two=普通局两系列登记不释放;board_video=塔按操作后盘面去重,第三系列视频许可;trial=试用定向;— |
| card_economy_id | int | 局内经济规则引用;整数 | 必填;按业务规则校验,0不是自动继承;YZCardEconomy.id |
| reward_id | int | 结算规则引用;整数 | 必填;按业务规则校验,0不是自动继承;YZReward.id |
| ad_rule_id | int | 广告业务规则引用;整数 | 必填;按业务规则校验,0不是自动继承;YZAdRule.id |
03YZCardShape
YZCard.xlsm · YZCardShape 每形状一行(YZCard)
8形状;方向上1右2下4左8;合法mask=3,6,9,12,7,11,13,14
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| open_mask | int | 开放边位掩码;整数 | 上1右2下4左8;合法3/6/9/12/7/11/13/14;与port_count一致;— |
| port_count | int | 开放边数量;整数 | 只允许2或3;等于open_mask置位数;— |
| base_cost | int | 基础建造点费用;整数 | 必填;按业务规则校验,0不是自动继承;— |
| view_id | int | 表现模板引用;整数 | 必填;按业务规则校验,0不是自动继承;YZView.id |
04YZLetter
YZCard.xlsm · YZLetter 每单字一行(YZCard)
12单字;姓名散字不加属性;成首将扣身份2层后其余姓名每层500万分点加生命近远攻;骑每层移动1800,攻速因子0.8+0.2H。
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| text | string | 卡牌显示文字;文本/枚举 | 必填;空值不代表自动回退;— |
| family_id | int | 武将系列编号;整数 | 0=基础字;武将字引用YZHero.id,所属系列由身份决定;— |
| effect_type | string | 效果处理器类型;文本/枚举 | 有限处理器枚举;刀/弓/盾/骑/姓名字、技能、战术、训练分别由模块注册;不接受任意函数名;— |
| weapon_id | int | 武器引用;整数 | 必填;按业务规则校验,0不是自动继承;YZWeapon.id;非武器字为0 |
| base_cost | int | 基础建造点费用;整数 | 必填;按业务规则校验,0不是自动继承;— |
| general_all_stat_bp | int | 额外将字每层生命近远攻增量;万分比;10000=1倍或100% | 500;仅已成主将且扣身份两层后的额外姓名层;未成将0;— |
| horse_move_bp | int | 首层骑移动速度增量;万分比;10000=1倍或100% | 必填;按业务规则校验,0不是自动继承;— |
| horse_speed_layer_bp | int | 骑层攻速指数增量;万分比;10000=1倍或100% | 2000;与无骑基数8000相加,不表示每秒次数;— |
| training_id | int | 训练项引用;整数 | 必填;按业务规则校验,0不是自动继承;YZTraining.id;0=不关联 |
05YZCardEconomy
YZCard.xlsm · YZCardEconomy 每费用规则一行(YZCard)
当前12000、10、2、30、5、6000、30、5、5;涨价计数属于运行时
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| quote_growth_bp | int | 建牌价格递增底数;万分比;10000=1倍或100% | 1.2记12000;价格公式及向上/向下取整沿当前经济规则;— |
| reroll_base | int | 首次换批价格;整数 | 必填;按业务规则校验,0不是自动继承;— |
| reroll_step | int | 每次换批价格增量;整数 | 必填;按业务规则校验,0不是自动继承;— |
| reroll_cap | int | 换批价格上限;整数 | 必填;按业务规则校验,0不是自动继承;— |
| natural_gain | int | 每周期恢复建造点;整数 | 必填;按业务规则校验,0不是自动继承;— |
| gain_interval_ms | int | 自然恢复周期;模拟毫秒 | 必填;按业务规则校验,0不是自动继承;— |
| resource_card_gain | int | 资源牌收益;整数 | 必填;按业务规则校验,0不是自动继承;— |
| tower_count_cap | int | 塔价格计数上限;整数 | 必填;按业务规则校验,0不是自动继承;— |
| merge_max_rank | int | 字牌最大阶数;整数 | 必填;按业务规则校验,0不是自动继承;— |
06YZCardPool
YZCard.xlsm · YZCardPool 每池及候选一行(YZCard)
抽牌类型/字类别/具体字/开口分阶段;原94%字牌、字中68%基础;三口概率模式不同
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| pool_id | int | 候选池分组编号;整数 | 表内分组键,可重复;id仍唯一;不是外键;— |
| draw_stage | string | 抽样阶段;文本/枚举 | card_type=字/资源;family=基础/武将;letter=具体字;shape=开口;每阶段分开归一化;— |
| candidate_id | int | 本阶段候选编号;整数 | 按draw_stage解释;letter引用YZLetter,shape引用YZCardShape,其余引用阶段枚举;— |
| weight | int | 相对抽样权重;整数 | 必填;按业务规则校验,0不是自动继承;— |
| condition_id | int | 使用条件引用;整数 | 必填;按业务规则校验,0不是自动继承;Condition.id;0=无额外条件 |
07YZCardScript
YZCard.xlsm · YZCardScript 每定向供牌步骤一行(YZCard)
教学与试用专用;固定顺序仍从规则扣费用
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| script_id | int | 定向供牌组编号;整数 | 必填;按业务规则校验,0不是自动继承;— |
| step_index | int | 脚本步骤顺序;整数 | 必填;按业务规则校验,0不是自动继承;— |
| letter_id | int | 单字引用;整数 | 必填;按业务规则校验,0不是自动继承;YZLetter.id |
| shape_id | int | 开口形状引用;整数 | 必填;按业务规则校验,0不是自动继承;YZCardShape.id |
| rank | int | 字牌阶数;整数 | 必填;按业务规则校验,0不是自动继承;— |
| is_recommended | int | 是否显示教学推荐;整数 | 0/1;0否1是;— |
| fallback_pool_id | int | 定向牌结束后的随机池;整数 | 必填;按业务规则校验,0不是自动继承;YZCardPool.pool_id |
08YZUnitBase
YZUnit.xlsm · YZUnitBase 每单位底板一行(YZUnit)
基础属性来自训练表;裸兵生命为盾训练×0.64,徒手为刀训练×0.4;不保留旧42/8常数。
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 身份ID;整数 | 必填,非负,明确含义,不使用0自动继承;— |
| training_hp_id | int | 盾训练引用;整数 | 必填,非负,明确含义,不使用0自动继承;YZTraining.id |
| unarmed_layer_bp | int | 无刀近攻层系数;整数 | 4000;— |
| move_speed_fp | string | 基础移动速度;定点十进制整数字符串;10000=1 | 550000,精确解析,不截成32位整数;— |
| armor_fp | string | 基础护甲;定点整数十进制字符串 | 0;— |
| view_id | int | 表现引用;整数 | 必填,非负,明确含义,不使用0自动继承;YZView.id |
09YZWeapon
YZUnit.xlsm · YZWeapon 每武器一行(YZUnit)
刀/弓训练初值15/9,射程50/220;攻击用训练表,不叠旧16/14;无弓不远攻,最低武器资格例外。
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| weapon_type | string | 近远程武器类型;文本/枚举 | melee=近战;ranged=远程;— |
| training_attribute | string | 训练属性列;枚举 | knife或bow;直接读取逐级训练值;— |
| range_fp | string | 逻辑攻击或作用范围;定点十进制整数字符串;10000=1属性/逻辑单位 | 必填;按业务规则校验,0不是自动继承;精确解析,运行使用足够宽数值,禁止32位截断;— |
| training_id | int | 训练项引用;整数 | 必填;按业务规则校验,0不是自动继承;YZTraining.id;0=不关联 |
| attack_fx_id | int | 攻击表现引用;整数 | 必填;按业务规则校验,0不是自动继承;表现事件注册表;关联fx资源键 |
| hit_fx_id | int | 受击表现引用;整数 | 必填;按业务规则校验,0不是自动继承;表现事件注册表;关联fx资源键 |
10YZCombo
YZUnit.xlsm · YZCombo 每基础组合一行(YZUnit)
刀盾C1、额外近攻+.50、33%固定减伤;骑射C1.5、攻频1、射程320。
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 组合ID;整数 | 必填,非负,明确含义,不使用0自动继承;— |
| recipe_letter_ids | int[] | 配方字ID;整数 | 必填,非负,明确含义,不使用0自动继承;— |
| recipe_counts | int[] | 配方层数;整数 | 必填,非负,明确含义,不使用0自动继承;— |
| priority | int | 首次成型锁定次序;整数 | 必填,非负,明确含义,不使用0自动继承;— |
| damage_bp | int | 身份攻击系数;万分比 | 刀盾10000,骑射15000;— |
| melee_extra_bp | int | 近攻层系数额外加法;万分比 | 刀盾5000,骑射0;首次成型即生效;— |
| ranged_extra_bp | int | 远攻层系数额外加法;万分比 | 均0;— |
| attack_rate_bp | int | 身份攻频倍率;万分比 | 均10000;— |
| range_fp | string | 射程;10000=1逻辑距离 | 骑射3200000;其他按武器;— |
| damage_reduction_bp | int | 固定减伤;万分比 | 刀盾3300,骑射0;非免疫概率;— |
| carry_flags | string | 成将可继承标记;整数 | fixed_reduction或range;不继承攻击/攻频;— |
| view_id | int | 表现引用;整数 | 必填,非负,明确含义,不使用0自动继承;YZView.id |
11YZHero
YZHero.xlsm · YZHero 每武将系列一行(YZHero)
四将系数与技能见v6.0;张飞生命为加法+0.80;首次身份消耗姓名各1层,额外将字才加属性。
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| name | string | 显示名称;文本/枚举 | 必填;空值不代表自动回退;— |
| recipe_letter_ids | int | 配方所需字编号;非负整数列表;分号分隔 | 必填;按业务规则校验,0不是自动继承;YZLetter.id逐项引用 |
| recipe_counts | int | 配方各字所需数量;非负整数列表;分号分隔 | 与recipe_letter_ids等长且每项>0;— |
| min_knife_layers | int | 身份自带的最低有效刀层;整数 | 身份有效层下限,不增加界面真实字层;当前有效层=max(真实层,下限);— |
| min_bow_layers | int | 身份自带的最低有效弓层;整数 | 身份有效层下限,不增加界面真实字层;当前有效层=max(真实层,下限);— |
| damage_bp | int | 伤害倍率;万分比;10000=1倍或100% | 必填;按业务规则校验,0不是自动继承;— |
| attack_rate_bp | int | 形态攻击频率倍率;万分比;10000=1倍或100% | 必填;按业务规则校验,0不是自动继承;— |
| hp_extra_bp | int | 生命平方项外额外加法;万分比 | 张飞8000,其他0;不是生命整体倍率;— |
| range_fp | string | 逻辑攻击或作用范围;定点十进制整数字符串;10000=1属性/逻辑单位 | 必填;按业务规则校验,0不是自动继承;精确解析,运行使用足够宽数值,禁止32位截断;— |
| skill_ids | int | 技能引用列表;非负整数列表;分号分隔 | 必填;按业务规则校验,0不是自动继承;YZSkill.id逐项引用 |
| star_group | int | 武将星级规则组;整数 | 必填;按业务规则校验,0不是自动继承;YZHeroStar.star_group |
| view_id | int | 表现模板引用;整数 | 必填;按业务规则校验,0不是自动继承;YZView.id |
12YZSkill
YZHero.xlsm · YZSkill 每技能一行(YZHero)
显式实现4将和精英有限技能,不开发通用脚本语言;技能副目标独立结伤
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| effect_type | string | 效果处理器类型;文本/枚举 | 有限处理器枚举;刀/弓/盾/骑/姓名字、技能、战术、训练分别由模块注册;不接受任意函数名;— |
| trigger_weapon | string | 技能计数使用的武器;文本/枚举 | melee=近战计数;ranged=远程计数;none=非命中计数;— |
| hit_count | int | 触发技能所需命中计数;整数 | 必填;按业务规则校验,0不是自动继承;— |
| cooldown_ms | int | 冷却时长;模拟毫秒 | 时钟由业务类型明确:战斗技能为模拟;广告按cooldown_clock;— |
| target_type | string | 技能目标类型;文本/枚举 | self=自身;enemy_unit=敌单位;ally_unit=友单位;castle=城池;area=范围,结合can_hit_castle;— |
| extra_target_count | int | 主目标之外的目标上限;整数 | 必填;按业务规则校验,0不是自动继承;— |
| range_fp | string | 逻辑攻击或作用范围;定点十进制整数字符串;10000=1属性/逻辑单位 | 必填;按业务规则校验,0不是自动继承;精确解析,运行使用足够宽数值,禁止32位截断;— |
| damage_bp | int | 伤害倍率;万分比;10000=1倍或100% | 必填;按业务规则校验,0不是自动继承;— |
| duration_ms | int | 效果持续时间;模拟毫秒 | 必填;按业务规则校验,0不是自动继承;— |
| resist_ms | int | 控制共享抗性时长;模拟毫秒 | 必填;按业务规则校验,0不是自动继承;— |
| can_hit_castle | int | 技能是否可命中城池;整数 | 0/1;0否1是;— |
| fx_id | int | 动效资源引用;整数 | 必填;按业务规则校验,0不是自动继承;表现事件注册表;关联fx资源键 |
13YZLevel
YZLevel.xlsm · YZLevel 每教学场一行(YZLevel)
前20保留地图/路线/地形教学;1—4用原教学敌军构筑与波次,5场起用预算AI;全部普通属性/双方城血/奖励读新表,16场不固定姓名供牌。
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| name | string | 显示名称;文本/枚举 | 必填;空值不代表自动回退;— |
| board_id | int | 地图引用;整数 | 必填;按业务规则校验,0不是自动继承;YZBoard.id |
| difficulty_id | int | 挑战参数引用;整数 | 必填;按业务规则校验,0不是自动继承;YZDifficulty.id |
| mode_id | int | 玩法模式引用;整数 | 必填;按业务规则校验,0不是自动继承;YZMode.id |
| guide_group | int | 新手引导组;整数 | 必填;按业务规则校验,0不是自动继承;Guide引导组;0=无 |
| card_script_id | int | 定向供牌脚本组引用;整数 | 必填;按业务规则校验,0不是自动继承;YZCardScript.script_id |
| card_pool_id | int | 随机供牌池引用;整数 | 必填;按业务规则校验,0不是自动继承;YZCardPool.pool_id |
| next_level_id | int | 下个教学场引用;整数 | 必填;按业务规则校验,0不是自动继承;YZLevel.id;末场为0进入匹配 |
14YZDifficulty
YZLevel.xlsm · YZDifficulty 每挑战参数组一行(YZLevel)
塔和试用独立的城血、资源、波次预算;普通对战改用YZNumericDifficulty。
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| ally_castle_hp_fp | string | 我方城池最大生命;定点十进制整数字符串;10000=1属性/逻辑单位 | 必填;按业务规则校验,0不是自动继承;精确解析,运行使用足够宽数值,禁止32位截断;— |
| enemy_castle_hp_fp | string | 敌方城池最大生命;定点十进制整数字符串;10000=1属性/逻辑单位 | 必填;按业务规则校验,0不是自动继承;精确解析,运行使用足够宽数值,禁止32位截断;— |
| initial_build_point | int | 开局建造点;整数 | 必填;按业务规则校验,0不是自动继承;— |
| wave_group_id | int | 波次组引用;整数 | 必填;按业务规则校验,0不是自动继承;YZEnemyWave.wave_group_id |
| reward_id | int | 结算规则引用;整数 | 必填;按业务规则校验,0不是自动继承;YZReward.id |
| pressure_tag | string | 压力定位标签;文本/枚举 | 必填;空值不代表自动回退;— |
15YZBoard
YZLevel.xlsm · YZBoard 每地图一行(YZLevel)
6×6;0—2石头;坐标0起;不预铺路线
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| width | int | 棋盘列数;整数 | 固定棋盘6列;坐标0至5;— |
| height | int | 棋盘行数;整数 | 固定棋盘6行;坐标0至5;— |
| camp_x | int | 营地列坐标;整数 | 必填;按业务规则校验,0不是自动继承;— |
| camp_y | int | 营地行坐标;整数 | 必填;按业务规则校验,0不是自动继承;— |
| camp_dir | int | 营地初始方向;整数 | 0上 / 1右 / 2下 / 3左;— |
| obstacle_pool_id | int | 障碍候选池;整数 | 必填;按业务规则校验,0不是自动继承;YZBoardObstacle.pool_id;0=无 |
| obstacle_count_weights | int | 零一二个障碍的数量权重;非负整数列表;分号分隔 | 必须3项依次表示0、1、2个石头;非负且总和大于0;— |
| view_id | int | 表现模板引用;整数 | 必填;按业务规则校验,0不是自动继承;YZView.id |
16YZBoardObstacle
YZLevel.xlsm · YZBoardObstacle 每候选阻挡格一行(YZLevel)
不占营地;按种子生成并校验可玩性;营地和格坐标不是美术像素
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| pool_id | int | 候选池分组编号;整数 | 表内分组键,可重复;id仍唯一;不是外键;— |
| x | int | 列坐标;整数 | 必填;按业务规则校验,0不是自动继承;— |
| y | int | 行坐标;整数 | 必填;按业务规则校验,0不是自动继承;— |
| weight | int | 相对抽样权重;整数 | 必填;按业务规则校验,0不是自动继承;— |
| kind | string | 障碍物类型;文本/枚举 | rock=不可放牌与通行的石头;— |
17YZEnemyPreset
YZEnemy.xlsm · YZEnemyPreset 每敌军构筑一行(YZEnemy)
构筑模式调用同一属性计算器;字层与主形态显示规则同我方
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| build_mode | string | 敌军属性生成模式;文本/枚举 | build=按字层与成长计算;explicit=教学最终面板;两种模式互斥;— |
| unit_id | int | 单位底板引用;整数 | 必填;按业务规则校验,0不是自动继承;YZUnitBase.id |
| letter_ids | int | 真实字种列表;非负整数列表;分号分隔 | 必填;按业务规则校验,0不是自动继承;YZLetter.id逐项引用 |
| letter_layers | int | 真实字层数列表;非负整数列表;分号分隔 | 与letter_ids等长,每项>0;不重复字种ID;— |
| evolution_order | int | 基础组合完成先后;非负整数列表;分号分隔 | YZCombo.id列表,先成型在前;不与hero_id抢同一身份;— |
| hero_id | int | 武将引用;整数 | 必填;按业务规则校验,0不是自动继承;YZHero.id;0=无身份指定 |
| training_levels | int | 刀弓盾骑训练等级列表;非负整数列表;分号分隔 | 必须4项,依次刀/弓/盾/骑;合法1至30;— |
| star | int | 当前星级;整数 | 必填;按业务规则校验,0不是自动继承;— |
| explicit_stats_id | int | 显式属性覆盖引用;整数 | 必填;按业务规则校验,0不是自动继承;YZEnemyExplicit.id;构筑模式为0 |
18YZEnemyExplicit
YZEnemy.xlsm · YZEnemyExplicit 每教学覆盖一行(YZEnemy)
仅塔精英/独立试用明确面板;普通新手不再沿历史显式面板。显式面板不重乘字层,命中目标倍率1。
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| hp_fp | string | 显式最大生命;定点十进制整数字符串;10000=1属性/逻辑单位 | 必填;按业务规则校验,0不是自动继承;精确解析,运行使用足够宽数值,禁止32位截断;— |
| melee_damage_fp | string | 显式近战面板伤害;定点十进制整数字符串;10000=1属性/逻辑单位 | 必填;按业务规则校验,0不是自动继承;精确解析,运行使用足够宽数值,禁止32位截断;— |
| ranged_damage_fp | string | 显式远程面板伤害;定点十进制整数字符串;10000=1属性/逻辑单位 | 必填;按业务规则校验,0不是自动继承;精确解析,运行使用足够宽数值,禁止32位截断;— |
| attack_rate_fp | string | 每秒攻击次数;定点十进制整数字符串;10000=1属性/逻辑单位 | 必填;按业务规则校验,0不是自动继承;精确解析,运行使用足够宽数值,禁止32位截断;— |
| move_speed_fp | string | 逻辑移动速度;定点十进制整数字符串;10000=1属性/逻辑单位 | 必填;按业务规则校验,0不是自动继承;精确解析,运行使用足够宽数值,禁止32位截断;— |
| armor_fp | string | 基础护甲;定点十进制整数字符串;10000=1属性/逻辑单位 | 必填;按业务规则校验,0不是自动继承;精确解析,运行使用足够宽数值,禁止32位截断;— |
| damage_reduction_bp | int | 固定减伤比例;万分比 | 默认0;刀盾3300;不使用随机免疫;— |
| range_fp | string | 逻辑攻击或作用范围;定点十进制整数字符串;10000=1属性/逻辑单位 | 必填;按业务规则校验,0不是自动继承;精确解析,运行使用足够宽数值,禁止32位截断;— |
| display_letter_ids | int | 只用于显示的文字编号;非负整数列表;分号分隔 | 必填;按业务规则校验,0不是自动继承;YZLetter.id逐项引用 |
| display_layers | int | 只用于显示的字层数;非负整数列表;分号分隔 | 与display_letter_ids等长;显式模式仅展示,不再用于属性计算;— |
19YZEnemyWave
YZEnemy.xlsm · YZEnemyWave 每波单位组一行(YZEnemy)
用于获批的前1—4教学、塔和独立试用;普通第5场起用YZAIProfile,9秒整周期按时间段预算连续生成。
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| wave_group_id | int | 波次组引用;整数 | 必填;按业务规则校验,0不是自动继承;YZEnemyWave.wave_group_id |
| wave_index | int | 组内波次序号;整数 | 必填;按业务规则校验,0不是自动继承;— |
| scheduled_ms | int | 波次计划出场时刻;模拟毫秒 | 从本局/本层开始累计的模拟毫秒,非真实墙钟;— |
| preset_id | int | 敌军构筑引用;整数 | 必填;按业务规则校验,0不是自动继承;YZEnemyPreset.id |
| count | int | 本组单位数量;整数 | 必填;按业务规则校验,0不是自动继承;— |
| spacing_ms | int | 波内单位间隔;模拟毫秒 | 必填;按业务规则校验,0不是自动继承;— |
| trigger_type | string | 波次触发逻辑;文本/枚举 | time=达到计划时刻;其他触发需明确阈值单位并注册处理器;不填未实现名;— |
| trigger_value | int | 触发阈值;整数 | 必填;按业务规则校验,0不是自动继承;— |
| spawn_side | string | 出兵阵营侧;文本/枚举 | ally=我方城侧;enemy=敌方城侧;禁止在目标背后随机刷新;— |
20YZMatch
YZMatch.xlsm · YZMatch 每AI档一行(YZMatch)
展示分数不放大敌属性;有效胜场决定内部难度,失败不退;调试独立,不推进正式记录。
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 匹配定义ID;整数 | 必填,非负,明确含义,不使用0自动继承;— |
| name_pool_id | int | 展示昵称池;整数 | 必填,非负,明确含义,不使用0自动继承;YZNamePool.pool_id |
| score_delta_min | int | 展示分数偏移下限;整数 | -100;— |
| score_delta_max | int | 展示分数偏移上限;整数 | 100;— |
| score_floor | int | 展示最低分;整数 | 0;— |
| peak_backtrack | int | 展示中心历史回落值;整数 | 300;— |
| difficulty_cap | int | 难度上限;整数 | 163;— |
| initial_build_point | int | 非固定地图初始建造点;整数 | 180;— |
21YZNamePool
YZMatch.xlsm · YZNamePool 每昵称候选一行(YZMatch)
模拟对手昵称池;匹配引用pool_id;不伪造真人在线状态
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| pool_id | int | 候选池分组编号;整数 | 表内分组键,可重复;id仍唯一;不是外键;— |
| name | string | 显示名称;文本/枚举 | 必填;空值不代表自动回退;— |
| weight | int | 相对抽样权重;整数 | 必填;按业务规则校验,0不是自动继承;— |
22YZRank
YZMatch.xlsm · YZRank 每小段一行及无双规则(YZMatch)
初始50小段;末端无双使用公式编号;首次奖励和最高分由服务器维护
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| score_min | int | 积分区间下界;整数 | 必填;按业务规则校验,0不是自动继承;— |
| score_max | int | 积分区间上界;整数 | 建议区间[score_min,score_max),末段-1表示无上界;与当前匹配边界逐段对账;— |
| name | string | 显示名称;文本/枚举 | 必填;空值不代表自动回退;— |
| view_id | int | 表现模板引用;整数 | 必填;按业务规则校验,0不是自动继承;YZView.id |
| first_reward_id | int | 首次奖励规则引用;整数 | 必填;按业务规则校验,0不是自动继承;YZReward.id;0=无 |
23YZTraining
YZGrowth.xlsm · YZTraining 每训练项一行(YZGrowth)
四项独立1—163级;逐级属性读取实际表值,不使用统一1.05或骑伤害成长。
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 训练ID;整数 | 必填,非负,明确含义,不使用0自动继承;— |
| letter_id | int | 基础字ID;整数 | 必填,非负,明确含义,不使用0自动继承;YZLetter.id |
| max_level | int | 等级上限;整数 | 163;— |
| attribute_key | string | 属性名;整数 | knife/bow/shield/horse;骑是攻速指数;— |
| unlock_effective_wins | int | 解锁有效胜场;整数 | 1;— |
24YZTrainingLevel
YZGrowth.xlsm · YZTrainingLevel 每项目每级一行(YZGrowth)
J行价为J→J+1;四项费用加总,不用原K覆盖;保留十级回落。
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 项目等级唯一ID;整数 | 必填,非负,明确含义,不使用0自动继承;— |
| training_id | int | 训练ID;整数 | 必填,非负,明确含义,不使用0自动继承;YZTraining.id |
| level | int | 当前等级;整数 | 1..163;— |
| attribute_value | string | 当前实际属性;十进制整数;原表缓存值 | 正值,按M/O/Q/S;不可重复推算增长;— |
| cost_item_id | int | 升级消耗金币ID;整数 | 必填,非负,明确含义,不使用0自动继承;— |
| cost_count | int | 本级升下级金币;整数 | N/P/R/T实值;163级不得升级或扣费;— |
25YZHeroStar
YZGrowth.xlsm · YZHeroStar 每星级一行(YZGrowth)
1—5星,1/1.05/1.10/1.15/1.20;10/20/40/80费用;片种由武将引用
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| star_group | int | 武将星级规则组;整数 | 必填;按业务规则校验,0不是自动继承;YZHeroStar.star_group |
| star | int | 当前星级;整数 | 必填;按业务规则校验,0不是自动继承;— |
| damage_bp | int | 伤害倍率;万分比;10000=1倍或100% | 必填;按业务规则校验,0不是自动继承;— |
| hp_bp | int | 生命倍率;万分比;10000=1倍或100% | 必填;按业务规则校验,0不是自动继承;— |
| next_fragment_count | int | 升至下一星的碎片数量;整数 | 当前星升下一星消耗,满星为0且升级入口禁用;— |
26YZRecruitDefine
YZRecruit.xlsm · YZRecruitDefine 每池规则一行(YZRecruit)
1签、10抽保底、重复10片;免费赵云不进普通保底计数
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| ticket_item_id | int | 招募券道具引用;整数 | 必填;按业务规则校验,0不是自动继承;Item.id |
| cost_per_draw | int | 每次招募消耗数量;整数 | 必填;按业务规则校验,0不是自动继承;— |
| pity_count | int | 稀有保底抽数;整数 | 必填;按业务规则校验,0不是自动继承;— |
| duplicate_fragment_count | int | 重复武将转碎片数量;整数 | 必填;按业务规则校验,0不是自动继承;— |
| free_first_hero_id | int | 免费首募武将引用;整数 | 必填;按业务规则校验,0不是自动继承;YZHero.id |
| common_group_weight | int | 普通分组权重;整数 | 必填;按业务规则校验,0不是自动继承;— |
| rare_group_weight | int | 稀有分组权重;整数 | 必填;按业务规则校验,0不是自动继承;— |
| unlock_effective_wins | int | 招募开放有效胜场;胜 | 50;免费首募赵云必须先完成;— |
27YZRecruitPool
YZRecruit.xlsm · YZRecruitPool 每武将候选一行(YZRecruit)
普通赵云85%组、稀有15%组;组内资格过滤;满材料移池;全满停抽
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| pool_id | int | 候选池分组编号;整数 | 表内分组键,可重复;id仍唯一;不是外键;— |
| group_type | string | 招募候选分组;文本/枚举 | common=普通;rare=稀有;— |
| hero_id | int | 武将引用;整数 | 必填;按业务规则校验,0不是自动继承;YZHero.id;0=无身份指定 |
| fragment_item_id | int | 专属碎片道具引用;整数 | 必填;按业务规则校验,0不是自动继承;Item.id |
| weight | int | 相对抽样权重;整数 | 必填;按业务规则校验,0不是自动继承;— |
| condition_id | int | 使用条件引用;整数 | 必填;按业务规则校验,0不是自动继承;Condition.id;0=无额外条件 |
28YZReward
YZReward.xlsm · YZReward 每结算规则或里程碑一行(YZReward)
普通按本局冻结难度计奖;放弃/未完成/无造兵/前4免费败0;失败180秒满额;塔不混用。
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 结算规则ID;整数 | 必填,非负,明确含义,不使用0自动继承;— |
| mode_id | int | 模式;整数 | 必填,非负,明确含义,不使用0自动继承;YZMode.id |
| result_type | string | 结果;整数 | win/natural_loss/abandon/incomplete/tower_floor;— |
| formula_type | string | 公式;整数 | 普通胜奖读难度B;自然败min(t,180)/180;塔单独逐层;— |
| time_denominator_ms | int | 自然失败满额时长;模拟毫秒 | 180000;— |
| failure_cap_bp | int | 自然失败封顶;万分比 | 10000;— |
| requires_actual_spawn | int | 要求实际造兵;布尔 | 普通自然失败1;— |
| free_tutorial_loss_zero | int | 前4免费教学败奖0;布尔 | 1;— |
| ad_total_multiplier_bp | int | 含基础的广告总倍数;万分比 | 20000;基础已付只补同额;— |
| item_ids | int[] | 物品ID;整数 | 必填,非负,明确含义,不使用0自动继承;— |
| item_counts | int[] | 物品量;整数 | 必填,非负,明确含义,不使用0自动继承;— |
| first_only | int | 首次限定;整数 | 必填,非负,明确含义,不使用0自动继承;— |
| condition_id | int | 条件引用;整数 | 必填,非负,明确含义,不使用0自动继承;— |
29YZAdRule
YZReward.xlsm · YZAdRule 每模式广告规则一行(YZReward)
引用Ads;新增系列/三口许可、资源补给和结算加奖分别走业务处理器
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| mode_id | int | 玩法模式引用;整数 | 必填;按业务规则校验,0不是自动继承;YZMode.id |
| placement_id | int | 平台广告位配置引用;整数 | 必填;按业务规则校验,0不是自动继承;Ads.id |
| reward_type | string | 广告业务收益类型;文本/枚举 | build_point=建造点;reroll=换批;split_license=三口许可;series_license=系列许可;settlement=结算加奖;stamina=体力;tower_entry=塔入场;— |
| reward_count | int | 单次奖励数量;整数 | 必填;按业务规则校验,0不是自动继承;— |
| free_count | int | 本规则免费次数;整数 | 必填;按业务规则校验,0不是自动继承;— |
| limit_scope | string | 次数重置范围;文本/枚举 | battle=本局;tower_run=本次塔;day=业务日;account=永久;— |
| cooldown_clock | string | 冷却使用的时间类型;文本/枚举 | simulation=模拟时间;foreground=前台真实时间;server=服务器真实时间;— |
| needs_build_cost | int | 视频许可后是否仍需建造点;整数 | 0/1;卡牌许可为1,新购仍扣冻结价格;已购重摆不再次收费;— |
30YZTowerDefine
YZTower.xlsm · YZTowerDefine 单行(YZTower)
当前150、600、60、50、30、10600、10300、3、5;保留全局生产与移动
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| mode_id | int | 玩法模式引用;整数 | 必填;按业务规则校验,0不是自动继承;YZMode.id |
| initial_build_point | int | 开局建造点;整数 | 必填;按业务规则校验,0不是自动继承;— |
| ally_castle_hp_fp | string | 我方城池最大生命;定点十进制整数字符串;10000=1属性/逻辑单位 | 必填;按业务规则校验,0不是自动继承;精确解析,运行使用足够宽数值,禁止32位截断;— |
| repair_per_floor_fp | string | 过层修城上限;定点十进制整数字符串;10000=1属性/逻辑单位 | 必填;按业务规则校验,0不是自动继承;精确解析,运行使用足够宽数值,禁止32位截断;— |
| build_gain | int | 过层补充建造点;整数 | 必填;按业务规则校验,0不是自动继承;— |
| fixed_floor_max | int | 固定配置层数上限;整数 | 必填;按业务规则校验,0不是自动继承;— |
| post_hp_growth_bp | int | 固定层结束后每层生命成长;万分比;10000=1倍或100% | 必填;按业务规则校验,0不是自动继承;— |
| post_attack_growth_bp | int | 固定层结束后每层攻击成长;万分比;10000=1倍或100% | 必填;按业务规则校验,0不是自动继承;— |
| tactic_slots | int | 装备战术槽位数;整数 | 必填;按业务规则校验,0不是自动继承;— |
| tactic_interval | int | 战术选择层间隔;整数 | 必填;按业务规则校验,0不是自动继承;— |
31YZTowerFloor
YZTower.xlsm · YZTowerFloor 每固定层一行(YZTower)
前30层固定;31后按定义计算;不重新随机破坏已铺地图
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| board_id | int | 地图引用;整数 | 必填;按业务规则校验,0不是自动继承;YZBoard.id |
| difficulty_id | int | 挑战参数引用;整数 | 必填;按业务规则校验,0不是自动继承;YZDifficulty.id |
| elite_id | int | 精英引用;整数 | 必填;按业务规则校验,0不是自动继承;YZElite.id;0=无精英 |
| reward_id | int | 结算规则引用;整数 | 必填;按业务规则校验,0不是自动继承;YZReward.id |
| milestone_reward_id | int | 里程碑奖励引用;整数 | 必填;按业务规则校验,0不是自动继承;YZReward.id;0=无 |
32YZElite
YZTower.xlsm · YZElite 每精英一行(YZTower)
甲卫、冲车、旗手替换该层首人,不额外叠一队
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| name | string | 显示名称;文本/枚举 | 必填;空值不代表自动回退;— |
| unit_id | int | 单位底板引用;整数 | 必填;按业务规则校验,0不是自动继承;YZUnitBase.id |
| skill_ids | int | 技能引用列表;非负整数列表;分号分隔 | 必填;按业务规则校验,0不是自动继承;YZSkill.id逐项引用 |
| view_id | int | 表现模板引用;整数 | 必填;按业务规则校验,0不是自动继承;YZView.id |
| replace_first_spawn | int | 精英是否替换首个出兵;整数 | 0/1;0否1是;— |
33YZTactic
YZTower.xlsm · YZTactic 每战术一行(YZTower)
8战术;数值类型互斥;下一层生效,旧战术先算清层奖
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| name | string | 显示名称;文本/枚举 | 必填;空值不代表自动回退;— |
| category | string | 战术分类;文本/枚举 | economy=经济;offense=进攻;defense=防御(建议枚举,按8战术映射冻结);— |
| effect_type | string | 效果处理器类型;文本/枚举 | 有限处理器枚举;刀/弓/盾/骑/姓名字、技能、战术、训练分别由模块注册;不接受任意函数名;— |
| target_type | string | 技能目标类型;文本/枚举 | self=自身;enemy_unit=敌单位;ally_unit=友单位;castle=城池;area=范围,结合can_hit_castle;— |
| value_bp | int | 比例效果数值;万分比;10000=1倍或100% | 仅比例类效果使用,value_count须0;0代表该比例未使用;— |
| value_count | int | 整数效果数值;整数 | 仅整数类效果使用,value_bp须0;不可两列同时叠加;— |
| condition_id | int | 使用条件引用;整数 | 必填;按业务规则校验,0不是自动继承;Condition.id;0=无额外条件 |
| view_id | int | 表现模板引用;整数 | 必填;按业务规则校验,0不是自动继承;YZView.id |
34YZView
YZView.xlsm · YZView 每表现模板一行(config/client/YZView)
兵种、武将、卡、塔精英复用;美术仅改表现,不覆盖攻击距离或命中时刻
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 记录唯一编号;整数 | 唯一正整数,不能复用已发布ID;— |
| main_text | string | 单位表现主字;文本/枚举 | 必填;空值不代表自动回退;— |
| font_key | string | 字体资源键;文本/枚举 | font_title/font_body/font_battle等已注册资源键;— |
| ally_palette | string | 我方颜色方案键;文本/枚举 | 引用mat_ally等已注册配色方案;不可影响攻击;— |
| enemy_palette | string | 敌方颜色方案键;文本/枚举 | 引用mat_enemy;血条/底标保持敌方身份;— |
| hero_palette | string | 武将主字颜色方案键;文本/枚举 | 引用mat_hero;主字赭金,阵营标记独立;— |
| prefab_key | string | 表现Prefab资源键;文本/枚举 | 引用资源清单resource_key;不填本机绝对路径;— |
| fx_group_id | int | 表现事件组引用;整数 | 必填;按业务规则校验,0不是自动继承;表现事件注册组 |
| audio_group_id | int | 音频事件组引用;整数 | 必填;按业务规则校验,0不是自动继承;音频事件注册组 |
35YZNumericDifficulty
YZNumeric.xlsm · 20261027 数值迁移配置
普通163档;敌城Q(C)×F,我城Q(玩家盾训练)×F;1—4用tutorial AI并保留E列来源值,5—163用E列budget AI,163后复用末档。
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 内部难度A;整数 | 1..163;— |
| win_reward | int | 胜奖B;整数 | 必填,非负,明确含义,不使用0自动继承;— |
| target_training_level | int | 对标训练C;整数 | 1..163;YZTrainingLevel.level |
| kind | int | 类型D;整数 | 0福利/1验证/3卡点,不用类型重新计算C;— |
| growth_delta | int | 原对标等级增长增量;整数 | 独立保存,不由类型推断;— |
| ai_profile_id | int | 原表AI组E;整数 | 原值保留;第1—4场仅来源追溯,运行tutorial AI;第5—163场引用本组budget AI;YZAIProfile.profile_id |
| castle_multiplier | int | 城系数F;倍数 | 必填,非负,明确含义,不使用0自动继承;— |
36YZAIProfile
YZNumeric.xlsm · 20261027 数值迁移配置
第5—163场使用;84段原表,0/10/20/30/50/80/120边界,左闭右开;首波9秒,每波多兵同时出;三个余数流独立且跨段保留。前1—4场不套此预算;未引用组不启用。
| 字段 | 类型 | 含义与单位 | 校验与引用 |
|---|---|---|---|
| id | int | 分段唯一ID;整数 | 必填,非负,明确含义,不使用0自动继承;— |
| profile_id | int | 组ID;整数 | 1/2/3/11/12/13/21/22/23/31/32/33;— |
| start_ms | int | 含起点;模拟毫秒 | 必填,非负,明确含义,不使用0自动继承;— |
| end_ms | int | 不含终点;模拟毫秒 | 末段用-1表示到本局结束;— |
| interval_ms | int | 波间隔;模拟毫秒 | 9000;跨段不重置;— |
| soldiers_milli | int | Z每波兵数;1000=1人 | 小数累计余数分配相邻整数;— |
| basic_letters_milli | int | AA每兵基础字预算;1000=1字 | 先基础字;50%组合取向;其余四字等权;— |
| name_letters_milli | int | AB每兵姓名总预算;1000=1字 | 含身份两字;四将等权;余姓名为将;— |