diff --git a/src/LuaAPI.cpp b/src/LuaAPI.cpp index 015f4bf..bc8c94f 100644 --- a/src/LuaAPI.cpp +++ b/src/LuaAPI.cpp @@ -217,6 +217,7 @@ std::pair LuaAPI::MP::RemoveVehicle(int PID, int VID) { auto c = MaybeClient.value().lock(); if (!c->GetCarData(VID).empty()) { std::string Destroy = "Od:" + std::to_string(PID) + "-" + std::to_string(VID); + LuaAPI::MP::Engine->ReportErrors(LuaAPI::MP::Engine->TriggerEvent("onVehicleDeleted", "", PID, VID)); Engine->Network().SendToAll(nullptr, StringToVector(Destroy), true, true); c->DeleteCar(VID); Result.first = true; diff --git a/src/TNetwork.cpp b/src/TNetwork.cpp index e08d78d..e9cc718 100644 --- a/src/TNetwork.cpp +++ b/src/TNetwork.cpp @@ -656,6 +656,7 @@ void TNetwork::OnDisconnect(const std::weak_ptr& ClientPtr) { VehicleData = *LockedData.VehicleData; } // End Vehicle Data Lock Scope for (auto& v : VehicleData) { + LuaAPI::MP::Engine->ReportErrors(LuaAPI::MP::Engine->TriggerEvent("onVehicleDeleted", "", c.GetID(), v.ID())); Packet = "Od:" + std::to_string(c.GetID()) + "-" + std::to_string(v.ID()); SendToAll(&c, StringToVector(Packet), false, true); } diff --git a/src/TServer.cpp b/src/TServer.cpp index 22e7c53..ec714ce 100644 --- a/src/TServer.cpp +++ b/src/TServer.cpp @@ -137,7 +137,6 @@ void TServer::RemoveClient(const std::weak_ptr& WeakClientPtr) { beammp_assert(LockedClientPtr != nullptr); TClient& Client = *LockedClientPtr; beammp_debug("removing client " + Client.GetName() + " (" + std::to_string(ClientCount()) + ")"); - // TODO: Send delete packets for all cars Client.ClearCars(); WriteLock Lock(mClientsMutex); mClients.erase(WeakClientPtr.lock()); @@ -322,6 +321,7 @@ void TServer::ParseVehicle(TClient& c, const std::string& Pckt, TNetwork& Networ // TODO: handle } std::string Destroy = "Od:" + std::to_string(c.GetID()) + "-" + std::to_string(CarID); + LuaAPI::MP::Engine->ReportErrors(LuaAPI::MP::Engine->TriggerEvent("onVehicleDeleted", "", c.GetID(), CarID)); if (!Network.Respond(c, StringToVector(Destroy), true)) { // TODO: handle } @@ -355,6 +355,7 @@ void TServer::ParseVehicle(TClient& c, const std::string& Pckt, TNetwork& Networ } std::string Destroy = "Od:" + std::to_string(c.GetID()) + "-" + std::to_string(VID); Network.SendToAll(nullptr, StringToVector(Destroy), true, true); + LuaAPI::MP::Engine->ReportErrors(LuaAPI::MP::Engine->TriggerEvent("onVehicleDeleted", "", c.GetID(), VID)); c.DeleteCar(VID); } }