Подскажите пожалуйста, как для аддона 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 лайк