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 pomoc ze skryptem


Chorongie

Rekomendowane odpowiedzi

Opublikowano

Cześć,
Próbuję stworzyć własny skrypt na sprzedawanie itemków u Green Djina i potrzebuję waszej pomocy :)

Mianowicie:

_mainBackpack = 'Backpack' -- name of main backpack
_rareBackpack = 'Green Backpack' --name of backpack for non-stackable items
_suppliesBackpack = 'Brocade Backpack' -- name of backpack for potions


registerEventListener(WALKER_SELECTLABEL, "onLabel")

Targeting.Start()
Looter.Start()

function onLabel(label)
	if(label == "Backpacks") then
		Client.HideEquipment()
		repeat
			Self.CloseContainers()
			wait(200,400)
			Self.OpenMainBackpack(true):OpenChildren({_suppliesBackpack,true}, {_rareBackpack, true})
			wait(200,400)
                        untill Container:isOpen(3)

function onLabel(label)
	if(label == "Sell1") then
wait(1000)
	Walker.Stop()
wait(1000)
	Self.SayToNpc({'hi', 'trade'}, 65)
wait(2000,3000)
for _, a in ipairs({"Ancient Shield", "Knight Axe", "Warrior Helmet", "Knight Legs", "Onyx Flail", "Skull Staff", "Serpent Sword", "Titan Axe", "Tower Shield", "Vampire Shield", "Dragon Hammer", "Dreaded Cleaver", "Giant Sword", "Haunted Blade", "Knight Armor"}) do
	Self.ShopSellAllItems(a)
end
	Walker.Start()
end
end

function onLabel(label)
	if(label == "Sell2") then
wait(1000)
	Walker.Stop()
wait(1000)
	Self.SayToNpc({'hi', 'trade'}, 65)
wait(2000,3000)
for _, a in ipairs({"Hailstorm Rod", "Northwind Rod", "Springsprout Rod", "Terra Rod", "Underworld Rod"}) do
	Self.ShopSellAllItems(a)
end
	Walker.Start()
end
end

function onLabel(label)
	if(label == "Beforedoor") then
Walker.Stop()
Self.OpenDoor(33050,32622,6)
Wait(1000)
Walker.Start()
end
end

function onLabel(label)
	if(label == "Beforedoor2") then
Walker.Stop()
Self.OpenDoor(33047,32624,6)
Wait(1000)
Walker.Start()
end
end

function onLabel(label)
	if(label == "Beforedoor3") then
Walker.Stop()
Self.OpenDoor(33049,32633,6)
Wait(1000)
Walker.Start()
end
end

function onLabel(label)
	if(label == "Beforedoor4") then
Walker.Stop()
Self.OpenDoor(33050,32623,6)
Wait(1000)
Walker.Start()
end
end

Skrypt nie przepuszcza mnie już podczas otwierania bacpacków, tak więc nie mogę sprawdzić czy reszta label będzie działać, ale myślę że wprawne oko od razu wypatrzy inne błędy.

 

Aby Seller był full afk potrzebuję jeszcze dopisać taką funkcję:

Jeżeli label withdraw to
podejdź do depo
otwórz my inbox
wkładaj itemy {item1,item2 itd} z my inbox do: _rareBackpack = 'Green Backpack' do momentu aż Cap będzie < 200

 

Jeżeli ktoś posiada podobny, lub mógłby dla mnie coś takiego napisać byłbym bardzo wdzięczny.

