Как сделать на 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)
- TableToJSON - [C]:-1
- 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 что выдал? Потому что у меня все работает.