The only thing I could think of is to store the weaponid and the time (gettime or GetTickCount) and if the player changed weapon in less time that the one you specify, return 0 in OnPlayerUpdate to desync the player for all the rest. In the next update, as long as the time is longer will sync the player back.