What actually makes you strong

The game shows you a 战力 number and eight attribute points to spend, and explains neither. This is what each point does, what the damage formula reads, and which of the stats on your character sheet are decoration.

The eight points, exactly

Every 资质 point converts into derived stats through one table — attribute_addition, seventeen rows, applied by Tools.TransfromAttriDic. This is the whole of it:

资质 Gives, per point
元气 真气上限 +9, 内防 +2, 化解 +1.5
根骨 气血上限 +40, 外防 +2
力道 外攻 +5, 要害 +1.5
内力 内攻 +5, 化解 +1.5
体魄 气血上限 +5, 外防 +7
精神 真气上限 +1.5, 内防 +7
身法 闪避 +4, 轻功值 +1.5
专注 命中 +4, 要害 +1.5

Two of these are not what the community calls them. Every 加点 guide in circulation names ids 6 and 7 筋骨 and 内息. This build displays them as 力道 and 内力 — that is what ComString.attriName_lidao / attriName_neili hold, and what a running session reports through the trainer's own read of the character sheet. The stats and the conversions are the same; the names are from the previous game. Treat a guide that still says 筋骨 as describing an older build, and check its numbers rather than its vocabulary.

The sheet's short forms are used throughout this page for the same reason: 外攻, 内攻, 外防, 内防 — not the expanded 外功攻击 / 内功防御 forms the guides tend to write.

根骨 is the health stat by a factor of eight. 体魄 gives 5 health a point and reads like the constitution stat; 根骨 gives 40. If you want to not die, 根骨 is the button, and 体魄 is the 外防 button that happens to give a little health.

There is no attribute that raises 会心, 诛心 or 御心. Those three come only from gear, 经脉 and 武学 — you cannot buy them with points, and two of the three are the ones that make crits worth having.

Why every guide quotes different numbers

The conversion is integer maths on the total, not on each point:

derived += total_资质 * additionValue / 100        // C# integer division

For the +1.5 rows that means a point adds 1 or 2 depending on whether the running total is even or odd. Spend one point in 力道 and watch 要害: sometimes +1, sometimes +2, never 1.5. Every community guide reports whichever it happened to see. The table above is the multiplier, and the sequence it produces is 1, 3, 4, 6, 7, 9 … per point spent.

Damage is two sums with two different attack stats

SpellCalculate.CalculateFormulaDamage, and every real attack effect in the game goes through it:

