I've been having problems with the value of m_iClip being incorrect on the client side since the port to 2.2. I noticed the following code in the client CBasePlayerWeapon that looks like a problem. Is this the case or is it compensated for elsewhere? If it is dealt with elsewhere, then where?
void CBasePlayerWeapon::ItemPostFrame( void ) { if ((m_fInReload) && (m_pPlayer->m_flNextAttack <= 0.0)) { #if 0 // FIXME, need ammo on client to make this work right // complete the reload. int j = min( iMaxClip() - m_iClip, m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType]); // Add them to the clip m_iClip += j; m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] -= j; #else m_iClip += 10; #endif m_fInReload = FALSE; } // ... } It looks to me that the clip is passed to the client in HUD_WeaponsPostThink(), with pCurrent->m_iClip = pfrom->m_iClip. Why is the above code clobbering the correct value of m_iClip with an arbitrary amount? Is m_iClip just increased temporarily so we can get on with things until it is set to the correct value the next time the server updates the client? Am I just confused by the sequence and a hack to get things working? Rob 'Commando' Prouse Tour of Duty Mod http://www.tourofdutymod.com _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders