* Added few newest API Hookchains
* Added hookchain for PM_CheckWaterJump
* Added hookchain for PM_Jump
* Added hookchain for PM_Duck
* Added hookchain for PM_UnDuck
* Added hookchain for ClearMultiDamage
* Added hookchain for AddMultiDamage
* Added hookchain for ApplyMultiDamage
* Added hookchain for CSGameRules::TeamFull
* Added hookchain for CSGameRules::TeamStacked
* Added hookchain for CSGameRules::PlayerGotWeapon
* Added hookchain for CBotManager::OnEvent
* Added hookchain for CBasePlayer::EntSelectSpawnPoint
* Added hookchain for CBasePlayerWeapon::KickBack
* Added hookchain for CBasePlayerWeapon::SendWeaponAnim
* Added new PM_* Hookchains
* Added PM_WaterJump
* Added PM_PlayStepSound
* Added PM_AirAccelerate
* Added CBasePlayer::CheckTimeBasedDamage
* Added CBasePlayerWeapon::ItemPostFrame
* Added BuyItem and CSGameRules::Think
* AddAmmoNameToAmmoRegistry refactory
* Bump minor version in an API bump up to 23
- Member name changed to m_iStateSecondaryAttack
- Member type changed to uint8_t which has same size of bool but allows more values than true or false (this wont break API compatibility)
- Moved logic inside HasSecondaryAttack to correctly alter function return based on m_iStateSecondaryAttack, which can be (0) no value / null (1) set (2) block
-Removed logic in CBasePlayerWeapon::Spawn that caches the return value of HasSecondaryAttack, as this can only be overridden when set, rather than always
* Improve API compatibility
Fix forcing 1-person view for players when `mp_fadetoblack = 2`;
Fix player blackout on server entry when `mp_fadetoblack = 2`;
Fix observer not being blinded when `mp_fadetoblack = 2`;
Fix fadetoblack message timings using new CVar `mp_dying_time`.
fix#501fix#506
Co-authored-by: s1lentq <s1lentsk@yandex.ru>
* Unexpected behavior with mp_forcerespawn leading to a possible exploit
Basically there is an exploit (or bug?) where depending on mp_forcerespawn if his value is higher to 0 and lower than 1, when you respawn you have a brief window to change your team, if you succesfully manage to change your team between the mp_forcerespawn value and WITHOUT closing the change appearance menu, you won't die due to "m_fNextSuicideTime", that will trigger the change team but without actually changing your skin model, you will keep the enemy one but the team change will success.
Thanks https://github.com/metita for helping me with this
Co-Authored-By: metita <33007491+metita@users.noreply.github.com>
* Revert "Unexpected behavior with mp_forcerespawn leading to a possible exploit"
This reverts commit 73d1c16706.
* fix: nullify `m_fNextSuicideTime` before call `ClientKill()`
* ClientKill: refactoring
* add forgotten if-statement
* remove macros
Co-authored-by: metita <33007491+metita@users.noreply.github.com>
Co-authored-by: Sergey Shorokhov <wopox1337@ya.ru>
* implement CGib
Move code part from basemonster.cpp to gib.cpp
3-rd party:
Link entity to class (can hookable by HamSandwich amxx module)
Add hooks for ReAPI
* Remove respawn dependency on forcerespawn cvar
Able to set custom respawn time for m_flRespawnPending without mp_forcerespawn enabled
* workaround when disabling forcerespawn must stop works immediately
* just block respawn then cvar disabled without reset for correct cvar logic
Moved behavior cvar mp_refill_bpammo_weapons 3 into mp_infinite_ammo 2 as it was implemented in the official.
CM3/CXM1014 implemented override func PlayEmptySound.