Как сделать автоудаление поломанной техники на базе LVS?

Как сделать автоудаление поломанной техники на базе LVS ?
Делаю WW2RP, нужна помощь. На сервере есть танки (немецкие, французские, советские и т.д.) после их уничтожения они остаются в качестве груды металлолома, как сделать так, чтобы их удаляло автоматически ?


дай адон

для удаления при уничтожении (сразу)
при создании танка пример:

local tank=ents.Create("Tank_T34")--указан как пример
tank.DeleteOnExplode=true

Для создания таймера, где 30 это сколько времени перед удалением.

local tank=ents.Create("Tank_T34")--указан как пример
local old =tank.OnExploded
tank.OnExploded= function (self)
old(self)
timer.Simple(30,function()
if  not IsValid(self) then return end 
self:Remove()
end)
end

Хуков я не нашёл но если у вас не кастомный спавн то можно обойтись этим хуком

local GetClass = FindMetaTable("Entity").GetClass
hook.Add("InitPostEntity", "InitPostEntity_TankDest___Time", function()
    hook.Add("OnEntityCreated", "TankDest___Time", function(ent)
        if not Find(GetClass(ent), "lvs_wheeldrive") then return end
        timer.Simple(0, function()
            local old =ent.OnExploded
            ent.OnExploded = function(self)
                old(ent)
                timer.Simple(30, function()
                    if not IsValid(ent) then return end
                    ent:Remove()
                end)
            end
        end)
    end)
end)

Всё это SV часть.

1 лайк

А это куда вписывать ? просто не очень понимаю

В SV часть.
lua/autorun/server, к примеру.

1 лайк

и мне здесь надо создать отдельный файл или в любой из них закинуть ?

Отдельный создай и закинь туда

1 лайк

спасибо, завтра сделаю, если поможет, отпишу :slight_smile:

Напридумывали . . .
Хук в хук жесть, что придумали. Зайдите хоть в LVS GitHub или декомпильте аддон и поищите хуки, которые они ранят.
Всё это любой lua/autroun/server называешь sv_deletelvs.lua

local tSimple = timer.Simple
local seconds = 30

hook.Add('LVS.OnVehicleDestroyed', 'LVS:DeleteDestroyed', function(ent)
    tSimple(seconds, function()
        if not IsValid(ent) then return end
        ent:Remove()
    end)
end)
1 лайк