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

Przerobienie skryptu do XenoBota


jmoriarty

Rekomendowane odpowiedzi

Opublikowano
registerEventListener(WALKER_SELECTLABEL, "onWalkerSelectLabel")

function onWalkerSelectLabel(labelName)
     if (labelName == "Depot") then
        delayWalker(2000)
        setWalkerEnabled(false)
        Self.ReachDepot()
		
local validBackpacks = {3083, 6299, 3037, 3067, 3371, 3324, 812, 3063, 811, 3332, 3039, 3038, 3041, 3554, 6499, 3030, 5887, 282, 239, 3032, 5944, 3057}
local lootContainer = Container.New(5801, 2854, 10326)
     
repeat
        Self.DepositItems({3428, 0}, {812, 0}, {10451, 0}, {10438, 0}, {10323, 0}, {7643, 0}, {11673, 0}, {5876, 0})
	
    if (table.contains(validBackpacks, lootContainer:GetItemData(0).id)) then
        lootContainer:UseItem(0, true)
        wait(500)
    end
	until
    lootContainer:GetItemData(0).id == 0
	end
end

Self.ReachDepot = function (tries)
	local tries = tries or 3
	Walker.Stop()
	local DepotIDs = {3497, 3498, 3499, 3500}
	local DepotPos = {}
	for i = 1, #DepotIDs do
		local dps = Map.GetUseItems(DepotIDs[i])
		for j = 1, #dps do
			table.insert(DepotPos, dps[j])
		end
	end
	local function gotoDepot()
		local pos = Self.Position()
		print("Znalezione depoty: " .. tostring(#DepotPos))
		for i = 1, #DepotPos do
			location = DepotPos[i]
			Self.UseItemFromGround(location.x, location.y, location.z)
			wait(1000, 2000)
			if Self.DistanceFromPosition(pos.x, pos.y, pos.z) >= 1 then
				wait(5000, 6000)
				if Self.DistanceFromPosition(location.x, location.y, location.z) == 1 then
					Walker.Start()
					return true
				end
			else
				print("ktos/cos blokuje depo, szukam nasepnego.")
			end
		end
		return false
	end
	
	repeat
		reachedDP = gotoDepot()
		if reachedDP then
			return true
		end
		tries = tries - 1
		sleep(100)
		print("nie znalazlem depo " .. tries .. " proby")
	until tries <= 0

	return false
end

Map.GetUseItems = function (id)
    if type(id) == "string" then
        id = Item.GetID(id)
    end
    local pos = Self.Position()
	local store = {}
    for x = -7, 7 do
        for y = -5, 5 do
            if Map.GetTopUseItem(pos.x + x, pos.y + y, pos.z).id == id then
                itemPos = {x = pos.x + x, y = pos.y + y, z = pos.z}
				table.insert(store, itemPos)
            end
        end
    end
    return store
end

Ten skrypt wrzuca itemy do depo, ale gdy juz wrzuci to nie idzie do kolejnych waypointow, tylko znowu otwiera depo i probuje wrzucic itemy i tak w kolko. Proszę o przerobienie go tak, zeby przeszedl do kolejnych waypointow lub do konkretnego labelu po wykonaniu tego co ma wykonywac

Opublikowano

jeżeli masz 'Reach Depot' przed tym labelem to jest on zbędny i być może on robi taki problem.

Dlaczego zbędny? ponieważ masz w labelu funkcje, która sama sobie wynajduje wolne depo i podchodzi do niego i otwiera.

Co do kodowania to podczas 'zapisz jako' w notatniku to masz z prawej strony coś takiego jak 'kodowanie', wybierasz i zapisujesz w kodowaniu 'ANSI'  (nie wiem jak w innych wersjach Windowsa,ale ja mam taką możliwość wyboru w Windows 10).

Pozdrawiam Wszystkich :)

  • Marchwj zmienił(a) tytuł na Przerobienie skryptu do XenoBota

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...