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; 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); const auto command = Utils::String::ToLower(name);
ClientCommand::HandlersSV[command] = std::move(callback); ClientCommand::HandlersSV[command] = callback;
} }
void ClientCommand::ClientCommandStub(const int clientNum) void ClientCommand::ClientCommandStub(const int clientNum)
@ -52,7 +52,7 @@ namespace Components
return; return;
} }
Utils::Hook::Call<void(const int)>(0x416790)(clientNum); Utils::Hook::Call<void(int)>(0x416790)(clientNum);
} }
void ClientCommand::AddCheatCommands() void ClientCommand::AddCheatCommands()
@ -351,69 +351,6 @@ namespace Components
void ClientCommand::AddScriptFunctions() 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(); Script::AddFunction("DropAllBots", [] // gsc: DropAllBots();
{ {
Game::SV_DropAllBots(); Game::SV_DropAllBots();

View File

@ -7,13 +7,13 @@ namespace Components
public: public:
ClientCommand(); 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); static bool CheatsOk(const Game::gentity_s* ent);
private: private:
static std::unordered_map<std::string, std::function<void(Game::gentity_s*, Command::ServerParams*)>> HandlersSV; 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 AddCheatCommands();
static void AddDevelopmentCommands(); static void AddDevelopmentCommands();
static void AddScriptFunctions(); static void AddScriptFunctions();

View File

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