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

Здравствуйте. Подскажите как можно сделать x2 зарплату через хук darkrp ‘playerGetSalary’?
Пробовал через: ply:setSelfDarkRPVar(‘salary’, value * 2), но что-то не получается.

Установка:
-- addons/anyname/lua/autorun/server/double_salary.lua

hook.Add("playerGetSalary", "doubleSalary", function(ply, amount)
	local salary = ply:getJobTable().salary

	return false, nil, (salary * 2)
end)
1 лайк

Спасибо большое, работает)

Сможешь реализовать это как ITEM?
Чтобы игроки могли покупать “ивент” для всего сервера :upside_down_face:

Или вот упрощенный вариант без лишнего кода. Можно оставить прямо в 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 лайка


Не работает :frowning:
Есть варианты подружить его с SlownLS Mayor?

Могу дать тебе скрипт где увеличение зп идёт в зависимости от ранга.
Переписать на то что надо или для всех игроков думаю поймёшь сам.

hook.Add("playerGetSalary", "moresalary", function(ply, salary)
    if ply:IsUserGroup("vip") or ply:IsUserGroup("superadmin") then
        local newsal = salary * 1.5
		return false, "Благодаря вашей привилегии ваша зп увеличена на 50%", newsal

    elseif ply:IsUserGroup("premium") then
        local newsal = salary * 2.5
        return false, "Благодаря вашей привилегии ваша зп увеличена на 150%", newsal

    elseif  ply:IsAdmin() then
        local newsal = salary * 2
        return false, "Благодаря вашей привилегии ваша зп увеличена на 100%", newsal
    end
end)

Слушайте, а есть варик сделать такой же ивент, только с временной випкой?

Чтобы у всех условно на час появлялась випка? Можно, но я не буду писать код для этого. Считаю это вредительским ивентом

почему вредительским? Как по мне, выдать вип всем игрокам на время глобального ивента для того, чтобы открыть доп профы и функции это наоборот очень полезно.

Что-то в стиле “бесплатные выходные в такой-то игре в стиме”, но только “бесплатная випка во время ивента”. Разве что дать пользователю ознакомиться с вип привилегиями (при условии что они что-то значат а не просто открытие к вип профам), больше тут плюсов не вижу.

Не совсем связано, но думаю, может быть интересно для читателей этой темы