外功 part = 外攻 × waiDamage%  × (1 − 外防_target / (外防_target + 2000))
内功 part = 内攻 × neiDamage%  × (1 − 内防_target / (内防_target + 2000))
相合 part = 相合 × extraDamage%                      (only when your 偏向 matches the move's)
damage    = (外功 + 内功 + 相合) × crit × combo × the various ± modifiers

Of 783 attack effects that carry a meaningful 外功 percentage, 717 scale from 外攻 and nothing else; of 826 with an 内功 percentage, 783 scale from 内攻. The move's own waiDamage / neiDamage percentage is the multiplier — median 65% and 75%, top decile 235% and 280%.

Consequence worth stating: a move is 外功 or 内功 by which of those two percentages it carries, and your two attack stats are fed by two different 资质 (力道 and 内力). Splitting points between them halves both halves of your damage. Pick the one your martial arts actually use.

威力 stats stack additively into that same percentage before it multiplies: 法术威力 goes into both sides, 外功威力 into the outer, 内功威力 into the inner. They are percentage points on the move, so they are worth most on the moves that already have the largest percentage.

Defence never closes, and the curve is the same on both sides

reduction = defence / (defence + 2000)

2000 defence halves incoming damage of that kind. 4000 takes off two thirds. 6000 takes off three quarters. It never reaches 1, so nothing is ever immune, and each 2000 you add is worth less than the last — the first 2000 buys 50%, the second buys 17%, the third 8%.

There is no armour penetration attribute that a point buys; the only things that cut a target's defence are equipment affixes read as WORD_TARGET_WAI_FANG / WORD_TARGET_NEI_FANG, subtracted before the curve.

命中 ≥ 闪避 and you cannot miss

The miss check is the first thing that runs, and it short-circuits:

if (命中 − 闪避 >= 0)  →  never misses
otherwise, with d = 闪避 − 命中:
    hit chance = 1 − d / (命中 + 30 + 1.35 d),  floored at 1%

So 命中 is a threshold stat, not a curve: every point up to the enemy's 闪避 matters and every point past it does nothing at all. 专注 gives 4 命中 a point, which is the cheapest way to clear that bar.

The same asymmetry is why 身法 is strong defensively — 4 闪避 a point forces the enemy below their threshold, and their hit chance then falls on the curve above.

Crits are two separate contests, and one of them has a floor

Whether you crit — your 要害 against their 化解, plus 会心 as a flat percentage:

crit% = 会心 + 100 × 要害 / (1.25 × 化解_target + 2.5 × 要害^0.877)

会心 goes in as a straight percentage — 会心 30 is 30 percentage points of crit chance. The 要害 term is self-limiting: against 化解 0 it is worth about 94 points at 要害 1000, but the exponent means doubling 要害 from there adds only a few points. Against a target with real 化解 it collapses — at 化解 500 the same 要害 1000 is worth 59.

How hard the crit lands — your 诛心 against their 御心:

multiplier = max(1.0,  0.5 + 诛心^1.32 / (2.5 × 诛心 + 御心_target))

The max(1.0, …) is the trap. With no 诛心, a crit multiplies damage by exactly 1 — the game plays the crit animation and the number is identical. Against a target with 御心 200 you need roughly 诛心 45 before a crit does anything at all. Past that it scales hard: 诛心 100 is about ×1.75, 诛心 500 about ×3.2, 诛心 1000 about ×4.0.

Consequence worth stating: stacking 要害 and 会心 without 诛心 buys you a light show. Crit chance and crit damage are not interchangeable here, and the one you cannot buy with attribute points is the one with the floor.

One place the crit maths is broken

The 气盾 damage path (CalculateFormulaQidunDamage) uses its own crit line:

crit = 会心 / 1000 + 要害 / (化解 + 2000)

Both terms of the second fraction are integers, so C# does integer division — it is 0 until 要害 exceeds 化解 + 2000, and then jumps to 1 (100%). And 会心 is divided by 1000 rather than 100, so it is worth a tenth of what it is worth everywhere else. On this one attack path, crit investment does almost nothing.

Four attributes on your sheet do nothing

反击 (77), 连击 (78), 追击 (79) and 连战 (80) are declared in the attribute enum and never read anywhere in the assembly — not by name, not by numeric cast. Nothing in combat, nothing in the damage pipeline, nothing in 战力.

Gear affixes and 经脉 nodes that grant them are granting a number that is stored and never consulted. Reroll them.

The five elements are specialise-or-lose

阴, 阳, 刚, 柔 and 毒 do not add damage. They do exactly two things.

They pick your 偏向. GetMaxPianXiangState takes whichever of the five is highest, and that is the 偏向 you fight as. Nothing else about the raw values matters for this — only which is largest.

They set the 相合 bonus, which is the third damage term, and it is a subtraction:

相合(X) = X − (the element after X) − (the element before X)

in the ring 阳 → 阴 → 柔 → 刚 → 毒 → 阳. So:

Your 偏向 相合
阳 − 阴 − 毒
阴 − 柔 − 阳
柔 − 刚 − 阴
刚 − 毒 − 柔
毒 − 阳 − 刚

Spread the five evenly and 相合 is negative. The bonus only exists once your chosen element exceeds its two neighbours added together, and it applies only on moves whose own 偏向 matches yours.

Consequence worth stating: an affix or 经脉 node that adds a neighbouring element is a downgrade, not a small upgrade. Adding 阴 to a 阳 build subtracts from the only term the elements feed.

战力 is not damage, and it is missing the stat that matters most

NpcEntity.GetZhanLi, in full:

战力 = 气血上限
     + 真气上限 × 3
     + (外攻 + 内攻) × 8
     + (外防 + 内防) × 7.2
     + (命中 + 闪避) × 10
     + (诛心 + 御心 + 要害 + 化解) × 10
     + (阴 + 阳 + 刚 + 柔 + 毒) × 4
     + 轻功上限 × 10

Read that against the damage formula and three things fall out:

Use 战力 to compare two NPCs, which is what it is for. Do not use it to judge your own build.

The weapon skills feed nothing until you own one specific 绝技

刀法, 剑术, 搏击 and 枪棍 appear on the 武学 tab, they gate sect entry, and no damage formula reads them. Their only mechanical effect in the whole assembly is one branch in ReCalAttriEquip:

weapon base attributes × (1 + min(1.0, skill / 1000))

— and it applies only if the matching 绝技 is equipped, because GetStuntEffectValue returns 0 when the stunt is absent. One stunt per weapon class, each requiring that skill at 700:

绝技 Weapon Needs Clue the game gives
鹿门翠微 刀法 ≥ 700 a 刀绝 seen at (1552, 393)
平明寻羽 剑术 ≥ 700 a 剑圣 at (901, 1400)
气吞山河 拳/搏击 搏击 ≥ 700 a 千金王 at (200, 644)
空翠嶙峋 长兵/枪棍 枪棍 ≥ 700 a 飞槊 at (1517, 1044)

At the 700 needed to get it that is +70% to everything the weapon grants; it caps at +100% at skill 1000. Below 700, or without the stunt, the skill is a sect requirement and nothing else.

What the community says, and what survives

Checked against 切游's 加点 guide and the summary that 星界云 and 多多云 circulate.

Claim Verdict
体魄: 7 外防 + 5 气血 per point Right, exactly
元气: 9 真气 + 2 内防 per point Right on both
"筋骨": 5 外攻 per point Right — but the stat is called 力道 in this build
"内息": 5 内攻 per point Right — the stat is called 内力 in this build
精神: 7 内防 per point Right
根骨: 42 气血 per point 40. Off by two
"筋骨": 1 要害 per point 1.5 — the parity artefact above
"内息": 1 化解, 元气: 2 化解 per point 1.5 for both. The two are identical; the guides give different numbers for the same multiplier
诛心 = crit damage, 要害 = crit rate, 化解 = enemy crit rate down Right, all three, and 御心 is the fourth they omit — it is what divides your 诛心
"经脉洗练建议使用阳+身法" Only conditionally. 阳 does nothing unless it is your highest element and your moves are 阳; adding it to any other build subtracts
防具词条 must have 闪避+4%, 身法+5%, 诛心+要害+4% Sound, and the reasoning is better than stated: 闪避 works on a threshold, and 诛心 is the stat with the ×1.0 floor
外功 build → "筋骨" and 根骨; 内功 → 元气 and "内息"; tank → 体魄 and 精神 Right shape. 根骨 belongs in every build, not just the outer one, because 40 health a point beats anything else on the board

Nothing in the community material mentions 身法 or 专注 numerically, the dead four, the 相合 subtraction, the 诛心 floor, or that 战力 omits 会心. And all of it still uses 筋骨 and 内息 for stats this build calls 力道 and 内力 — the clearest single sign of how far behind the current build that material is.

Where this was read

AttriManager.ReCalAttri / ReCalAttriEquip, Tools.TransfromAttriDic, SpellCalculate.CalculateFormulaDamage / CalculateFormulaQidunDamage / CaculateDefenceRate, UnitController.GetXiangHe, NpcEntity.GetMaxPianXiangState / GetZhanLi, StuntManager.GetStuntEffectValue, and the tables attribute_addition, spelleffect, pianxiang, stunt_proto.

What was checked live, and what was not. A running session confirms, through the trainer's HTTP API, that the eight 资质 exist with these ids and these names — 4 元气, 5 根骨, 6 力道, 7 内力, 8 体魄, 9 精神, 10 身法, 11 专注 — and the same read settles the tab contents on attributes_and_levels.md. It does not confirm the numbers: the derived combat stats (外攻, 内攻, 外防, 内防, 诛心, 御心, 要害, 化解, 命中, 闪避, 会心) live on the status page rather than the attribute page, and the trainer does not currently read them, so every conversion value and every formula on this page is a code reading, not a measurement. The obvious next step is to expose those eleven through the API and watch one point of 力道 move 外攻 by five.