Dorzucam waitpointy depo ankh -> green djin gdyby ktoś chciał wypróbować albo dla siebie.
 

	<control name="WaypointList">
		<item text="Stand (33129, 32840, 7)" tag="1"/>
		<item text="Backpacks:" tag="255"/>
		<item text="Withdraw:" tag="255"/>
		<item text="Node (33126, 32834, 7)" tag="0"/>
		<item text="Node (33122, 32820, 7)" tag="0"/>
		<item text="Node (33122, 32809, 7)" tag="0"/>
		<item text="Node (33133, 32802, 7)" tag="0"/>
		<item text="Node (33136, 32791, 7)" tag="0"/>
		<item text="Node (33139, 32780, 7)" tag="0"/>
		<item text="Node (33142, 32769, 7)" tag="0"/>
		<item text="Stand (33153, 32766, 7)" tag="1"/>
		<item text="Stand (33153, 32762, 6)" tag="1"/>
		<item text="Node (33150, 32754, 7)" tag="0"/>
		<item text="Node (33144, 32747, 7)" tag="0"/>
		<item text="Node (33141, 32739, 7)" tag="0"/>
		<item text="Node (33136, 32731, 7)" tag="0"/>
		<item text="Node (33131, 32724, 7)" tag="0"/>
		<item text="Node (33125, 32718, 7)" tag="0"/>
		<item text="Node (33123, 32710, 7)" tag="0"/>
		<item text="Node (33118, 32705, 7)" tag="0"/>
		<item text="Node (33115, 32696, 7)" tag="0"/>
		<item text="Node (33111, 32692, 7)" tag="0"/>
		<item text="Node (33107, 32682, 7)" tag="0"/>
		<item text="Node (33107, 32669, 7)" tag="0"/>
		<item text="Stand (33101, 32656, 7)" tag="1"/>
		<item text="Node (33095, 32652, 6)" tag="0"/>
		<item text="Stand (33092, 32648, 6)" tag="1"/>
		<item text="Node (33082, 32646, 5)" tag="0"/>
		<item text="Stand (33078, 32640, 5)" tag="1"/>
		<item text="Node (33074, 32631, 6)" tag="0"/>
		<item text="Node (33068, 32624, 6)" tag="0"/>
		<item text="Node (33063, 32619, 6)" tag="0"/>
		<item text="Stand (33051, 32622, 6)" tag="1"/>
		<item text="beforedoor:" tag="255"/>
		<item text="Stand (33049, 32622, 6)" tag="1"/>
		<item text="Stand (33047, 32625, 6)" tag="1"/>
		<item text="beforedoor2:" tag="255"/>
		<item text="Stand (33049, 32632, 6)" tag="1"/>
		<item text="Stand (33048, 32623, 5)" tag="1"/>
		<item text="sell1:" tag="255"/>
		<item text="Stand (33049, 32627, 5)" tag="1"/>
		<item text="Stand (33049, 32631, 4)" tag="1"/>
		<item text="Stand (33047, 32628, 3)" tag="1"/>
		<item text="Stand (33047, 32621, 2)" tag="1"/>
		<item text="sell2:" tag="255"/>
		<item text="Stand (33047, 32628, 2)" tag="1"/>
		<item text="Stand (33049, 32631, 3)" tag="1"/>
		<item text="Stand (33049, 32627, 4)" tag="1"/>
		<item text="Stand (33049, 32632, 5)" tag="1"/>
		<item text="beforedoor3:" tag="255"/>
		<item text="Stand (33049, 32623, 6)" tag="1"/>
		<item text="beforedoor4:" tag="255"/>
		<item text="Node (33060, 32618, 6)" tag="0"/>
		<item text="Node (33071, 32628, 6)" tag="0"/>
		<item text="Stand (33078, 32640, 6)" tag="1"/>
		<item text="Node (33085, 32647, 5)" tag="0"/>
		<item text="Stand (33092, 32648, 5)" tag="1"/>
		<item text="Stand (33101, 32656, 6)" tag="1"/>
		<item text="Node (33105, 32663, 7)" tag="0"/>
		<item text="Node (33118, 32669, 7)" tag="0"/>
		<item text="Node (33124, 32677, 7)" tag="0"/>
		<item text="Node (33135, 32684, 7)" tag="0"/>
		<item text="Node (33147, 32691, 7)" tag="0"/>
		<item text="Node (33156, 32695, 7)" tag="0"/>
		<item text="Node (33166, 32704, 7)" tag="0"/>
		<item text="Node (33170, 32726, 7)" tag="0"/>
		<item text="Node (33174, 32741, 7)" tag="0"/>
		<item text="Node (33159, 32759, 7)" tag="0"/>
		<item text="Stand (33154, 32762, 7)" tag="1"/>
		<item text="Stand (33154, 32766, 6)" tag="1"/>
		<item text="Node (33153, 32778, 7)" tag="0"/>
		<item text="Node (33141, 32781, 7)" tag="0"/>
		<item text="Node (33139, 32796, 7)" tag="0"/>
		<item text="Node (33139, 32809, 7)" tag="0"/>
		<item text="Node (33139, 32825, 7)" tag="0"/>
		<item text="Node (33127, 32837, 7)" tag="0"/>

 

