PWI Eclipse changes

06/21/2016 18:58 DurianMontong#226
3 hour testing startNpcDialogue($NPCFilteredUID, $pid) still error need more help


AutoIT error message

06/21/2016 19:46 sasukezero#227
I cannot test it myself atm, but you set as a filter 4187 which is idk the id or number no clue but it has to be the name so like this(sorry if i wasn't clear before):

$Filter = "Teleport Master Shan"
You can also use this: $Filter = "Tele"
That should do the trick.

Just aside in the script it does:

If StringInStr($array[$i][2], $Filter) = 0 Then

which means check If the string "Tele" exists in array[Row$i][In column number 2] which is when you check the array, how its build → $array[$i][2] = _MemoryRead(_MemoryRead($NPC + $NpcNameOffset, $GAME_PROCESS), $GAME_PROCESS, 'wchar[100]')
Which is a NpcName, there you go :)
06/21/2016 20:58 DurianMontong#228
Quote:
Originally Posted by sasukezero View Post
I cannot test it myself atm, but you set as a filter 4187 which is idk the id or number no clue but it has to be the name so like this(sorry if i wasn't clear before):

$Filter = "Teleport Master Shan"
You can also use this: $Filter = "Tele"
That should do the trick.

Just aside in the script it does:

If StringInStr($array[$i][2], $Filter) = 0 Then

which means check If the string "Tele" exists in array[Row$i][In column number 2] which is when you check the array, how its build → $array[$i][2] = _MemoryRead(_MemoryRead($NPC + $NpcNameOffset, $GAME_PROCESS), $GAME_PROCESS, 'wchar[100]')
Which is a NpcName, there you go :)
i try but still error

Func Go1()

$GAME_TITLE = "PW1"
$pid = WinGetProcess($GAME_TITLE)

$Filter = "Tele" ; >>>>>>>>>>>>> [Only registered and activated users can see links. Click Here To Register...] - Teleport Master Shan
$array = NPCArrayFilter($Filter, $pid)
$NPCFilteredUID = $array[0][0] ; <<< should i change this, is still error in here

startNpcDialogue($NPCFilteredUID, $pid)

EndFunc

06/21/2016 21:36 jasty#229
$SORTEDLISTOffset should be 0x1C

You could have debugged this by checking the return result from NPCArrayFilter to see that it was null and then you'd see it wasn't able to read the count at the beginning.
06/21/2016 21:45 sasukezero#230
My mistake here, as i just copied quickly together what you'd need i forgot the check i have build in. Its easy, like this:

If UBound($array) <> 0 Then
$NPCFilteredUID = $array[0][0]
startNpcDialogue($NPCFilteredUID, $pid)
Endif

And like jasty said, you've made a typo ^^
06/21/2016 22:02 DurianMontong#231
Quote:
Originally Posted by jasty View Post
$SORTEDLISTOffset should be 0x1C

You could have debugged this by checking the return result from NPCArrayFilter to see that it was null and then you'd see it wasn't able to read the count at the beginning.
oh that is i looking to fix error

big thank to sasukezero , jasty to answer my question learn :handsdown:

acceptPartyInvite, and auto get uniqueID NPCArrayFilter

and jasty maybe can give me link to learn "debugged this by checking the return result from NPCArrayFilter to see that it was null"
06/21/2016 22:10 sasukezero#232
You already see it at this → $NPCFilteredUID = $array^ ERROR
You try to access "$array[0][0]" which throws an error, which means there is nothing to read most likely. To debug you can usually do things like "Msgbox("","",$Somevalue)"
or _ArrayDisplay($array) to see what values are inside the array :)

That's how i do it tho as autoit doesn't have a nice debugger....

Time to go to bed now, so laters ^^
06/22/2016 11:59 DurianMontong#233
:) after testing new function filter npc uid i see auto it is freezing when look npc uid if use more than 4 client can any one give solution,

i use very very basic way lol

06/22/2016 19:46 sasukezero#234
Here are the changed offsets for the last patch(v955) which i've found yet:

06/22/2016 21:38 Stark77#235
i can add those two but not sure if more are missing

InventoryListOffset := 0x10B4
InventorySizeOffset := 0x10
06/22/2016 21:41 sasukezero#236
Added just before ^^
I couldn't find any more than these yet, but whenever i find something ill add it or add something when you guys find some more changes.

Does anyone know or jasty himself how to create a sig-pattern for offsets that are not just of one state?
Like of jasty's python pattern seach here:

Quote:
Originally Posted by jasty View Post
Here's all of the addresses and offsets I use... its not super well organized and most of the names don't match other stuff though.

Here is my python script for finding all the function addresses at the top. I havent tried making one for doing all the offsets I use.
Currently i am comparing exe files via pattern search for patterns that i cant find anymore. However, I'm using currently reclass to find more advanced offsets, but would like to know how i could find or create a pattern for them :/
Like jasty has done it with the actionbase_offset. Does anyone know?
06/23/2016 23:43 jasty#237
If it's a function pointer than I can go to the start of the function and copy the bytecode putting in wildcards for jump offsets that are likely to change. Compare the regex for sendpacket with the actual send packet function.

[Only registered and activated users can see links. Click Here To Register...]

The way that script is set up if you don't capture any sub pattern in the regex it will use the offset of the whole regex as the result.

For pointers that are not function pointers I have to find where they occur in the code and capture that in the regex. As an offset in the code they will be encoded in bigendian so you also have to reverse the hex after you capture it.

To make the regex I would do a regex search for the known value that I already know from cheat engine and work my way back from there.

If address base is 0xe77c24 then my search for it would look like

match = re.search("247ce700", ascii) #big endian
offset = hex(match.start()/2 + 0x400000)

Then I open that offset in a disassembler to see what I am working with.

[Only registered and activated users can see links. Click Here To Register...]

Sometimes I can't actually find the pointer I want which is likely because it is member data inside some global struct somewhere and so I try to find the start of the struct by decrementing the value I want to find by a few bytes and try searching again. My script lets me specify an offset from a captured address.

I don't really use regex for the smaller offsets in the player struct because if those ever change it's almost always they just get bigger by a few bytes so I can find it in cheat engine in a few seconds. I probably should make patterns for them but with testing and translating the assembly into regex it would probably take quite a few patches for that effort to pay off.

For those I would first find the memory in CE, then do "find what accesses this memory", do actions ingame that would update the memory, then check the assembly of what shows up.
06/24/2016 20:49 Remmm#238
found by using the OpcodeScan_10 author diagnost "http://zhyk.ru/forum/showthread.php?t=1075310"
06/24/2016 21:57 sasukezero#239
I guess i have to learn russian lol...In that forum are some pretty skilled people as i've checked it before a few times. Pretty cool, thanks for sharing :)

To jasty: thx for sharing your way, it seems like you do everything with cheat engine, right?
I didn't use it this heavy yet, as i do a lot of things via reclass and IDA lately.
Good to know what is possible with it! And by scripts you mean some written in lua right?
I once took a look at it, but never went further.
06/25/2016 06:21 diagnost#240
Quote:
Originally Posted by sasukezero View Post
I guess i have to learn russian lol...In that forum are some pretty skilled people as i've checked it before a few times. Pretty cool, thanks for sharing :)

To jasty: thx for sharing your way, it seems like you do everything with cheat engine, right?
I didn't use it this heavy yet, as i do a lot of things via reclass and IDA lately.
Good to know what is possible with it! And by scripts you mean some written in lua right?
I once took a look at it, but never went further.
Вот sourese [Only registered and activated users can see links. Click Here To Register...] не жалко