Merge pull request #388 from diamante0018/no-one-asked

[Script] Remove builtin God, demigod, notarget
This commit is contained in:
Dss0 2022-07-24 17:13:38 +02:00 committed by GitHub
commit 00d9fc55bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 87 deletions

View File

@ -26,11 +26,11 @@ namespace Components
return true;
}
void ClientCommand::Add(const char* name, std::function<void(Game::gentity_s*, Command::ServerParams*)> callback)
void ClientCommand::Add(const char* name, const std::function<void(Game::gentity_s*, Command::ServerParams*)>& callback)
{
const auto command = Utils::String::ToLower(name);
ClientCommand::HandlersSV[command] = std::move(callback);
ClientCommand::HandlersSV[command] = callback;
}
void ClientCommand::ClientCommandStub(const int clientNum)
@ -52,7 +52,7 @@ namespace Components
return;
}
Utils::Hook::Call<void(const int)>(0x416790)(clientNum);
Utils::Hook::Call<void(int)>(0x416790)(clientNum);
}
void ClientCommand::AddCheatCommands()
@ -351,69 +351,6 @@ namespace Components
void ClientCommand::AddScriptFunctions()
{
Script::AddMethod("God", [](Game::scr_entref_t entref) // gsc: God(<optional int toggle>);
{
auto* ent = Game::GetEntity(entref);
if (Game::Scr_GetNumParam() >= 1)
{
if (Game::Scr_GetInt(0))
{
ent->flags |= Game::FL_GODMODE;
}
else
{
ent->flags &= ~Game::FL_GODMODE;
}
}
else
{
ent->flags ^= Game::FL_GODMODE;
}
});
Script::AddMethod("Demigod", [](Game::scr_entref_t entref) // gsc: Demigod(<optional int toggle>);
{
auto* ent = Game::GetEntity(entref);
if (Game::Scr_GetNumParam() >= 1)
{
if (Game::Scr_GetInt(0))
{
ent->flags |= Game::FL_DEMI_GODMODE;
}
else
{
ent->flags &= ~Game::FL_DEMI_GODMODE;
}
}
else
{
ent->flags ^= Game::FL_DEMI_GODMODE;
}
});
Script::AddMethod("Notarget", [](Game::scr_entref_t entref) // gsc: Notarget(<optional int toggle>);
{
auto* ent = Game::GetEntity(entref);
if (Game::Scr_GetNumParam() >= 1)
{
if (Game::Scr_GetInt(0))
{
ent->flags |= Game::FL_NOTARGET;
}
else
{
ent->flags &= ~Game::FL_NOTARGET;
}
}
else
{
ent->flags ^= Game::FL_NOTARGET;
}
});
Script::AddFunction("DropAllBots", [] // gsc: DropAllBots();
{
Game::SV_DropAllBots();

View File

@ -7,13 +7,13 @@ namespace Components
public:
ClientCommand();
static void Add(const char* name, std::function<void(Game::gentity_s*, Command::ServerParams*)> callback);
static void Add(const char* name, const std::function<void(Game::gentity_s*, Command::ServerParams*)>& callback);
static bool CheatsOk(const Game::gentity_s* ent);
private:
static std::unordered_map<std::string, std::function<void(Game::gentity_s*, Command::ServerParams*)>> HandlersSV;
static void ClientCommandStub(const int clientNum);
static void ClientCommandStub(int clientNum);
static void AddCheatCommands();
static void AddDevelopmentCommands();
static void AddScriptFunctions();

View File

@ -296,26 +296,26 @@ namespace Game
CON_BUILTIN_CHANNEL_COUNT,
};
enum entityFlag
enum
{
FL_GODMODE = 0x1,
FL_DEMI_GODMODE = 0x2,
FL_NOTARGET = 0x4,
FL_NO_KNOCKBACK = 0x8,
FL_NO_RADIUS_DAMAGE = 0x10,
FL_SUPPORTS_LINKTO = 0x1000,
FL_NO_AUTO_ANIM_UPDATE = 0x2000,
FL_GRENADE_TOUCH_DAMAGE = 0x4000,
FL_STABLE_MISSILES = 0x20000,
FL_REPEAT_ANIM_UPDATE = 0x40000,
FL_VEHICLE_TARGET = 0x80000,
FL_GROUND_ENT = 0x100000,
FL_CURSOR_HINT = 0x200000,
FL_MISSILE_ATTRACTOR = 0x800000,
FL_WEAPON_BEING_GRABBED = 0x1000000,
FL_DELETE = 0x2000000,
FL_BOUNCE = 0x4000000,
FL_MOVER_SLIDE = 0x8000000
FL_GODMODE = 1 << 0,
FL_DEMI_GODMODE = 1 << 1,
FL_NOTARGET = 1 << 2,
FL_NO_KNOCKBACK = 1 << 3,
FL_NO_RADIUS_DAMAGE = 1 << 4,
FL_SUPPORTS_LINKTO = 1 << 12,
FL_NO_AUTO_ANIM_UPDATE = 1 << 13,
FL_GRENADE_TOUCH_DAMAGE = 1 << 14,
FL_STABLE_MISSILES = 1 << 17,
FL_REPEAT_ANIM_UPDATE = 1 << 18,
FL_VEHICLE_TARGET = 1 << 19,
FL_GROUND_ENT = 1 << 20,
FL_CURSOR_HINT = 1 << 21,
FL_MISSILE_ATTRACTOR = 1 << 23,
FL_WEAPON_BEING_GRABBED = 1 << 24,
FL_DELETE = 1 << 25,
FL_BOUNCE = 1 << 26,
FL_MOVER_SLIDE = 1 << 27
};
enum ClassNum : unsigned int