PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bevölkerungszahl auslesen?



deWinter2011
18-11-12, 23:07
Guten Abend,

hoffentlich bin ich hier im richtigen Bereich:o

Ich hab heute schon ziemlich lange gesucht und leider nicht so ganz das gefunden was ich brauchte. Vor kurzem habe ich angefangen mit Java zu programmieren und möchte jetzt endlich mal n bissl in Richtung Praxis gehen (Wenn man das so nennen kann...) . Jedenfalls möchte ich ein Programm schreiben mit dem ich live den Bedarf meiner Bevölkerung errechnen kann. (Evtl noch mehr, aber soweit bin ich noch lange nicht.) Die errechneten Zahlen sollen dann auf einem anderen PC angezeigt werden. Meine Frage ist jetzt folgende:,, Wie kann ich aus einem laufenden Spiel meine Bevölkerungszahl auslesen? Oder vielleicht etwas einfacher: Wie kann ich im allgemeinen Daten oder Informationen aus einem aktuellen Spiel auslesen? Für Antworten wäre ich euch sehr dankbar, auch wenn es bisher nur ein Hirngespinst ist...

Mit freundlichen Grüßen,

deWinter

Torp_Edo
20-11-12, 01:36
In der Theorie würde ich sagen:
1.) Die richtigen Speicheradressen finden, in denen die gewünschten Daten stehen.
2.) Mit Prog auslesen.
3.) Fertig
Hört sich doch gut an, oder ? ;)


In der Praxis wirst Du dann aber wahrscheinlich auf Hürden stoßen, z.B. gehe ich stark davon
aus, das Anno diese Daten in dynamischen Speicherbereichen hat, was bedeutet das sich die
Speicheradressen spätestens nach 'nem Neustart oder Laden eines Savegames ändern.
Dann müsstest Du die Pointer finden, die eben immer auf die aktuell benutzten Speicherbereiche zeigen.
Irgendwoher muss schließlich auch Anno wissen wo was steht.

Programmseitig würde man sich dann z.B. den Prozesshandle von Anno holen und über die WinAPI-Funktion
"ReadProcessMemory" die benötigten Speicherbereiche von Anno auslesen.
Aber ob sowas mit Java geht, keine Ahnung. Ich hab's nicht so mit Java http://static5.cdn.ubi.com/u/ubiforums/20120411.419/images/smilies/redface.png




Wie kann ich im allgemeinen Daten oder Informationen aus einem aktuellen Spiel auslesen?


Für dieses Problem wirst Du wohl nicht umhin kommen Dich mal mit "GameHacking" zu beschäftigen, die
bösen bösen GameTrainer machen ja nix anderes, nur das die eben nicht nur bestimmte Speicherbereiche
eines Spiels lesen, sondern auch schreiben, um einem z.B. mehr Leben zu verschaffen.
Aber das willst Du ja hoffentlich nicht...


P.S. Und Nein, ich bin kein Trainer-Experte, schreibe keine Trainer und brauche auch keine.
Nicht das hier falsche Verdachtsmomente auftauchen ;)

anno_heiho
20-11-12, 09:28
Hallo,

das kann man auch vereinfachen. Dafür brauchst du weder einen Warenrechner noch sonnst irgend etwas.
Anno ist ja ziemlich einfach in dieser Beziehung. Der Warenverbrauch ist relativ konstant.
Kannst ja mal hier (http://anno2070heiho.jimdo.com/warenversorgung/) auf meiner Homepage reinschauen.
Dort beschreibe ich, wie ich das mit der Warenversorgung mache. Evtl. hilft dir das schon :p

Torp_Edo
20-11-12, 16:55
Ich glaube kaum das der TE auf diese Idee kam weil er mit der Warenversorgung Probleme hat. Da geht es darum was nettes zu proggen :D
Ansonsten kann man auch einfach einen der Excel- oder Website-Warenrechner benutzen. Oder es so machen wie Du :)

Die einen jagen halt Erfolgen im Spiel hinterher, die nächsten modden was das Zeug hält, und dann sind da die anderen, die wollen halt Zahlen und Buchstaben zu 'nem Prog compilieren :)

anno_heiho
20-11-12, 17:11
Hatte ich ja auch nicht behauptet :cool:
Nur eben die "meisten" Warenrechner sind gerade bei großen Spielen doch sehr ungenau.
Sie greifen zwar auf die richtigen Verbrauchswerte zu, nur hilft das nix, wenn zB die Prod. Insel unten links und die Stadt oben rechts ist.
Und wer/was berechnet die Summe an Waren, die während einer Tour vom Handelsschiff nicht im Lager ist/soll :p

Mein Tip sollte ihm ja nur "Arbeit und Zeit" ersparen

Torp_Edo
20-11-12, 17:26
Wenn er 'n Progger ist glaube ja eher er will sich die "Arbeit machen" und die "Zeit dafür nutzen" ;)

deWinter2011
20-11-12, 17:28
Hallöchen,

also erstmal danke für die Antworten :)
@ Torp_Edo:
Danke dir. Das klingt als könnte mir das wirklich weiterhelfen:)

Ansonten:
Torp_Edo hat fast ins Schwarze getroffen^^ Die Rechner die hier existieren hab ich auch gefunden, ich hab aber ohnehin schon selber eine Excel-Tabelle geschrieben in der ich mir den Verbrauch ausrechnen kann. (Allerdings noch nicht mit dem neuen Verbrauch für das Add-on...) Ich fand es auch als Motivation mich n bissl in Java zu stürzen ganz gut. Ma schauen was draus wird und wie weit ich damit komme. Die Errechnung der Daten sollte kein Problem sein... eher das Auslesen, aber da hab ich ja jetzt nen guten Tipp, danke nochmal :)

Mit euphorischen Grüßen,

deWinter

Torp_Edo
25-11-12, 13:24
Ich konnt ja die Finger davon nicht lassen und hab mich da mal ein bißchen mit beschäftigt.
Im Kampf gegen das Blöde sozusagen - zumindest bei mir ;)

Habe es dann geschafft den statischen Pointer für die globale Bevölkerungszahl zu finden und mittels eigenem Programm auszulesen.
Wenn Du willst könnte ich Dir da ein bißchen "Starthilfe" geben und dir zeigen wie ich den gefunden habe.
Auch 'n Codeschnipsel wäre kein Problem, ist zwar nicht in Java, sollte aber trotzdem helfen.