Memorywrite geht nicht immer

03/05/2009 21:24 Painful Pete#1
Hallo ich hab ein problem

Ich will nen NPC anwählen über Memories

Manchmal gehts, manchmal nicht und ich komm einfach nicht drauf wieso.

PHP Code:
$gwProcessExists("Gw.exe")
$mem _MemoryOpen($gw)
$npc0xd284e0


_Memoryread
($npc,$mem)
sleep(2000)
_Memorywrite($npc,$mem14
sleep(1000)
ControlSend("Guild Wars","","","{space}")
sleep(21000
Hat von euch jemand ne Idee?
Nah genug am NPC steh ich dran, dass ich ihn auswählen könnte.
Und an sich kann ja nix falsch seind, sonst würde es nie gehen.
Bin grad echt ratlos :confused:


EDIT: wir sind grad draufgekommen, dass sich alle Werte der NPCs um +1 verschoben haben.
Habt ihr das auch öfter? bzw wisst ihr vllt was, wie man sowas von allein immer updaten lassen kann, oder sollt ich das dann eher anders lösen?

Wahrscheinlich muss ichs dann doch mit checkarea und moveto lösen :(
03/05/2009 21:31 NBA#2
Wenn sich der NPC in einem erforschbaren Gebiet befindet, verschiebt sich das(wegen der Gegenanzahl wahrscheinlich). Das koennte die ursache sein
03/05/2009 21:33 kknb#3
im aussenposten ändert die sich auch ab und an, daran bin ich auch schonmal verzweifelt.
03/05/2009 21:41 _revo#4
crashed gw nicht, wenn man ne ungültige npcid schreiben lässt, mit nem schwerwiegenden fehler? :>
03/05/2009 21:54 kknb#5
meist verschiebt sich die id nur um wenige stellen, sodas man einfach nur woanders hinläuft. vorhin bin ich sogar beim testen zu nem anderen realplayer gelaufen. crash ist mir noch nie aufgefallen.
03/05/2009 21:56 Gheddo#6
jap das stimmt
03/05/2009 22:14 Painful Pete#7
Jo is in nem Außenposten und immer nur ne minimale verschiebung.

Werds jetzt wohl doch mit checkarea lösen müssen, aber das wollt ich eigtl umgehen :)
03/05/2009 23:14 | Moep |#8
Man kann auch, bevor der erste Run startet, über Pixlchecksum den entsprechenden NPC suchen lassen und die gefundene ID speichern. Sodass die daruffolgenden Runs dann diese ID nutzen. Vorraussetzung dafür ist, das man immer den exakt selben Distrikt nutzt. Da die IDs von Distrikt zu Distrikt unterschiedlich sein können.

Für meine Privatzwecke hab ich mir da ein kleines Script geschrieben was mir die ganze Prozedur auf die erklärte Weise abnimmt.
Für Public bzw Sell Versionen müsste man das ganze nur "Idiotensicher" umsetzen.

hf