[HELIX] Donate-Предмет в инвентарь

Как сделать на helix в донате, чтобы после покупки например “Аптечка”, в твоём инвентаре helix появилась аптечка?

Я делал так, но это немного про другое, но смысл один

IGS("Сбросить карму", "res_karma")
	:SetPrice(0)
	:SetTerm(0)
	:SetDescription("Сбрасывает всю карму на начальный этап")
	:SetCategory("Услуги")
	:SetOnActivate(function(ply)
		if (SERVER) then
			ply:ResetKarma()
		end
	end)

Получается тебе надо взять UID(уникальный id sh_item1.lua → item1) предмета и по сути все.

IGS("Аптечка", "first_kit")
	:SetPrice(0)
	:SetTerm(0)
	:SetDescription("Получите аптечку")
	:SetCategory("Предметы")
	:SetOnActivate(function(ply)
		if (SERVER) then
         local inv = ply:GetCharacter():GetInventory()
         inv:Add("item1") 
		end
	end)

Но так оно сначала добавит ее в донат-инвентарь, а потом когда игрок активирует она будет добавлена в игровой инвентарь.

Как сделать чтобы в одном товаре было несколько предметов, и при её активации выдавалось в инвентарь например две аптечки и одна броня?

Таблицей. Создаешь таблицу где указываешь UID предметов которые ты хочешь чтобы давались игроку, потом перебираешь её и добавляешь предметы в инвентарь игроку. Пример:

local itemsPack ={
["item1"] = 2, -- Пусть это будет аптечка, где в скобках уникальный ID, а после равно это кол-во
["item2"] = 1, 
}

IGS("Набор предметов", "pack_items")
	:SetPrice(0)
	:SetTerm(0)
	:SetDescription("Набор предметов")
	:SetCategory("Предметы")
	:SetOnActivate(function(ply)
		if (SERVER) then
          local inv = ply:GetCharacter():GetInventory()
          for uid, count in pairs(itemsPack ) do
               inv:Add(uid, count) 
          end
       
		end
	end)

Вы уверены, что вы не допустили ошибку?

Если есть ошибка, скидывай. Мог и ошибиться

[igs-modification] gamemodes/helix/gamemode/core/libs/sh_item.lua:64: bad argument #1 to ‘TableToJSON’ (table expected, got nil)

  1. TableToJSON - [C]:-1
  2. Instance - gamemodes/helix/gamemode/core/libs/sh_item.lua:64
    3. Add - gamemodes/helix/gamemode/core/meta/sh_inventory.lua:664
    4. onactivate - addons/igs-modification/lua/igs/settings/sh_additems.lua:32
    5. OnActivate - addons/igs-core/lua/igs/objects/shop_item.lua:245
    6. GivePurchase - addons/igs-core/lua/igs/core_sv.lua:78
    7. fCallback - addons/igs-core/lua/igs/core_sv.lua:89
    8. fOnSuccess - addons/igs-core/lua/igs/apinator.lua:194
    9. fOnSuccess - addons/igs-core/lua/igs/apinator.lua:72
    10. onsuccess - addons/igs-core/lua/igs/apinator.lua:61
    11. unknown - lua/includes/modules/http.lua:58

А куда этот код вставил?

sh_additems.lua

сделай print(inv) перед for

и кстати, этот товар можно активировать ток один раз

print что-то выдал? Просто там нечему не работать, кроме как если inv будет равен nil

неааа

Ну у меня все работает, только что проверил. Попробуй этот код

local itemsPack = {
	["metal"] = 2, -- Пусть это будет аптечка, где в скобках уникальный ID, а после равно это кол-во
	["tkan"] = 1,
}

IGS("Набор предметов", "pack_items")
	:SetPrice(0)
	:SetTerm(0)
	:SetDescription("Набор предметов")
	:SetCategory("Предметы")
	:SetOnActivate(function(ply)
			local inv = ply:GetCharacter():GetInventory()

			for uid, count in pairs(itemsPack) do
				inv:Add(uid, count)
			end
	end)

нечего не поменялось

Может ты в uid предмета ошибку допустил?
Сделай print(ix.item.Get(uid).name) в for, и не забывай после изменений перезагружать сервер

net, prover na error v kode

Как можна сделать для itemstore?

Тебе print что выдал? Потому что у меня все работает.