diff --git a/src/Components/Modules/Script.cpp b/src/Components/Modules/Script.cpp index 72995ce6..c0213610 100644 --- a/src/Components/Modules/Script.cpp +++ b/src/Components/Modules/Script.cpp @@ -531,6 +531,28 @@ namespace Components { Script::ScriptStorage.clear(); }); + + Script::AddFunction("NoClip", [](Game::scr_entref_t entref) + { + if (entref >= Game::MAX_GENTITIES || Game::g_entities[entref].client == nullptr) + { + Game::Scr_Error(Utils::String::VA("^1NoClip: entity %u is not a client\n", entref)); + return; + } + + Game::g_entities[entref].client->flags ^= Game::PLAYER_FLAG_NOCLIP; + }); + + Script::AddFunction("Ufo", [](Game::scr_entref_t entref) + { + if (entref >= Game::MAX_GENTITIES || Game::g_entities[entref].client == nullptr) + { + Game::Scr_Error(Utils::String::VA("^1Ufo: entity %u is not a client\n", entref)); + return; + } + + Game::g_entities[entref].client->flags ^= Game::PLAYER_FLAG_UFO; + }); } Script::Script() diff --git a/src/Game/Functions.hpp b/src/Game/Functions.hpp index 2569dbcf..984bf7c5 100644 --- a/src/Game/Functions.hpp +++ b/src/Game/Functions.hpp @@ -931,6 +931,7 @@ namespace Game extern int* demoRecording; extern int* serverMessageSequence; + constexpr auto MAX_GENTITIES = 2048; extern gentity_t* g_entities; extern netadr_t* connectedHost;