Решено Удаление предметов при смерти

Den13337

Новичок
13 Сен 2023
7
0
Есть у кого-нибудь идеи как можно реализовать удаление предметов при смерти? Отдельной функции специально для этого у вальв я не нашёл, но попытался сделать через GetItemInSlot и DropItemAtPositionImmediate, но консоль в этом случае выдаёт: 'GetItemInSlot' (a nil value).

Вот код:
Lua:
function CAddonTemplateGameMode:PlayerDied(data)
    local killed = EntIndexToHScript(data.entindex_killed)
    local itemfirst = GetItemInSlot(0)
    local itemsecond = GetItemInSlot(1)
    local itemthird = GetItemInSlot(2)
    local itemfourth = GetItemInSlot(3)
    local itemfifth = GetItemInSlot(4)
    local itemsix = GetItemInSlot(5)
    local itemseven = GetItemInSlot(6)
    local itemeight = GetItemInSlot(7)
    local itemnine = GetItemInSlot(8)
    local itemdroppoint = Entities:FindByName(nil, "item_drop_point"):GetAbsOrigin()
    if killed:GetUnitName() == "npc_dota_hero_wisp" then
        killed:DropItemAtPositionImmediate(itemfirst, itemdroppoint)
        killed:DropItemAtPositionImmediate(itemsecond, itemdroppoint)
        killed:DropItemAtPositionImmediate(itemthird, itemdroppoint)
        killed:DropItemAtPositionImmediate(itemfourth, itemdroppoint)
        killed:DropItemAtPositionImmediate(itemfifth, itemdroppoint)
        killed:DropItemAtPositionImmediate(itemsix, itemdroppoint)
        killed:DropItemAtPositionImmediate(itemseven, itemdroppoint)
        killed:DropItemAtPositionImmediate(itemeight, itemdroppoint)
        killed:DropItemAtPositionImmediate(itemnine, itemdroppoint)
    end
end
 
Оказывается есть функция для удаление предметов :oops: и ошибку решил

Lua:
function CAddonTemplateGameMode:PlayerDied(data)
    local killed = EntIndexToHScript(data.entindex_killed)
    local itemfirst = killed:GetItemInSlot(0)
    local itemsecond = killed:GetItemInSlot(1)
    local itemthird = killed:GetItemInSlot(2)
    local itemfourth = killed:GetItemInSlot(3)
    local itemfifth = killed:GetItemInSlot(4)
    local itemsix = killed:GetItemInSlot(5)
    local itemseven = killed:GetItemInSlot(6)
    local itemeight = killed:GetItemInSlot(7)
    local itemnine = killed:GetItemInSlot(8)
    if killed:GetUnitName() == "npc_dota_hero_wisp" then
        killed:RemoveItem(itemfirst)
        killed:RemoveItem(itemsecond)
        killed:RemoveItem(itemthird)
        killed:RemoveItem(itemfourth)
        killed:RemoveItem(itemfifth)
        killed:RemoveItem(itemsix)
        killed:RemoveItem(itemseven)
        killed:RemoveItem(itemeight)
        killed:RemoveItem(itemnine)
    end
end
 
Попробуй почитать про циклы
 
if killed_unit == "
Оказывается есть функция для удаление предметов :oops: и ошибку решил

Lua:
function CAddonTemplateGameMode:PlayerDied(data)
    local killed = EntIndexToHScript(data.entindex_killed)
    local itemfirst = killed:GetItemInSlot(0)
    local itemsecond = killed:GetItemInSlot(1)
    local itemthird = killed:GetItemInSlot(2)
    local itemfourth = killed:GetItemInSlot(3)
    local itemfifth = killed:GetItemInSlot(4)
    local itemsix = killed:GetItemInSlot(5)
    local itemseven = killed:GetItemInSlot(6)
    local itemeight = killed:GetItemInSlot(7)
    local itemnine = killed:GetItemInSlot(8)
    if killed:GetUnitName() == "npc_dota_hero_wisp" then
        killed:RemoveItem(itemfirst)
        killed:RemoveItem(itemsecond)
        killed:RemoveItem(itemthird)
        killed:RemoveItem(itemfourth)
        killed:RemoveItem(itemfifth)
        killed:RemoveItem(itemsix)
        killed:RemoveItem(itemseven)
        killed:RemoveItem(itemeight)
        killed:RemoveItem(itemnine)
    end
end

Код:
    if killed:GetUnitName() == "npc_dota_hero_wisp" then
        for i = 0,8 do
            local item = killed:GetItemInSlot(i)
            if item then
                killed:RemoveItem(item)
            end
        end
    end
 
  • Нравится
Реакции: Den13337
Реклама: