By sending the CommandKeyValues "MVM_Revive_Response" with "accepted" "1" the game will instantly respawn you, or if you are currently getting revived by a medigun, will instantly spawn you as if you got revived
instant_revive.cpp
Code:
- #include "Main.h"
- InstantReviveListener g_ReviveListener;
- /*
- * Game event "revive_player_notify", Tick 12337:
- - "marker_entindex" = "374"
- - "entindex" = "1"
- */
- void InstantReviveListener::FireGameEvent(IGameEvent *event)
- {
- if (!g_Settings->instant_revive || !Globals->local_player)
- return;
- const int revivee = event->GetInt("entindex");
- if (revivee != Globals->local_player->GetIndex())
- return;
- auto *kv = new KeyValues("MVM_Revive_Response");
- kv->SetInt("accepted", 1);
- I::Engine->ServerCmdKeyValues(kv);
- }
- void InstantReviveListener::Register()
- {
- I::GameEvents->AddListener(this, "revive_player_notify", false);
- }
- void InstantReviveListener::Unregister()
- {
- I::GameEvents->RemoveListener(this);
- }
instant_revive.h
Code:
- #pragma once
- class InstantReviveListener : public IGameEventListener2
- {
- public:
- void FireGameEvent(IGameEvent *event) override;
- void Register();
- void Unregister();
- };
- extern InstantReviveListener g_ReviveListener;
Instant Respawn anytime when dead
Code:
- void SmallMisc::RespawnKey()
- {
- if (!Utils::IsKeyDown(g_Settings->respawn_key))
- return;
- auto *kv = new KeyValues("MVM_Revive_Response");
- kv->SetInt("accepted", 1);
- I::Engine->ServerCmdKeyValues(kv);
- }