[slownls_hitman] Авто заказы

Подскажите пожалуйста, как для аддона slownls_hitman реализовать автоматические заказы, чтобы они появлялись раз в 15 минут

SV часть

local Time = 15 * 60 -- 15 минут
local money = 5000 -- сколько денег за заказ
local moneyR = true -- true озачает что будет разброс +-moneyT% от money, пример +-25% от 5000
local moneyT = 25

--- Дальше для изменений функций под себя.
local PL = FindMetaTable('Player')
local table_insert = table.insert
local desc = 'Авто заказ' --описание заказа
function PL:SetHitContract(price, des, owner)
    local intId = table_insert(SlownLS.Hitman.Contracts, {
        victim = self,
        by = owner,
        price = price,
        description = des
    })
    return intId -- может пригодится где 
end

local player_GetAll = player.GetAll
function PL:GetHitContract() --у аддона есть своя проверкано она через pairs, интересно почему не сделали отдельную таблицу или в запись в игрока
    local tb = SlownLS.Hitman.Contracts
    for i = 1, #tb do
        if tb[i].victim == self then return true end
    end
    return false
end

local table_remove = table.remove
local math_random = math.random
timer.Create('SlownLS.Hitman.TimerRandomContract', Time, 0, function()
    local pla = player_GetAll()
    local plac = #pla
    if plac >= 2 then return end
    local plac2 = plac -- не помню изменение числа до которого идёт счёт будет обновляться для самого for
    for i = 1, plac do
        local n = math_random(plac2)
        local plt = pla[n]
        if plt:GetHitContract() then
            table_remove(pla, n)
            continue
        end

        local price = money
        if moneyR then
            local r = money / 100 * moneyT
            price = math_random(money - r, money + r)
        end

        plt:SetHitContract(price, desc)
        break
    end
end)

/garrysmod/addons/slownls_hitman/lua/autorun/server/auto.lua
данный путь будет считаться корректным ?

да, но файл лучше назвать по другому например slhit_auto

Я сейчас пытаюсь проверить на ботах, я правильно понимаю, что на ботах проверить не получится или у меня где то в коде ошибка ?

только игроки,
3+ игроков нужно

Окай, спасибо

Перенес в “Делимся кодом”. По сути так больше подходит

1 лайк