Anstoss 3 modden

Begonnen von Anstossmodder, Gestern um 00:16:36

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Anstossmodder

Hallo zusammen,

Evtl besteht etwas Interesse  A2G bzw A3 zu modden. Was mich dazu gebracht hat bisschen reinzuschauen waren diverse Bugs, wie z.B. der Ermüdungsbruch bei der Schwarzen Kasse oder fehlende features wie beim Trainingslager.

Also habe ich mir die A3.exe mal bisschen genauer angesehen. Bspw um die alten Fragen des Trainerseminars durch neue zu ersetzen.

Wenn man im Assembler nach .saq Datein sucht, findet man schnell eine Funktion und sieht, dass diese eine einfache XOR Verschlüsselung haben.(siehe Bild)

Das heißt im Endeffekt, die Trainerseminarfragen können sehr einfach ersetzt werden.

Nehmen wir als Beispiel den Block der fort.saq
A8 9A 8D DF 9A 8D 85 96 9A 93 8B 9A DF CE C6 CA CB DF 96 92 DF B9 96 91 9E 93 9A DF 89 90 91 DF BD 9A 8D 91 DF 9B 9A 91 DF AC 96 9A 98 8B 8D 9A 99 99 9A 8D DF 99 03 8D DF BB 9A 8A 8B 8C 9C 97 93 9E 91 9B C0 FF AD 9E 97 91 D3 AB 8A 8D 9A 94 D3 B2 90 8D 93 90 9C 94 D3 AC 9C 97 92 96 9B 8B FF A8 9A 93 9C 97 9A 8D DF B6 8B 9E 93 96 9A 91 9A 8D DF 89 9A 8D 8C 9C 97 90 20 DF 96 92 DF BA 91 9B 8C 8F 96 9A 93 DF 9B 9A 8D DF A8 B2 DF CE C6 C6 CB DF 9B 9A 91 DF 9A 91 8B 8C 9C 97 9A 96 9B 9A 91 9B 9A 91 DF BA 93 99 92 9A 8B 9A 8D DF 96 92 DF BA 91 9B 8C 8F 96 9A 93 DF 98 9A 98 9A 91 DF BD 8D 9E 8C 96 93 96 9A 91 C0 FF AD 90 9D 9A 8D 8B 90 DF BD 9E 98 98 96 90 D3 B9 8D 9E 91 9C 90 DF BD 9E 8D 9A 8C 96 D3 BE 91 8B 90 91 96 90 DF BD 9A 91 91 9E 8D 96 89 90 D3 AF 96 9A 8D 93 8A 96 98 96 DF BC 9E 8C 96 8D 9E 98 97 96 DF FF A8 9A 8D DF 88 8A 8D 9B 9A DF CE C6 C7 C9 DF A8 9A 93 8B 92 9A 96 8C 8B 9A 8D C0 FF BE 8D 98 9A 91 8B 96 91 96 9A 91 D3 BD 8D 9E 8C 96 93 96 9A 91 D3 BA 91 98 93 9E 91 9B D3 B6 8B 9E 93 96 9A 91 FF A8 9A 8D DF 88 8A 8D 9B 9A DF CE C6 C6 CF DF A8 9A 93 8B 92 9A 96 8C 8B 9A 8D C0 FF BB 9A 8A 8B 8C 9C 97 93 9E 91 9B DF 91 9E 8B 03 8D 93 96 9C 97 D3 B9 8D 9E 91 94 8D 9A 96 9C 97 D3 BD 8D 9E 8C 96 93 96 9A 91 D3 B6 8B 9E 93 96 9A 91 FF A8 9A 8D DF 88 8A 8D 9B 9A DF CE C6 C6 CB DF A8 9A 93 8B 92 9A 96 8C 8B 9A 8D C0 FF BD 8D 9E 8C 96 93 96 9A 91 D3 B9 8D 9E 91 94 8D 9A 96 9C 97 D3 B6 8B 9E 93 96 9A 91 D3 BB 9A 8A 8B 8C 9C 97 93 9E 91 9B DF 91 9E 8B 03 8D 93 96 9C 97 FF A8 9A 8D DF 88 8A 8D 9B 9A DF CE C6 C6 C7 DF A8 9A 93 8B 92 9A 96 8C 8B 9A 8D C0 FF B9 8D 9E 91 94 8D 9A 96 9C 97 D3 BD 8D 9E 8C 96 93 96 9A 91 D3 B6 8B 9E 93 96 9A 91 D3 BB 9A 8A 8B 8C 9C 97 93 9E 91 9B DF 91 9E 8B 03 8D 93 96 9C 97 FF A8 9E 91 91 DF 88 8A 8D 9B 9A DF BB 9A 8A 8B 8C 9C 97 93 9E 91 9B DF 85 8A 92 DF 9A 8D 8C 8B 9A 91 DF B2 9E 93 DF BA 8A 8D 90 8F 9E 92 9A 96 8C 8B 9A 8D C0 FF CE C6 C8 CD D3 CE C6 C7 CF D3 CE C6 C6 C9 D3 CE C6 C9 C7 FF A8 96 9A DF 90 99 8B DF 88 8A 8D 9B 9A DF BB 9A 8A 8B 8C 9C 97 93 9E 91 9B DF A8 9A 93 8B 92 9A 96 8C 8B 9A 8D C0 FF CC 92 9E 93 D3 CB 92 9E 93 D3 CD 92 9E 93 D3 91 90 9C 97 DF 91 96 9A FF A8 96 9A DF 9A 91 9B 9A 8B 9A DF 9B 9E 8C DF 9A 8D 8C 8B 9A DF 9B 9A 8A 8B 8C 9C 97 9A DF A8 B2 D2 AC 8F 96 9A 93 DF CE C6 C6 C7 C0 FF CD C5 CD D3 CE C5 CE D3 CC C5 CE D3 CE C5 CC FF A8 96 9A DF 9A 91 9B 9A 8B 9A DF 9D 9A 96 DF 9B 9A 8D DF BA B2 DF CE C6 C6 C9 DF 9B 9E 8C DF AC 8F 96 9A 93 DF 85 88 96 8C 9C 97 9A 91 DF BB 9A 8A 8B 8C 9C 97 93 9E 91 9B DF 8A 91 9B DF B4 8D 90 9E 8B 96 9A 91 C0 FF CD C5 CE D3 CF C5 CC D3 CD C5 CC D3 CB C5 CE FF A8 96 9A DF 9A 91 9B 9A 8B 9A DF 9B 9E 8C DF A8 B2 DF A9 96 9A 8D 8B 9A 93 99 96 91 9E 93 9A DF CE C6 C6 C7 DF 85 88 96 8C 9C 97 9A 91 DF BB 9A 8A 8B 8C 9C 97 93 9E 91 9B DF 8A 91 9B DF B4 8D 90 9E 8B 96 9A 91 DF D7 9E 8A 8C DF BB 9A 8A 8B 8C 9C 97 93 9E 91 9B 8C DF AC 96 9C 97 8B D6 C0 FF CF C5 CC D3 CE C5 CD D3 CE C5 CC D3 CF C5 CD FF B8 9A 98 9A 91 DF 88 9A 91 DF 89 9A 8D 93 90 8D DF BB 9A 8A 8B 8C 9C 97 93 9E 91 9B DF 96 92 DF A8 B2 D2 A9 96 9A 8D 8B 9A 93 99 96 91 9E 93 9A DF 89 90 91 DF CE C6 C6 CB C0 FF BD 8A 93 98 9E 8D 96 9A 91 D3 BD 8D 9E 8C 96 93 96 9A 91 D3 B6 8B 9E 93 96 9A 91 D3 AC 9C 97 88 9A 9B 9A 91 FF B8 9A 98 9A 91 DF 88 9A 91 DF 89 9A 8D 8C


