Brauche Unteschützung: Informationen aus einem Spiel bekommen

  • ähm
    ich weiß nicht ob das funzt weil ich das nämlich gerade mit CoD2 ausprobiert habe, meine .CT sieht so aus:

    Code
    CHEATENGINE         BARd‚a    CoD2SP_s.exe+218264 Ä              BAR%j    CoD2SP_s.exe+2A2510 Ä              BARDPl    CoD2SP_s.exe+2C5044 Ä              BARxÀõ    CoD2SP_s.exe+B5C078 Ä              BARHfö    CoD2SP_s.exe+B66648 Ä              BAR,÷    CoD2SP_s.exe+B70C2C Ä              BARDÅ   CoD2SP_s.exe+1858144 Ä              BAR³ó Ä                   Info about this table:


    also is deine Engine.dll nix anderes als bei mir die CoD2SP_s.exe, d.h. dass die Engine.dll der spielprozess ist
    und mit den werten bei mir hab ich nix anfangen können die findet CE alle nicht...
    Aber ich probiers jez mal mit autoit ich meld mich dann wenn ichn ergebnis bekommen hab^^

    Padmak

    Edit:
    Also bei mir hauts nicht

    Spoiler anzeigen
    [autoit]


    #include <NomadMemory.au3>
    $1 = Hex("218264", 6)
    $2 = Hex("2A2510", 6)
    $3 = Hex("2C5044", 6)
    $4 = Hex("B5C078", 6)
    $5 = Hex("B66648", 6)
    $6 = Hex("B70C2C", 6)
    $7 = Hex("1858144", 6)
    $process = ProcessExists("COD2SP_s.exe")
    MsgBox(0, "", $process)
    $pid = _MemoryOpen($process)
    $r1 = _MemoryRead($1, $process)
    $r2 = _MemoryRead($2, $process)
    $r3 = _MemoryRead($3, $process)
    $r4 = _MemoryRead($4, $process)
    $r5 = _MemoryRead($5, $process)
    $r6 = _MemoryRead($6, $process)
    $r7 = _MemoryRead($7, $process)
    _MemoryClose($pid)
    MsgBox(0, "", $r1 & " " & $r2 & " " & $r3 & " " & $r4 & " " & $r5 & " " & $r6 & " " & $r7)

    [/autoit]

    kannst ja mal auf dich umschreiben
    und ich muss jez off morgen versuch ich weiter bzw hör mich um

    Edit2:
    Poste doch mal n screeni von dem menü wo die infos die du haben willst angezeigt werden
    ich kenn das spiel nicht^^
    vielleicht kann man da direkt was rauslesen...

    2 Mal editiert, zuletzt von Padmak (22. Dezember 2008 um 23:24)

  • Ne, also im Menü steht nicht die aktuelle map oder ähnliches. Außerdem will ich ja auch an die infos kommen, wenn jemand das Spiel minimiert hat....
    Naja gut, dann las ich diese Funktion eben erstmal aus.

  • wie gesagt du könntest bei dem cheat engine installieren (per FileInstall) und dann aufrufen und per controlclick die adressen suchen...
    is aber langsam und ich glaub da verzichtet man lieber auf die Funktionen :D

    aber du kannst ja noch weitersuchen ich überleg auch schon die ganze zeit

    Padmak

  • Naja, hab gerade angefangen mir das ganze zeug mit TCP anzugucken und umzuschreiben^^
    Denn auch im Lan Modus sollen offene Server angezeigt werden. Es klappt schon so weit das sich der Client mit dem Server verbindet und informationen geschickt bekommt. Noch eine kleine Frage dazu: kann ich mir alle Computer im Netztwerk anzeigen lassen, damit der Client alle durch probieren kann. bis er zum Server kommt?

  • du könntest das per CMD, also _RunDos versuchen, aber dazu musst du dir versch. beispiele anschaun wie man dann die zurückgegebenen werte ausliest
    ich hab grad keine zeit nachher probier ich da was dazu

    Padmak

  • Ok, ich habs:

    [autoit]


    #include <process.au3>
    #include <string.au3>
    #include <array.au3>

    [/autoit][autoit][/autoit][autoit]

    $computer=_getcomputer()
    _arraydisplay($computer)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    func _getcomputer()
    _RunDOS("net view >> " & @appdatacommondir & "/netview.txt" )

    [/autoit][autoit][/autoit][autoit]

    $file=fileopen(@appdatacommondir & "/netview.txt",0)
    $lol = FileRead($file)
    FileClose ($file)
    FIleDelete(@appdatacommondir & "/netview.txt")

    [/autoit][autoit][/autoit][autoit]

    $w=_StringSplit($lol,@CRLF)
    for $i=0 to Ubound($w)-1
    if stringinstr($w[$i],"\\") Then
    $w[$i]=stringreplace($w[$i],"\\","")
    $w[$i]=stringreplace($w[$i]," ","")
    $w[$i]=stringreplace($w[$i]," ","")
    Else
    $w[$i]=""
    endif
    next
    _ArrayDeleteEmpty($w)
    return $w
    endfunc

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _ArrayDeleteEmpty(ByRef $ARRAY)
    If Not IsArray($ARRAY) Then Return 0
    Local $arTMP[1]
    For $i = 0 To UBound($ARRAY) -1
    If $ARRAY[$i] <> '' Then
    If $arTMP[0] = '' Then
    $arTMP[0] = $ARRAY[$i]
    Else
    ReDim $arTMP[UBound($arTMP)+1]
    $arTMP[UBound($arTMP)-1] = $ARRAY[$i]
    EndIf
    EndIf
    Next
    $ARRAY = $arTMP
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von Oger-Lord (23. Dezember 2008 um 12:36)

  • Zitat

    Naja, hab gerade angefangen mir das ganze zeug mit TCP anzugucken und umzuschreiben^^

    was genau hast du damit eigentlich gemeint?

    hängst du noch an map/spieler oder bist du schon weiter?
    und was machst du mit dem script da unten jez?

  • Warum suchst du mit CE nicht einfach den Pointer ?(
    Das ist nicht soo schwer, es sei denn du musst ihn über ASM suchen, weil der Schutz sehr gut ist, was ich aber nicht glaube.
    Anleitungen findest du genüge im Internet ...

  • ja des mit dem pointer hab ich ihm auch gesagt
    nur wie verwendet man nen pointer im autoit?
    da hab ich noch nix gefunden...

    Padmak