void TDamageInfo::DoDamageUnhooked(int damage)
{
oCNpc::oSDamageDescriptor desc;
ZeroMemory(&desc, sizeof(desc));
desc.pVobAttacker = npcAttacker;
desc.pNpcAttacker = npcAttacker;
desc.aryDamage[oEDamageIndex::oEDamageIndex_Fall] = damage + target->protection[oEDamageIndex::oEDamageIndex_Fall];
desc.fDamageTotal = damage;
desc.enuModeWeapon = NPC_WEAPON_MAX;
desc.bFinished = 1;
desc.fDamageMultiplier = 1;
desc.enuModeDamage = 128;
desc.bIsDead = 1;
desc.aryDamage[0] = TDamageInfo::DISABLE_HOOK;
#if defined(COMPILE_G2) || defined(COMPILE_G2A)
desc.bDamageDontKill = mustNotKill;
#endif
desc.dwFieldsValid |= oCNpc::oEDescDamageFlags::oEDamageDescFlag_Attacker;
desc.dwFieldsValid |= oCNpc::oEDescDamageFlags::oEDamageDescFlag_Damage;
//desc.dwFieldsValid |= oCNpc::oEDescDamageFlags::oEDamageDescFlag_DamageType;
target->OnDamage(desc);
int health = target->GetAttribute(NPC_ATR_HITPOINTS);
if (health <= 0)
{
target->ResetPos(target->GetPositionWorld());
target->SetAttribute(NPC_ATR_HITPOINTS, health);
}
}