Opublikowano
Cytat

Skrypt nie przepuszcza mnie już podczas otwierania bacpacków, tak więc nie mogę sprawdzić czy reszta label będzie działać

Możesz, wystarczy w walkerze przescrollować label Bacpacks, kliknąć na tego po nim i wtedy wystartować walkera.

 

Opublikowano

Źle się wyraziłem, problem jest taki że wyrzuca mi kod na linii 19, czyli jest błąd w lua:

19:03 XenoScript Error:
           Script: sellgreen.lua
           Line #: 19
           Chunk: C:?UsersDOCUME?1?XenoBot?Scripts??SELLGR?1.LUA
           Error: '=' expected near 'Container'
This is an error with user-input and should not be reported as a bug with XenoBot.

Opublikowano

Ahh, bo masz w skrypcie:

untill Container:isOpen(3)

zamiast:

 until Container:isOpen(3)

Poza tym tak na oko widzę, że nie zgadza się liczba endów, pokaż jakie teraz błędy wywali o ile wywali, najprawdopodobniej coś typu: end expected .

 

Opublikowano

Faktycznie, błąd był w ''until'' i następny jaki wysypał był ''End'' tak więc dopisałem i wygląda to tak:

 

function onLabel(label)
	if(label == "Backpacks") then
		Client.HideEquipment()
		repeat
			Self.CloseContainers()
			wait(200,400)
			Self.OpenMainBackpack(true):OpenChildren({_suppliesBackpack,true}, {_rareBackpack, true})
			wait(200,400)
                        until Container:isOpen(3)
end
end

 

wczytałem skrypt, wrzuciłem config, odpaliłem i już nie wyrzuca, ale bot najwyraźniej nie czyta żadnego labela, bo nie reaguje na żaden z nich; nie otwiera backpacków, drzwi, nie handluje z npc.

Natomiast na pewno czyta lua, bo przy ponownym załadowaniu sam zaznacza targeting i looter na ON

Targeting.Start()
Looter.Start()
Opublikowano

lua

 

_mainBackpack = 'moon Backpack' -- name of main backpack
_rareBackpack = 'golden Backpack' --name of backpack for non-stackable items
_suppliesBackpack = 'blue Backpack' -- name of backpack for potions

