Patch 2.44

Released December 16, 2011

Generic / Misc Stuff

  • Changed the HP required to gib from <= -100 to <= -60
  • Upped headcrush damage from 2x fall damage to 4x fall damage (HWs can take a max of 24 fall damage, which means they can do a max of 96 headcrush damage; scouts, on the other hand, will be able to do a max of 24 headcrush damage)
  • Added a speed threshold (set to 1.25 of max class speed, just under the bhop soft cap of 1.4) over which friendly players will always soft clip (not be able to stand on eachothers heads); sometimes the upper bound collision check bugs out and causes some weird movement while bhopping inside of/next to a teammate
  • Added a log event ("Round restarted") when the round is restarted (for example, when prematch ends or ff_restartround is used)
  • Added SG gibs
  • Added cvars hud_deathnotice_selfonly and hud_deathnotice_highlightself, both defaulted to 0
    • If hud_deathnotice_selfonly is 1, it only shows deathnotices that the local player is involved in
    • If hud_deathnotice_highlightself is 1, it draws a background behind any deathnotice the local player is involved in
  • Made highlightself background and the objective notice background color/alpha customizable through /scripts/HudLayout.res (HudDeathNotice -> "HighlightColor" and "ObjectiveNoticeColor")
  • Modified chat macros
    • Changed %pf to output the time remeining until your detpack explodes instead of the total fuse length (if building, it outputs the total fuse length + buildtime remaining)
    • Added %ps to output the total fuse length of your detpack

Bug Fixes / Optimizations

  • Fixed projectiles (rockets, nails, pipes, etc) sometimes colliding with players when they shouldn't and throwing off their movement
  • Fixed being able to shoot/charge the railgun while building from a bind
  • Fixed being able to reload while building from a bind
  • Fixed blue pipes not exploding on jump pads
  • Fixed buildables being able to be built inside teammates
  • Fixed crosshair info not showing for teammates
  • Fixed the exact middle of the laser grenade doing zero damage
  • Fixed detpacks not executing onexplode() on triggers that they used to (on ff_security_b1, for example)
  • Fixed SourceTV demos not drawing viewmodels
  • Fixed not being able to move at all in SourceTV freelook mode
  • Fixed pipes being able to be detonated multiple times
  • Fixed the single shotgun and super shotgun not playing the cock sound at the right time
  • Made the super shotgun use its own cock sound instead of reusing the single shotgun cock sound

Class-specific Changes

  • Engineer
    • Engineer now takes 75% damage from exploding buildables
    • Sentry Gun
      • Changed explosion radius of all levels to 128 (used to be 102 for level 1, 204 for level 2, and 306 for level 3)
  • Medic
    • Infection now does 75 max total damage, its damage per tick diminishes over time, and it lasts 6 seconds longer (10 ticks doing 30, 15, 9, 6, 4, 3, 2, 2, 2, 2 damage respectively instead of 7 ticks doing 10 damage each)
    • The infection particle effect diminishes over time to match damage diminishing over time
  • Soldier
    • Laser grenade damage increased by 189% (from 350*interval per tick to 660*interval per tick); damage against buildables unchanged
    • Added a radius of 4 units to each of the laser grenade beams

Lua changes

  • Fixed player:AddHealth called with a negative input factoring in armor when it should ignore it (damage type changed from DMG_GENERIC to DMG_DIRECT)
  • Fixed a bug with Lua schedules. If a schedule called a Lua function that then created a schedule of the same name, the new schedule would be deleted by the original schedule's clean up. Added a check to make sure that the schedule being deleted should truly be deleted.
  • Added a way to persist Lua data across level changes
    • Functions added:
      • SaveMapData( luaobject ) // saves to maps/data/<mapname>.luadat
      • SaveMapData( luaobject, suffix ) // saves to maps/data/<mapname>_<suffix>.luadat
      • LoadMapData() // returns the loaded lua object from maps/data/<mapname>.luadat
      • LoadMapData( suffix ) // returns the loaded lua object from maps/data/<mapname>_<suffix>.luadat
      • SaveGlobalData( luaobject ) // saves to maps/data/global/global.luadat
      • SaveGlobalData( luaobject, suffix ) // saves to maps/data/global/global_<suffix>.luadat
      • LoadGlobalData() // returns the loaded lua object from maps/data/global/global.luadat
      • LoadGlobalData( suffix ) // returns the loaded lua object from maps/data/global/global_<suffix>.luadat
    • The suffix param gets stripped of all non-alphanumeric and non-underscore characters. The lua object is serialized into binary.
    • Only strings, numbers, booleans, and tables are able to be saved. All other object types are ignored for now (player objects/lua functions for example).