C# Memory Read Problem

  • Hallo,
    ich würde gerne über eine Memory Read Funktion überprüfen ob inGame ein Dialog geöffnet ist oder nicht.


    Bisher habe ich folgende Funktion:

  • Encoding.Unicode.GetString(buffer)


    Das wird nicht richtig funktionieren, du solltest folgende Funktion verwenden:


    BitConverter.ToString(buffer);


    Dadurch bekommst du das Byte-Array als String ;)


    0x00745E50


    Woher hast du diesen Pointer? :huh:


    Ich bin mir ziemlich sicher, dass er nicht für die Dialoge ist.


    Es kommt noch darauf an, welche SA:MP Version du nutzt, für 0.3z ist der Pointer glaube ich: 0xBC70 (Bin mir da aber nicht ganz sicher)


    Falles es aber der richtige Pointer ist, kannst du einfach den Wert vom Byte-Array checken und schauen ob der Dialog aktiv bzw inaktiv ist :)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Die memory adresse habe ich von hier http://www.gtamodding.com/wiki/Function_Memory_Addresses_(SA)


    Könntest du mir eine Funktionierende beispiel Funktion schreiben?

  • Es kommt noch darauf an, welche SA:MP Version du nutzt


    Der sollte sich aber auch die pID des richtigen Programms holen. gta_sa ist's nicht.


    Müsste gta_sa_mp sein, weiß ich aber auch nicht aus dem Kopf. ^^

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Beitrag von Pennymarkt ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Hier 2 Pointer die auf die richtige Adresse zeigen:


    "samp.dll"+00212A74 Offset 180
    "samp.dll"+00212A40 Offset 28


    Wenn die Adresse den Wert 0 hat ist kein Dialog geöffnet, falls 1 ist ein Dialog geöffnet.
    Den Rest musst du aber selbst hinbekommen, hab keinn Plan von C#.
    Kleiner Tipp: "samp.dll" ist die Base Adresse der samp.dll