Und entschlüsselt den Block bspw über

https://www.dcode.fr/xor-cipher (Use Hexdecimal Key FF)

oder man schreibt ein eigenes programm. Dann sehen wir den output

Wer erzielte 1954 im Finale von Bern den Siegtreffer für Deutschland?�Rahn,Turek,Morlock,Schmidt�Welcher Italiener verschoß im Endspiel der WM 1994 den entscheidenden Elfmeter im Endspiel gegen Brasilien?�Roberto Baggio,Franco Baresi,Antonio Bennarivo,Pierluigi Casiraghi �Wer wurde 1986 Weltmeister?�Argentinien,Brasilien,England,Italien�Wer wurde 1990 Weltmeister?�Deutschland natürlich,Frankreich,Brasilien,Italien�Wer wurde 1994 Weltmeister?�Brasilien,Frankreich,Italien,Deutschland natürlich�Wer wurde 1998 Weltmeister?�Frankreich,Brasilien,Italien,Deutschland natürlich�Wann wurde Deutschland zum ersten Mal Europameister?�1972,1980,1996,1968�Wie oft wurde Deutschland Weltmeister?�3mal,4mal,2mal,noch nie�Wie endete das erste deutsche WM-Spiel 1998?�2:2,1:1,3:1,1:3�Wie endete bei der EM 1996 das Spiel zwischen Deutschland und Kroatien?�2:1,0:3,2:3,4:1�Wie endete das WM Viertelfinale 1998 zwischen Deutschland und Kroatien (aus Deutschlands Sicht)?�0:3,1:2,1:3,0:2�Gegen wen verlor Deutschland im WM-Viertelfinale von 1994?�Bulgarien,Brasilien,Italien,Schweden�Gegen wen vers
Ohne die Funktion über statische Analyse bzw Debugger zu suchen wird die Struktur schnell klar �[Frage]�[Richtige Antwort],[Falsche Antwort1],[Falsche Antwort2],[Falsche Antwort3]

