[DarkRP] Как сделать X2 зарплату?

Или вот упрощенный вариант без лишнего кода. Можно оставить прямо в sh_additems.lua

IGS("Ивент: x2 ЗП", "event_x2_salary", 100)
	:SetDescription("Всем будет начисляться двойная ЗП на протяжении 1 часа!")
	:SetStackable()
	:SetCanActivate(function()
		return SALARY_EVENT_START and "Событие уже активно" or nil
	end)
	:SetOnActivate(function(pl)
		SALARY_EVENT_START = os.time()
		IGS.NotifyAll(pl:Name() .. " шиканул и сделал всем двойную ЗП на час!!!")
	end)

hook.Add(SERVER and "playerGetSalary" or "", "IGS.DoubleSalaryEvent", function(pl, amount)
	if os.time() - (SALARY_EVENT_START or 0) < 3600 then -- со старта ивента прошло меньше часа
		-- suppress, message, newAmount
		return false, "ЗП удвоена в связи с x2 ивентом!", amount * 2
	elseif SALARY_EVENT_START then
		SALARY_EVENT_START = nil
	end
end)
P.S. Насчет SERVER and 'bla' or ' '

P.S. Кто-то у меня когда-то спрашивал насчет странной конструкции в hook.Add с SERVER and "bla" or "", которую я применил в примере

Конструкция с SERVER and подразумевает, что хоть код исполняется в sh среде, рассчитан он именно для сервера. И даже если бы такой хук был на клиенте, то таким образом мы бы его автоматически отключили (ведь хука “” не существует и код никогда бы не выполнился). Для меня этот вариант более предпочтительный, чем пирамидки вида if SERVER then и дальше hook.Add с отступом

P.P.S. Есть еще ± похожая тема: Увеличенная зарплата для групп и предметов

3 лайка