|
You last visited: Today at 14:34
Advertisement
Nostale Map Viewer
Discussion on Nostale Map Viewer within the AutoIt forum part of the Coders Den category.
09/12/2012, 16:56
|
#1
|
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
|
Nostale Map Viewer
Hallo, wie kann man einen Autoit Nostale Map Viewer machen wo man:
NPC´s , Spieler und Items sieht?
Weiß einer wie man sowas in Autoit aufbaut.
Brauche hilfe komme nicht weiter.
|
|
|
09/12/2012, 17:33
|
#2
|
elite*gold: 127
Join Date: Dec 2009
Posts: 4,077
Received Thanks: 1,081
|
Falsche Sektion.
Das gehört  rein.
|
|
|
09/12/2012, 17:34
|
#3
|
elite*gold: 113
Join Date: Dec 2009
Posts: 16,685
Received Thanks: 4,450
|
Nostale -> AutoIt
#moved
|
|
|
09/12/2012, 17:40
|
#4
|
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
|
Entschuldigung wusste ich nicht.
|
|
|
09/12/2012, 17:50
|
#5
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Hast du ein Beispiel in irgendeiner anderen Sprache?
|
|
|
09/12/2012, 17:53
|
#6
|
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
|
Nein leider nicht.
Wie den auch ist mein erstes mal
das ich sowas mache.
Mit Pointern und so kenne mich mich aus
aber damit garnicht.
Und ich glaube auch kaum das einer so eine Source gibt.
|
|
|
09/12/2012, 21:21
|
#7
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
du musst die map einfach als bild nehmen, und kannst dann ja einfach eine verhältnisgleichung zu deinem aktuellen maßstab der karte (bzw des kartenausschnitts) erstellen.
wenn du das fertig hast, sollte es ein leichtes sein, die koordinaten auf der karte zb durch farbige punkte zu markieren.
|
|
|
09/12/2012, 22:18
|
#8
|
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
|
Also die GUI mit dem Bild habe ich schon.
Aber wie kriege ich die koordinaten.
Und wie kann ich die koordinaten in der
Autoit-Map anzeigen.
Das sind meine Fragen.
Aber ich kriege das irgendwie nicht hin.
Deswegen suche ich Hilfe.
|
|
|
09/13/2012, 11:05
|
#9
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by BladeTiger12
Also die GUI mit dem Bild habe ich schon.
Aber wie kriege ich die koordinaten.
Und wie kann ich die koordinaten in der
Autoit-Map anzeigen.
Das sind meine Fragen.
Aber ich kriege das irgendwie nicht hin.
Deswegen suche ich Hilfe.
|
nach deinen posts war ich davon ausgegangen, das du bereits viel über reverse engineering weist, und diesbezüglich keine hilfe mehr benötigst.
wenn es um objekte in spielen geht, welche man versucht zu finden, hält man sich in der regel an gegebene funktionen. die meisten mmo's beinhalten von haus aus autoselect oder autopick funktionen. diese im client zu finden, sollte mit grundlegenden vorkenntnissen kein problem darstellen.
sobald man eine dieser funktionen gefunden hat, sollte es auch kein problem mehr sein, diese in autoit nach zu bauen...
hier mal ein  , welches ich vor langer zeit einmal für silkroad online geschrieben habe.
sollte es tatsächlich keine derartigen vom spiel vorgegebenen funktionen geben, so muss gibt es meist noch eine minimap oder ähnliches, auf welcher die objekte (mobs, npcs, items, ...) eingezeichnet sind. die funktion der aktualisierung der minimap im speicher zu finden ist in der regel aber deutlich schwerer, da aktualisierungen nicht über user-aktionen ablaufen.
sollte selbst eine derartige minimap nicht existieren, so muss man sich an die aktualisierung der spieloberfläche halten. da dies aber in wohl jedem spiel mit abstand die umfangreichste klasse ist, ist hier das filtern der benötigten informationen auch mit abstand am schwersten.
alternativ kann man in online spielen auch versuchen das ganze über den packetfluss zu lösen. das ganze hat den vorteil, das man weniger mit client-speziefischen problemen zu kämpfen hat, welche beispielsweise durch updates hinzukommen könnten.
|
|
|
09/13/2012, 19:55
|
#10
|
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
|
Hmm sicher das man daraus von jedem Mob die Koordinaten bekommt oder nur von einen?
|
|
|
09/14/2012, 01:00
|
#11
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
|
Quote:
Originally Posted by BladeTiger12
Hmm sicher das man daraus von jedem Mob die Koordinaten bekommt oder nur von einen?
|
Durch das konkrete Suchen mit AutoPick kriegst du natürlich nur von einem Mob sämtliche Daten. Es sollte dir aber möglich sein die Daten des Mobs hoch auf eine Struct zu rechnen. Wenn du weißt wie viel Speicherplatz pro Mob in der Struct eingenommen wird, kannst du indem du den Anfang und das Ende der Struct findest ganz einfach über jeden beliebigen Mob Informationen bekommen.
Das ganze ist aber etwas kniffelig, dennoch nicht unmöglich.
Alternative wäre ein Code Cave, das beim erstellen der Map die Daten der Mobs rausfiltert, aber ich denke da wirst du noch größere Probleme haben als mit den bloßem Finden der Struct.
|
|
|
09/14/2012, 10:35
|
#12
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by Shadow992
Durch das konkrete Suchen mit AutoPick kriegst du natürlich nur von einem Mob sämtliche Daten.
|
in der regel funktionieren die autoselect funktionen der mmos aber so, das sie automatisch den dichtesten mob auswählen.
dafür gibt es nur 2 mögliche wege. der erste wäre, das der server sämtliche in der nähe befindliche mobs durchläuft. hier würden wir dann tatsächlich als antwort nur einen mob bekommen.
viel warscheinlicher ist aber die zweite methode, in der der client sämtliche mobs durchläuft. so funktioniert es zb auch bei den von mir getesteten spielen: silkroad, perferkt world und 4story. eben dieses durchlaufen der mobs braucht man dann ja nur nachzubauen, und hat so bereits die fertige liste aller mobs.
|
|
|
09/14/2012, 14:24
|
#13
|
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
|
Hört sich wirklich schwer an aber ich werde es Probieren.
Danke für die Lösungen
|
|
|
09/16/2012, 21:39
|
#14
|
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
|
Habe es jetzt so lange probiert und am ende
habe ich es nur gepackt meine Pos rauszukriegen
und damit ein Programm zubauen.
Hier mein bisjetziger Code:
PHP Code:
#RequireAdmin
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>
#include <GDIPlus.au3>
_GDIPlus_Startup()
Global $ADD = 0x007D53F4, $OFFY = 0x0E, $OFFX = 0x0C, $OFF2 = 0x30 , $hGraphic
$PID = _MemoryOpen(ProcessExists("NostaleX.dat"))
$hGUI = GUICreate("GDI+", 265, 265)
AdlibRegister("_POS" , 1000)
GUISetState()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
While 1
$ReadX = _MemoryRead(_MemoryRead(_MemoryRead($ADD , $PID) + $OFF2 , $PID) + $OFFX , $PID , "word")
$ReadY = _MemoryRead(_MemoryRead(_MemoryRead($ADD , $PID) + $OFF2 , $PID) + $OFFY , $PID , "word")
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
Exit
EndSwitch
WEnd
Func _POS()
_GDIPlus_GraphicsClear($hGraphic , 0xFFFFFFFF)
_GDIPlus_GraphicsFillEllipse($hGraphic, $ReadX, $ReadY, 10, 10)
EndFunc
Ich pack das irgendwie nicht.
Bitte um weitere Hilfe.
Skype wäre auch gut:
MrBladeTiger12
|
|
|
All times are GMT +1. The time now is 14:34.
|
|