Kurz gesagt � trennt die Fragen ein Komma die Antworten. Die Funktion nimmt sich immer die richtige Antwort und 2 falsche aus dem Pool dieser könnte jedoch auf 4 beschränkt sein.

Dies ermöglicht es uns die Fragen zu erneuern bzw zu korrigieren wie

�Wie endete das [b]zweite[/b] deutsche WM-Spiel 1998?�2:2,1:1,3:1,1:3�
Nachdem man die Fragen neu geschrieben hat schmeißt man noch einmal die XOR Verschlüsselung drauf und speichert das ganze als eine neue fort.saq ab.

Ein schneller wenn auch uneleganter fix für den Ermüdungsbruch wäre es die Thunfischpizza durch was böses zu ersetzen.


Es sollte jedoch angemerkt werden, dass alte Spiele oft feste Grenzen eingebaut haben, d.h. durch Textedits alleine kann der Fragenkatalog nicht auf bspw 2000 Fragen angehoben werden.

Die Lösung dazu wäre es die verantwortlichen Funktionen zu finden, eine eigene dll laden und die funktionen dann zu patchen. Bei einigen Sachen scheint das nicht so schwierig zu sein.

Allerdings habe ich auch gesehen, dass einige Ereinisse hart codiert in der .exe drinne sind.
Der Zufallsgenerator hat sehr viele Ebenen, was auch erklärt warum Skandalnudeln, Unruhestifter und Maulwurfevents sehr sehr selten sind.

Der nächste Schritt wäre es herauszufinden was die genauen Bedingungen für die Images sind und welchen als erstes genommmen werden und so längeren Einfluss haben und dann anpassen.

Bspw Image:

Schleifer(Konditionstraining bis der Frischewert unter 40% rutscht)
Schlitzohr (Miese Tricks perfekt und sonst immer mindestens hervorragend)
PR Mann (Medien ~ >= 90 %)
Wissenschaftler(Spieler rotieren und regelmäßig auf verwandten Positionen aufstellen)
Ahnungsloser(durch das Trainerseminar fallen)
Streber(Trainerseminar mit 0 Fehlern)
Trunkenbold(mehrere Saufabende)
Harter Hund(Spieler Suspendieren)

lustiger Geselle(ich meine ich hatte das durch sehr viele Vereinsfeste, ich weiß aber nicht mehr ob die positive oder negative Wirkung hatten)

Dann gibt es images bei die ich nie erreichten konnte wie Motivationskünstler(habe Prämien gekloppt, die Gamemodi durch probiert, 8 Ansprachen hintereinander mit "Gesichter die bereits sind alles zu geben" usw), Lichtgestalt(keine Idee), Kumpeltyp(keine idee) gibt bestimmt noch mehr.

Zuletzt müsste man herausfinden welche Features nicht funktionieren und diese einbauen wenn möglich und diverse Zuweisungs oder Overflowbugs fixen. Bspw ewiges TL(Zuweisung und OverfLow), diverse interne Werte übersteigen 255 usw.


