ETJump 3.3.1

- fixed backstab hint showing for nonsolid players when holding a knife
  - also fixes a long standing issue where knife would "hit" nonsolid players
- fixed 'etj_drawPlayerBBox' + 'etj_hideFadeRange' interaction with solid players - bbox alpha now ignores this correctly for solid players
- added 'etj_snapHUDBorderThickness' to control 'etj_drawSnapHUD 3' border thickness
  - valid range is '0.1 - 10.0 or etj_snapHUDHeight * 2'
- added 'g_chatReplay' cvar to turn off chat replay on server
  - chats are still logged when the feature is turned off, the messages are just not sent to clients
- fixed overbounce watcher breaking until cgame was reloaded if an impossible OB was detected (negative z-velocity & start height > current height)
- added experimental 'etj_smoothAngles' cvar to decouple client view updates from Pmove update rate
  - when enabled, clients viewangles used to render the scene are updated every frame with new values, as opposed to using viewangle results from Pmove, which would limit the updates to 125Hz with 'pmove_fixed 1'
  - every time client runs Pmove via prediction code, the client viewangles are synced back to match with the viewangle results from Pmove
  - does not affect physics calculations - the updates ran outside of Pmove calls are purely visual
    - this means that e.g. at 250FPS, every other viewangle update is not actually what is being sent to Pmove to calculate physics
  - no effect while spectating or if 'pmove_fixed' is '0'
- fixed old etmain bug which caused bullet flesh impact sounds to play at wrong location
- fixed corpses producing water impact particles when shot
- fixed bullet impacts producing particle effects unreliably
- added 'cursorhint' key to 'func_button' for specifying the cursorhint, similar to 'func_invisible_user'
- 'etj_hideMe' can no longer be set if fireteam player collision is enabled, and will automatically be disabled if turned on
- added 'etj_ad_stopInSpec' to automatically stop autodemo recording when switching to spectators
- fixed 'trigger_teleport_client' not working correctly for spectators
- fixed JSON files without a JSON object unexpectedly crashing the game
- fixed ammo packs not functioning correctly when picked up by a field ops
- fixed 'etj_autoLoad' and 'load' executed during a death sequence initially spawning you in original spawn location, which could cause entities to trigger unexpectedly on original spawn location
- fixed 'target_init' and timerun start not clearing the ammo for removed weapons, which would cause the weapons to have incorrect ammo when picked up again
- changes to chat replay
  - messages are now timestamped with relative timestamps (10s ago, 1min ago, 1h ago etc.)
  - 'g_chatReplayMaxMessageAge' now only applies to messages that were sent prior to your session starting
    - any message send after you have connected to the server will always be replayed, regardless of the message age
    - default is now '5'
- bundled 'sv_fps 125' compatible mapscript for 'GreenJumps_f.bsp' with the mod
- added 'etj_autoSprint' to flip '+sprint' button behavior
  - when enabled, player automatically sprints, and holding '+sprint' runs instead
- fixed exploits with 'noghost' fireteam rule upon joining
  - clients are now flagged to have enabled 'noghost' upon joining, if 'noghost' is enabled
  - timeruns are now interrupted when joining to fireteam with 'noghost' enabled, if ongoing timerun doesn't allow 'noghost'
- 'changemodel' script action can now be used on 'misc_gamemodel' entities too
- increased slick and NJD detector ranges to maximum possible map size
- adjusted timerun high ping interrupt to require sustained 100ms of lag before triggering
  - this should help filter out small lag spikes that are caused by unstable connections, which would trigger timerun interrupts overly aggressively on 'sv_fps + snaps 125'
- added initial support for 'author' key to '.arena' files
  - currently not used for anything
- fixed in-game 'Vote -> Map' list breaking if 'ui_netGameType' was not set to '2'
- fixed nonsolid player pushing each other while riding on movers
- added missing newline to print output when viewing run records for multiple seasons
- reintroduced 'etj_viewlog' setting to the menus for ET: Legacy clients
  - ET: Legacy version 2.83.0 and newer can now toggle the external console while the game is running
- added support for engine extensions
  - currently supports two extensions
    - extended 'CMD_BACKUP/MASK' on ET: Legacy clients to allow for higher ping + FPS combinations
    - window flash on ET: Legacy on chat mentions and incoming private messages (requires 'etj_highlight & 2')
- fixed buggy behavior with 'TAB' and 'UP/DOWNARROW' keys with expanded dropdown menus
- improved custom vote UI
  - map list scrolling is now more responsive
  - map list scrolls back to first entry when selecting a new list
- added changelog to the menus
- fixed a client crash if server had a custom vote list with an empty 'name' or 'callvote_text' field
- fixed 'etj_drawPlayerBBox & 4' drawing fireteam member bboxes of spectated player's fireteam instead of your fireteam
- flamethrower no longer sets opposing teams members on fire
- fixed flamethrower dps inconsistency if 'sv_fps' did not align to 50ms frametimes
- 'ad_save' can no longer be used if the currently recorded demo isn't an autodemo temp demo