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.


ksasdf

Rekomendowane odpowiedzi

Opublikowano

Witam

Wyskrobałem taki kod:

local mptologout = 1400
local x = 32637
local y = 32747
local z = 7

Module.New("low-supplies-goto-and-logout", function(Module)
	if (Self.ItemCount("mana potion") <= mptologout) then
		Targeting.Stop()
		Walker.Stop()
		Walker.Goto('PZ')
		Walker.Start()
				if(Self.Position().x == x and Self.Position().y == y and Self.Position.z == z) then
					if(Creature:isOnScreen() == true) then
						if(Targeting.isEnabled() == false) then
							Targeting.Start()
								wait(5000)
						end
					end
				end
					if(Self.Position().x ~= x and Self.Position().y ~= y and Self.Position.z ~= z) then
						Walker.Goto('PZ')
							if(Creature:isOnScreen() == false) then
								Targeting.Stop()
								Walker.Stop()
							end
									if (Self.isPoisoned() == true) then
										Self.Say("exana pox")
									elseif (not Self.isInFight()) then
										print("Logging out - see ya!")
										wait(2000)
											if (not Self.isInFight()) then
												Self.Logout()
											end
									else
										print("Waiting for pz to disappear.")
									end
					end
		wait(4000)
	end
		Module:Delay(5000)
end)

Jednak skrypt nie bardzo chce reagować na polecenie "Walker.Goto('PZ'). Testowe Waypointy wyglądają tak: waypoint

Ewentualnie jakby ktoś mógł napisać profesjonalnie skrypt który miałby za zadanie: Jeśli 'x' manapotionów > idz w dane miejsce > jesli sa potwory to zabij jesli nie przejdz dalej > jesli otruty "exana pox" > probuj wylogowac.

 

Bardzo proszę o pomoc. Pozdrawiam.

Opublikowano

że tak zadam pytanie, bo nie mogę tego wywnioskować z Twojego posta (jest późno i możliwe że mam problem ze zrozumieniem pewnych kwestii).Jeżeli dojdzie w walkerze do labela 'PZ' wtedy sprawdza: 'exana pox', potwory i ewentualny logout czy cały czas podczas biegania w każdym możliwym miejscu ma sprawdzać czy brakuje mu czegoś,czy jest zatruty itp. 

 

Jak co to możesz spróbować dodać funkcje od labelów:

- registerEventListener(WALKER_SELECTLABEL, "onWalkerSelectLabel")

- function onWalkerSelectLabel(labelName)

 i w niej zdefiniujesz pusty 'PZ' i być może wtedy będzie Ci łapać te 'PZ' w walkerze.

Pozdrawiam Wszystkich :)

Opublikowano

Po wielu godzinach udało mi się skleić sprawnie działający skrypt! 

Wstawiam go, jakby ktoś szukał podobnego :')

 

							-- ZMIENNE -- 
							
local mptolog = 150 -- ile potionow do pojscia w odpowiednie miejsce
local safespot = 0 

local PozycjaX = 32883 -- Pozycja X
local PozycjaY = 32637 -- Pozycja Y


							-- FUNKCJE -- 
							
	function onLabel(label) -- Sprawdzanie pozycji, zatrucie --
		if ((Self.Position().x == PozycjaX) and (Self.Position().y == PozycjaY)) then
			print('Bezpieczna pozycja!')
				if((#Self.GetTargets(8) == 0)) then
					Walker.Stop()
					Targeting.Stop()
						if(Self.isPoisoned() == true) then
							print('Jestes zatruty!')
							Self.Say('Exana Pox')
						end
					safespot = 1
				else
					print('Potwory na ekranie! Czekaj, az nie bedzie!')
					safespot = 0
				end			
		end
	end
	
	function checkAndLogout(safespot) -- Wylogowanie -- 
		if(safespot == 1) then
			if (not Self.isInFight()) then
				print("Wylogowuje! - Do zobaczenia")
				wait(1000)
					if (not Self.isInFight()) then
						Self.Logout()
					end
						else
							print("Czekam na znikniecie PZ!")
							alert()
						end
		end
	end

							-- MODUŁ --
							
	Module.New("malo-supli-idz-do-x-i-wyloguj", function(Module)
		registerEventListener(WALKER_SELECTLABEL, "onLabel")
			if (Self.ItemCount("mana potion") <= mptolog) then				
			Walker.Goto('PZ') -- nazwa label miejsca gdzie ma bot isc
			onLabel()
			checkAndLogout(safespot)
			else
			if(Self.ItemCount("mana potion") > mptolog) then
			Walker.Start()
			Targeting.Start()
			end
			end
			
	Module:Delay(10000)
	end)

Gdyby ktoś pytał czemu w glownym module jest rozwiazane tak:

else
			if(Self.ItemCount("mana potion") > mptolog) then
			Walker.Start()
			Targeting.Start()
			end
end

To od razu mowie, ze skrypt potrafil sie przywiesić w bezpiecznym miejscu, gdy sprawdzil pozycje X i Y ale mial wiecej niz zadana ilosc manasów. Jesli ktos wie jak to usprawnic to prosze o komentarz.

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...