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

Bot w AutoIt


Hatchling

Rekomendowane odpowiedzi

Opublikowano

Czołem ziomeczki, otóż chciałem sobie zaprogramować prostego bota do margonem do pykania dziennych od czasu do czasu. Pisanie bota na zasadzie MouseMove("left" x, x) send(jakiś klawisz) się nie sprawdza i jest z tym od cholery dziergania.

Moje pytanie jest następujące.

Jest tu jakaś osoba która w AutoIt trochę się bawiła? Wiem że właściciel EasyMargo coś tam wydziergał. I głównie chodzi mi o to jak napisać funkcję w której wpiszemy nazwę NPC a ona sama wyszuka go na mapie i dojdzie. Coś na zasadzie autoexpa z EasyMargo gdzie to szukało potworów z obrębu całej mapy po nazwie.

 

 

Byłbym wdzięczny za taką funkcję, lub nakierowanie mnie gdzie trzeba.

Przeleciałem API AutoIt ale nie znalazłem niczego podobnego.

 

 

 

 

Pozdrawiam.

Opublikowano

C# polecam, spróbuj nie zawiedziesz sie 

 

edit

Przykładowo:

daj prosty webbrowser, pobierz caly dokument html margonem, wyszukaj obiekty ( moby ), dodaj pathfinding i masz expbota

Opublikowano

No dobra, powiedzmy ze za pomocą IEGetObjById znajdę NPC o id 31231(przykładowo) jest on na mapie na której jesteśmy, lecz nie jest widoczny bo stoi gdzieś tam dalej. Nasz skrypt znalazł ID, bo skanuje cały kod HTML, no ale jak ma kliknąć na element którego nie widać? Więc moje pytanie jest następujące jak sprawić aby postać podeszła do danego NPC o id xxx który nie jest widoczny?

 

 

Opublikowano

No dobra, powiedzmy ze za pomocą IEGetObjById znajdę NPC o id 31231(przykładowo) jest on na mapie na której jesteśmy, lecz nie jest widoczny bo stoi gdzieś tam dalej. Nasz skrypt znalazł ID, bo skanuje cały kod HTML, no ale jak ma kliknąć na element którego nie widać? Więc moje pytanie jest następujące jak sprawić aby postać podeszła do danego NPC o id xxx który nie jest widoczny?

Jak ma id to znaczy, że istnieje.

Więc odczytaj jego kordy + jak znajdziesz obiekt to na niego kliknij.

TuByłaSygnatura.png

Opublikowano

Przykład:

 

To są informacje o króliki w ithan, gdy podzielisz left i top przez 32 otrzymasz X i Y
2532 % 32 = 79.125 po zaokrągleniu x:79
2064 % 32 = 64.5 po zaokrągleniu y:64
Czyli:
 
X:79, Y:64
<div class="npc" id="npc44523" ctip="t_npc" tip="<b>Królik</b><span style="color:#888">1 lvl</span>" style="left: 2532px; top: 2064px; z-index: 74; width: 24px; height: 16px; background-image: url("http://zorza.margonem.pl/obrazki/npc/dom/bestia64.gif");"></div>
 
 
 
 
Opublikowano

Przykład:

 

To są informacje o króliki w ithan, gdy podzielisz left i top przez 32 otrzymasz X i Y

2532 % 32 = 79.125 po zaokrągleniu x:79

2064 % 32 = 64.5 po zaokrągleniu y:64

Czyli:

 

X:79, Y:64

<div class="npc" id="npc44523" ctip="t_npc" tip="<b>Królik</b><span style="color:#888">1 lvl</span>" style="left: 2532px; top: 2064px; z-index: 74; width: 24px; height: 16px; background-image: url("http://zorza.margonem.pl/obrazki/npc/dom/bestia64.gif");"></div>
Nie kombinuj, gdzieś w kodzie muszą być zapisane kordy.

TuByłaSygnatura.png

Opublikowano

Znaczy się z Kordami NPC nie ma problemu, bo nawet można do NPC podejść i kordy będziesz znał. Chodzi mi o to jak zrobić to w kodzie aby poruszył się na kordy xx,xx jeżeli znajdzie npc o ID xxxx xD

Bo jak wiesz interface nie pozwala Ci widzieć całej mapy naraz i może zdarzyć się tak że NPC stoi gdzieś zupełnie daleko. I teraz nawet jeżeli już kod znajdzie id danego NPC to jak ma do niego dojść? Trzeba wziąć pod uwagę że po drodze też stoją budynki itd. 

Opublikowano

W margonem masz wbudowany pathfinding spróbuj emulować klikniecie na obiekt

Niestety gdy próbuję zasymulować kliknięcie funkcją _IEGetObjById to postać mi idzie w górną część mapy nie wiem dlaczego. Lecz gdy stoję centralnie przy NPC, Obiekcie to klika mi normalnie. A spierdziela na koniec mapy w momencie kiedy od obiektu sie oddale o 2-3 kratki. 

Opublikowano

Dziwne, próbowałeś np kliknąć zamiast w npc to w np przejście ?

Tak, próbowałem, na przejściu to samo. :P




$oIE = _IECreate("http://x.margonem.pl/")
Sleep(3000)

$npc = _IEGetObjById($oIE, "npc76999")


_IEAction($npc, "click")

Oczywiście to tylko funkcja do szukania obiektów za pomocą ID. Może powinienem coś tutaj zmienić, chociaż wydaje mi się że wszystko jest okej. A wina leży po stronie margonem. 

Opublikowano

Według mnie idzie w róg mapy ponieważ id niema pozycji x,y i idzie w punkt "x:0,y:0" ? a gdy jest obok to na niego klika

No jak jest obok to klika normalnie. :P 

 

Mógłbyś jakiś pomysłem rzucić jak to zakodować? :P

Opublikowano

hero.searchPath(Math.floor(rawX / ratio), Math.floor(rawY / ratio));

To jest kod pathfinder'a spróbuj coś wymyślić, ja bym najpierw próbował pójść postacią w dany x i y 

Opublikowano

hero.searchPath(Math.floor(rawX / ratio), Math.floor(rawY / ratio));

To jest kod pathfinder'a spróbuj coś wymyślić, ja bym najpierw próbował pójść postacią w dany x i y 

 

Z tego co się orientuje margonem zablokowało funkcje seatchPath :/

Opublikowano

No ale to wtedy byłoby trzeba zrobić symulacje kliknięcia na kordy x-y tylko że jak to zrobić gdy powyższa funkcja jest zablokowana? : / Wiem że easy margo miało jakiś patent na to, lecz nigdzie nie mogłem znaleźć source code tego bota.  :P

Opublikowano

easy margo korzystało z firefox + dodatku mozrepl wiec szukaj w tym dodatku czegoś

Niestety niczego nie znalazłem, chyba pozostaje mi przenieść się na c# tam mam więcej możliwości. 

  • 2 miesiące temu...

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...