Продажа донат моделей

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

Вот такую тематику написал за минуту (не тестил)

local ITEM = FindMetaTable("IGSItem")

function ITEM:SetPlayerModel(path, ...)
	self.PlayerModel = path

	if ... then
		local whitelist = {}
		for _, team in ipairs({...}) do
			whitelist[team] = true
		end
		self.ModelTeamWhitelist = whitelist
	end

	return self
end

hook.Add("PlayerLoadout", "gm-donate.ru/donateModels", function(ply)
	timer.Simple(3, function()
		if IsValid(ply) == false then return end

		for uid, item in ipairs(IGS.PlayerPurchases(ply)) do
			if item.Model == nil then continue end

			if item.ModelTeamWhitelist == nil or item.ModelTeamWhitelist[ply:Team()] then
				ply:SetModel(item.PlayerModel)
				break
			end
		end
	end)
end)

IGS("Gorgeous Freeman", "custom_model")
:SetDescription("https://forum.gm-donate.ru/t/sozdanie-privyazki-modeli-na-vse-profesii-darkrp/1003")
:SetCategory("Разное")
:SetPrice(300)
:SetPerma()
:SetPlayerModel("models/AntoineDelak/playermodels/Gorgeous_Freeman_Underwear_PM.mdl", TEAM_CITIZEN, TEAM_GANG)

пы-сы, vararg вайтлист опционален - если передать в аргументы только модель, её можно будет юзать на всех профессиях.

1 симпатия

Изменил тайтл треда и перенёс его в #mods - мб кому-то ещё будет полезно.

1 симпатия

попробовал получилось следующее , что покупка предмета есть , а смены модели не происходит

возможно какой-то аддон блокирует хук GM:PlayerLoadout
код для проверки этого предположения:

for uid, cback in pairs(hook.GetTable().PlayerLoadout or {}) do
    if cback(Entity(1)) ~= nil then
        print("Bad hook: ".. uid .." (".. debug.getinfo(cback).short_src ..")")
    end
end

запускай на серверсайд.

1 симпатия