Сундук с Overthrow

uBluewolfu

Активный
20 Ноя 2017
90
5
После обновления 7.07 перестал подбираться сундук(У меня копия Overthrow). Поднимается только если нету предметов в инвентаре. Как пофиксить?
 
скинь свой addon_game_mode.lua (function COverthrowGameMode:ExecuteOrderFilter( filterTable ). Эту функцию)
 
скинь свой addon_game_mode.lua (function COverthrowGameMode:ExecuteOrderFilter( filterTable ). Эту функцию)
Lua:
function COverthrowGameMode:ExecuteOrderFilter( filterTable )
    --[[
    for k, v in pairs( filterTable ) do
        print("EO: " .. k .. " " .. tostring(v) )
    end
    ]]

    local orderType = filterTable["order_type"]
    if ( orderType ~= DOTA_UNIT_ORDER_PICKUP_ITEM or filterTable["issuer_player_id_const"] == -1 ) then
        return true
    else
        local item = EntIndexToHScript( filterTable["entindex_target"] )
        if item == nil then
            return true
        end
        local pickedItem = item:GetContainedItem()
        --print(pickedItem:GetAbilityName())
        if pickedItem == nil then
            return true
        end
        if pickedItem:GetAbilityName() == "item_treasure_chest" then
            local player = PlayerResource:GetPlayer(filterTable["issuer_player_id_const"])
            local hero = player:GetAssignedHero()
            if hero:GetNumItemsInInventory() < 6 then
                --print("inventory has space")
                return true
            else
                --print("Moving to target instead")
                local position = item:GetAbsOrigin()
                filterTable["position_x"] = position.x
                filterTable["position_y"] = position.y
                filterTable["position_z"] = position.z
                filterTable["order_type"] = DOTA_UNIT_ORDER_MOVE_TO_POSITION
                return true
            end
        end
    end
    return true
end
 
Lua:
function COverthrowGameMode:ExecuteOrderFilter( filterTable )
    --[[
    for k, v in pairs( filterTable ) do
        print("EO: " .. k .. " " .. tostring(v) )
    end
    ]]

    local orderType = filterTable["order_type"]
    if ( orderType ~= DOTA_UNIT_ORDER_PICKUP_ITEM or filterTable["issuer_player_id_const"] == -1 ) then
        return true
    else
        local item = EntIndexToHScript( filterTable["entindex_target"] )
        if item == nil then
            return true
        end
        local pickedItem = item:GetContainedItem()
        --print(pickedItem:GetAbilityName())
        if pickedItem == nil then
            return true
        end
        if pickedItem:GetAbilityName() == "item_treasure_chest" then
            local player = PlayerResource:GetPlayer(filterTable["issuer_player_id_const"])
            local hero = player:GetAssignedHero()
            if hero:GetNumItemsInInventory() < 6 then
                --print("inventory has space")
                return true
            else
                --print("Moving to target instead")
                local position = item:GetAbsOrigin()
                filterTable["position_x"] = position.x
                filterTable["position_y"] = position.y
                filterTable["position_z"] = position.z
                filterTable["order_type"] = DOTA_UNIT_ORDER_MOVE_TO_POSITION
                return true
            end
        end
    end
    return true
end
Вообще,я думал,что ты тут,что-то менял,а именно эту строку
"if hero:GetNumItemsInInventory() < 6 then"
Она типо отвечает за то,со скольки предметами в инвентаре можно взять айтем из сундука (попробуй поменять на 9,я поменял,у меня теперь в рюкзак айтем залетает,есть свой инвентарь полон
 
  • Нравится
Реакции: -ExotiC-
Вообще,я думал,что ты тут,что-то менял,а именно эту строку
"if hero:GetNumItemsInInventory() < 6 then"
Она типо отвечает за то,со скольки предметами в инвентаре можно взять айтем из сундука (попробуй поменять на 9,я поменял,у меня теперь в рюкзак айтем залетает,есть свой инвентарь полон
Спс, всё работает.
 
Реклама: