Bom, acredito que o problema esteja no .cpp então, weapons.cpp, pra ser mais específico.
Nos seu servidor parece que não chega o valor pra elementDamage, lembro de ter mexido nisso há um tempo atrás.
Vá até o weapons.cpp e procure por eventPlayerOnUseWeapon, e se não encontrar, bicho, vai ter que vasculhar até achar onde o OnUseWeapon está sendo chamado no .cpp e onde o .cpp tá chamando o OnUseWeapon do .lua, prosseguindo, se encontrar, faça essa alteração:
Isso aqui:
damage.primary.type = params.combatType;
damage.primary.value = (getWeaponDamage(player, target, item) * damageModifier) / 100;
damage.secondary.type = getElementType();
int32_t tmpDamage = 0;
if (damage.origin == ORIGIN_MELEE) {
g_events->eventPlayerOnUseWeapon(player, damage.primary.value, damage.secondary.type, tmpDamage);
}
damage.secondary.value = getElementDamage(player, target, item, tmpDamage, damage.secondary.type);
Combat::doCombatHealth(player, target, damage, params);
Vira isso aqui:
damage.primary.type = params.combatType;
damage.primary.value = (getWeaponDamage(player, target, item) * damageModifier) / 100;
damage.secondary.type = getElementType();
damage.secondary.value = getElementDamage(player, target, item, 0, damage.secondary.type);
if (damage.origin == ORIGIN_MELEE) {
g_events->eventPlayerOnUseWeapon(player, damage.primary.value, damage.secondary.type, damage.secondary.value);
}
Combat::doCombatHealth(player, target, damage, params);
Eu não testei a alteração aí acima, se ele estiver batendo pouco no dano elemental ou estiver saindo algo errado ou estranho, faça testes no valor de: damage.secondary.value e verifique também o funcionamento da função getElementDamage e vai vasculhando aí.
Uns abraços!