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

[Szukam] Nazwy funkcji odpowiedzialnych za wylogowanie i mini mapę


surrex

Rekomendowane odpowiedzi

Opublikowano

Witajcie,

jak w temacie – szukam funkcji, która spowoduje albo szybkiego Kicka postaci, albo też (lepsze) całkowicie wyłączy metina (szybkie, bez odliczania, czy też czekania), coś takiego, jak jest w modzie Kamera przy opcji „wyjdź z gry”.

 

Potrzebuję również coś w rodzaju wykrywacza graczy w zasięgu minimapy - wiem, że musi być jakaś funkcja, która pokazuje graczy na minimapie i odpowiada za ten żółty kwadracik na minimapce (obrazujący innego gracza).



Co chcę zrobić?

 

Napisałem expbota, który sam podnosi itemki, używa potek, wstaje itp. (bicie mobów realizuję przez /start_bot z moda Kamera). Bot działa dosyć dobrze, ale chciałbym stworzyć funkcję w pythonie, która w momencie pojawienia się gracza na minimapce wyloguje mi bota, lub też wyłączy metina (zewnętrzny program sprawdza co jakiś czas, czy proces działa, jak procesu nie ma, to uruchomi bota na innym ch).

Opublikowano

nie da sie wykryć postaci w zasiegu postaci przez same skrypty.

Omg jak to nie??

Na minimapie szuka zoltego kwadratu ktory sie pojawia na minimapie i metek automatycznie sie wylacza..Wystarczy komenda na wylaczenie danego procesu.

 

Masz przykad na wylaczenie metka jesli znajdzie kwadracik:

if... Tutaj mamy imagesearch ktory znalazl nam zolty kwadracik

Then

ProcessClose(nazwa procesu)

 

Tutaj zeby na nowo wlaczyl metka

If ProcessExits(nazwa procesu)

sleep(100)

Else

Run(Tutaj sciezka do .exe)

EndIf

 

Wszysto dajemy w petle

While 1

Wend

Opublikowano

Omg jak to nie??

Na minimapie szuka zoltego kwadratu ktory sie pojawia na minimapie i metek automatycznie sie wylacza..Wystarczy komenda na wylaczenie danego procesu.

 

Masz przykad na wylaczenie metka jesli znajdzie kwadracik:

if... Tutaj mamy imagesearch ktory znalazl nam zolty kwadracik

Then

ProcessClose(nazwa procesu)

 

Tutaj zeby na nowo wlaczyl metka

If ProcessExits(nazwa procesu)

sleep(100)

Else

Run(Tutaj sciezka do .exe)

EndIf

 

Wszysto dajemy w petle

While 1

Wend

chodziło o skrypty pythona, a nie autoit.

nowe konto, KaMeR1337 nie działa

Opublikowano
Dziękuję za odpowiedzi,
Jeżeli chodzi o wyjście, to poradziłem sobie przez:

 

net.Disconnect()
sys.exit()
 

 

natomiast co do drugiego problemu, to mam jakieś efekty – przez skanowanie po VID, jednakże jest to bardzo mało wydajne, albo sam coś śle robie. Testując na mobach jestem w stanie wykryć danego moba, nawet z zasięgiem, jednakże mogę skanować bardzo wąski zakres (rzędu kilku tysięcy, ponieważ przy większym zakresie jest zbyt duże obciążenie).

 

for i in xrange(1353007, 1356007):   #zakres wykrywalny na dzikusach - test
    player.SetTarget(i)
    vid = player.GetTargetVID()
    if chr.INSTANCE_TYPE_ENEMY == chr.GetInstanceType(vid):
        chat.AppendChat(chat.CHAT_TYPE_INFO, "Target VID: " + str(player.GetTargetVID())) 
        #test, czy dziala
 

 

Jak chcę zrealizować to na graczach mając funkcję na mobach? Zrobię to w funkcji IF – jeżeli chr.INSTANCE_TYPE_ENEMY == FALSE And chr.INSTANCE_TYPE_NPC == FALSE, to znaleziony obiekt musi być graczem (chyba, że jest jakaś funkcja, o której nie wiem). Taka funkcja działa – również testowane, jednakże muszę zaznaczyć gracza, a chciałbym, żeby zaznaczał automatycznie wszystkich po kolei, a następnie testował, czy jest graczem/mobem/NPC.
Znalazłem funkcję miniMap.TYPE_MONSTER, ale nigdzie nie mam przykładów jej użycia, próbowałem przerabiać ją na wiele różnych sposobów, ale bez powodzenia.
W jaki sposób mogę skuteczniej skanować VID? Czy istnieje jakaś funkcja na pozyskanie VID wszystkiego, co jest w zasięgu minimapy (lub też w ogóle wszystkiego bez ograniczenia – ograniczenie mogę stosować funkcją distance = player.GetCharacterDistance(vid), a następnie zrobić np. w if zakres dystansu) bez sztucznej inkrementacji w for? Zdaję sobie sprawę, że najlepiej byłoby w jakiś sposób pobrać tablicę aktywnych VID i na nich szukać, ale jak to zrobić? Czy też może przydatne byłoby znalezienie w jaki sposób jest realizowane kliknięcie myszką na moba (zaznaczenie pobiera VID danego moba)
PS. Autoit zdecydowanie odpada, ponieważ imagesearch jest zdecydowanie zbyt wolne, zawodne, nie jest w stanie pracować na zminimalizowanym, a poza tym skrypty autoita są wykorzystywane do relogowania już (lista kont w txt, sprawdzanie dostępności channeli, relogowanie, tworzenie loga, sprawdzenie, czy proces nie padł itp.)
-------------------------------------------------------------------------------------------------------------------

@@@ EDIT:



Problem rozwiązany, obecnie wykrywa graczy, jedynie ma jakas sekunde zwisu…



Kluczem okazało się wprowadzenie odpowiedniego ifa wykonywanego w funkcji skanujacej:

 

 

 

if  str(chr.GetNameByVID(i)) != "None" and chr.IsNPC(i) == FALSE and chr.IsEnemy(i) == FALSE and i != myVid and player.GetCharacterDistance(i) <= 6500:
    chat.AppendChat(chat.CHAT_TYPE_INFO, "wykrylem gracza: " + str(chr.GetNameByVID(i)) + " jego VID: " + str(i))
    break
 

 

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...