From 8aa8d43d7f4e74c37f9e4cbf8012b792528028b9 Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sat, 24 Jan 2026 13:42:40 -0300 Subject: [PATCH 01/14] Native implementation --- .../Pawn/Scripting/CustomModels/Natives.cpp | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Server/Components/Pawn/Scripting/CustomModels/Natives.cpp b/Server/Components/Pawn/Scripting/CustomModels/Natives.cpp index 420be65f0..fe06ee79a 100644 --- a/Server/Components/Pawn/Scripting/CustomModels/Natives.cpp +++ b/Server/Components/Pawn/Scripting/CustomModels/Natives.cpp @@ -113,3 +113,23 @@ SCRIPT_API(GetCustomModelPath, bool(int modelId, OutputOnlyString& dffPath, Outp return status; } + +SCRIPT_API(SetModelDownloadAtConnect, bool(bool value)) +{ + auto models = PawnManager::Get()->models; + + if(!models) + return false; + + return models->setModelDownloadAtConnect(value); +} + +SCRIPT_API(StartDownloadForPlayer, bool(IPlayer& player)) +{ + auto models = PawnManager::Get()->models; + + if(!models) + return false; + + return models->startDownloadForPlayer(player); +} \ No newline at end of file From bb580adc2e132d92884b9d01399cf8dd7097e9e1 Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sat, 24 Jan 2026 13:43:23 -0300 Subject: [PATCH 02/14] Toggleable model download at client connection --- Server/Components/CustomModels/models.cpp | 38 ++++++++++++++++++----- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/Server/Components/CustomModels/models.cpp b/Server/Components/CustomModels/models.cpp index 5224c1f09..3a95a4dd7 100644 --- a/Server/Components/CustomModels/models.cpp +++ b/Server/Components/CustomModels/models.cpp @@ -303,6 +303,7 @@ class CustomModelsComponent final : public ICustomModelsComponent, public Player bool usingCdn = false; uint16_t httpThreads = 50; // default max_players is 50 bool showCRCLogs = false; + bool DownloadAtConnect = true; DefaultEventDispatcher eventDispatcher; @@ -695,11 +696,8 @@ class CustomModelsComponent final : public ICustomModelsComponent, public Player return file.name; } - void onPlayerClientInit(IPlayer& player) override + void promptModelsForPlayer(IPlayer& player) { - if (player.getClientVersion() != ClientVersion::ClientVersion_SAMP_03DL) - return; - const auto modelsCount = storage.size(); for (auto i = 0; i != modelsCount; ++i) { @@ -707,7 +705,6 @@ class CustomModelsComponent final : public ICustomModelsComponent, public Player storage[i]->write(modelInfo); PacketHelper::send(modelInfo, player); } - // If client reconnected (lost connection to the server) let's force it to download files if there are any. NetCode::RPC::SetPlayerVirtualWorld setWorld; setWorld.worldId = player.getVirtualWorld() + 1; @@ -716,6 +713,15 @@ class CustomModelsComponent final : public ICustomModelsComponent, public Player PacketHelper::send(setWorld, player); } + void onPlayerClientInit(IPlayer& player) override + { + if (player.getClientVersion() != ClientVersion::ClientVersion_SAMP_03DL) + return; + + if(DownloadAtConnect) + promptModelsForPlayer(player); + } + IEventDispatcher& getEventDispatcher() override { return eventDispatcher; @@ -729,8 +735,10 @@ class CustomModelsComponent final : public ICustomModelsComponent, public Player { return; } - - webServer->allowIPAddress(player.getNetworkData().networkID.address.v4); + if(DownloadAtConnect) + { + webServer->allowIPAddress(player.getNetworkData().networkID.address.v4); + } } void onPlayerDisconnect(IPlayer& player, PeerDisconnectReason reason) override @@ -763,6 +771,22 @@ class CustomModelsComponent final : public ICustomModelsComponent, public Player } return false; } + + bool setModelDownloadAtConnect(bool toggle) override + { + DownloadAtConnect = toggle; + return DownloadAtConnect; + } + + bool startDownloadForPlayer(IPlayer& player) override + { + if(DownloadAtConnect) + return false; + + webServer->allowIPAddress(player.getNetworkData().networkID.address.v4); + promptModelsForPlayer(player); + return true; + } }; COMPONENT_ENTRY_POINT() From ca1082cbd77a63058c67cafb110679eaed1cdef4 Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sat, 24 Jan 2026 14:32:42 -0300 Subject: [PATCH 03/14] fixing format or something --- Server/Components/CustomModels/models.cpp | 6 +++--- Server/Components/Pawn/Scripting/CustomModels/Natives.cpp | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Server/Components/CustomModels/models.cpp b/Server/Components/CustomModels/models.cpp index 3a95a4dd7..a39377c49 100644 --- a/Server/Components/CustomModels/models.cpp +++ b/Server/Components/CustomModels/models.cpp @@ -718,7 +718,7 @@ class CustomModelsComponent final : public ICustomModelsComponent, public Player if (player.getClientVersion() != ClientVersion::ClientVersion_SAMP_03DL) return; - if(DownloadAtConnect) + if (DownloadAtConnect) promptModelsForPlayer(player); } @@ -735,7 +735,7 @@ class CustomModelsComponent final : public ICustomModelsComponent, public Player { return; } - if(DownloadAtConnect) + if (DownloadAtConnect) { webServer->allowIPAddress(player.getNetworkData().networkID.address.v4); } @@ -780,7 +780,7 @@ class CustomModelsComponent final : public ICustomModelsComponent, public Player bool startDownloadForPlayer(IPlayer& player) override { - if(DownloadAtConnect) + if (DownloadAtConnect) return false; webServer->allowIPAddress(player.getNetworkData().networkID.address.v4); diff --git a/Server/Components/Pawn/Scripting/CustomModels/Natives.cpp b/Server/Components/Pawn/Scripting/CustomModels/Natives.cpp index fe06ee79a..635ed9a0d 100644 --- a/Server/Components/Pawn/Scripting/CustomModels/Natives.cpp +++ b/Server/Components/Pawn/Scripting/CustomModels/Natives.cpp @@ -118,7 +118,7 @@ SCRIPT_API(SetModelDownloadAtConnect, bool(bool value)) { auto models = PawnManager::Get()->models; - if(!models) + if (!models) return false; return models->setModelDownloadAtConnect(value); @@ -128,8 +128,10 @@ SCRIPT_API(StartDownloadForPlayer, bool(IPlayer& player)) { auto models = PawnManager::Get()->models; - if(!models) + if (!models) + { return false; - + } + return models->startDownloadForPlayer(player); } \ No newline at end of file From da9a9a6f4a9a7496eef6d2e1111680d6b615bca9 Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sat, 24 Jan 2026 18:36:27 -0300 Subject: [PATCH 04/14] IsBuildingRemovedForPlayer implemented --- Server/Components/Pawn/Scripting/Player/Natives.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Server/Components/Pawn/Scripting/Player/Natives.cpp b/Server/Components/Pawn/Scripting/Player/Natives.cpp index 437c678ea..996b5fa90 100644 --- a/Server/Components/Pawn/Scripting/Player/Natives.cpp +++ b/Server/Components/Pawn/Scripting/Player/Natives.cpp @@ -502,7 +502,12 @@ SCRIPT_API(RemoveBuildingForPlayer, bool(IPlayer& player, uint32_t model, Vector SCRIPT_API(GetPlayerBuildingsRemoved, int(IPlayer& player)) { - return player.getDefaultObjectsRemoved(); + return player.getDefaultObjectsRemovedCount(); +} + +SCRIPT_API(IsBuildingRemovedForPlayer, bool(IPlayer& player, uint32_t model, Vector3 pos, float radius)) +{ + return player.isDefaultObjectRemoved(model, pos, radius); } SCRIPT_API(RemovePlayerFromVehicle, bool(IPlayer& player)) From 75db8bf5aa0d1e25761ee54a33649122b580a5c1 Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sat, 24 Jan 2026 18:36:59 -0300 Subject: [PATCH 05/14] Created DynamicArray for removed objects book-keeping --- Server/Source/player_impl.hpp | 38 +++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/Server/Source/player_impl.hpp b/Server/Source/player_impl.hpp index 0d8eb820a..39e62ae3e 100644 --- a/Server/Source/player_impl.hpp +++ b/Server/Source/player_impl.hpp @@ -53,6 +53,13 @@ enum SecondarySyncUpdateType SecondarySyncUpdateType_Trailer = (1 << 2), }; +struct RemovedDefaultObject +{ + unsigned ModelId; + Vector3 pos; + float radius; +}; + struct Player final : public IPlayer, public PoolIDProvider, public NoCopy { PlayerPool& pool_; @@ -113,12 +120,14 @@ struct Player final : public IPlayer, public PoolIDProvider, public NoCopy PlayerSpectateData spectateData_; float gravity_; bool ghostMode_; - int defaultObjectsRemoved_; + //int defaultObjectsRemoved_; + DynamicArray defaultObjectsRemoved_; bool allowWeapons_; bool allowTeleport_; bool isUsingOfficialClient_; bool isUsingOmp_; bool leavingSpec_; + PrimarySyncUpdateType primarySyncUpdateType_; int secondarySyncUpdateType_; @@ -200,7 +209,7 @@ struct Player final : public IPlayer, public PoolIDProvider, public NoCopy spectateData_ = { false, INVALID_PLAYER_ID, PlayerSpectateData::ESpectateType::None }; gravity_ = 0.0f; ghostMode_ = false; - defaultObjectsRemoved_ = 0; + defaultObjectsRemoved_.clear(); primarySyncUpdateType_ = PrimarySyncUpdateType::None; secondarySyncUpdateType_ = 0; leavingSpec_ = false; @@ -258,7 +267,6 @@ struct Player final : public IPlayer, public PoolIDProvider, public NoCopy , spectateData_({ false, INVALID_PLAYER_ID, PlayerSpectateData::ESpectateType::None }) , gravity_(0.0f) , ghostMode_(false) - , defaultObjectsRemoved_(0) , allowWeapons_(true) , allowTeleport_(false) , isUsingOfficialClient_(params.isUsingOfficialClient) @@ -946,7 +954,13 @@ struct Player final : public IPlayer, public PoolIDProvider, public NoCopy void removeDefaultObjects(unsigned model, Vector3 pos, float radius) override { - defaultObjectsRemoved_++; + RemovedDefaultObject theObject; + theObject.ModelId = model; + theObject.pos = pos; + theObject.radius = radius; + + defaultObjectsRemoved_.push(theObject); + //defaultObjectsRemoved_++; NetCode::RPC::RemoveBuildingForPlayer removeBuildingForPlayerRPC; removeBuildingForPlayerRPC.ModelID = model; removeBuildingForPlayerRPC.Position = pos; @@ -954,9 +968,21 @@ struct Player final : public IPlayer, public PoolIDProvider, public NoCopy PacketHelper::send(removeBuildingForPlayerRPC, *this); } - int getDefaultObjectsRemoved() const override + int getDefaultObjectsRemovedCount() const override { - return defaultObjectsRemoved_; + return defaultObjectsRemoved_.size(); + } + + bool isDefaultObjectRemoved(unsigned model, Vector3 pos, float radius) const override + { + for (const auto& object : defaultObjectsRemoved_) + { + if (model != object.ModelId) continue; + if (pos != object.pos) continue; + if (radius != object.radius) continue; + return true; + } + return false; } bool getKickStatus() const override From 5e81f6c2d5f4e94281c79528696a7de5a24b4970 Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sat, 24 Jan 2026 19:03:13 -0300 Subject: [PATCH 06/14] Comply with CAPI --- .../CAPI/Impl/CustomModels/APIs.cpp | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Server/Components/CAPI/Impl/CustomModels/APIs.cpp b/Server/Components/CAPI/Impl/CustomModels/APIs.cpp index 217985eb9..dc6371e03 100644 --- a/Server/Components/CAPI/Impl/CustomModels/APIs.cpp +++ b/Server/Components/CAPI/Impl/CustomModels/APIs.cpp @@ -115,3 +115,26 @@ OMP_CAPI(CustomModel_GetPath, bool(int modelId, OutputStringViewPtr dffPath, Out return status; } + +OMP_CAPI(SetModelDownloadAtConnect, bool(bool value)) +{ + auto models = ComponentManager::Get()->models; + + if (!models) + return false; + + return models->setModelDownloadAtConnect(value); +} + +OMP_CAPI(StartDownloadForPlayer, bool(objectPtr player)) +{ + POOL_ENTITY_RET(players, IPlayer, player, player_, false); + auto models = ComponentManager::Get()->models; + + if (!models) + { + return false; + } + + return models->startDownloadForPlayer(*player_); +} \ No newline at end of file From 9482ece6a4394028ef7390792c9f8e8ad8cdfccf Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sat, 24 Jan 2026 19:21:53 -0300 Subject: [PATCH 07/14] implemented CAPI for new function --- Server/Components/CAPI/Impl/Players/APIs.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Server/Components/CAPI/Impl/Players/APIs.cpp b/Server/Components/CAPI/Impl/Players/APIs.cpp index 4a83c45bc..89a78b837 100644 --- a/Server/Components/CAPI/Impl/Players/APIs.cpp +++ b/Server/Components/CAPI/Impl/Players/APIs.cpp @@ -596,6 +596,12 @@ OMP_CAPI(Player_GetBuildingsRemoved, int(objectPtr player)) return count; } +OMP_CAPI(Player_IsBuildingRemoved, bool(objectPtr player, int model, float x, float y, float z, float radius)) +{ + POOL_ENTITY_RET(players, IPlayer, player, player_, false); + return player_->isDefaultObjectRemoved(model, {x, y, z}, radius); +} + OMP_CAPI(Player_RemoveFromVehicle, bool(objectPtr player, bool force)) { POOL_ENTITY_RET(players, IPlayer, player, player_, false); From 005d20a29eff5dd0e34e7c29f3504fdfec66830a Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sat, 24 Jan 2026 20:16:04 -0300 Subject: [PATCH 08/14] Implementation of HideVehicle, ShowVehicle and IsVehicleHidden --- Server/Components/CAPI/Impl/Vehicles/APIs.cpp | 20 +++++++++++++++++++ .../Pawn/Scripting/Vehicle/Natives.cpp | 17 ++++++++++++++++ Server/Components/Vehicles/vehicle.hpp | 11 ++++++++++ Server/Components/Vehicles/vehicles_impl.hpp | 2 +- 4 files changed, 49 insertions(+), 1 deletion(-) diff --git a/Server/Components/CAPI/Impl/Vehicles/APIs.cpp b/Server/Components/CAPI/Impl/Vehicles/APIs.cpp index 0d3630f38..215c8a9de 100644 --- a/Server/Components/CAPI/Impl/Vehicles/APIs.cpp +++ b/Server/Components/CAPI/Impl/Vehicles/APIs.cpp @@ -780,3 +780,23 @@ OMP_CAPI(Vehicle_CountOccupants, int(objectPtr vehicle)) return occupants; } + +OMP_CAPI(ShowVehicle, bool(objectPtr vehicle)) +{ + POOL_ENTITY_RET(vehicles, IVehicle, vehicle, vehicle_, 0); + vehicle_->toggleHide(false); + return true; +} + +OMP_CAPI(HideVehicle, bool(objectPtr vehicle)) +{ + POOL_ENTITY_RET(vehicles, IVehicle, vehicle, vehicle_, 0); + vehicle_->toggleHide(true); + return true; +} + +OMP_CAPI(IsVehicleHidden, bool(objectPtr vehicle)) +{ + POOL_ENTITY_RET(vehicles, IVehicle, vehicle, vehicle_, 0); + return vehicle_->isHidden(); +} \ No newline at end of file diff --git a/Server/Components/Pawn/Scripting/Vehicle/Natives.cpp b/Server/Components/Pawn/Scripting/Vehicle/Natives.cpp index 38ef43b38..84084a4c3 100644 --- a/Server/Components/Pawn/Scripting/Vehicle/Natives.cpp +++ b/Server/Components/Pawn/Scripting/Vehicle/Natives.cpp @@ -679,3 +679,20 @@ SCRIPT_API(CountVehicleOccupants, int(IVehicle& vehicle)) occupants += passengers.size(); return occupants; } + +SCRIPT_API(ShowVehicle, bool(IVehicle& vehicle)) +{ + vehicle.toggleHide(false); + return true; +} + +SCRIPT_API(HideVehicle, bool(IVehicle& vehicle)) +{ + vehicle.toggleHide(true); + return true; +} + +SCRIPT_API(IsVehicleHidden, bool(IVehicle& vehicle)) +{ + return vehicle.isHidden(); +} \ No newline at end of file diff --git a/Server/Components/Vehicles/vehicle.hpp b/Server/Components/Vehicles/vehicle.hpp index 340b0e304..a4190658a 100644 --- a/Server/Components/Vehicles/vehicle.hpp +++ b/Server/Components/Vehicles/vehicle.hpp @@ -67,6 +67,7 @@ class Vehicle final : public IVehicle, public PoolIDProvider, public NoCopy uint32_t hydraThrustAngle = 0; float trainSpeed = 0.0f; int lastDriverPoolID = INVALID_PLAYER_ID; + bool hidden_ = false; /// Update the vehicle occupied status - set beenOccupied to true and update the lastOccupied time. void updateOccupied() @@ -154,6 +155,16 @@ class Vehicle final : public IVehicle, public PoolIDProvider, public NoCopy ~Vehicle(); void destream(); + void toggleHide(bool value) override + { + hidden_ = value; + } + + bool isHidden() const override + { + return hidden_; + } + int getVirtualWorld() const override { return virtualWorld_; diff --git a/Server/Components/Vehicles/vehicles_impl.hpp b/Server/Components/Vehicles/vehicles_impl.hpp index 0249857ec..c0595fa47 100644 --- a/Server/Components/Vehicles/vehicles_impl.hpp +++ b/Server/Components/Vehicles/vehicles_impl.hpp @@ -706,7 +706,7 @@ class VehiclesComponent final : public IVehiclesComponent, public CoreEventHandl } const Vector2 dist2D = vehicle->getPosition() - player.getPosition(); - const bool shouldBeStreamedIn = state != PlayerState_None && player.getVirtualWorld() == vehicle->getVirtualWorld() && (playerVehicle == vehicle || glm::dot(dist2D, dist2D) < maxDist); + const bool shouldBeStreamedIn = state != PlayerState_None && (vehicle->isHidden() != true) && player.getVirtualWorld() == vehicle->getVirtualWorld() && (playerVehicle == vehicle || glm::dot(dist2D, dist2D) < maxDist); const bool isStreamedIn = vehicle->isStreamedInForPlayer(player); if (!isStreamedIn && shouldBeStreamedIn) From 6a88612892647ff2776e2bbc261b6ea3d3bf1596 Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sun, 25 Jan 2026 02:09:47 -0300 Subject: [PATCH 09/14] Fixed logic at isDefaultObjectRemoved --- Server/Source/player_impl.hpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Server/Source/player_impl.hpp b/Server/Source/player_impl.hpp index 39e62ae3e..bf7e0e0dd 100644 --- a/Server/Source/player_impl.hpp +++ b/Server/Source/player_impl.hpp @@ -977,10 +977,15 @@ struct Player final : public IPlayer, public PoolIDProvider, public NoCopy { for (const auto& object : defaultObjectsRemoved_) { - if (model != object.ModelId) continue; - if (pos != object.pos) continue; - if (radius != object.radius) continue; - return true; + if (model == -1 || object.ModelId == -1 || model == object.ModelId) + { + float dist = (pos - object.pos).length(); + + if(dist + radius <= object.radius) + { + return true; + } + } } return false; } From ef86a3969b2905ec80e3f66f07ecea29ea5ddf27 Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sun, 25 Jan 2026 02:59:57 -0300 Subject: [PATCH 10/14] something broke when merging both branches i guess its fixed? --- Server/Components/CAPI/Impl/Players/APIs.cpp | 2 +- Server/Source/player_impl.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Server/Components/CAPI/Impl/Players/APIs.cpp b/Server/Components/CAPI/Impl/Players/APIs.cpp index 89a78b837..1d461fb24 100644 --- a/Server/Components/CAPI/Impl/Players/APIs.cpp +++ b/Server/Components/CAPI/Impl/Players/APIs.cpp @@ -592,7 +592,7 @@ OMP_CAPI(Player_RemoveBuilding, bool(objectPtr player, int model, float x, float OMP_CAPI(Player_GetBuildingsRemoved, int(objectPtr player)) { POOL_ENTITY_RET(players, IPlayer, player, player_, false); - int count = player_->getDefaultObjectsRemoved(); + int count = player_->getDefaultObjectsRemovedCount(); return count; } diff --git a/Server/Source/player_impl.hpp b/Server/Source/player_impl.hpp index bf7e0e0dd..efa26ea43 100644 --- a/Server/Source/player_impl.hpp +++ b/Server/Source/player_impl.hpp @@ -959,7 +959,7 @@ struct Player final : public IPlayer, public PoolIDProvider, public NoCopy theObject.pos = pos; theObject.radius = radius; - defaultObjectsRemoved_.push(theObject); + defaultObjectsRemoved_.push_back(theObject); //defaultObjectsRemoved_++; NetCode::RPC::RemoveBuildingForPlayer removeBuildingForPlayerRPC; removeBuildingForPlayerRPC.ModelID = model; From c6272da7c0d94726822d263811af9a9470ef5dea Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sun, 25 Jan 2026 07:27:39 -0300 Subject: [PATCH 11/14] sdk --- SDK | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SDK b/SDK index 1bf8feab2..63b444833 160000 --- a/SDK +++ b/SDK @@ -1 +1 @@ -Subproject commit 1bf8feab24c66e73f8417752cb800cb8c71aba75 +Subproject commit 63b444833de9003a399eec554fd97f20ed010d3e From b8d759ab169e3cc1fb3ba83dc89b0eadbeec5987 Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Sun, 25 Jan 2026 08:18:28 -0300 Subject: [PATCH 12/14] ABI fixes --- SDK | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SDK b/SDK index 63b444833..91345675d 160000 --- a/SDK +++ b/SDK @@ -1 +1 @@ -Subproject commit 63b444833de9003a399eec554fd97f20ed010d3e +Subproject commit 91345675d9d8c2b8ff53b3f0c031f96515ce4e6d From 56bfd4c294d3fe1e04bcb831d2e671056af01aff Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Mon, 26 Jan 2026 00:51:01 -0300 Subject: [PATCH 13/14] Cleanup, match clang format --- Server/Source/player_impl.hpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Server/Source/player_impl.hpp b/Server/Source/player_impl.hpp index efa26ea43..7cd9b074d 100644 --- a/Server/Source/player_impl.hpp +++ b/Server/Source/player_impl.hpp @@ -120,7 +120,6 @@ struct Player final : public IPlayer, public PoolIDProvider, public NoCopy PlayerSpectateData spectateData_; float gravity_; bool ghostMode_; - //int defaultObjectsRemoved_; DynamicArray defaultObjectsRemoved_; bool allowWeapons_; bool allowTeleport_; @@ -960,7 +959,6 @@ struct Player final : public IPlayer, public PoolIDProvider, public NoCopy theObject.radius = radius; defaultObjectsRemoved_.push_back(theObject); - //defaultObjectsRemoved_++; NetCode::RPC::RemoveBuildingForPlayer removeBuildingForPlayerRPC; removeBuildingForPlayerRPC.ModelID = model; removeBuildingForPlayerRPC.Position = pos; @@ -981,7 +979,7 @@ struct Player final : public IPlayer, public PoolIDProvider, public NoCopy { float dist = (pos - object.pos).length(); - if(dist + radius <= object.radius) + if (dist + radius <= object.radius) { return true; } From f056d30cb5ea2a1a1dd5193ed4b574a7bb71a855 Mon Sep 17 00:00:00 2001 From: stley <57237098+stley@users.noreply.github.com> Date: Mon, 26 Jan 2026 00:51:51 -0300 Subject: [PATCH 14/14] clang formatting --- Server/Components/CAPI/Impl/Players/APIs.cpp | 2 +- Server/Components/Pawn/Scripting/CustomModels/Natives.cpp | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Server/Components/CAPI/Impl/Players/APIs.cpp b/Server/Components/CAPI/Impl/Players/APIs.cpp index 1d461fb24..6884dd6aa 100644 --- a/Server/Components/CAPI/Impl/Players/APIs.cpp +++ b/Server/Components/CAPI/Impl/Players/APIs.cpp @@ -599,7 +599,7 @@ OMP_CAPI(Player_GetBuildingsRemoved, int(objectPtr player)) OMP_CAPI(Player_IsBuildingRemoved, bool(objectPtr player, int model, float x, float y, float z, float radius)) { POOL_ENTITY_RET(players, IPlayer, player, player_, false); - return player_->isDefaultObjectRemoved(model, {x, y, z}, radius); + return player_->isDefaultObjectRemoved(model, { x, y, z }, radius); } OMP_CAPI(Player_RemoveFromVehicle, bool(objectPtr player, bool force)) diff --git a/Server/Components/Pawn/Scripting/CustomModels/Natives.cpp b/Server/Components/Pawn/Scripting/CustomModels/Natives.cpp index 635ed9a0d..17feb5554 100644 --- a/Server/Components/Pawn/Scripting/CustomModels/Natives.cpp +++ b/Server/Components/Pawn/Scripting/CustomModels/Natives.cpp @@ -132,6 +132,5 @@ SCRIPT_API(StartDownloadForPlayer, bool(IPlayer& player)) { return false; } - return models->startDownloadForPlayer(player); } \ No newline at end of file