Targeting.Start()
Looter.Start()
print([[//////////////////////]])

registerEventListener(WALKER_SELECTLABEL, "onWalkerSelectLabel")
function onWalkerSelectLabel(labelName)
	
	if(labelName == "Backpacks") then
			Self.CloseContainers()
			wait(1000)
			Self.OpenMainBackpack(true):OpenChildren({Item.GetID(_mainBackpack), true}, {Item.GetID(_rareBackpack), true}, {Item.GetID(_suppliesBackpack), true})
			wait(1000)

			elseif(labelName == "Sell1") then
	wait(1000)
	Walker.Stop()
wait(1000)
	Self.SayToNpc({'hi', 'trade'}, 65)
wait(2000,3000)
for _, a in ipairs({"Ancient Shield", "Knight Axe", "Warrior Helmet", "Knight Legs", "Onyx Flail", "Skull Staff", "Serpent Sword", "Titan Axe", "Tower Shield", "Vampire Shield", "Dragon Hammer", "Dreaded Cleaver", "Giant Sword", "Haunted Blade", "Knight Armor"}) do
	Self.ShopSellAllItems(a)
	wait(1000)
	Walker.Start()
	end

	elseif(labelName == "Sell2") then
wait(1000)
	Walker.Stop()
wait(1000)
	Self.SayToNpc({'hi', 'trade'}, 65)
wait(2000,3000)
for _, a in ipairs({"Hailstorm Rod", "Northwind Rod", "Springsprout Rod", "Terra Rod", "Underworld Rod"}) do
	Self.ShopSellAllItems(a)
	wait(1000)
	Walker.Start()
end

	elseif(labelName == "Beforedoor") then
Walker.Stop()
Self.OpenDoor(33050,32622,6)
Wait(1000)
Walker.Start()

	elseif(labelName == "Beforedoor2") then
Walker.Stop()
Self.OpenDoor(33047,32624,6)
Wait(1000)
Walker.Start()

	elseif(labelName == "Beforedoor3") then
Walker.Stop()
Self.OpenDoor(33049,32633,6)
Wait(1000)
Walker.Start()

	elseif(labelName == "Beforedoor4") then
Walker.Stop()
Self.OpenDoor(33050,32623,6)
Wait(1000)
Walker.Start()
end
end

 

lua do otwierania mailboxa

registerEventListener(WALKER_SELECTLABEL, "onWalkerSelectLabel")
----------------------------------------------------------------
function onWalkerSelectLabel(labelName)
    if (labelName == "Start") then
            Targeting.Start()
            Looter.Start()
-------------------------------------------        
elseif (labelName == "Withdraw") then
Self.OpenInbox()
---------------------------------------------------------    
    end
end

function Self.OpenInbox()
    delayWalker(5000)
    local locker, depot = Container.New("Locker"), Container.New("Depot Chest")
    if (depot:isOpen()) then 
        return depot
    end
    if (not locker:isOpen()) then
        Self.OpenLocker()
        wait(800, 1000)
        locker = Container.New("Locker")
    end
    if (locker:isOpen()) then 
        while (locker:UseItem(1, true) ~= 1) do
            wait(100)
        end
        wait(1000, 1400)
        depot = Container.New("Your Inbox")
        if (depot:isOpen()) then 
            return depot
        end
    end
    return false
end  

 

withdrawer(jest ich multum do wyboru do koloru, ja używałem tego)

 

local MainBP = "Your Inbox"     ---- nie zmieniac------------
local SuppliesBP = "Backpack"    --- bp, gdzie ma wrzucac dane przedmioty====


local RuneName = "fire sword" --- przykladowy przedmiot, w "" wpisujesz co chcesz by CI przenosil
local GHPotName = "bonebreaker"
local UHPotName = "crusader helmet"
local MPotName = "guardian halberd"
local GSPotName = "chaos mace"
local MushroomName = "zaoan legs"


--------------------------------------------------------------------------------

Module.New("Sort Supplies", function(module)
local MushroomID = Item.GetID(MushroomName)
local RuneID = Item.GetID(RuneName)
local BoltID = Item.GetID(AmmoName)
local ManaPotionID = Item.GetID(MPotName)
local SManaPotionID = Item.GetID(SMPotName)
local GManaPotionID = Item.GetID(GMPotName)
local GSpiritPotionID = Item.GetID(GSPotName)
local HealthPotionID = Item.GetID(HPotName)
local SHealthPotionID = Item.GetID(SHPotName)
local GHealthPotionID = Item.GetID(GHPotName)
local UHealthPotionID = Item.GetID(UHPotName)

local items = {MushroomID, RuneID, BoltID, GSpiritPotionID, ManaPotionID, SManaPotionID, GManaPotionID, HealthPotionID, SHealthPotionID, GHealthPotionID, UHealthPotionID}
    local bp1 = Container(MainBP)
    for spot, item in bp1:iItems() do
    if (table.contains(items, item.id)) then
            bp1:MoveItemToContainer(spot, Container.New(SuppliesBP):Index())
            break
        end
    end
wait(200)
end)

 

wpt, które 'teoretycznie powinny działać' jeżeli skleisz cały skrypt w całość bez zmieniania nazw labelów

		<item text="Stand (33129, 32840, 7)" tag="1"/>
		<item text="Backpacks:" tag="255"/>
		<item text="Reach Depot" tag="253"/>
		<item text="Self.OpenDepot()" tag="254"/>
		<item text="Withdraw:" tag="255"/>
		<item text="Node (33126, 32834, 7)" tag="0"/>
		<item text="Node (33122, 32820, 7)" tag="0"/>
		<item text="Node (33122, 32809, 7)" tag="0"/>
		<item text="Node (33133, 32802, 7)" tag="0"/>
		<item text="Node (33136, 32791, 7)" tag="0"/>
		<item text="Node (33139, 32780, 7)" tag="0"/>
		<item text="Node (33142, 32769, 7)" tag="0"/>
		<item text="Stand (33153, 32766, 7)" tag="1"/>
		<item text="Stand (33153, 32762, 6)" tag="1"/>
		<item text="Node (33150, 32754, 7)" tag="0"/>
		<item text="Node (33144, 32747, 7)" tag="0"/>
		<item text="Node (33141, 32739, 7)" tag="0"/>
		<item text="Node (33136, 32731, 7)" tag="0"/>
		<item text="Node (33131, 32724, 7)" tag="0"/>
		<item text="Node (33125, 32718, 7)" tag="0"/>
		<item text="Node (33123, 32710, 7)" tag="0"/>
		<item text="Node (33118, 32705, 7)" tag="0"/>
		<item text="Node (33115, 32696, 7)" tag="0"/>
		<item text="Node (33111, 32692, 7)" tag="0"/>
		<item text="Node (33107, 32682, 7)" tag="0"/>
		<item text="Node (33107, 32669, 7)" tag="0"/>
		<item text="Stand (33101, 32656, 7)" tag="1"/>
		<item text="Node (33095, 32652, 6)" tag="0"/>
		<item text="Stand (33092, 32648, 6)" tag="1"/>
		<item text="Node (33082, 32646, 5)" tag="0"/>
		<item text="Stand (33078, 32640, 5)" tag="1"/>
		<item text="Node (33074, 32631, 6)" tag="0"/>
		<item text="Node (33068, 32624, 6)" tag="0"/>
		<item text="Node (33063, 32619, 6)" tag="0"/>
		<item text="Stand (33051, 32622, 6)" tag="1"/>
		<item text="beforedoor:" tag="255"/>
		<item text="Stand (33049, 32622, 6)" tag="1"/>
		<item text="Stand (33047, 32625, 6)" tag="1"/>
		<item text="beforedoor2:" tag="255"/>
		<item text="Stand (33049, 32632, 6)" tag="1"/>
		<item text="Stand (33048, 32623, 5)" tag="1"/>
		<item text="sell1:" tag="255"/>
		<item text="Stand (33049, 32627, 5)" tag="1"/>
		<item text="Stand (33049, 32631, 4)" tag="1"/>
		<item text="Stand (33047, 32628, 3)" tag="1"/>
		<item text="Stand (33047, 32621, 2)" tag="1"/>
		<item text="sell2:" tag="255"/>
		<item text="Stand (33047, 32628, 2)" tag="1"/>
		<item text="Stand (33049, 32631, 3)" tag="1"/>
		<item text="Stand (33049, 32627, 4)" tag="1"/>
		<item text="Stand (33049, 32632, 5)" tag="1"/>
		<item text="beforedoor3:" tag="255"/>
		<item text="Stand (33049, 32623, 6)" tag="1"/>
		<item text="beforedoor4:" tag="255"/>
		<item text="Node (33060, 32618, 6)" tag="0"/>
		<item text="Node (33071, 32628, 6)" tag="0"/>
		<item text="Stand (33078, 32640, 6)" tag="1"/>
		<item text="Node (33085, 32647, 5)" tag="0"/>
		<item text="Stand (33092, 32648, 5)" tag="1"/>
		<item text="Stand (33101, 32656, 6)" tag="1"/>
		<item text="Node (33105, 32663, 7)" tag="0"/>
		<item text="Node (33118, 32669, 7)" tag="0"/>
		<item text="Node (33124, 32677, 7)" tag="0"/>
		<item text="Node (33135, 32684, 7)" tag="0"/>
		<item text="Node (33147, 32691, 7)" tag="0"/>
		<item text="Node (33156, 32695, 7)" tag="0"/>
		<item text="Node (33166, 32704, 7)" tag="0"/>
		<item text="Node (33170, 32726, 7)" tag="0"/>
		<item text="Node (33174, 32741, 7)" tag="0"/>
		<item text="Node (33159, 32759, 7)" tag="0"/>
		<item text="Stand (33154, 32762, 7)" tag="1"/>
		<item text="Stand (33154, 32766, 6)" tag="1"/>
		<item text="Node (33153, 32778, 7)" tag="0"/>
		<item text="Node (33141, 32781, 7)" tag="0"/>
		<item text="Node (33139, 32796, 7)" tag="0"/>
		<item text="Node (33139, 32809, 7)" tag="0"/>
		<item text="Node (33139, 32825, 7)" tag="0"/>
		<item text="Node (33127, 32837, 7)" tag="0"/>

 

lua do capa, aby poniżej 200 poszedł z przedmiotami

 

Module.New('Walker-Stop', function(mod)
    mpperc = (Self.Cap())
    if mpperc < 200 then
        Walker.Start()
	end
end)

lua do otwierania next bp

while true do
--Furpan wrote code here because he simply meant put the original code between the while true do, and end
for i = 0, #Container.GetAll() do
    if Container(i):isFull() then
        for spot = Container(i):ItemCount() - 1, 0, -1 do
            if Item.isContainer(Container(i):GetItemData(spot).id) then
                Container(i):UseItem(spot, true)
                break
            end
        end
    end
end
end

 

 

P.S. Nie chcę wrzucać gotowego skryptu bo chcę, abyś się nauczył i być może wyłapał błędy. Jak będą jakieś kłopoty to z chęcią pomogę. Powodzenia :)

P.S. Polecam Notepad++, na pewno ułatwi Ci on identyfikacje błędów z Server Loga i nie tylko.

 

Pozdrawiam Wszystkich :)

Opublikowano

Wielkie dzieki za wszystko, bardzo chętnie się czegoś nauczę :)