Was nur sehr sehr schwer möglich sein wird(man muss da bspw den textmodus quasi komplett neu schreiben) ist es die Spielerfähigkeiten mehr Einfluss auf das Spielgeschehen zu haben.
Es ist so dass nur sehr wenige Fähigkeiten Einfluss auf den Textmodus haben.

Herauslaufen, Weite Abschläge und Abwürfe und ein paar andere haben Einfluss auf den Grafikmodus.Ich meine Ballzauberer hatte auch nur Einfluss auf den Grafikmodus wenn auch nur schlechte(versucht zu dribbeln und verliert den Ball aber konntte das nie verifizieren)

Schnelligkeit, Laufstärke, Reflexe haben nur in Anstoss Action eine Auswirkung und da kann man problemlos auf der 16er Linie entlanglaufen und alles gewinnen.

Was leider nicht möglich sein wird, ist es die Europapokal oder Turnierformate anzupassen.

Wenn Interesse besteht kann ich angehenden Moddern Hilfestellung leisten und schauen was ich in meiner Freizeit so machen kann.

Meine Vorstellung einer eigenen dll wäre es, dass man eine zweite Art von Gamemodi wählt, der eine Gewichtung für diverse events hat.
Bspw "So wie immmer" "Realitätsnäher"(Keine Alienentführungen, mehr Angebote und Pressevents usw), "FC Hollywood"(Nahezu wöchentlich Presse/Ablenkungsevents) und "Sci-Fi"(Regelmäßige Alienentführungen, Atlantis usw)


wonderboy32

Ich hab zwar keine Ahnung vom Modden / Programmieren, aber ich habe mir schon immer gewünscht, dass einige Dinge in A3 gefixt werden könnten.
Was mich immer am meisten gestört hat ist die Tatsache, dass nach ein paar Saisons viel zu viele Spieler mit Talent riesig existieren und Vereine (auch zweite Liga) wenn man dort hin wechselt auf einmal ein riesen Startkapital haben.

Außerdem habe ich (vor allem im Netzwerk) häufiger nen Bug bei dem rote Karten oder Verletzungen ohne Grund in der nächsten Woche wieder verschwunden sind.

Und dann gibts da noch so Textmodus Geschichten wie:

"...doch heraus kommt nur ein harmloser Roller...
...weit über das Tor!"

oder

"Spieler X sieht sich Spieler Y gegenüber...
... und geht an ihm vorbei..."

Das sollte meiner Meinung nach nicht das Ende einer Spielsituation sein  :bang:

LG
wonderboy32

Anstossmodder

Es ist eher so, dass Vereine sich den Platzierungen der Vorsaison entsprechend versuchen verstärken. Dann gibt stärkere Vereine die weit unter dem Saisonziel landen und dann wirkt es so, als wären alle Vereine stark(Bis Platz 12 Durchschnittsstärke von 10). Das stabilisiert sich paar Saisons später wieder, weil alte Spieler ihre Karriere beenden.

Dass die Vereine reich werden liegt daran, dass andere Vereine eine einfache Berechnung des Vermögens haben und das Vermögen der Vorsaison drauf addiert wird. Einziger sind die Gehälter und die sind in der Regel gering.
Die Gehälter sind aber auch der Haken bei der Sache. Du kannst Vereine "bankrott mobben" aber dein Nervenkostüm sinkt ein bisschen, wegen den vielen Terminen.

Du suchst dir einen Verein zum mobben aus und versprichst jedem Spieler Bombenverträge und sorgst dafür dass der Transfer scheitert. Das wiederholst du bis viele Spieler keine Motivation(<30) mehr haben und wechseln wollen. Paar Saisons später haben die massiv aufgestockte Verträge. Ein 12er bekommmt dann in der Regel zwischen 2.5-6 Mio, ein 11er kann an 2.5 Mio Kratzen und selbst ein normaler 10er kann auf eine 1 Mio kommen.

Machst das relativ früh (sonst dauert es), dann bekommen die Lizenzprobleme. In der Regel bekommen sie diese entzogen aber der Einspruch ist erfolgreich. Den HSV konnte ich aber bankrott mobben und das hatte merkwürdige Nebeneffekte durch wiederholte Bankrottabstiege.(siehe Bilder). Nach der Doppelsaison haben die letzten 11er ihre Karriere beendet und seitdem ging sind sie nur noch sportlich abgestiegen.

