来源:JOURNAL.LAYOUT,110 个不同字段;286 项枚举,入口 0x7B7430。
本表是静态取证,不代表对应玩法已在 Godot 实现。算法与符号见计算公式,完成情况见移植状态。
记号:S 为原版 getStat 查询,T 为向零截断,C 为 ceil,F 为 float32 落点,G 为原版曲线;d=6 是 All,d=7 是不筛伤害类型。
| 枚举 | 原版字段 | 公式/取值 | 显示格式 | 证据状态 |
|---|---|---|---|---|
| 9 | HP REGEN | T(GLOBAL.HP_RECHARGE_RATE + S(7)) + T(S(124)) | 整数 | 静态公式已确认 |
| 13 | MANA REGEN | F(S(6) + S(123)) | 原版浮点 1 位 | 静态公式已确认 |
| 14 | MANA REGEN BASE | GLOBAL.MANA_RECHARGE_RATE | 原版浮点 1 位 | 静态公式已确认 |
| 26 | CHARACTER AC MAX | PhysicalArmor(U) | 整数 | 静态公式已确认 |
| 27 | CHARACTER STRENGTH | base + C(base * S(71) * p) + C(S(69)) | 整数 | 静态公式已确认 |
| 28 | CHARACTER STRENGTH BASE | i32(U+0x578) | 整数 | 静态公式已确认 |
| 29 | CHARACTER STRENGTH EQUIPPED | T(S(69)) | 整数 | 静态公式已确认 |
| 30 | CHARACTER STRENGTH PERCENT BONUS | S(71) | 原版浮点 1 位 | 静态公式已确认 |
| 31 | CHARACTER DEXTERITY | base + C(base * S(72) * p) + C(S(70)) | 整数 | 静态公式已确认 |
| 32 | CHARACTER DEXTERITY BASE | i32(U+0x574) | 整数 | 静态公式已确认 |
| 33 | CHARACTER DEXTERITY EQUIPPED | T(S(70)) | 整数 | 静态公式已确认 |
| 34 | CHARACTER DEXTERITY PERCENT BONUS | S(72) | 原版浮点 1 位 | 静态公式已确认 |
| 35 | CHARACTER MAGIC | base + C(base * S(18) * p) + C(S(3)) | 整数 | 静态公式已确认 |
| 36 | CHARACTER MAGIC BASE | i32(U+0x580) | 整数 | 静态公式已确认 |
| 37 | CHARACTER MAGIC EQUIPPED | T(S(3)) | 整数 | 静态公式已确认 |
| 38 | CHARACTER MAGIC PERCENT BONUS | S(18) | 原版浮点 1 位 | 静态公式已确认 |
| 39 | CHARACTER DEFENSE | base + C(base * S(17) * p) + C(S(2)) | 整数 | 静态公式已确认 |
| 40 | CHARACTER DEFENSE BASE | i32(U+0x57c) | 整数 | 静态公式已确认 |
| 41 | CHARACTER DEFENSE EQUIPPED | T(S(2)) | 整数 | 静态公式已确认 |
| 42 | CHARACTER DEFENSE PERCENT BONUS | S(17) | 原版浮点 1 位 | 静态公式已确认 |
| 45 | CHARACTER CRIT CHANCE | min(100, C(BaseCrit(U) + F(S(55)))) | 整数 | 静态公式已确认 |
| 46 | CHARACTER FUMBLE CHANCE | T(100 - clamp(100 - (F(G(FUMBLE_CHANCE,0)) - C(S(179))),0,100)) | 整数 | 静态公式已确认 |
| 47 | CHARACTER FUMBLE DMG PENALTY | T(100 * (1 - clamp(F((F(G(FUMBLE_DAMAGE,effective DEX)) + C(S(180))) * p),0,1))) | 整数 | 静态公式已确认 |
| 48 | CHARACTER BLOCK CHANCE | left shield ? T(min(75,F(S(62)+S(33)+clamp(G(BLOCK_CHANCE,effective DEF),0,100)))) : 0 | 整数 | 静态公式已确认 |
| 49 | CHARACTER CRIT DMG BONUS | C(F(clamp(F(G(CRIT_BONUS,effective STR)+S(89)+50),0,500))) | 整数 | 静态公式已确认 |
| 50 | CHARACTER ATK SPD BONUS | T(S(22)) | 整数 | 静态公式已确认 |
| 51 | CHARACTER CAST SPD BONUS | T(S(29)) | 整数 | 静态公式已确认 |
| 52 | CHARACTER RUN SPEED | slow = clamp(F(S(21)),-100,300); if slow<0: slow *= 1-clamp(F(S(140)p),0,1); S(196)>0 ? 0 : max(0,F((1+slowp)*f32(U+0x2a0))) | 原版浮点 1 位 | 静态公式已确认 |
| 53 | CHARACTER TIME PLAYED | HH:MM:SS(f32(Player+0x360)) | 时:分:秒 | 已确认保存字段读取 |
| 54 | CHARACTER TIMES KILLED | i32(Player+0x980) | 整数 | 已确认保存字段读取 |
| 55 | CHARACTER POTIONS DRANK | i32(Player+0x99c) | 整数 | 已确认保存字段读取 |
| 56 | CHARACTER MONSTERS KILLED | i32(Player+0x984) | 整数 | 已确认保存字段读取 |
| 57 | CHARACTER GOLD GATHERED | i32(Player+0x970) | 整数 | 已确认保存字段读取 |
| 59 | CHARACTER STEPS TAKEN | i32(Player+0x978) | 整数 | 已确认保存字段读取 |
| 60 | CHARACTER QUESTS COMPLETED | i32(Player+0x97c) | 整数 | 已确认保存字段读取 |
| 61 | CHARACTER CHAMPIONS KILLED | i32(Player+0x988) | 整数 | 已确认保存字段读取 |
| 62 | CHARACTER SPELLS CAST | i32(Player+0x98c) | 整数 | 已确认保存字段读取 |
| 63 | CHARACTER CHESTS OPENED | i32(Player+0x990) | 整数 | 已确认保存字段读取 |
| 64 | CHARACTER TRAPS SPRUNG | i32(Player+0x994) | 整数 | 已确认保存字段读取 |
| 65 | CHARACTER BARRELS BROKEN | i32(Player+0x998) | 整数 | 已确认保存字段读取 |
| 66 | CHARACTER PORTALS USED | i32(Player+0x9a0) | 整数 | 已确认保存字段读取 |
| 67 | CHARACTER FISH CAUGHT | i32(Player+0x9a4) | 整数 | 已确认保存字段读取 |
| 68 | CHARACTER TIMES GAMBLED | i32(Player+0x9a8) | 整数 | 已确认保存字段读取 |
| 69 | CHARACTER ITEMS TRANSMUTED | i32(Player+0x9ac) | 整数 | 已确认保存字段读取 |
| 70 | CHARACTER ITEMS ENCHANTED | i32(Player+0x9b0) | 整数 | 已确认保存字段读取 |
| 71 | CHARACTER HIGHEST DAMAGE TAKEN | abs32(i32(Player+0x9b4)) | 整数 | 已确认保存字段读取 |
| 72 | CHARACTER HIGHEST DAMAGE DEALT | abs32(i32(Player+0x9b8)) | 整数 | 已确认保存字段读取 |
| 73 | CHARACTER TOTAL DAMAGE TAKEN | 0 (native switch default; authored row is hidden) | 整数 | 原版隐藏默认值 |
| 74 | CHARACTER TOTAL DAMAGE DEALT | 0 (native switch default; authored row is hidden) | 整数 | 原版隐藏默认值 |
| 75 | CHARACTER AVERAGE DAMAGE TAKEN | 0 (native switch default; authored row is hidden) | 整数 | 原版隐藏默认值 |
| 76 | CHARACTER AVERAGE DAMAGE DEALT | 0 (native switch default; authored row is hidden) | 整数 | 原版隐藏默认值 |
| 77 | CHARACTER DAMAGE TAKEN THIS LEVEL | 0 (native switch default; authored row is hidden) | 整数 | 原版隐藏默认值 |
| 78 | CHARACTER DAMAGE DEALT THIS LEVEL | 0 (native switch default; authored row is hidden) | 整数 | 原版隐藏默认值 |
| 79 | CHARACTER AVERAGE DAMAGE TAKEN THIS LEVEL | 0 (native switch default; authored row is hidden) | 整数 | 原版隐藏默认值 |
| 80 | CHARACTER AVERAGE DAMAGE DEALT THIS LEVEL | 0 (native switch default; authored row is hidden) | 整数 | 原版隐藏默认值 |
| 81 | CHARACTER TIME THIS LEVEL | HH:MM:SS(i32(Player+0x9bc)*0.001) | 时:分:秒 | 已确认保存字段读取 |
| 82 | CHARACTER AVERAGE TIME PER LEVEL | level>1 ? HH:MM:SS(T((i32(Player+0x96c)-i32(Player+0x9bc))/(level-1))*0.001) : "00:00:00" | 时:分:秒 | 已确认保存字段读取 |
| 83 | CHARACTER MONSTERS EXPLODED | i32(Player+0x9c0) | 整数 | 已确认保存字段读取 |
| 84 | CHARACTER FIRE BONUS LEFTHAND | has_left_item ? Dmax(U,left,element_only,2) : 0 | 整数 | 调用及完整原生分支已取证 |
| 85 | CHARACTER ICE BONUS LEFTHAND | has_left_item ? Dmax(U,left,element_only,3) : 0 | 整数 | 调用及完整原生分支已取证 |
| 86 | CHARACTER POISON BONUS LEFTHAND | has_left_item ? Dmax(U,left,element_only,5) : 0 | 整数 | 调用及完整原生分支已取证 |
| 87 | CHARACTER ELECTRIC BONUS LEFTHAND | has_left_item ? Dmax(U,left,element_only,4) : 0 | 整数 | 调用及完整原生分支已取证 |
| 88 | CHARACTER FIRE BONUS RIGHTHAND | has_right_item ? Dmax(U,right,element_only,2) : 0 | 整数 | 调用及完整原生分支已取证 |
| 89 | CHARACTER ICE BONUS RIGHTHAND | has_right_item ? Dmax(U,right,element_only,3) : 0 | 整数 | 调用及完整原生分支已取证 |
| 90 | CHARACTER POISON BONUS RIGHTHAND | has_right_item ? Dmax(U,right,element_only,5) : 0 | 整数 | 调用及完整原生分支已取证 |
| 91 | CHARACTER ELECTRIC BONUS RIGHTHAND | has_right_item ? Dmax(U,right,element_only,4) : 0 | 整数 | 调用及完整原生分支已取证 |
| 92 | CHARACTER ATTACK SPEED LEFTHAND | m=F(1+S(22)*p); t=WeaponPeriod(left); t!=0 ? F(1/(m/t)) : m | 原版浮点 2 位 | 静态公式已确认 |
| 93 | CHARACTER ATTACK SPEED RIGHTHAND | m=F(1+S(22)*p); t=WeaponPeriod(right); t!=0 ? F(1/(m/t)) : m | 原版浮点 2 位 | 静态公式已确认 |
| 94 | CHARACTER DPS LEFTHAND | has_left_item ? C(F(F((Dmin(U,left,all,7)+Dmax(U,left,all,7))*0.5) / AttackPeriod(left))) : 0 | 整数 | 调用及完整原生分支已取证 |
| 95 | CHARACTER DPS RIGHTHAND | has_right_item ? C(F(F((Dmin(U,right,all,7)+Dmax(U,right,all,7))*0.5) / AttackPeriod(right))) : 0 | 整数 | 调用及完整原生分支已取证 |
| 97 | CHARACTER CRIT DAMAGE LEFTHAND | has_left_item ? T(F(Dmax(U,left,all,7)) * (1 + CritDamageBonus(U,true)*p)) : 0 | 整数 | 调用及完整原生分支已取证 |
| 98 | CHARACTER CRIT DAMAGE RIGHTHAND | has_right_item ? T(F(Dmax(U,right,all,7)) * (1 + CritDamageBonus(U,true)*p)) : 0 | 整数 | 调用及完整原生分支已取证 |
| 103 | CHARACTER MIN PHYS DAMAGE LEFTHAND | has_left_item ? Dmin(U,left,physical_only,7) : 0 | 整数 | 调用及完整原生分支已取证 |
| 104 | CHARACTER MIN PHYS DAMAGE RIGHTHAND | has_right_item ? Dmin(U,right,physical_only,7) : 0 | 整数 | 调用及完整原生分支已取证 |
| 105 | CHARACTER MAX PHYS DAMAGE LEFTHAND | has_left_item ? Dmax(U,left,physical_only,7) : 0 | 整数 | 调用及完整原生分支已取证 |
| 106 | CHARACTER MAX PHYS DAMAGE RIGHTHAND | has_right_item ? Dmax(U,right,physical_only,7) : 0 | 整数 | 调用及完整原生分支已取证 |
| 107 | CHARACTER MISSILE REFLECT CHANCE | Sequential fold type-60 effects: P = 1-(1-Pold)(1-pnew); return F(100P) | 原版浮点 1 位 | 静态公式已确认 |
| 108 | CHARACTER MISSILE REFLECT DPS | Same fold: A=(Aold*Pold + ((slot2+slot3)/200)pnew)/P; return F(100A) | 原版浮点 1 位 | 静态公式已确认 |
| 109 | CHARACTER ATTACK RANGE LEFTHAND | no_left_item/shield -> 0; rifle -> 5; cannon -> 6; otherwise attackDefinition.range + (ranged ? S(78):0) + f32(U+0x94)*REACH_BONUS + 0.2 | 原版浮点 1 位 | 静态公式已确认 |
| 110 | CHARACTER ATTACK RANGE RIGHTHAND | no_right_item/shield -> 0; rifle -> 5; cannon -> 6; otherwise attackDefinition.range + (ranged ? S(78):0) + f32(U+0x94)*REACH_BONUS + 0.2 | 原版浮点 1 位 | 静态公式已确认 |
| 111 | CHARACTER ARC LEFTHAND | no_left_item/shield -> 0; rifle -> 30; cannon -> 55; otherwise T(WEAPONARC(item)) | 整数 | 静态公式已确认 |
| 112 | CHARACTER ARC RIGHTHAND | no_right_item/shield -> 0; rifle -> 30; cannon -> 55; otherwise T(WEAPONARC(item)) | 整数 | 静态公式已确认 |
| 113 | CHARACTER SPLASH LEFTHAND | no_left_item/shield -> 0; rifle -> 30; cannon -> 50; otherwise T(SECONDARY_DMG_PCT(item)*100) | 整数 | 静态公式已确认 |
| 114 | CHARACTER SPLASH RIGHTHAND | no_right_item/shield -> 0; rifle -> 30; cannon -> 50; otherwise T(SECONDARY_DMG_PCT(item)*100) | 整数 | 静态公式已确认 |
| 128 | PLAYER AVG ITEM LEVEL | mean(unsigned item.level for occupied, equipable, nonhidden slots in BODY); empty -> 0 | 原版浮点 1 位 | 静态公式已确认 |
| 129 | CHARACTER MAGIC FIND % | C(F(S(27))) | 整数 | 静态公式已确认 |
| 130 | CHARACTER FISHING LUCK | C(F(S(84))) | 整数 | 静态公式已确认 |
| 132 | GOLD DROP BONUS | C(F(S(28))) | 整数 | 静态公式已确认 |
| 144 | RESISTANCE FIRE | ElementArmor(U,2) | 整数 | 静态公式已确认 |
| 145 | RESISTANCE ICE | ElementArmor(U,3) | 整数 | 静态公式已确认 |
| 146 | RESISTANCE ELECTRIC | ElementArmor(U,4) | 整数 | 静态公式已确认 |
| 147 | RESISTANCE POISON | ElementArmor(U,5) | 整数 | 静态公式已确认 |
| 148 | RESISTANCE PHYSICAL % | x=C(S(26,0)+S(26,6)); return x < -75 ? 75 : -max(x,-100) | 整数 | 静态公式已确认 |
| 150 | RESISTANCE FIRE % | x=C(S(26,2)+S(26,6)); return x < -75 ? 75 : -max(x,-100) | 整数 | 静态公式已确认 |
| 151 | RESISTANCE ICE % | x=C(S(26,3)+S(26,6)); return x < -75 ? 75 : -max(x,-100) | 整数 | 静态公式已确认 |
| 152 | RESISTANCE ELECTRIC % | x=C(S(26,4)+S(26,6)); return x < -75 ? 75 : -max(x,-100) | 整数 | 静态公式已确认 |
| 153 | RESISTANCE POISON % | x=C(S(26,5)+S(26,6)); return x < -75 ? 75 : -max(x,-100) | 整数 | 静态公式已确认 |
| 154 | DAMAGE BONUS PHYSICAL % | C(F(S(25,0))) + C(F(S(25,6))) | 整数 | 静态公式已确认 |
| 155 | DAMAGE BONUS FIRE % | C(F(S(25,2))) + C(F(S(25,6))) | 整数 | 静态公式已确认 |
| 156 | DAMAGE BONUS ICE % | C(F(S(25,3))) + C(F(S(25,6))) | 整数 | 静态公式已确认 |
| 157 | DAMAGE BONUS ELECTRIC % | C(F(S(25,4))) + C(F(S(25,6))) | 整数 | 静态公式已确认 |
| 158 | DAMAGE BONUS POISON % | C(F(S(25,5))) + C(F(S(25,6))) | 整数 | 静态公式已确认 |
| 159 | RESISTANCE SLOW % | C(F(S(140))) | 整数 | 静态公式已确认 |
| 160 | RESISTANCE IMMOBILIZE % | C(F(S(197))) | 整数 | 静态公式已确认 |
| 179 | DIFFICULTY | localized difficulty label from GameClient+0x1b88 (7048) | 本地化文本 | 静态公式已确认 |
| 191 | DODGE CHANCE | C(F(clamp(F(G(DODGE_CHANCE,effective DEX)+S(178)),0,75))) | 整数 | 静态公式已确认 |
| 207 | EXECUTE CHANCE | compatible dual weapons ? T(clamp(F(G(EXECUTE_CHANCE,effective MAGIC)+S(153)),0,100)) : 0 | 整数 | 静态公式已确认 |
| 223 | DUAL WIELD BONUS | dual weapons ? T(S(88)) : 0 | 整数 | 静态公式已确认 |
| 224 | MISSILE RANGE BONUS | S(78) | 原版浮点 1 位 | 静态公式已确认 |
| 275 | PLAYER NEW GAME PLUS STRING | NGplus>0 ? localized("NG") + "+" repeated i32(Player+0xba0) : empty | 本地化文本 | 静态公式已确认 |
来源与使用范围
本页同步自 Torchlight2-Remaster-Project 的 docs/devlog/2026-09-11-journal-stat-field-table.md。文中的 tools/、core_sim/、torchlight-2-poc/ 和 build/ 路径及复现命令,均属于重制项目,不是 Wiki 仓库目录。原版静态证据、移植进度与尚待验证项分别标明,不把参考算例当成原版运行对拍。