本组文档:计算公式 · 110 项字段表 · IDA 交叉核查 · 移植状态与缺口 · 玩家属性与加点

来源:JOURNAL.LAYOUT,110 个不同字段;286 项枚举,入口 0x7B7430。

本表是静态取证,不代表对应玩法已在 Godot 实现。算法与符号见计算公式,完成情况见移植状态

记号:S 为原版 getStat 查询,T 为向零截断,C 为 ceil,F 为 float32 落点,G 为原版曲线;d=6 是 All,d=7 是不筛伤害类型。

枚举原版字段公式/取值显示格式证据状态
9HP REGENT(GLOBAL.HP_RECHARGE_RATE + S(7)) + T(S(124))整数静态公式已确认
13MANA REGENF(S(6) + S(123))原版浮点 1 位静态公式已确认
14MANA REGEN BASEGLOBAL.MANA_RECHARGE_RATE原版浮点 1 位静态公式已确认
26CHARACTER AC MAXPhysicalArmor(U)整数静态公式已确认
27CHARACTER STRENGTHbase + C(base * S(71) * p) + C(S(69))整数静态公式已确认
28CHARACTER STRENGTH BASEi32(U+0x578)整数静态公式已确认
29CHARACTER STRENGTH EQUIPPEDT(S(69))整数静态公式已确认
30CHARACTER STRENGTH PERCENT BONUSS(71)原版浮点 1 位静态公式已确认
31CHARACTER DEXTERITYbase + C(base * S(72) * p) + C(S(70))整数静态公式已确认
32CHARACTER DEXTERITY BASEi32(U+0x574)整数静态公式已确认
33CHARACTER DEXTERITY EQUIPPEDT(S(70))整数静态公式已确认
34CHARACTER DEXTERITY PERCENT BONUSS(72)原版浮点 1 位静态公式已确认
35CHARACTER MAGICbase + C(base * S(18) * p) + C(S(3))整数静态公式已确认
36CHARACTER MAGIC BASEi32(U+0x580)整数静态公式已确认
37CHARACTER MAGIC EQUIPPEDT(S(3))整数静态公式已确认
38CHARACTER MAGIC PERCENT BONUSS(18)原版浮点 1 位静态公式已确认
39CHARACTER DEFENSEbase + C(base * S(17) * p) + C(S(2))整数静态公式已确认
40CHARACTER DEFENSE BASEi32(U+0x57c)整数静态公式已确认
41CHARACTER DEFENSE EQUIPPEDT(S(2))整数静态公式已确认
42CHARACTER DEFENSE PERCENT BONUSS(17)原版浮点 1 位静态公式已确认
45CHARACTER CRIT CHANCEmin(100, C(BaseCrit(U) + F(S(55))))整数静态公式已确认
46CHARACTER FUMBLE CHANCET(100 - clamp(100 - (F(G(FUMBLE_CHANCE,0)) - C(S(179))),0,100))整数静态公式已确认
47CHARACTER FUMBLE DMG PENALTYT(100 * (1 - clamp(F((F(G(FUMBLE_DAMAGE,effective DEX)) + C(S(180))) * p),0,1)))整数静态公式已确认
48CHARACTER BLOCK CHANCEleft shield ? T(min(75,F(S(62)+S(33)+clamp(G(BLOCK_CHANCE,effective DEF),0,100)))) : 0整数静态公式已确认
49CHARACTER CRIT DMG BONUSC(F(clamp(F(G(CRIT_BONUS,effective STR)+S(89)+50),0,500)))整数静态公式已确认
50CHARACTER ATK SPD BONUST(S(22))整数静态公式已确认
51CHARACTER CAST SPD BONUST(S(29))整数静态公式已确认
52CHARACTER RUN SPEEDslow = 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 位静态公式已确认
53CHARACTER TIME PLAYEDHH:MM:SS(f32(Player+0x360))时:分:秒已确认保存字段读取
54CHARACTER TIMES KILLEDi32(Player+0x980)整数已确认保存字段读取
55CHARACTER POTIONS DRANKi32(Player+0x99c)整数已确认保存字段读取
56CHARACTER MONSTERS KILLEDi32(Player+0x984)整数已确认保存字段读取
57CHARACTER GOLD GATHEREDi32(Player+0x970)整数已确认保存字段读取
59CHARACTER STEPS TAKENi32(Player+0x978)整数已确认保存字段读取
60CHARACTER QUESTS COMPLETEDi32(Player+0x97c)整数已确认保存字段读取
61CHARACTER CHAMPIONS KILLEDi32(Player+0x988)整数已确认保存字段读取
62CHARACTER SPELLS CASTi32(Player+0x98c)整数已确认保存字段读取
63CHARACTER CHESTS OPENEDi32(Player+0x990)整数已确认保存字段读取
64CHARACTER TRAPS SPRUNGi32(Player+0x994)整数已确认保存字段读取
65CHARACTER BARRELS BROKENi32(Player+0x998)整数已确认保存字段读取
66CHARACTER PORTALS USEDi32(Player+0x9a0)整数已确认保存字段读取
67CHARACTER FISH CAUGHTi32(Player+0x9a4)整数已确认保存字段读取
68CHARACTER TIMES GAMBLEDi32(Player+0x9a8)整数已确认保存字段读取
69CHARACTER ITEMS TRANSMUTEDi32(Player+0x9ac)整数已确认保存字段读取
70CHARACTER ITEMS ENCHANTEDi32(Player+0x9b0)整数已确认保存字段读取
71CHARACTER HIGHEST DAMAGE TAKENabs32(i32(Player+0x9b4))整数已确认保存字段读取
72CHARACTER HIGHEST DAMAGE DEALTabs32(i32(Player+0x9b8))整数已确认保存字段读取
73CHARACTER TOTAL DAMAGE TAKEN0 (native switch default; authored row is hidden)整数原版隐藏默认值
74CHARACTER TOTAL DAMAGE DEALT0 (native switch default; authored row is hidden)整数原版隐藏默认值
75CHARACTER AVERAGE DAMAGE TAKEN0 (native switch default; authored row is hidden)整数原版隐藏默认值
76CHARACTER AVERAGE DAMAGE DEALT0 (native switch default; authored row is hidden)整数原版隐藏默认值
77CHARACTER DAMAGE TAKEN THIS LEVEL0 (native switch default; authored row is hidden)整数原版隐藏默认值
78CHARACTER DAMAGE DEALT THIS LEVEL0 (native switch default; authored row is hidden)整数原版隐藏默认值
79CHARACTER AVERAGE DAMAGE TAKEN THIS LEVEL0 (native switch default; authored row is hidden)整数原版隐藏默认值
80CHARACTER AVERAGE DAMAGE DEALT THIS LEVEL0 (native switch default; authored row is hidden)整数原版隐藏默认值
81CHARACTER TIME THIS LEVELHH:MM:SS(i32(Player+0x9bc)*0.001)时:分:秒已确认保存字段读取
82CHARACTER AVERAGE TIME PER LEVELlevel>1 ? HH:MM:SS(T((i32(Player+0x96c)-i32(Player+0x9bc))/(level-1))*0.001) : "00:00:00"时:分:秒已确认保存字段读取
83CHARACTER MONSTERS EXPLODEDi32(Player+0x9c0)整数已确认保存字段读取
84CHARACTER FIRE BONUS LEFTHANDhas_left_item ? Dmax(U,left,element_only,2) : 0整数调用及完整原生分支已取证
85CHARACTER ICE BONUS LEFTHANDhas_left_item ? Dmax(U,left,element_only,3) : 0整数调用及完整原生分支已取证
86CHARACTER POISON BONUS LEFTHANDhas_left_item ? Dmax(U,left,element_only,5) : 0整数调用及完整原生分支已取证
87CHARACTER ELECTRIC BONUS LEFTHANDhas_left_item ? Dmax(U,left,element_only,4) : 0整数调用及完整原生分支已取证
88CHARACTER FIRE BONUS RIGHTHANDhas_right_item ? Dmax(U,right,element_only,2) : 0整数调用及完整原生分支已取证
89CHARACTER ICE BONUS RIGHTHANDhas_right_item ? Dmax(U,right,element_only,3) : 0整数调用及完整原生分支已取证
90CHARACTER POISON BONUS RIGHTHANDhas_right_item ? Dmax(U,right,element_only,5) : 0整数调用及完整原生分支已取证
91CHARACTER ELECTRIC BONUS RIGHTHANDhas_right_item ? Dmax(U,right,element_only,4) : 0整数调用及完整原生分支已取证
92CHARACTER ATTACK SPEED LEFTHANDm=F(1+S(22)*p); t=WeaponPeriod(left); t!=0 ? F(1/(m/t)) : m原版浮点 2 位静态公式已确认
93CHARACTER ATTACK SPEED RIGHTHANDm=F(1+S(22)*p); t=WeaponPeriod(right); t!=0 ? F(1/(m/t)) : m原版浮点 2 位静态公式已确认
94CHARACTER DPS LEFTHANDhas_left_item ? C(F(F((Dmin(U,left,all,7)+Dmax(U,left,all,7))*0.5) / AttackPeriod(left))) : 0整数调用及完整原生分支已取证
95CHARACTER DPS RIGHTHANDhas_right_item ? C(F(F((Dmin(U,right,all,7)+Dmax(U,right,all,7))*0.5) / AttackPeriod(right))) : 0整数调用及完整原生分支已取证
97CHARACTER CRIT DAMAGE LEFTHANDhas_left_item ? T(F(Dmax(U,left,all,7)) * (1 + CritDamageBonus(U,true)*p)) : 0整数调用及完整原生分支已取证
98CHARACTER CRIT DAMAGE RIGHTHANDhas_right_item ? T(F(Dmax(U,right,all,7)) * (1 + CritDamageBonus(U,true)*p)) : 0整数调用及完整原生分支已取证
103CHARACTER MIN PHYS DAMAGE LEFTHANDhas_left_item ? Dmin(U,left,physical_only,7) : 0整数调用及完整原生分支已取证
104CHARACTER MIN PHYS DAMAGE RIGHTHANDhas_right_item ? Dmin(U,right,physical_only,7) : 0整数调用及完整原生分支已取证
105CHARACTER MAX PHYS DAMAGE LEFTHANDhas_left_item ? Dmax(U,left,physical_only,7) : 0整数调用及完整原生分支已取证
106CHARACTER MAX PHYS DAMAGE RIGHTHANDhas_right_item ? Dmax(U,right,physical_only,7) : 0整数调用及完整原生分支已取证
107CHARACTER MISSILE REFLECT CHANCESequential fold type-60 effects: P = 1-(1-Pold)(1-pnew); return F(100P)原版浮点 1 位静态公式已确认
108CHARACTER MISSILE REFLECT DPSSame fold: A=(Aold*Pold + ((slot2+slot3)/200)pnew)/P; return F(100A)原版浮点 1 位静态公式已确认
109CHARACTER ATTACK RANGE LEFTHANDno_left_item/shield -> 0; rifle -> 5; cannon -> 6; otherwise attackDefinition.range + (ranged ? S(78):0) + f32(U+0x94)*REACH_BONUS + 0.2原版浮点 1 位静态公式已确认
110CHARACTER ATTACK RANGE RIGHTHANDno_right_item/shield -> 0; rifle -> 5; cannon -> 6; otherwise attackDefinition.range + (ranged ? S(78):0) + f32(U+0x94)*REACH_BONUS + 0.2原版浮点 1 位静态公式已确认
111CHARACTER ARC LEFTHANDno_left_item/shield -> 0; rifle -> 30; cannon -> 55; otherwise T(WEAPONARC(item))整数静态公式已确认
112CHARACTER ARC RIGHTHANDno_right_item/shield -> 0; rifle -> 30; cannon -> 55; otherwise T(WEAPONARC(item))整数静态公式已确认
113CHARACTER SPLASH LEFTHANDno_left_item/shield -> 0; rifle -> 30; cannon -> 50; otherwise T(SECONDARY_DMG_PCT(item)*100)整数静态公式已确认
114CHARACTER SPLASH RIGHTHANDno_right_item/shield -> 0; rifle -> 30; cannon -> 50; otherwise T(SECONDARY_DMG_PCT(item)*100)整数静态公式已确认
128PLAYER AVG ITEM LEVELmean(unsigned item.level for occupied, equipable, nonhidden slots in BODY); empty -> 0原版浮点 1 位静态公式已确认
129CHARACTER MAGIC FIND %C(F(S(27)))整数静态公式已确认
130CHARACTER FISHING LUCKC(F(S(84)))整数静态公式已确认
132GOLD DROP BONUSC(F(S(28)))整数静态公式已确认
144RESISTANCE FIREElementArmor(U,2)整数静态公式已确认
145RESISTANCE ICEElementArmor(U,3)整数静态公式已确认
146RESISTANCE ELECTRICElementArmor(U,4)整数静态公式已确认
147RESISTANCE POISONElementArmor(U,5)整数静态公式已确认
148RESISTANCE PHYSICAL %x=C(S(26,0)+S(26,6)); return x < -75 ? 75 : -max(x,-100)整数静态公式已确认
150RESISTANCE FIRE %x=C(S(26,2)+S(26,6)); return x < -75 ? 75 : -max(x,-100)整数静态公式已确认
151RESISTANCE ICE %x=C(S(26,3)+S(26,6)); return x < -75 ? 75 : -max(x,-100)整数静态公式已确认
152RESISTANCE ELECTRIC %x=C(S(26,4)+S(26,6)); return x < -75 ? 75 : -max(x,-100)整数静态公式已确认
153RESISTANCE POISON %x=C(S(26,5)+S(26,6)); return x < -75 ? 75 : -max(x,-100)整数静态公式已确认
154DAMAGE BONUS PHYSICAL %C(F(S(25,0))) + C(F(S(25,6)))整数静态公式已确认
155DAMAGE BONUS FIRE %C(F(S(25,2))) + C(F(S(25,6)))整数静态公式已确认
156DAMAGE BONUS ICE %C(F(S(25,3))) + C(F(S(25,6)))整数静态公式已确认
157DAMAGE BONUS ELECTRIC %C(F(S(25,4))) + C(F(S(25,6)))整数静态公式已确认
158DAMAGE BONUS POISON %C(F(S(25,5))) + C(F(S(25,6)))整数静态公式已确认
159RESISTANCE SLOW %C(F(S(140)))整数静态公式已确认
160RESISTANCE IMMOBILIZE %C(F(S(197)))整数静态公式已确认
179DIFFICULTYlocalized difficulty label from GameClient+0x1b88 (7048)本地化文本静态公式已确认
191DODGE CHANCEC(F(clamp(F(G(DODGE_CHANCE,effective DEX)+S(178)),0,75)))整数静态公式已确认
207EXECUTE CHANCEcompatible dual weapons ? T(clamp(F(G(EXECUTE_CHANCE,effective MAGIC)+S(153)),0,100)) : 0整数静态公式已确认
223DUAL WIELD BONUSdual weapons ? T(S(88)) : 0整数静态公式已确认
224MISSILE RANGE BONUSS(78)原版浮点 1 位静态公式已确认
275PLAYER NEW GAME PLUS STRINGNGplus>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 仓库目录。原版静态证据、移植进度与尚待验证项分别标明,不把参考算例当成原版运行对拍。