Category: Code
Reproducibility: Always
Summary: If a magazine capacity exceeds 255, ammo disappear when swap weapons. (ex: Minigun)
Description: Still not solved issue. this is probably the last report.
These two codes are suspicious byte NewAmmoCount and byte NewSecondaryAmmoCount in KFWeapon.uc
Reproducibility: Always
Summary: If a magazine capacity exceeds 255, ammo disappear when swap weapons. (ex: Minigun)
Description: Still not solved issue. this is probably the last report.
These two codes are suspicious byte NewAmmoCount and byte NewSecondaryAmmoCount in KFWeapon.uc
reliable client function ClientForceAmmoUpdate(byte NewAmmoCount, int NewSpareAmmoCount, optional bool bAmmoSync)
{
if ( Role < ROLE_Authority )
{
if ( bAmmoSync )
{
// detect sync errors
`log(self@GetFuncName()@"ServerAmmo Primary:"$NewAmmoCount@"ClientAmmo Primary:"$AmmoCount[0]@"ServerSpareAmmo Primary:"$NewSpareAmmoCount@"ClientSpareAmmo Primary:"$SpareAmmoCount[0], bDebug);
if ( NewAmmoCount != AmmoCount[0] )
{
`log(self@GetFuncName()@"Primary Ammo mismatch Server:"$NewAmmoCount@"Client:"$AmmoCount[0]);
}
if ( NewSpareAmmoCount != SpareAmmoCount[0] )
{
`log(self@GetFuncName()@"Primary SpareAmmo mismatch Server:"$NewSpareAmmoCount@"Client:"$SpareAmmoCount[0]);
}
AmmoCount[0] = Min(NewAmmoCount, AmmoCount[0]);
SpareAmmoCount[0] = Min(NewSpareAmmoCount, SpareAmmoCount[0]);
}
else
{
AmmoCount[0] = NewAmmoCount;
SpareAmmoCount[0] = NewSpareAmmoCount;
}
NotifyHUDofWeapon(Pawn(Owner));
}
}
/** Force client to match server secondary ammo counts */
reliable client function ClientForceSecondaryAmmoUpdate(byte NewSecondaryAmmoCount)
{
if ( Role < ROLE_Authority )
{
// detect sync errors
`log(self@GetFuncName()@"ServerAmmo Secondary:"$NewSecondaryAmmoCount@"ClientAmmo Secondary:"$AmmoCount[1], bDebug);
if ( NewSecondaryAmmoCount != AmmoCount[1] )
{
`log(self@GetFuncName()@"Secondary Ammo mismatch Server:"$NewSecondaryAmmoCount@"Client:"$AmmoCount[1]);
}
AmmoCount[1] = NewSecondaryAmmoCount;
NotifyHUDofWeapon(Pawn(Owner));
}
}
Last edited: