Cheater aus Überzeugung

Nico, ein bekannter Name in der Delphianerszene in Deutschland, hatte vor einigen Jahren ein Programm names AgeKey geschrieben (die alte Version findet sich hier). Dieses kleine Schmuckstück bot die Möglichkeit in der Age of Empires-Reihe (I und II) Cheats bequemer zu benutzen.

Das “Problem” ist, daß man im besten Falle ENTER drücken muß, dann den Cheat aus der Zwischenablage einfügen kann und mit ENTER nochmals bestätigt. Ich persönlich cheate bei den meisten Spielen, denn es geht mir meist mehr um die Handlung als um “sauberes” Spiel. Ehrlich gesagt halte ich Leute die in Spielen nicht cheaten für Menschen mit zuviel Zeit :mrgreen:

Einerlei, Nico’s Ansatz in AgeKey war, daß ein Fensterhook dafür sorgt, daß er beim Drücken einer Tastenkombination “weiß” welches Fenster den Fokus hat und dann in diesem Textfeld den Text über eine Fensternachricht (WM_SETTEXT) setzt. Nun ist es so, daß die ganze Geschichte bei Age of Mythology nicht mehr funktioniert. Keine Ahnung wieso exakt. Der Grund war, daß in Age of Mythology kein Fenster mit der gesuchten Fensterklasse erzeugt wurde. Einerlei, ich habe eine alternative Methode entwickelt, die genauso gut funktioniert und theoretisch bei den alten Versionen auch funktionieren sollte (was ich aber nicht getestet habe). Meine Methode ist, den Cheat in die Zwischenablage zu kopieren und dann die Tastdendrücke ENTER, Stgr+V und ENTER zu synthetisieren. Funktioniert wunderbar.

Hier die neue Version zusammen mit dem Mercurial-Repo und der Versionshistorie ;) … natürlich mit Quelltext, aber auch für Leute die einfach nur cheaten wollen ist alles dabei.

// Oliver

Update: Eine von mir signierte Version befindet sich nun auf Bitbucket hier (bzw. Agekey.exe). Dort enthalten ist auch eine weitere Anpassung im Vergleich zu jener von 2010 die in diesem Blogbeitrag hier beschrieben ist.

This entry was posted in /dev/null, DE, Delphi, Programming. Bookmark the permalink.

9 Responses to Cheater aus Überzeugung

  1. Michael says:

    Nico? Du meinst doch nicht etwa DEN Nico? :mrgreen:

    Aber Nicos Methode ist schöner. Deine würde ich eher zu den Quick and dirty Lösungen zählen. Andererseits ist Nicos Lösung typisch Nico. ;-)

    Allerdings wundert es mich, dass dich nicht dein Ehrgeiz gepackt hat und du das Problem gelöst hast. Das hätte ich jetzt eher von dir erwartet.

  2. Oliver says:

    Ja, der Nico.

    Wieso ist Nico’s Lösung denn “schöner”? Ich habe nur den Teil angepaßt bei dem es darum ging den Cheat einzufügen und der funktioniert jetzt wunderbar. Und zwar so daß man – im Gegensatz zu Nico’s Lösung – nichtmal mehr den Chat-Dialog zu sehen bekommt. Ich habe also das Problem gelöst – und der Quelltext sowie die Versionshistorie sind verlinkt. Meine Lösung ist theoretisch sogar generischer, was ich praktisch aber noch nicht testen konnte. Der einzige Mangel ist, daß ich Nico’s Code zum Einfügen des Cheats noch drinnen belassen habe, da ich es eben nicht in den alten Spielen testen konnte.

    Wo ist also genau das Problem? Würd’ mich mal echt interessieren? Ich habe mir das Spiel auch in den Disassembler geladen und es unter einem Debugger laufen lassen und auch die Dialogfunktion gefunden usw. Aber wenn ich eine simplere und elegantere Lösung finde, nehme ich doch die und nicht die komplizierte …?!

    // Oliver

  3. Michael says:

    Erstmal: Könntest du bitte noch meinen Namen und den Tippfehler im ersten Satz korrigieren? Danke.

    Es ist mehr so ein Bauchgefühl, ich kann es nicht begründen. Und ein Problem würde ich es nicht nennen.

  4. Oliver says:

    Der Name war bereits korrigiert, den anderen Fehler habe ich soeben behoben.

    Bauchgefühle finde ich bei soetwas wenig hilfreich. Warum? Weil sie weder etwas darüber aussagen ob und wenn ja welche Lösung objektiv besser oder schlechter ist. Schlimmer noch, sie erzeugen Unsicherheit wo keine sein müßte. Habe ich in der Firma auch dann und wann – entweder löchere ich dann denjenigen bis er objektive Äußerungen macht, oder ignoriere es ganz.

  5. Michael says:

    Das ist natürlich wahr.

    Weiß eigentlich Nico schon von der Anpassung?

  6. Oliver says:

    Auf meine Mail hat er nicht geantwortet.

  7. Oliver says:

    @Micha: hattest du jemals Erfolg ihn zu erreichen? Mir ist es unlängst gelungen. Allerdings ist es nach wie vor zu keinem Treffen gekommen, obwohl wir nunmehr bestenfalls 40 km auseinander wohnen.

  8. Luckie says:

    WTF? E-Mail Benachrichtigung nach über 7 Jahren auf ein Blog-Kommentar? Ich glaube ich, habe mit ihm mal Anfang des Jahres PN’s in der DP ausgetauscht. Aber ich lösche so was schnell wieder.

Leave a Reply

Your email address will not be published. Required fields are marked *