[HELP] Activate drop helmet
Hi guys, anyone know how to activate drop helmet when durability <-10% ? (use Doom src Terrain3)
part of this code from obj_ServerPlayer.cpp
Code:
float obj_ServerPlayer::ReduceDamageByGear(int bodyPart, float damage)
{
int gslot = bodyPart == 1 ? SLOT_Headgear : SLOT_Armor;
if(gears_[gslot] == NULL)
return damage;
const GearConfig* gc = gears_[gslot]->getConfig();
wiInventoryItem& itm = loadout_->Items[gslot == SLOT_Headgear ? wiCharDataFull::CHAR_LOADOUT_HEADGEAR : wiCharDataFull::CHAR_LOADOUT_ARMOR];
r3d_assert(itm.itemID);
// broken armor
if(itm.Var3 == 0)
return damage;
// chance to fully absorb damage on headgears
if(gslot == SLOT_Headgear && u_GetRandom(0, 100) < gc->m_bulkiness && !wasDisconnected_)
{
// set durability to 10%
if(itm.Var3 > 10 * 100)
itm.Var3 = 10 * 100;
BackpackDropItem(wiCharDataFull::CHAR_LOADOUT_HEADGEAR);
OnBackpackChanged(wiCharDataFull::CHAR_LOADOUT_HEADGEAR);
return 0.0f;
}
// adjust durability (SERVER_SYNC_POINT ARMOR_DUR)
float absorb = damage * gc->m_damagePerc;
float left = damage - absorb;
// armor durability is mapped from [0..m_damageMax] to [0..100]
float durLoss = left / gc->m_damageMax * 100.0f;
itm.adjustDurability(-durLoss);
// inform player about damage so he can adjust armor durability
{
PKT_S2C_PlayerRawDamage_s n;
n.bodyPart = bodyPart;
n.damage = damage;
gServerLogic.p2pSendToPeer(peerId_, this, &n, sizeof(n));
}
return left;
}
// params should be in [0..360] range
float getMinimumAngleDistance(float from, float to)
{
float d = to - from;
if(d <-180.0f) d += 360.0f;
if(d > 180.0f) d -= 360.0f;
return d;
}
Re: [HELP] Activate drop helmet
Re: [HELP] Activate drop helmet