Textmodus ist in der Textmodus.bin drinne(unverschlüsselt). 

Der Roller über das Tor müsste einfach zu fixen sein.

Die Abbruchbedingungen usw sind mir noch unbekannt aber nehmen wir das Beispiel mit dem Spiele der aufs Klo muss. Aber ich schreibe meine Vermutung hin.

%1 muss aufs Klo  --> Liest weiter oder Ende

%1 muss aufs Klo [51 0C Eventnummer? oder eine art goto?] [DWORD unbekannt 00 00 00 F4] [01 Status erledigt?]


und geht deswegen kurz vom Spielfeld [52 0C] [00 00 00 00] [01]

und geht deswegen kurz vom Spielfeld

und pinkelt....

und pinkelt .... [53 0C] [00 00 00 00] [01]

Schiri %15 kann es nicht fassen

Schiri %15 kann es nicht fassen [55 0C] [00 00 00 00] [01]

Dann kommmt rot mit [6B 0C] [00 00 00 00] [01]

Es scheint einen so als gibt es einen Fortlaufenden text und einen der unterbrochen wird.

Das resultiert diese möglichen texte.

'X muss aufs klo'

'X muss aufs klo und geht deswegen kurz vom spielfeld'


'X muss aufs klo und geht deswegen kurz vom spielfeld und pinkelt...'


'X muss aufs klo und geht deswegen kurz vom spielfeld und pinkelt...Schiri Y kann es nicht fassen'

'X muss aufs klo und geht deswegen kurz vom spielfeld und pinkelt...Schiri Y kann es nicht fassen und zeigt ihm die rote Karte'

Es ist mir noch unbekannt welcher der fortlaufende und welcher der unterbrochene ist. Das kann ein nullterminated string sein es kann geschaut werden ein Mitglied der klasse vorhanden ist.

"ber das Tor" had die Bytesequenz

62 65 72 20 64 61 73 20  54 6F 72 21
In dex Textmodus.bin findest sich das 106 mal.

Da sind aber auch so Sachen wie "über das Tor... in diesem Moment fliegt ein(e) Taube, Bussard, Rabe, Adler vorbei wird getroffen... und lenkt den ball ins tor"

22

Zu krass so jemanden hab ich gesucht^^
Was Du alleine in den 2 Beiträgen schon an Wissen, welches ich hier nicht gefunden bzw sicher bestätigt bekommen habe, lieferst ist mega.

Wie hast Du die Dinge herausgefunden?
Z.B. die Auswirkungen des Trainerimages
oder dass sich Teams nach Platzierung des Vorjahres verstärken

Ich wüsste eigentlich gerne ganz genaue Details zum Spiel.
Was z.B. wichtig ist für die Ergebnisberechnung, mittlerweile glaube ich es kommt nur auf die Mannschaftsstärke an, Faktoren die ich bisher als wichtig empfand  wie Siegeswille und Eingespieltheit spielen nicht die Rolle, die ich mir eingebildet habe.

Ebenso Taktiken, alles perfekt zu haben bringt mMn genauso viel wie alles grottig.

Und was in welchem Modus ne Rolle spielt...
Die Eigenschaften bewerten ja viele völlig über, hast Du ja auch festgestellt..
Der Überheblichkeitsfaktor interessiert mich auch wie der zusammengesetzt ist und man ihn umgeht.

Könntest Du da so eine Art Komplettlösung wie Waldis Tipps&Tricks schreiben?

Ich wünsche mir also diesbezüglich maximale Aufklärung und ein Traum wäre in Deutschland und England gleichzeitig alle Ligen spielen zu können.

Zu frühe Trainerentlassungen bei Abstiegskandidaten nerven auch.
Auswirkungen der Souveränität wüsste ich auch gerne...

Ich hab vor Kurzem angefangen mit Cheat Engine zu arbeiten allerdings hauptsächlich bei A2G da waren die Adressen fest, bei A3 hab ichs nicht so hinbekommen.

Also Zeit hätt ich, ich kenn mich nur nicht so aus...
Aber mit Anleitung könnte ich Dinge auch selbst prüfen...