[ClientCommand] Make kill always avaiable (with cheats on) (#451)

* [ClientCommand] Make kill always avaiable (with cheats on)

* Update ClientCommand.cpp
This commit is contained in:
Edo 2022-08-22 19:46:47 +02:00 committed by GitHub
parent c9eaea47f2
commit a3776f34c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 24 additions and 24 deletions

View File

@ -242,6 +242,23 @@ namespace Components
}
}
});
ClientCommand::Add("kill", []([[maybe_unused]] Game::gentity_s* ent, [[maybe_unused]] const Command::ServerParams* params)
{
assert(ent->client != nullptr);
assert(ent->client->sess.connected != Game::CON_DISCONNECTED);
if (ent->client->sess.sessionState != Game::SESS_STATE_PLAYING || !ClientCommand::CheatsOk(ent))
return;
Scheduler::Once([ent]
{
ent->flags &= ~(Game::FL_GODMODE | Game::FL_DEMI_GODMODE);
ent->health = 0;
ent->client->ps.stats[0] = 0;
Game::player_die(ent, ent, ent, 100000, 12, 0, nullptr, Game::HITLOC_NONE, 0);
}, Scheduler::Pipeline::SERVER);
});
}
void ClientCommand::AddDevelopmentCommands()
@ -330,23 +347,6 @@ namespace Components
ent->client->ps.stunTime = 1000 + Game::level->time; // 1000 is the default test stun time
Logger::Debug("playerState_s.stunTime is {}", ent->client->ps.stunTime);
});
ClientCommand::Add("kill", []([[maybe_unused]] Game::gentity_s* ent, [[maybe_unused]] const Command::ServerParams* params)
{
assert(ent->client != nullptr);
assert(ent->client->sess.connected != Game::CON_DISCONNECTED);
if (ent->client->sess.sessionState != Game::SESS_STATE_PLAYING || !ClientCommand::CheatsOk(ent))
return;
Scheduler::Once([ent]
{
ent->flags &= ~(Game::FL_GODMODE | Game::FL_DEMI_GODMODE);
ent->health = 0;
ent->client->ps.stats[0] = 0;
Game::player_die(ent, ent, ent, 100000, 12, 0, nullptr, Game::HITLOC_NONE, 0);
}, Scheduler::Pipeline::SERVER);
});
}
void ClientCommand::AddScriptFunctions()

View File

@ -292,8 +292,8 @@ namespace Components
if (*Game::logfile)
{
Game::FS_FCloseFile(reinterpret_cast<int>(*Game::logfile));
*Game::logfile = nullptr;
Game::FS_FCloseFile(*Game::logfile);
*Game::logfile = 0;
}
Game::FS_BuildOSPath(Game::Sys_DefaultInstallPath(), "", "logs/console_mp.log", from_ospath);

View File

@ -397,9 +397,9 @@ namespace Components
lock.unlock();
// Flush the console log
if (const auto logfile = *reinterpret_cast<int*>(0x1AD8F28))
if (*Game::logfile)
{
Game::FS_FCloseFile(logfile);
Game::FS_FCloseFile(*Game::logfile);
}
}
}

View File

@ -659,7 +659,7 @@ namespace Game
char (*sys_exitCmdLine)[1024] = reinterpret_cast<char(*)[1024]>(0x649FB68);
void** logfile = reinterpret_cast<void**>(0x1AD8F28);
int* logfile = reinterpret_cast<int*>(0x1AD8F28);
GamerSettingState* gamerSettings = reinterpret_cast<GamerSettingState*>(0x107D3E8);

View File

@ -723,7 +723,7 @@ namespace Game
typedef void(_cdecl * R_AddCmdDrawStretchPic_t)(float x, float y, float w, float h, float xScale, float yScale, float xay, float yay, const float *color, Game::Material* material);
extern R_AddCmdDrawStretchPic_t R_AddCmdDrawStretchPic;
typedef void* (__cdecl * R_AllocStaticIndexBuffer_t)(IDirect3DIndexBuffer9** store, int length);
typedef void*(__cdecl * R_AllocStaticIndexBuffer_t)(IDirect3DIndexBuffer9** store, int length);
extern R_AllocStaticIndexBuffer_t R_AllocStaticIndexBuffer;
typedef bool(__cdecl * R_Cinematic_StartPlayback_Now_t)();
@ -1368,7 +1368,7 @@ namespace Game
extern char (*sys_exitCmdLine)[1024];
extern void** logfile;
extern int* logfile;
extern GamerSettingState* gamerSettings;