Разноцветный физган в донат меню

Скрипт на радужный физган для GM-DONATE

Что делает данный скрипт? При покупке услуги в автодонате скрипт будет активировать игроку радужный физган который будет переливаться в цвета в стиле радуги !

Я подробно расписал как настроить и пользоваться данным скриптом!
Скрипт кидать в garrysmod/lua/autorun/server

Строчка для доната (/garrysmod/addons/igsmodification/lua/igs/settings/sh_additems.lua):

IGS(“Радужный Physgun”, “rainbowphysgun”)
:SetIcon(“models/weapons/w_physics.mdl”, true)
:SetPrice(150)
:SetPerma()
:SetCategory(“Плюшки”)

sv_rainbowphysgun.rar (By Faulin) (1.0 КБ)!
Физган (by Faulin)

Немного оптимизировал скрипт фаулина. Уменьшил лаг при работе во время большого онлайна на сервере

sv_rainbowphysgun.lua (1.1 КБ)

Установка:

Закинуть в addons/igs-modification/lua/autorun/server

Заливайте, пожалуйста, архивы в формате zip.
Для .rar нужно качать разархиватор :frowning:

Учту, GMD выложил .lua чуть выше скачайте её

в зип может быть вирус

Virustotal в помощь, вирусы выкладывать в lua файлы такое

Раз на то пошло, я то-же чутка оптимизировал скрипт.
Алсо, ваша версия поломана - см новое название переменной на 33 строке и использование старого названия переменной на 34 строке.

Файлик: sh_rainbowphysgun.lua (1.2 КБ)

а в RAR не может? :smiley:

Благодарю, серьор. Я действительно не тестировал скрипт после правок, поскольку нет возможности.

Главной моей целью было упрощение Think хука, чтобы тот не бегал по всем игрокам каждый Think, а только по тем, кто купил услугу. Таким образом при онлайне 120 человек придется делать 1-2 итерации по таблице вместо 120 каждый Think

То, что таблица заменена на GetNWBool лишило оптимизацию всей сути. С тем же успехом весь скрипт можно сделать в таком виде, убрав хуки:

image

Но опять же, суть моей оптимизации была как раз в разгрузке Think, который выходит тяжелым в оригинальном и твоем варианте

Моя логика такова:
вся нагрузка должна перекладываться на плечи клиента, сервер должен делать минимум вычислений.
в идеале конечно можно заменить gmod NW на igs NW тогда получиться скомбинировать мою оптимизацию с логикой на клиенте и вашу с разгрузкой Think.

Работает но не переливается, а только красный - оранжевый цвета…

Там значения нужно было изменить
Попробуй это

-- UID итема в sh_additems, при активации которого игроку будет выдан цветной физган
local PHYSGUN_ITEM_UID = "rainbowphysgun"

if SERVER then
	hook.Add("IGS.PlayerPurchasesLoaded", PHYSGUN_ITEM_UID, function(pl)
		if pl:HasPurchase(PHYSGUN_ITEM_UID) then
			pl:SetNWBool(PHYSGUN_ITEM_UID, true)
		end
	end)

	hook.Add("IGS.PlayerActivatedItem", PHYSGUN_ITEM_UID, function(pl, ITEM)
		if ITEM:UID() == PHYSGUN_ITEM_UID then
			pl:SetNWBool(PHYSGUN_ITEM_UID, true)
		end
	end)

	return
end

local div = 255 / 1
local col, vec_col

hook.Add("Think", PHYSGUN_ITEM_UID, function()
	col = HSVToColor(CurTime() % 6 * 150, 1, 1)
	vec_col = Vector(col.r * div, col.g * div, col.b * div)

	for i, ply in ipairs(player.GetHumans()) do
		if ply:GetNWBool(PHYSGUN_ITEM_UID, false) then
			ply:SetWeaponColor(vec_col)
		end
	end
end)