|
You last visited: Today at 16:41
Advertisement
Radar auslesen
Discussion on Radar auslesen within the Last Chaos forum part of the MMORPGs category.
08/25/2010, 23:03
|
#1
|
elite*gold: 0
Join Date: Jan 2010
Posts: 399
Received Thanks: 272
|
Radar auslesen
Ich bräuchte für meinen Bot eine Funktion, mit der ich die Koordinaten aller Monster im Radar auslesen kann. So eine Funktion hat zB. auch der .NET Trainer.
Ich habe bereits die Adressen für die GUID und ID der NPCs. Diese beginnen bei der Adresse 0x0120004C für die GUID des ersten NPCs (0x01200050 für die ID des NPCs). Die jeweils nächste ist je 368 Bytes weiter (0x012003B4 für den 2. NPC).
So weit so gut, allerdings finde ich einfach nicht die Adresse für die Koordinaten, wo sich die NPCs grade befinden. Ich kann die zwar mit CE auslesen, allerdings scheint sich ihre Speicheradresse immer zu ändern, sobald der NPC einmal aus dem Radar verschwunden ist und wieder auftaucht. Auch lässt sich kein Zusammenhang mit den anderen Koordinaten erkennen, da diese Speicheradressen manchmal einfach unmögliche Werte anzeigen...
Weiß jemand Rat, wie ich an die Koordinaten komme?
Ich habe dsfgd schon eine PM geschrieben und gefragt,wie er das in seinem Trainer hinbekommen hat, allerdings hat er sich seit Tagen nicht in diesem Forum blicken lassen und ich bräuchte die Kordinaten wirklich dringend...
|
|
|
08/25/2010, 23:09
|
#2
|
elite*gold: 0
Join Date: Jan 2010
Posts: 8,985
Received Thanks: 3,457
|
Immer wieder Radar auslesen...? Wozu brauchst du das denn?
|
|
|
08/25/2010, 23:20
|
#3
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Damit kann man den Bereich gut eingrenzen. Gibt noch weitere Beispiele, ich habe huberhans
mal ein Code geschickt, ich kram den mal raus und lösch das unnötige.
Hat zwar etwas gedauert, aber ich habs gefunden. Es ist zwar nur ein AutoIt Script und für die Items,
aber du solltest was damit anfangen können:
PHP Code:
#include <GUIConstantsEx.au3>
#include <GuiListView.au3> ; ListView UDF
#include <ListViewConstants.au3>
#include <NomadMemory.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("KDRadar", 370, 368)
GUISetBkColor(0xFFFFFF)
$LV_Items = GUICtrlCreateListView("X|Y|Z|Rotation", 10, 10, 350, 350)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 75)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 75)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 75)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 75)
$ListViewHandle = GUICtrlGetHandle($LV_Items)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$Handle = _MemoryOpen(ProcessExists("Nksp.exe")) ;vereinfacht
$Base = 0x10643528
$mDataSize = 0x90
$Address = _MemoryRead($Base, $Handle) ;_pNetwork
$GameAddress = _MemoryRead($Address + 0x1C, $Handle) ;_pNetwork + 0x1C
$ItemsPointer = _MemoryRead($GameAddress + 0x48, $Handle) ;(_pNetwork + 0x1C) + 0x48
$ItemsCount = _MemoryRead($GameAddress + 0x4C, $Handle) ;(_pNetwork + 0x1C) + 0x4C
$Time = 10000 ;10 Sekunden
While True
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
If TimerDiff($Time) >= 10000 Then ;aktuallisiert das ListView alle 10 Sekunden
_GUICtrlListView_DeleteAllItems($ListViewHandle); löscht alle Einträge der ListView
For $x = 0 To $ItemsCount - 1 ;Array beginnt bei 0
$ItemDataPointer = _MemoryRead($ItemsPointer + ($x * $mDataSize) + 0xC, $Handle)
$ItemX = _MemoryRead($ItemDataPointer + 0x54, $Handle, "float")
$ItemY = _MemoryRead($ItemDataPointer + 0x5C, $Handle, "float")
$ItemZ = _MemoryRead($ItemDataPointer + 0x58, $Handle, "float")
$ItemRot = _MemoryRead($ItemDataPointer + 0x60, $Handle, "float")
;Daten in das ListView einfügen
$ItemsAddListView = _GUICtrlListView_GetItemCount($LV_Items)
_GUICtrlListView_AddItem($ListViewHandle, Round($ItemX, 4), 0)
_GUICtrlListView_AddSubItem($ListViewHandle, $ItemsAddListView, Round($ItemY, 4), 1)
_GUICtrlListView_AddSubItem($ListViewHandle, $ItemsAddListView, Round($ItemZ, 4), 2)
_GUICtrlListView_AddSubItem($ListViewHandle, $ItemsAddListView, Round($ItemRot, 4), 3)
Next
$Time = TimerInit() ;resettet den Timer
EndIf
WEnd
Ist nicht mehr aktuell.
|
|
|
08/26/2010, 14:31
|
#4
|
elite*gold: 0
Join Date: Jan 2010
Posts: 399
Received Thanks: 272
|
Quote:
Originally Posted by KillerDeluxe
Damit kann man den Bereich gut eingrenzen. Gibt noch weitere Beispiele, ich habe huberhans
mal ein Code geschickt, ich kram den mal raus und lösch das unnötige.
Hat zwar etwas gedauert, aber ich habs gefunden. Es ist zwar nur ein AutoIt Script und für die Items,
aber du solltest was damit anfangen können:
PHP Code:
#include <GUIConstantsEx.au3>
#include <GuiListView.au3> ; ListView UDF
#include <ListViewConstants.au3>
#include <NomadMemory.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("KDRadar", 370, 368)
GUISetBkColor(0xFFFFFF)
$LV_Items = GUICtrlCreateListView("X|Y|Z|Rotation", 10, 10, 350, 350)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 75)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 75)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 75)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 75)
$ListViewHandle = GUICtrlGetHandle($LV_Items)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$Handle = _MemoryOpen(ProcessExists("Nksp.exe")) ;vereinfacht
$Base = 0x10643528
$mDataSize = 0x90
$Address = _MemoryRead($Base, $Handle) ;_pNetwork
$GameAddress = _MemoryRead($Address + 0x1C, $Handle) ;_pNetwork + 0x1C
$ItemsPointer = _MemoryRead($GameAddress + 0x48, $Handle) ;(_pNetwork + 0x1C) + 0x48
$ItemsCount = _MemoryRead($GameAddress + 0x4C, $Handle) ;(_pNetwork + 0x1C) + 0x4C
$Time = 10000 ;10 Sekunden
While True
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
If TimerDiff($Time) >= 10000 Then ;aktuallisiert das ListView alle 10 Sekunden
_GUICtrlListView_DeleteAllItems($ListViewHandle); löscht alle Einträge der ListView
For $x = 0 To $ItemsCount - 1 ;Array beginnt bei 0
$ItemDataPointer = _MemoryRead($ItemsPointer + ($x * $mDataSize) + 0xC, $Handle)
$ItemX = _MemoryRead($ItemDataPointer + 0x54, $Handle, "float")
$ItemY = _MemoryRead($ItemDataPointer + 0x5C, $Handle, "float")
$ItemZ = _MemoryRead($ItemDataPointer + 0x58, $Handle, "float")
$ItemRot = _MemoryRead($ItemDataPointer + 0x60, $Handle, "float")
;Daten in das ListView einfügen
$ItemsAddListView = _GUICtrlListView_GetItemCount($LV_Items)
_GUICtrlListView_AddItem($ListViewHandle, Round($ItemX, 4), 0)
_GUICtrlListView_AddSubItem($ListViewHandle, $ItemsAddListView, Round($ItemY, 4), 1)
_GUICtrlListView_AddSubItem($ListViewHandle, $ItemsAddListView, Round($ItemZ, 4), 2)
_GUICtrlListView_AddSubItem($ListViewHandle, $ItemsAddListView, Round($ItemRot, 4), 3)
Next
$Time = TimerInit() ;resettet den Timer
EndIf
WEnd
Ist nicht mehr aktuell.
|
Ein dickes Thanks von mir
Bei den Items habe ich das jetzt geschafft, aber bei den Monstern komm ich leider nicht weiter. Bei den Offsets überspringt der einfach das, was bei dir der $ItemsPointer (bei den Monstern warscheinlich der MonsterPointer) ist und geht direkt zur $GameAddress. Das endet natürlich in einer komplett falschen Endadresse...
Hat jemand eine Ahnung, wie ich an die Offset für den "MonsterPointer" komme?
|
|
|
08/26/2010, 18:19
|
#5
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Da ist mir ein kleiner Fehler unterlaufen. Ich hab das ganze aber mal etwas verbessert und für die Monster angepasst.
PHP Code:
#include <GUIConstantsEx.au3>
#include <GuiListView.au3> ; ListView UDF
#include <ListViewConstants.au3>
#include <NomadMemory.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("KDRadar", 370, 368)
GUISetBkColor(0xFFFFFF)
$LV_Monster = GUICtrlCreateListView("X|Y|Z|Rotation", 10, 10, 350, 350)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 75)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 75)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 75)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 75)
$ListViewHandle = GUICtrlGetHandle($LV_Monster)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$Base = 0x105F1A58
$mDataSize = 0x368
$Window = "[CLASS:Nksp]"
$Time = 10000 ;10 Sekunden
While True
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
If TimerDiff($Time) >= 10000 Then ;aktuallisiert das ListView alle 10 Sekunden
$Handle = _MemoryOpen(WinGetProcess($Window)) ;vereinfacht
If Not @error Then
$Address = _MemoryRead($Base, $Handle) ;_pNetwork
$GameAddress = _MemoryRead($Address + 0x1C, $Handle) ;_pNetwork + 0x1C
$MonsterPointer = _MemoryRead($GameAddress + 0x18, $Handle) ;(_pNetwork + 0x1C) + 0x18
$MonsterCount = _MemoryRead($GameAddress + 0x1C, $Handle) ;(_pNetwork + 0x1C) + 0x1C
_GUICtrlListView_DeleteAllItems($ListViewHandle); löscht alle Einträge der ListView
For $x = 0 To $MonsterCount - 1 ;Array beginnt bei 0
$MonsterDataPointer = _MemoryRead($MonsterPointer + ($x * $mDataSize) + 0x14, $Handle)
$MonsterX = _MemoryRead($MonsterDataPointer + 0x54, $Handle, "float")
$MonsterY = _MemoryRead($MonsterDataPointer + 0x5C, $Handle, "float")
$MonsterZ = _MemoryRead($MonsterDataPointer + 0x58, $Handle, "float")
$MonsterRot = _MemoryRead($MonsterDataPointer + 0x60, $Handle, "float")
;Daten in das ListView einfügen
$MonsterAddListView = _GUICtrlListView_GetItemCount($LV_Monster)
_GUICtrlListView_AddItem($ListViewHandle, Round($MonsterX, 4), 0)
_GUICtrlListView_AddSubItem($ListViewHandle, $MonsterAddListView, Round($MonsterY, 4), 1)
_GUICtrlListView_AddSubItem($ListViewHandle, $MonsterAddListView, Round($MonsterZ, 4), 2)
_GUICtrlListView_AddSubItem($ListViewHandle, $MonsterAddListView, Round($MonsterRot, 4), 3)
Next
_MemoryClose($Handle)
EndIf
$Time = TimerInit() ;resettet den Timer
EndIf
WEnd
|
|
|
08/26/2010, 21:05
|
#6
|
elite*gold: 0
Join Date: Jan 2010
Posts: 399
Received Thanks: 272
|
Edit: habe meinen Fehler entdeckt, jetzt funktioniert das, was du mir geschrieben hast einwandfrei!
Wenn ich dir nicht schon ein thx gegeben hätte, würde ich dir glatt noch eins geben
|
|
|
 |