Posiedziałem wczoraj nad skryptem i u mnie wygląda teraz to tak:
https://files.fm/u/7wkyzq6e

I teraz moje pierwsze pytanie jakie się nasuwa: Czy zrobienie tego w taki sposób w czymkolwiek przeszkadza (poza tym że mam bardziej zaśmiecone okienko scripter w grze) ? Chodzi mi o to, że nie zamieściłem wszystkiego w jednym LUA, tylko rozbiłem je na kilka, a następnie wszystkie załadowałem.

Dostosowałem wszystko do swoich potrzeb na tyle na ile umiałem i ogólnie skrypt już prawie prawie działa, ale jest w nim jeszcze kilka problemów.

Przede wszystkim walker zaczął reagować na labele - jak się okazało przyczyną była różnica w pisowni. W walkerze labele były z wielkich liter, a w lua z małych, to ostatnia rzecz o której pomyślałem i zarazem właściwa.

Ale po kolei:

-Skrypt otwiera backpacki
-Podchodzi do depo, otwiera inbox ( tu trzeba było usunąć Self.OpenDepot() z walkera, bo zamiast otwierać inbox bot wstakiwał do okienka z wyborem depozytu i blokował się)
-Zaczyna wyjmować przedmioty z inbox do green backpack, ALE zamiast załadować aktualnie otwarty plecak, to ładuje do pełna plecak znajdujący się w plecaku, a co za tym idzie nigdy nie otwiera kolejnego i blokuje się na amen. 
-Idzie i zatrzymuje się na drzwiach. Przy każdym labelu z drzwiami bot zatrzymuje się, otwiera je prawidłowo iii.. wyrzuca ze scriptera SellgreenV2.lua. przez co otworzenie kolejnych drzwi jest niemożliwe tak jak i późniejsza sprzedaż przedmiotów.
- Następnie bot już prawidłowo sprzedaje przedmioty, wraca i zaczyna wszystko od nowa.

 

