[IGS] Команда активации купонов?

Как реализовать команду /activate промокод
На сервере слишком глупые игроки :sob: :sob: :sob:

Это не чат команда, а консольная, но вдруг тебе подойдет

-- Путь установки
-- addons/igs-modification/lua/autorun/server/concmd_coup.lua

concommand.Add("activate_cp", function(pl, _, args)
	if not args[1] then pl:ChatPrint("Введите код купона") return end

	IGS.PlayerActivateCoupon(pl, args[1], function(ok, err_txt)
		pl:ChatPrint(ok and "Купон активирован" or err_txt)
	end)
end)
1 лайк

а как из неё сделать команду в чате?

Попробуй это (не тестил)

local prefix = '/'


local function Request(title, text, func)
  return function()
    Derma_StringRequest(DarkRP.getPhrase(title) or title, DarkRP.getPhrase(text) or text, nil, function(s)
      func(s)
    end)
  end
end

hook.Add('PlayerSay', 'CouponActivate', function(ply, str)
    if string.lower(str) == prefix..'promo' then
    func = function()
	Derma_StringRequest(" ", "Введите промокод", nil, function(s)
	RunConsoleCommand("activate_cp", s)
	end)
    end   
    end
end)

Закинь в тот же луа файл, что указал AMD

В теории при написании в чат команды /promo должно вылазить окошко, запрашивающее промокод
Сам код, опять же, не тестил

не работает, помогите создать консольную команду кто может пж(

Не работает, но задумка интересная

А консольная работает, которую я дал?

Да, но я смог активировал купон который истек 2 дня назад


image

Привет, поместите этот LUA файл в lua/autorun/server и назовите его как-нибудь (например, gmdonate_chatcoupon.lua)

hook.Add("PlayerSay", "GMD_ChatCode", function(pl, text)
	local args = string.Explode(" ", text)

	if args[1] == "/activate" then
		if not args[2] then
			pl:ChatPrint("Введите код купона")

			return
		end

		IGS.PlayerActivateCoupon(pl, args[2], function(ok, err_txt)
			pl:ChatPrint(ok and "Купон активирован" or err_txt)
		end)
	end
end)

Если я смог помочь вам, пожалуйста, дайте мне обратную связь.

1 лайк

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

Привет проблему я не решал оставил как есть
На счет актуальности сказать не могу