1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

NosTale Bot (AutoIT)

Dieses Thema im Forum "Support & Discussion" wurde erstellt von Luca, 26. März 2018.

  1. Luca

    Luca New Member

    Registriert seit:
    25. März 2018
    Beiträge:
    12
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Hey Leute,

    Ich habe gerade eben angefangen einen Bot zu schreiben bzw erstmal geguckt ob die Funktionen funktionieren die ich benötigen werde. Nun ist aber das Problem das die Funktionen MouseClick, Send, ControlClick und ControlSend auf dem offiziellen Servern und Clienten funktionieren jedoch leider nicht auf dem Privaten Server. Gibt es da irgendeine alternative zu den Funktionen ? Packetbot wäre auch eine Möglichkeit aber leider habe ich komplett 0 Ahnung von sowas -__- Habe bis jetzt nur sehr kleine Bots mit den Funktionen geschrieben und Image/Pixelsearch etc.

    Mag mir da wer helfen?
     
  2. Pentox

    Pentox New Member

    Registriert seit:
    4. Juli 2017
    Beiträge:
    22
    Zustimmungen:
    6
    Punkte für Erfolge:
    3
    was ist auf nem pserver anders? gibts ned wirklich sinn das es dort nicht funktioniert.
     
  3. Luca

    Luca New Member

    Registriert seit:
    25. März 2018
    Beiträge:
    12
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Doch die haben einen eigenen Client und so... Die haben irgendeinen Schutz dagegen da man für den PServer auch deren Client runterladen muss den kompletten. Wird ein eigenständiger Client benutzt nicht der Offizielle von NosTale mit nur einer anderen IP / Exe.
     
  4. Pentox

    Pentox New Member

    Registriert seit:
    4. Juli 2017
    Beiträge:
    22
    Zustimmungen:
    6
    Punkte für Erfolge:
    3
    hat der pserver client n anti cheat? wenn ja. welchen?
    normalerweise sollte es funktioneren. wüsste ned wie man keysend etc. blocken sollte. weil eig simuliert er ja deine tastatur eingaben.
     
  5. Luca

    Luca New Member

    Registriert seit:
    25. März 2018
    Beiträge:
    12
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    War mein Fehler er hat kein nur er hat es nicht gemacht weil AutoIT Admin Rechte brauchte :p Jetzt funktioniert es soweit und ich bin auch schon gut weit, meine Frage lautet nun: Er muss sich für ca 6-8 Minuten auf einer Map aufhalten, die Monster die immer spawnen töten und deren Loot aufsammeln - Wenn er genug Monster getötet hat kommt automatisch nen Belohnungsscreen den ich vor habe mit Image Search zu suchen und dann die Do Until Funktion zu verwenden, nun ist meine Frage ob es eine elegenatere Lösung gibt als ganze zeit Leertaste zu drücken (Ziel suchen + Angreifen) und ganze zeit x zu drücken um die Items aufzuheben. Kann man nicht irgendwie prüfen ob Items auf dem Boden liegen und ob Monster auf der Map sind die er dann angreift wenn er welche findet ?

    Edit: Meine erste richtige Codefrage nun :p

    Code (Text):
    Local $result = 0
    While $result = 0
        $ColorEnemy = PixelSearch (873, 58, 1018, 193, 0xCC0000, 0)
        $ColorItem = PixelSearch (873, 58, 1018, 193, 0x1F3939, 0)
        $ColorMana = PixelSearch (117, 74, 150,85, 0x090909, 0)
        $result = _ImageSearch ( $chest, 1, $x, $y, 0 )
        If IsArray ($ColorEnemy) Then
            MouseClick ( "left", $ColorEnemy[0], $ColorEnemy[1], 1 )
            Sleep ( 2000 )
            Send ( "     " )
        EndIf
        If IsArray ($ColorItem) Then
            MouseClick ( "left", $ColorItem[0], $ColorItem[1], 1 )
            Sleep ( 2000 )
            Send ( "xxxxx" )
        EndIf
        If IsArray ($ColorMana) Then
            Send ( "555" )
        EndIf
    WEnd
    Das ist mein Code nur habe ich nun zwei Probleme:
    1. Mein Charakter macht garnichts wenn ich das $result = _ImageSearch ( $chest, 1, $x, $y, 0 ) drinne stehen habe... Nehme ich es raus funktioniert es aber ich wollte damit eigentlich erreichen das er die Schleife solange ausführt BIS er das Bild gefunden hat (den Belohnungsbildschirm).

    2. Er macht alle If Abfragen durcheinander... Ich möchte das er zum beispiel solange die Leerzeichen sendet bis er kein $ColorEnemy mehr findet, dann solange $ColorItem bis er keins mehr findet - das $ColorMana muss er aber konstant durchmachen.
    ODER es soll so sein, das wenn ein Item ganz im Norden liegt und er gerade im Süden ein mob tötet er nicht während er den Mob tötet nach Norden läuft, dann wieder unterbricht den mob angreift etc.
    Aber ambesten wäre es würde er den Enemy töten und dann direkt seine Items aufheben die er droppt, dann den nächsten Enemy und so weiter.

    Könnte mir da wer helfen :C?
     
    Zuletzt bearbeitet: 28. März 2018
  6. Pentox

    Pentox New Member

    Registriert seit:
    4. Juli 2017
    Beiträge:
    22
    Zustimmungen:
    6
    Punkte für Erfolge:
    3
    du kannst via imagesearch gucken ob n objekt vorhanden ist..
    oder aus dem arbeitsspeicher auslesen.
     
  7. Luca

    Luca New Member

    Registriert seit:
    25. März 2018
    Beiträge:
    12
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Habs jetzt gerade gelöst bekommen :D Hab nur noch zwei Probleme magst mir da eventuell bei helfen?
     
  8. Pentox

    Pentox New Member

    Registriert seit:
    4. Juli 2017
    Beiträge:
    22
    Zustimmungen:
    6
    Punkte für Erfolge:
    3
    kommt drauf an. poste es lieber hier. ich hab kein plan von autoIT :p
     
  9. Luca

    Luca New Member

    Registriert seit:
    25. März 2018
    Beiträge:
    12
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Habs gerade oben reineditiert in meiner Frage :D
     
  10. Pentox

    Pentox New Member

    Registriert seit:
    4. Juli 2017
    Beiträge:
    22
    Zustimmungen:
    6
    Punkte für Erfolge:
    3
    also in c# hätte ich es wie du mit ner while schleife gelöst.

    kann das sein das $result = _ImageSearch ( $chest, 1, $x, $y, 0 ) immer true ausgibt?
    das er sofort die while schleife beendet wenn der code ausgeführt wird?
     
  11. Luca

    Luca New Member

    Registriert seit:
    25. März 2018
    Beiträge:
    12
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Kann sein, wie kann ich das prüfen? Aber eigentlich kanns kein true ausgeben, weil er das bild noch nicht mal gefunden haben kann.

    Edit: Okay habs hinbekommen, mein einzigstes Problem is nun nur noch die 2te Frage:

    2. Er macht alle If Abfragen durcheinander... Ich möchte das er zum beispiel solange die Leerzeichen sendet bis er kein $ColorEnemy mehr findet, dann solange $ColorItem bis er keins mehr findet - das $ColorMana muss er aber konstant durchmachen.
    ODER es soll so sein, das wenn ein Item ganz im Norden liegt und er gerade im Süden ein mob tötet er nicht während er den Mob tötet nach Norden läuft, dann wieder unterbricht den mob angreift etc.
    Aber ambesten wäre es würde er den Enemy töten und dann direkt seine Items aufheben die er droppt, dann den nächsten Enemy und so weiter.
     
    Zuletzt bearbeitet: 28. März 2018
  12. Luca

    Luca New Member

    Registriert seit:
    25. März 2018
    Beiträge:
    12
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Edit: Habe das nun auch hinbekommen :p Meine einzigste Frage bishierhin wäre, code ich es, dass er die Sachen direkt aufhebt die die Monster droppen, also direkt nach einem Kill.
     
  13. Death

    Death New Member

    Registriert seit:
    2. Juli 2017
    Beiträge:
    8
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    So wie es klingt musst du dann halt nachdem du angegriffen hast erst nach items schauen und nicht die ganze zeit?

    also in etwa so:
    Code (Text):
    if ememyAvailable(){
       attack();
      while (itemsAvailable()){
         pickupItems()
        }
    }
    if( manaEmpty()){
      useManaPotion();
    }
     
    Solange du während des aufsammelns der items kein mana brauchst wär das so ok.

    Ich würde dir generell auch noch log Ausgaben empfehlen. So kannst du besser nachverfolgen was passiert. Ich habe mir da als Hilfe diese kleine Funktion erstellt
    Code (Text):
    Func _log($message)
        ConsoleWrite(@HOUR & ":" & @MIN & ":" & @SEC & @TAB & $message & @CRLF)
    EndFunc   ;==>_log
    dann kannst du einfach per _log("Attacking"); rausloggen
     
    Zuletzt bearbeitet: 28. März 2018
  14. Luca

    Luca New Member

    Registriert seit:
    25. März 2018
    Beiträge:
    12
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Klingt gut, nur wie schlägst du vor soll ich die Funktionen machen :D? Es spawnen soviele Monster, das er eigentlich direkt nach dem Tod ein Monster (Er steht sowieso direkt vor den Drops) die aufheben muss, sonst geht ihm zuviel flöten.
     
  15. Death

    Death New Member

    Registriert seit:
    2. Juli 2017
    Beiträge:
    8
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    So wie du deinen code schon hast quasi, nur die pickup funktion in die angriffs-if reinpacken
    Code (Text):

    Local $result = 0
    While $result = 0
        $result = _ImageSearch ( $chest, 1, $x, $y, 0 )
     
        $ColorEnemy = PixelSearch (873, 58, 1018, 193, 0xCC0000, 0)
        If IsArray ($ColorEnemy) Then
            MouseClick ( "left", $ColorEnemy[0], $ColorEnemy[1], 1 )
            Sleep ( 2000 )
            Send ( "     " )
            Sleep(1000) // sleep for how long the attack lasts
            // attack is finished, are there items to pick up?
            While 1
                $ColorItem = PixelSearch (873, 58, 1018, 193, 0x1F3939, 0)
                If IsArray ($ColorItem) Then
                    MouseClick ( "left", $ColorItem[0], $ColorItem[1], 1 )
                    Sleep ( 2000 )
                    Send ( "xxxxx" )
                Else
                    ExitLoop // No (more) items to pick up
                EndIf
            WEnd
        EndIf
     
        $ColorMana = PixelSearch (117, 74, 150,85, 0x090909, 0)
        If IsArray ($ColorMana) Then
            Send ( "555" )
        EndIf
    WEnd
     
    und die teile am besten in funktionen auslagern und log ausgaben dazu :)
     
  16. Luca

    Luca New Member

    Registriert seit:
    25. März 2018
    Beiträge:
    12
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Sieht gut aus nur funktionierts leider nicht :D Liegt daran, dass es seeeeehr viele Mobs sind so ca 300-400 ^^ Eigentlich müsste ich was intelligentes haben was die Gegner drumherum alle scannt, dann den am nähsten angreift, sobald er tot ist gucken ob er was gedropped hat und dann aufhaben bzw nächsten Gegner, aber das ist mir zu kompliziert :( ist mein erster Bot :D
     
  17. Pentox

    Pentox New Member

    Registriert seit:
    4. Juli 2017
    Beiträge:
    22
    Zustimmungen:
    6
    Punkte für Erfolge:
    3
    solltest wohl eher was mit memory bot oder packet bot machen.
    glaube für sowas wird der pixelbot schon überfordert. (also so wie es sich anhört passiert da viel ingame :p )
     
  18. Luca

    Luca New Member

    Registriert seit:
    25. März 2018
    Beiträge:
    12
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Jap er ist überfordert XD Es funktioniert halbwegs aber er hängt sich so oft auf das er es nicht schafft das Script sozusagen zweimal auszuführen, versuche es immer wieder zu beheben aber es ist immer wieder was neues... Kannst du mir ein Tutorial oder so zu MemoryBots empfehlen? Denke aber mal das es zu schwer ist für mich und ich jemanden beauftragen werde mir das zu schreiben ^^. Ist glaube ich doch eine Nummer zu schwer für mich gewesen.
     
  19. Death

    Death New Member

    Registriert seit:
    2. Juli 2017
    Beiträge:
    8
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Dann ging es davor aber auch nicht besser?

    Wenn du ein Mob angreifst, musst du ab dort wohl schauen ob er noch lebt (hp anzeige). Und solange angreifen bis tot ist und dann items aufheben und dann erst nach einem nächsten mob suchen :)
     
  20. Luca

    Luca New Member

    Registriert seit:
    25. März 2018
    Beiträge:
    12
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Naja aber ich hab jetzt auch noch andere Problem wie wenn der einmal angegriffen wird beim suchen ist der komplette Bot rip oder das er ausversehen mal an eine falsche Position läuft oder während des Gegner suchn ausversehen aufs Portal klickt anstatt auf dem Gegner und und und.... Ist nicht sehr gut dafür geeignet wenn ich ihn nachts laufen lassen möchte :p
     

Diese Seite empfehlen

Die Seite wird geladen...