Read Memory Surrounding Persons

01/07/2010 03:19 TheOnlyOne652089#1
Ok ich hab mich mal hingesetzt und die Werte weiter analysiert von den monster namen.

Man bekommt damit eine Liste von Namen, X, Y Koordinaten von allem was im Spiel im Sichtradius geladen wird.

Soll heißen steht man mitten in Rom stehen alle Personen in der Liste mit Namen, X, Y Koordinate.

Dazu zählen auch NPC, wandernde NPC's (z.b Goncourt wenn man den im Sicht Radius hat) und natürlich auch monster.


Das ist besonderst intressant weil man diese Liste für einige intressante features benutzen könnte / bzw ich werde das tun ^^.

Z.b. sieht man wenn man am Botten ist und eine Person sich dazu gesellt, in dem fall könnte man einen Timer starten (z.b. 20 sekunden) , ist die Person bis dahin nicht weg (also läuft nicht einfach nur vorbei) dann teleportiert man sich nach Rom oder wechselt einfach das Gebiet zum farmen.
*Das Feature ist aber etwas kompliziert in der Umsetzung, da man die Namen sieht, nicht aber ob es den ein Spieler ist, also muss man wissen das ein spezieller Name ein monster ist und andere keine monster sind (mechanismus dafür muss man halt mal schauen).

Das ist zwar schon sehr speziel aber sicherlich sehr nützlich.

Der Große Teil jedoch ist wichtiger um die gegner zu selektieren die man eigentlich angreifen will, dazu müsste man die Koordinaten so ausrichten das man anhand der Vogelperspektive auf das Feld sagen kann wo sich das Monster befinden müsste, dahin kann man dann klicken, was im Optimalfall die zeit intensiven Pixelsearches und Scan erspart, vor allem kann man auch speziellem zeugs aus dem Weg gehen, auch wenn das erstmal nicht so hilfreich ist (da die gegner ja zufällig sind, egal welche Namen sie haben die dann tatsächlich im Kampf sind).

Aber beim AutoMove könnte man auch Gegnern ausweichen die man nicht bekämpfen will, sprich bewegt man sich auf den Gegner zu und hat eine "Distanz" von sagen wir unter 5 (also ist sehr nahe) bricht man das Automove Ab und lenkt dagegen, damit man nicht im Kampf landet.
*Wobei das wohl komplizierter wird am Ende als es sich so anhört (mal sehen).


Für die Ind Dungeons ist es natürlich besonderst gut, da man damit die Gegner genau lokalisieren kann und damit alle nach einander besiegen kann, was mit Pixelsearch nahezu unmöglich ist.

Zuguter letzt kann man es im Waypoint System benutzen um einfach die exakten Koordinaten der NPC auszulesen.



Hier mal was ich mometan zu Test zwecken erstellt habe:

ReadPersonData.au3 file (compilieren mit AutoIT)

Memory.ini Extra
Die Memory Addressen entsprechen der GER version.
01/07/2010 03:20 TheOnlyOne652089#2
Sonst noch jemand Ideen was man damit alles machen könnte ?
01/07/2010 09:16 TheOnlyOne652089#3
Hab jetzt mal die GUI etwas erweitert.

Es wird nun immer die Distance zwischen dem Spieler und der einzelnen Personen berechnet.

Ist die Distanz kleiner als ein kritischer Wert (mal 5 das schon verdammt nahe) , wird die Zeile rot angezeigt, bei unter 10 zumindest gelb, ansonsten einfach weiß.


Idee ist wie gesagt das man sehen kann was in der Umgebung ist "generell" und dann natürlich für die "kleinigkeiten" mit den Monstern.
01/07/2010 17:16 neorwind#4
Could you write please in english?
01/08/2010 03:52 TheOnlyOne652089#5
Quote:
Originally Posted by neorwind View Post
Could you write please in english?
Not allways, just use a Translator of your choice.

Babelfish or something.
01/08/2010 06:31 TheOnlyOne652089#6
Die Infos bieten sich auch an das man eine Function schreiben kann um Leute für die Stadt zu überreden.

Die heißen ja an sich immer "Herumreisendes Mädchen" usw. muss man nur zu der Positon von denen laufen und dann anklicken, entsprechendes Macro für den Dialog und fertig.


ist ja auch eine Titel Quest.
01/08/2010 08:29 neorwind#7
Ok. Then tell me please, how to find this adresses [Person_Name]

Is this Unicode? Or simple text?
01/08/2010 10:55 TheOnlyOne652089#8
Quote:
Originally Posted by neorwind View Post
Ok. Then tell me please, how to find this adresses [Person_Name]

Is this Unicode? Or simple text?
In Atlantica pretty much any Text so far is Unicode.

However, its not that easy to find the Person_Name Memory.

Take a small city as its best just you and 1 other Person (or NPC, at least just 1 in the area), than search that that Name Unicode, change to another location in which its just you and 1 other Person, and "hopefully" your Memory Address changes to that Persons Name.

Its slighty random as the names are not allways put after another in the List.


However i think theirs some easier ways to search them in Cheat Engine.

Type in your "own" Name, lets say "HANS" , search for it as Unicode text.

Than switch the area and during the loading screen search for "NOPERSONNAME". If your name is not long enough, just look which Address changes to as many characters of that as possible and take it.
Instead of "NOPERSONNAME" it can be just an empty String aswell, however, finding out that last step is easy.

From that point search the Pointer like normal.
01/08/2010 11:02 TheOnlyOne652089#9
UPDATE v0.N5 contains latest ReadPersonData Addon
01/08/2010 17:08 neorwind#10
Lol a little bit hard to search everything xD
01/09/2010 07:53 TheOnlyOne652089#11
Quote:
Originally Posted by neorwind View Post
Lol a little bit hard to search everything xD
Just a matter of understanding and training.
If you know what you do, its fast and easy.

The first step to find a Memory is to understand what you actual search and how it "hopefully" behaves in the end.


Absolute worth to spend some time for it, understanding what you use is allways better than just using it (and scream if something doesnt work ^^).
01/09/2010 09:19 neorwind#12
Is it possible to find pointers for will's string?
01/09/2010 13:34 TheOnlyOne652089#13
Quote:
Originally Posted by neorwind View Post
Is it possible to find pointers for will's string?
Take a look in the Memory.ini , everything with Offsets is a Pointer (pretty much anything).

They are all explained that you can search them in Cheat Engine.
01/09/2010 22:42 neorwind#14
;~~~~~~~~~
;value contains "Will : XXX%" visible left of the Map.
;the Bot will just use the XXX value without the surrounding text.
;make sure that the Address is the one that start with "Will : XXX%" not just the Will value.
;~~~~~~~~~
[Will]
$Static = 0x01443D20
$Offset_1 = 0x135B4
$Offset_2 = 0xD8
$Offset_3 = 0x280
$Offset_4 = 0x4
$Offset_5 = 0x2E4

Everytime i run the game i find different adress. How to find a static one?
Moreover how to find offset