Hilfe mit AutoIt Alchemy Tool !

  • Hi,


    Ich will ein Alchemy Tool machen aber ich weiß nicht wie ich den Bot bei +5 zum stoppen bringe !! Ich brauche hilfe ich hab schon in diversen AutoIt Foren gefragt oder niemand konnte mir wirklich weiter helfen


    So sieht der Script aus:





    Aber wie bringe ich ihn bei +5 zum STOPPEN ?!

  • Für so etwas ist AutoIt denkbar ungeeignet, du könntest es höchstens über eine Displayabfrage machen (wenn bestimme Pixel einen bestimmten Farbwert erreichen, stoppe). Ist nicht die schickste Methode, sollte aber für deine Zwecke reichen. Das setzt natürlich voraus, dass du das Alchemiefenster nicht verschoben hast (es sei denn du lässt das auch noch erkennen).

  • Auslesen : z.B mit Memory Read (ich weiss aber nicht wie es funktioniert )



    Farben ändern sich nicht höchstens die Pixel Positionen aber dann müsste die Ziffer 5 einen Pixel haben den 1 , 2 ,3 ,4 nicht haben. Und wie setzte ich dies dann um ? :D


    Natürlich ändern sich die Farben >_<' Das sagst du doch gerade selbst. Wenn sich die Farben der Pixel nicht ändern würden, sähe eine 4 aus wie eine 5. Ich habe keine Ahnung von AutoIt, bei der Umsetzung kann ich dir also leider nicht weiterhelfen :(

  • Also:


    Wenn du es in AutoIt machen willst würde ich nicht(!) das Alchemy Fenster selbst auslesen sondern Log unten rechts.


    Da steht dann ja so etwas wie "Success: Item has been enhanced to +5"


    Du suchst du dir einen möglichst einfarbigen Hintergrund (am besten du moddest eine Textur zu 0xFF00FF oder so damit es wirklich einfarbig ist).


    Dann pimpst du von Hand und machst Screenshots von den Ausgaben unten rechts und speicherst die...


    Dann benutzt du nicht PixelGetColor() sondern PixelCheckSum() und vergleichst das aktuelle Log mit den Screenshots.


    So würde ich es machen - wenn es wirklich Pixel basierend sein muss...

  • Wäre auch eine Möglichkeit nur leider habe ich keine ahnung wie ich eine einFarbige Fläche finde bzw mache...


    So sieht mein Script jetzt aus:



    _MemoryRead(0x1513ECF8, $hOpen) ist die Adresse richtig eingetragen ? Bei Cheat Engine kommt die Adresse raus : 1513ECF8



    Jeder Beitrag Hilft !

  • _MemoryRead(0x1513ECF8, $hOpen) ist die Adresse richtig eingetragen ? Bei Cheat Engine kommt die Adresse raus : 1513ECF8
    Jeder Beitrag Hilft !


    Ich tippe mal darauf, dass die Speicheradresse nicht statisch bzw. konstant ist und sich somit bei jedem Programmstart ändert. D.h. damit das vernünftig läuft brauchst du zuerst einmal den Pointer und nicht die momentane Adresse...

  • Guck in die Tutorials bei Elitepvpers und Stealthex, da gibt es hunderte zu dem Thema.


    Ein Beispielscript für dynamische Adressen in AutoIt (via Stealthex, Credits to Bot90210, Source):



    Genauso kannst du das momentane Plus auslesen. Musst halt lernen die Pointer und Offsets herauszufinden...

  • Wenn ich sicher sein soll das es funktioniert müsste ich es selber schreiben und da habe ich keinen Nerv drauf.


    Lern einfach eine beliebige Sprache (ich rate zu Delphi oder FreePascal) ganz von Anfang an dann kannste es in ein paar Monaten selber... oder drück die Daumen dass demnächst jemand einen Alchemy Bot released. Ich gehe allerdings nicht davon aus dass das passieren wird.


    Wir z.B. haben funktionierendes Auto-Alchemy in unserem vSRO Bot, aber ich werde mich hüten den zu releasen. Ich wäre ja schön blöd wenn ich zulassen würde, dass andere Spieler meine Programmierarbeit gegen mich verwenden können... fang einfach ganz langsam an, immer am Ball bleiben... das wird schon.

  • Das einfachste wäre dann wahrscheinlich das ganze über Packets zu machen. Und um Packets zu versenden und die Antworten zu empfangen, müsstest du Silkroad auf ein Proxy umleiten. Es gibt z.B. den nuConnector, auf den du Silkroad redirecten und dein Programm verbinden lassen kannst.
    Um dann einen Alchemy Bot zu schreiben, müsstest du einige Packets parsen, wie z.B. den Inhalt deines Inventars, der mit dem Chardata Packet kommt und noch von einigen anderen, wenn er geändert wird, wie man ein Item reinforced und die Antwort darauf, um dann zu wissen, wie du Packets versenden musst und wie du auf die reagierst, die du empfängst.
    Wenn du es dann wirklich über Packets machen willst, dann solltest du dir am besten erst mal einige Tutorials dazu durchlesen.