Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[XENOBOT] Prosty seller itemow, pomoc w rozwiazaniu problemu


Mr.Tomass

Rekomendowane odpowiedzi

Opublikowano

Witam, posiadam skrypcik na wyciaganie itemow z depo, lecz nie dziala on tak jakbym chcial. Zamieszczam kod: 

------USTAWIENIA ------------------
-- rashid
local itemSort = 8043
local itemSort1 = 8045
local itemSort2 = 816
local itemSort3 = 8027
local itemSort4 = 7430
local itemSort5 = 9304
--haroun
local itemSort6 = 8092
local itemSort7 = 8093

local backpackSortFrom = 'Depot Box I' 
local backpackSortTo = 'Orange Backpack' 
local dLay = 1000 

------KONIEC USTAWIEN ------------------

local itemSorter = function(sortItem, from, to)
local fromBp = Container.New(from)
local toBp = Container.New(to)


if type(sortItem) == 'number' then
for spot, item in (fromBp:iItems()) do
if item.id == sortItem then
fromBp:MoveItemToContainer(spot, toBp:Index())
end
end
elseif type(sortItem) == 'string' then
for spot, item in (fromBp:iItems()) do
if item.name == sortItem then
fromBp:MoveItemToContainer(spot, toBp:Index())
end
end
end
end
Module.New('Sorter', function(this)
itemSorter(itemSort, backpackSortFrom, backpackSortTo)
this:Delay(dLay)
itemSorter(itemSort1, backpackSortFrom, backpackSortTo)
this:Delay(dLay)
itemSorter(itemSort2, backpackSortFrom, backpackSortTo)
this:Delay(dLay)
itemSorter(itemSort3, backpackSortFrom, backpackSortTo)
this:Delay(dLay)
itemSorter(itemSort4, backpackSortFrom, backpackSortTo)
this:Delay(dLay)
itemSorter(itemSort5, backpackSortFrom, backpackSortTo)
this:Delay(dLay)
itemSorter(itemSort6, backpackSortFrom, backpackSortTo)
this:Delay(dLay)
itemSorter(itemSort7, backpackSortFrom, backpackSortTo)
this:Delay(dLay)
end)

Wszystko pięknie. Zakładam orange backpack i otwieram depo, depot I i elegancko ładuje itemy. Natomiast, jeśli mam ustawione kaskadowo BP, po wpisaniu kodu na otwieranie next BP, bot po otwarciu nie wkłada w orange bp ten co się otworzył tylko ten co w tym otwartym plecaku jest. Dopiero jak ręcznie włożę item do tego plecaka sorter rusza. DLACZEGO? (zaznaczam że chciałbym wiedzieć dlaczego, a nie czekać na gotowca)
Zagadkowe jest, jeśli zmienie w kodzie żeby wybierał z depot II - już tego nie robi. Też nie rozumiem... 

kod na otwieranie BP: 

Module.New('openNextBackpack', function(m)
    for c = 0, #Container.GetAll()-1 do
        cont = Container.New(c)
        if (cont:EmptySlots() == 0 and Item.isContainer(cont:GetItemData(cont:ItemCapacity()-1).id)) then
            cont:UseItem(cont:ItemCapacity()-1, true)
            print("Opening Next Backpack in Container #" .. c .. ".")
        end
    end
    m:Delay(1000)
end)

+ jak dołożyć do tego .lua z labelami żeby sprzedawał loota, jak to połączyć w jeden kod LUA? 


Może inna akcja na wyciąganie itemów z depo (w sensie bot, a nie ręcznie?)
Jak zrobić akcję otwierania depo by xeno? - jak otworzy to sorter zacznie działać (tak wiem, leczenie syfa pudrem, chociaż chciałbym mieć ładny kod) i dokleić do tego checkera CAP i jakos to zadziała.... 

Ktoś nakieruje? Pomoże? 

Pozdrawiam serdecznie :)

Opublikowano
2 godziny temu, Mr.Tomass napisał:

Forum umarlo. 

Nie da się ukryć.

Xeno ma wbudowane otwieranie następnego plecaka po zapełnieniu, ale tylko wtedy, gdy BP jest na ostatnim slocie. Poza tym, z tego co pamiętam muszą być wszystkie tego samego typu np. Red Backpack.

Dnia 11.09.2018 o 10:47, Mr.Tomass napisał:

Może inna akcja na wyciąganie itemów z depo (w sensie bot, a nie ręcznie?)

http://xenobot.wikia.com/wiki/Self_WithdrawItems

registerEventListener(WALKER_SELECTLABEL, "onWalkerSelectLabel")
local MinCap = 100
local mainbp = "Beach Backpack"
local item = "nazwa itemka"
function onWalkerSelectLabel(labelName) 
  if (labelName == "DP") and (Self.Cap() > MinCap) then
      Self.WithdrawItems(1, {item, mainbp, 100})
  elseif (labelName == "DP") and (Self.Cap() < MinCap) then
      gotoLabel("DROGA") 
  end 
end

Jak chcesz coś konkretniej, zobaczyć przykłady to zapraszam na LINK ;) 

 

 

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...