Similar Threads
|
lf radar, non detectableish like pete's radar
09/25/2010 - Aion - 1 Replies
i tried using pete's 1.05 it shows nothing excpt a crosshair, i checked his settings area , reloged , tp ed......deleted it and reloaded fresh one.....still nothing .....i'm usin vista , and this is after merge and 1.9 aion.....any ideas?
|
Radar- Post what you know about any and all active, working radar programs for DAOC
06/29/2010 - General Gaming Discussion - 1 Replies
its been years since I was using a working version of AK. I hear people say that there is a current working version of AK, and of another type of radar program.
If you know anything about any working radar, please post the info.
A link to where it can be downloaded, etc, would be great. And if it can be detected in a passive (not just by tricking you into chasing bait) manner on any live or freeshard servers.
Thanks.
|
WoW Radar ???
02/04/2007 - World of Warcraft - 2 Replies
Hy allo bei www.wowsharp.net gabs doch mal son radar der alles angezeigt hat items quests und so nicht wa???
der funzt nicht mehr seh ich das richtig oder???
hoffe einer kann helfen!
|
Radar
10/02/2006 - Lineage 2 - 0 Replies
The radar of the dead L2Agent is a very useful tool, because in the private server I play now the mob drop items to the ground. But my old version of L2 with the C5 is out of use.
Does anyone know if there is another tool with a good radar?
|
All times are GMT +1. The time now is 16:43.
|
|