1) Fórmulas de daño base por clase (PvM directo)
Estas funciones definen cuánto daño base saca cada clase por stats (antes de ítems, skills, etc.):
DWPhysiDamageCalculate(aIndex)
Daño físico del DW por Strength:
Min: Str/8
Max: Str/4
DWMagicDamageCalculate(aIndex)
Daño mágico (y "curse") por Energy:
Min: Ene/9
Max: Ene/4
(En tu código "Magic" y "Curse" están iguales.)
DKPhysiDamageCalculate(aIndex)
DK físico por Strength (más fuerte en min que DW):
Min: Str/6
Max: Str/4
DKMagicDamageCalculate(aIndex)
Igual que DW para magia (por Energy).
FEPhysiDamageCalculate(aIndex, BowType)
FE físico depende si tiene arco o no:
Sin bow (BowType==0): (Str+Dex)/7 min y /4 max
Con bow:
Min: (Str/14) + (Dex/7)
Max: (Str/8) + (Dex/4)
FEMagicDamageCalculate(aIndex)
Igual (Energy /9 a /4).
MGPhysiDamageCalculate(aIndex)
MG físico mezcla Str + Ene:
Min: (Str/6) + (Ene/12)
Max: (Str/4) + (Ene/8)
MGMagicDamageCalculate(aIndex)
Igual que DW para magia.
DLPhysiDamageCalculate(aIndex)
DL físico mezcla Str + Ene, pero además trae un "balance":
BaseMin: (Str/7) + (Ene/14)
BaseMax: (Str/5) + (Ene/10)
NerfFactor = 0.7 (o sea, 30% nerf al left click) ✅
DLMagicDamageCalculate(aIndex)
Igual por Energy.
📌 Acá es donde más "se siente" el PvM: si querés buff/nerf por clase, tocás estos divisores o el NerfFactor.
2) Penalizaciones/Reglas por tipo de arma (impacto PvM)
Estas te cambian daño según equipo:
PhysiDamageRight(ItemIndex, DamageMin, DamageMax)
Si el item es Staff (grupo 5):
Daño físico se divide por 2 (right hand).
PhysiDamageLeft(...)
Lo mismo para la mano izquierda.
PhysiDamageSpecial(aIndex, DamageMinRight, DamageMaxRight, DamageMinLeft, DamageMaxLeft)
Esto es clave: es tu hard-nerf al dual wield:
NerfFactor = 0.98 (ojo: tu comentario dice "10% total damage", pero 0.98 es solo -2%)
Left hand damage = 0 (anula mano izquierda por completo)
📌 Si querés "forzar shield" en PvM, esto lo hace.
Si querés permitir dual con penalización real, ajustás:
NerfFactor (ej 0.70, 0.60, etc.)
o no anules left y solo lo reduzcas.
3) Hit rate PvM (Attack Success Rate)
Esto define qué tanto pega el PJ a los mobs:
CalcAttackSuccessRate(aIndex) ✅ (PvM puro)
DW/DK/FE/MG:
ASR = (Level*5) + ((Dex*3)/2) + (Str/4)
DL:
ASR = (Level*5) + ((Dex*6)/2) + (Str/4) + (Leadership/10)
📌 Si te dicen "no pega nada en mapas altos" o "falla demasiado", es esta fórmula (y la fórmula de los mobs del lado server).
4) Evasión PvM (Defense Success Rate)
Esto define qué tanto esquiva el PJ ataques de mobs:
CalcDefenseSuccessRate(aIndex)
DW/DK/MG: Dex/3
FE: Dex/4 (peor que DW/DK)
DL: Dex/7 (muy bajo)
📌 Si querés FE más "evade" en PvM, subís FE a /3 o /2.5 (según tu core acepte decimales).
5) Defensa base (reducción de daño recibido)
CalcDefense(aIndex)
DW: Dex/4
DK: Dex/3
FE: Dex/10 (durísima, FE queda muy "papel")
MG: Dex/4
DL: Dex/7
📌 En PvM, si FE se muere de un soplido, esta es la razón #1.
6) Bonus de defensa por "set level" (+10 a +13)
CalcBonusDefense(aIndex, BonusLevel)
Aplica bonus porcentual al Defense actual:
+10 => +5%
+11 => +10%
+12 => +15%
+13 => +20%
(No tenés +14/+15 acá, a diferencia del otro snippet que me mostraste antes.)
📌 Esto afecta mucho PvM si tus players usan sets +13.
7) Velocidad (DPS real en PvM)
CalcAttackSpeed(aIndex)
DW: Phys Dex/20, Magic Dex/10
DK: Phys Dex/15, Magic Dex/20
FE: Phys Dex/50, Magic Dex/50 (FE queda lentísima)
MG: Phys Dex/15, Magic Dex/20
DL: Phys Dex/10, Magic Dex/10 (DL muy rápido)
📌 Si en PvM FE pega lento, está seteado acá clarísimo.
DL Formula con mas Def
Delfault: 8642-10496
elseif Class == 4 then -- CLASS_DL (Dark Lord) Defense = Dexterity / 7 end
Modificado: 12855-10496
elseif Class == 4 then -- CLASS_DL (Dark Lord) Defense = Dexterity / 4
-- CLASS_DL (PvM speed nerf)
Default: 3321
Modificado: 2338
elseif Class == 4 then -- CLASS_DL (PvM speed nerf)
local NerfFactor = 0.7
PhysiSpeed = (Dexterity / 10) * NerfFactor
MagicSpeed = (Dexterity / 10) * NerfFactor
end
Defensa
10760-24054 SM
14205-24080 bk
13078-15879 elf
10731-21500 mg
8642-10496 dl vs 12855-10496(MODIFICADO)
Test EX101 32767 STATS