|
You last visited: Today at 13:22
Advertisement
Memory Read (Not Working)
Discussion on Memory Read (Not Working) within the Perfect World forum part of the MMORPGs category.
05/06/2012, 12:04
|
#1
|
elite*gold: 0
Join Date: Jul 2009
Posts: 39
Received Thanks: 0
|
Memory Read (Not Working)
Fixed :]
|
|
|
05/06/2012, 12:32
|
#2
|
elite*gold: 0
Join Date: Mar 2010
Posts: 862
Received Thanks: 576
|
you use offset[4] here:
Code:
$NPC_ID_OFFSET[4] = $i * 0x00000004
and offset[5] here
Code:
$NPC_CURRENT_HP_OFFSET[5] = $i * 0x00000004
whatever else is going on, I can't imagine that being correct
That being said,
Code:
$NPC_COUNT_OFFSET[1] = 0x0000001C
$NPC_COUNT_OFFSET[2] = 0x0000001C
$NPC_COUNT_OFFSET[3] = 0x00000024
$NPC_COUNT_OFFSET[4] = 0x00000014
would be the size of the NPC list, so you don't have to loop through 769 values.
Also, HP values of NPCs don't get updated until you've selected them.
|
|
|
05/06/2012, 12:35
|
#3
|
elite*gold: 0
Join Date: Jul 2009
Posts: 39
Received Thanks: 0
|
Quote:
Originally Posted by Interest07
you use offset[4] here:
Code:
$NPC_ID_OFFSET[4] = $i * 0x00000004
and offset[5] here
Code:
$NPC_CURRENT_HP_OFFSET[5] = $i * 0x00000004
whatever else is going on, I can't imagine that being correct 
|
I fixed that, NPC_ID_OFFSET[4] is now [5] as well. ( Sorry, I tried a lot of things )
Quote:
2148532959 - 0/0
2148533140 - 0/0
2148533142 - 0/0
2148533143 - 0/0
2148533144 - 38336/38336
2148533145 - 0/0
2148533146 - 0/0
2148533147 - 0/0
2148533166 - 0/0
2148533167 - 0/0
2148533168 - 0/0
2148533257 - 0/0
2148533311 - 0/0
2148533312 - 0/0
2148533313 - 0/0
2148533314 - 0/0
2148533316 - 0/0
2148533359 - 0/0
2148532841 - 0/0
2148532843 - 0/0
2148532849 - 0/0
2148532843 - 0/0
2148532849 - 0/0
2148532849 - 0/0
2148532845 - 0/0
2148532849 - 0/0
3361502062 - 828125655/1953393007
|
Still,, makes no sense. ( I have been trying to figure it out for hours now ).
Edit: As you can see the ID works, but max/current hp doesnt.
|
|
|
05/06/2012, 12:51
|
#4
|
elite*gold: 20
Join Date: May 2009
Posts: 1,290
Received Thanks: 326
|
Keep in mind that the HP/Max HP is only sent from server if you target the NPC. Otherwise it's not loaded.
|
|
|
05/06/2012, 13:10
|
#5
|
elite*gold: 0
Join Date: Jul 2009
Posts: 39
Received Thanks: 0
|
Then what is the x * 4 for?
|
|
|
05/06/2012, 13:17
|
#6
|
elite*gold: 20
Join Date: May 2009
Posts: 1,290
Received Thanks: 326
|
Quote:
Originally Posted by Shortpants
Then what is the x * 4 for?
|
That's what resolves the pointer to the individual NPC structures.
Pointers are 4 byte in 32 bit processes, so that+ why it's i * 4. The i is the index, i.e the place where mob is found in list. I guess you're using unsorted mob list? I didn't check your offsets/code
Edit : yeah, you are using unsorted one.
|
|
|
05/06/2012, 13:34
|
#7
|
elite*gold: 0
Join Date: Jul 2009
Posts: 39
Received Thanks: 0
|
Quote:
Originally Posted by Sᴡoosh
That's what resolves the pointer to the individual NPC structures.
Pointers are 4 byte in 32 bit processes, so that+ why it's i * 4. The i is the index, i.e the place where mob is found in list. I guess you're using unsorted mob list? I didn't check your offsets/code
Edit : yeah, you are using unsorted one.
|
I am targeting mobs using packets.
It will select the first monster ( this takes a while because it's using packets to target), then it will wait until the target state ( BASE+0x34+0xBB4 ) is different than zero.
Then it will hit an other loop where it will wait until the monster is dead.
The thing is that it will try to target already-dead targets because they're not removed from the index instantly. Resulting in an infinite loop.
The only thing that I can think of ( since checking whether the current target is different than the last one, is still not fast enough ).. is to check the monster HP before actually targeting it. :-/
Since you stated such thing is impossible, then, what is a good different approach?
|
|
|
05/06/2012, 13:39
|
#8
|
elite*gold: 20
Join Date: May 2009
Posts: 1,290
Received Thanks: 326
|
+0x02C8
(1 - Idle; 2 - Physical Attack; 3 - Magical (ranged) Attack; 4 - Die animation; 5 - Moving)
|
|
|
05/06/2012, 13:41
|
#9
|
elite*gold: 0
Join Date: Jul 2009
Posts: 39
Received Thanks: 0
|
Quote:
Originally Posted by Sᴡoosh
+0x02C8
(1 - Idle; 2 - Physical Attack; 3 - Magical (ranged) Attack; 4 - Die animation; 5 - Moving)
|
Hmmm..? What is that supposed to mean?
|
|
|
05/06/2012, 13:42
|
#10
|
elite*gold: 20
Join Date: May 2009
Posts: 1,290
Received Thanks: 326
|
That you can find out if the mob you're trying to target is already dead, but still in list because of unfinished dieing animation.
|
|
|
05/06/2012, 13:51
|
#11
|
elite*gold: 0
Join Date: Jul 2009
Posts: 39
Received Thanks: 0
|
Thanks alot sir! Works like a charm now :]]
|
|
|
05/06/2012, 13:59
|
#12
|
elite*gold: 20
Join Date: May 2009
Posts: 1,290
Received Thanks: 326
|
Nice to hear
|
|
|
05/06/2012, 15:36
|
#13
|
elite*gold: 0
Join Date: Jul 2009
Posts: 39
Received Thanks: 0
|
Which pop-ups a question, how would you integrate Anti- KillSteal?
|
|
|
05/06/2012, 16:59
|
#14
|
elite*gold: 0
Join Date: Mar 2010
Posts: 862
Received Thanks: 576
|
Quote:
Originally Posted by Shortpants
Which pop-ups a question, how would you integrate Anti- KillSteal?
|
Several ways really:
Before targeting a new mob for killing:
-check if it's full HP
-check if it isn't actively targeting something else (compare its targetId with your playerId and/or your petId, make sure its aggressive flag is also set)
-you could check if it's moving towards a certain player ('complicated')
-check if it's next to another player
-...
So just implement a function isMobAvailable(NPC* npc, int yourId) which uses 1 or more of the above checks and return a true or false.
Then whenever you're done killing your current target, loop through the npc list, check whether one of them is already attacking you (kill this first), and otherwise find the closest that is available.
|
|
|
05/08/2012, 00:31
|
#15
|
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
|
Just a quick note... It's potentially helpful if you leave your posts intact when your problem is fixed rather than editing them to just "fixed" - That way, others can see if the problem relates to a similar problem they might be facing and if the thread is relevant to them
|
|
|
 |
