I don't know how to state it much simpler than that. This is an issue that
has existed for years; now is as good a time as ever to complain about it,
I guess.

For mods in the 2007 engine branch, checking GetUseEntity() on the client
returns NULL, which does not match the server's value at any point in time.

On the client, SetUseEntity is never actually called, but on the server it
is, which should then send the EHANDLE over the wire. Otherwise what would
be the point in it being a networked variable? Right?

Anyway, some really important prediction stuff goes wrong as a result of
m_hUseEntity never being set, such as this key snippet in
CBasePlayer::ItemPostFrame() here:

baseplayer_shared.cpp: 208-216
// check if the player is using something
if ( m_hUseEntity != NULL )
 {
#if !defined( CLIENT_DLL )
Assert( !IsInAVehicle() );
ImpulseCommands();// this will call playerUse
#endif
return;
}

As a result of this never returning, (since m_hUseEntity is actually NULL
client-side,) when you hold your primary attack button, things like
::PrimaryAttack() being called on weapons on the client every frame but not
on the server manifest, and the end result is the weapon sound for your
active weapon being spammed violently.

I've checked out Send/RecvProps and such and everything is fine other than
this value never being networked.

How can this be fixed?

Thanks,
Andrew
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlcoders

Reply via email to