Пасты (фрагменты кода)

Небольшие вырезки кода, который может быть применен для решения некоторых задач

Замена модельки подарка

Небольшой костыль, позволяющий изменить модельку дропнутого предмета. Скорее всего, это временное решение и в будущем возможность изменения модельки будет реализована в основном функционале

P.S. Возможен баг с прокручиванием новой модельки, словно она - шарик

hook.Add("OnEntityCreated", "IGS_ChangeGiftModel", function(ent)
	if IsValid(ent) and ent:GetClass() == "ent_igs" then
		timer.Simple(1, function()
			ent:SetModel("string modelName")
		end)
	end
end)

Скрытие сообщений от IGS в чате

В примере снизу скрывается сообщение об автовосстановлении ULX прав. Тема, из-за которой это реализовано: Как убрать сообщение об автовосстановлении

hook.Add("IGS.Loaded", "IGS_NotifyAllOverride", function()
	IGS.NotifyAll_ = IGS.NotifyAll_ or IGS.NotifyAll

	function IGS.NotifyAll(...)
		local args = {...}
		if args[1] and isstring(args[1]) and args[1]:StartWith("Автовосстановление ") then
			return
		end
		return IGS.NotifyAll_(unpack(args))
	end

	print("IGS. Оверрайд IGS.NotifyAll")
end)

Команда покупки кастомного количества игровой валюты

Изначально была написана для темы Ползунок выбора суммы валюты для покупки. В идеале для нее нужен интерфейс, где игрок вводит сколько он хочет валюты.

concommand.Add("igsbuymoney", function(pl, _, args)
	local sum = tonumber(args[1])
	if not sum then return end

	local ttw = 30 - (os.time() - (pl.last_igsbuymoney or 0))
	if ttw > 0 then
		IGS.Notify("Повторите через " .. string.NiceTime(ttw))
		return
	end

	local price_rub = math.Round(sum / 1000, 2) -- 1000 игровой за 1 рубль
	if price_rub <= 10 then
		IGS.Notify(pl, "Минимальная сумма заказа не достигнута")
		return
	end

	pl.last_igsbuymoney = os.time()
	if IGS.CanAfford(pl, price_rub) then
		pl:AddIGSFunds(-price_rub, "Покупка " .. string.Comma(sum) .. " игровой валюты", function()
			if not IsValid(pl) then return end
			pl:addMoney(sum)
		end)
	else
		IGS.Notify(pl, "Недостаточно денег на донат счету. Введите /IGSDeposit для пополнения")
	end
end)

За публикацию подобных штуковин вы можете получить награду “Моддер” на форуме

1 симпатия