Similar Threads
|
VB.NET Read Memory
11/08/2010 - .NET Languages - 1 Replies
jo Hi,
Ich suche eine ReadMemory Function. Hat einer eine da?
Danke
|
[VB]Write Memory bzw Read Memory
06/26/2010 - .NET Languages - 8 Replies
Hi
Ich hab das TuT von *Guidman* benütz um einen hack zu machen.
So aber nun hab ihc ein paar fragen könnte man memory teil kürzer machen und am besten wie kann man das selber machen weil ich will nihct immer C&P machen.
Und zu Read Memory kann man das auch machen das ein Label immer die Bestimmte Ahnzahl angiebt von dem Pointer?.(Wenn das Read Memory ist ?)
Bitte helf mir
Danke
|
Memory Read
06/18/2010 - AutoIt - 0 Replies
wtf?? pls delete
|
Memory Read u.ä.
02/16/2010 - Metin2 - 2 Replies
Moin,
ich wollte fragen ob es für Metin2 auch eine UDF für autoit (mit memory read) gibt. Also mir geht es eigentlich nur darum, dass ich einen Bot im HIntergrund laufen lassen kann und es möglich ist zu überprüfen wo der nächste gegner ist, diesen anzuklicken und wie viel hp/mp etc man noch hat.
-->Suche etwas "exateres" als z.B. PixelSearch/MousClick und etwas womit ich den Bot im Hintergrund laufen lassen kann.
Könnte mir jemand dazu ein Beispiel Script (bezogen auf Metin2) oder...
|
Read memory
06/27/2008 - Diablo 2 - 7 Replies
Hallo, will mit readprocessmemory nen externes programm machen was mir energie usw protokoliert. Das problem ist nur, das D2 die adressen bei jedem neuen spiel immer verändert. Wie kann ich das umgehen? Brauch ich glaube nen pointer auf die richtige adresse, aber wie? Hat da jemand ahnung???
|
All times are GMT +1. The time now is 13:24.
|
|