Tak więc na ten moment pozostały 2 błędy czyli pakowanie itemków do plecaka w plecaku i wyrzucanie lua po otworzeniu drzwi.

Starałem się sam poszukać, próbowałem coś pozmieniać, niestety z marnym rezultatem

 

Opublikowano
28 minut temu, Chorongie napisał:

Wielkie dzieki za wszystko, bardzo chętnie się czegoś nauczę :)

Posiedziałem wczoraj nad skryptem i u mnie wygląda teraz to tak:
https://files.fm/u/7wkyzq6e

I teraz moje pierwsze pytanie jakie się nasuwa: Czy zrobienie tego w taki sposób w czymkolwiek przeszkadza (poza tym że mam bardziej zaśmiecone okienko scripter w grze) ? Chodzi mi o to, że nie zamieściłem wszystkiego w jednym LUA, tylko rozbiłem je na kilka, a następnie wszystkie załadowałem.

Dostosowałem wszystko do swoich potrzeb na tyle na ile umiałem i ogólnie skrypt już prawie prawie działa, ale jest w nim jeszcze kilka problemów.

Przede wszystkim walker zaczął reagować na labele - jak się okazało przyczyną była różnica w pisowni. W walkerze labele były z wielkich liter, a w lua z małych, to ostatnia rzecz o której pomyślałem i zarazem właściwa.

Ale po kolei:

-Skrypt otwiera backpacki
-Podchodzi do depo, otwiera inbox ( tu trzeba było usunąć Self.OpenDepot() z walkera, bo zamiast otwierać inbox bot wstakiwał do okienka z wyborem depozytu i blokował się)
-Zaczyna wyjmować przedmioty z inbox do green backpack, ALE zamiast załadować aktualnie otwarty plecak, to ładuje do pełna plecak znajdujący się w plecaku, a co za tym idzie nigdy nie otwiera kolejnego i blokuje się na amen. 
-Idzie i zatrzymuje się na drzwiach. Przy każdym labelu z drzwiami bot zatrzymuje się, otwiera je prawidłowo iii.. wyrzuca ze scriptera SellgreenV2.lua. przez co otworzenie kolejnych drzwi jest niemożliwe tak jak i późniejsza sprzedaż przedmiotów.
- Następnie bot już prawidłowo sprzedaje przedmioty, wraca i zaczyna wszystko od nowa.

 

Tak więc na ten moment pozostały 2 błędy czyli pakowanie itemków do plecaka w plecaku i wyrzucanie lua po otworzeniu drzwi.

Starałem się sam poszukać, próbowałem coś pozmieniać, niestety z marnym rezultatem

 

Co do pakowania itemów:

wrzuć do każdego backpacka np. 'small diamond' tak, aby znajdował się przed kolejnym bp(załączam skrina, może będzie bardziej 'po polsku')

gRgMv4d.png

 

co do drzwi to, podeślij błąd z server loga jaki wyskakuje, bez błędu nie jestem w stanie Ci pomóc. Możesz spróbować zamiast labeli, dodać do Walkera(Prawy przycisk myszy -> Add Script) i użyć funkcji "Self.UseItemFromGround(x, y, z)"

i teraz zapytasz, dlaczego akurat ta funkcja.Odpowiedź jest prosta, nie wszystkie drzwi 'reagują' na "Self.UseDoor()" a w.w funkcja zadziała zawsze

P.S.

Co do ilości lua w scripterze, jeżeli nie umiesz lub sprawia Ci problem 'złączenie' kilku lua w jeden to taki zabieg, jaki wykonałeś(kilka lua) w niczym nie przeszkadza. Zawsze to np. łatwiej zidentyfikować błędy podczas ładowania(pokaże Ci w którym konkretnie pliku jest błąd) niż analizowanie np. 300linijek kodu i 'główkowanie' gdzie jest błąd.

Pozdrawiam Wszystkich :)

Opublikowano

Sztuczka z BP podziałała :)

 

Błąd przy otwieraniu drzwi:

 

17:52 XenoScript Error:
           Script: sellgreenV2.lua
           Line #: 48
           Chunk: ...:?Users?Kompu?DOCUME?1?XenoBot?Scripts??SELLGR?2.LUA
           Error: attempt to call global 'Wait' (a nil value)
This is an error with user-input and should not be reported as a bug with XenoBot.

Opublikowano

Okej, już wszystko działa, dzięki Wam udało się stworzyć 100%afk greendjin seller jesteście wielcy! :)

Skoro już mam ten temat to wykorzystam go żeby zapytać:

jaka jest różnica pomiędzy:

wait(200, 400)

Wait(1000)

delay(1000)

Jeszcze raz dzięki :)

Opublikowano

wait(200, 400)   --- działa na tej zasadzie, że długość 'czekania' będzie z zakresu 200-400ms, czyli randomowa liczba z zakresu 200-400 (czyli może być np. 250ms)

wait(1000) --- 'sztywna' wartość, gdzie długość 'czekania' będzie zawsze 1000ms

Wait(1000) --- ogólnie to w języku lua nie ma czegoś takiego zdefiniowanego pomimo tego, że jest tylko różnica w wielkości litery 'W'

Delay(1000) --- używane w modułach, 'zatrzymuje' moduł na określony czas

Pozdrawiam Wszystkich :)

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...