PWI Eclipse changes

01/14/2015 20:03 Stark77#16
i love u - the pathing is working - thanks again :handsdown:

the address finder sadly isnt working for me:
Base Address = 0x00D22C74
SendPacket Address = 0x415E0BF420000000
AutoPath Address = 0x4151565020000000
01/14/2015 20:47 denzjh#17
Can u upload the elementclient.exe and link it here? I will try and check whats wrong with it...
01/14/2015 21:03 Stark77#18
sure. i put it in the attachment. thanks for your effort.

below is my autohotkey version of your autopathing in case some uses this. code AND comments sponsored by Interest in WQ pot :P
01/15/2015 06:50 denzjh#19
Quote:
Originally Posted by Stark77 View Post
sure. i put it in the attachment. thanks for your effort.

below is my autohotkey version of your autopathing in case some uses this. code AND comments sponsored by Interest in WQ pot :P
Are you using the script (the one for searching for Base/SendPacket/AutoPath Address) in AutoIt or are you converting them to AutoHotKey?

I attached a zip file with some compiled exe's and the script for the said address retriever.

And here is the code for the said address retriever (PWI client v829 aka PWI Eclipse client):

01/15/2015 14:30 Stark77#20
thank you alot =)

i am still not sure why this happens but the .exe gives me the correct results. if i run the script in autoit (SciTE editor) its not working. maybe autohotkey and autoit have a conflict. if i compile the au3-file to an exe, this is also not working. ill try to investigate this abit and reinstall autoit. but its working. great job :handsdown:
01/15/2015 18:35 jollyjoker0305#21
Sorry, i didn't get it clear. PW now have 2 type of Auto Move, i don't know what it's named but this is what they do:
- One can avoid object and only work when you are running or riding your mount
- One go direct to target, and if you are flying, you can adjust Z or stop flying when reach target

What is denzjh's function for?

If you need, i will give you the function i'm using. It is "very old way" move and can fly up/down vertically. But beware, it not use packet to move because i'm too lazy to write a "distance traveled calculator"
01/15/2015 20:14 Stark77#22
the function in this thread is the autopathing (alt+clickL ingame).

it moves to x,y and avoids obstacles like trees. while flying, it can only adjust the height in 45 degree. so it can not fly vertical up and down. u can also choose to drop down if u are at the destination after flying.

so if u can provide a method to fly vertically without packets or key sending, iam sure it would be useful for the community here.
01/22/2015 17:05 Smurfin#23
Any news on the other movement method yet ? The one for moving vertically.
01/25/2015 13:43 Remmm#24
injeckt moveToXYZ
Code:
 Walk1 = $49FF80;
  Walk2 = $4A6320;
  Walk3 = $4A0590;
  ActArr = $13EC;
 injcode.s ="60"                   ;60             PUSHAD
 injcode=injcode+"b800000000"      ;B8 00000000    MOV EAX,#Baseadr
 injcode=injcode+"8b00"            ;8B00           MOV EAX,DWORD PTR DS:[EAX]
 injcode=injcode+"8b401c"          ;8B40 1C        MOV EAX,DWORD PTR DS:[EAX+1C]
 injcode=injcode+"8b7028"          ;8B70 28        MOV ESI,DWORD PTR DS:[EAX+28]
 injcode=injcode+"8B8E00000000"    ;8B8E 11111111  MOV ECX,DWORD PTR DS:[ESI+ActArr]
 injcode=injcode+"6a01"            ;6A 01          PUSH 1
 injcode=injcode+"BA00000000"      ;BA 00000000    MOV EDX,Walk1
 injcode=injcode+"FFD2"            ;FFD2           CALL EDX
 injcode=injcode+"8bf8"            ;8BF8           MOV EDI,EAX
 injcode=injcode+"8d442418"        ;8D4424 18      LEA EAX,DWORD PTR SS:[ESP+18]
 injcode=injcode+"50"              ;50             PUSH EAX
 injcode=injcode+"ba00000000"      ;BA 00000000    MOV EDX, fly mode
 injcode=injcode+"52"              ;52             PUSH EDX
 injcode=injcode+"8bcf"            ;8BCF           MOV ECX,EDI
 injcode=injcode+"BA00000000"      ;BA 00000000    MOV EDX,Walk2
 injcode=injcode+"ffd2"            ;FFD2           CALL EDX
 injcode=injcode+"8b8e00000000"    ;8B8E 22222222  MOV ECX,DWORD PTR DS:[ESI+ActArr]
 injcode=injcode+"b800000000"      ;B8 00000000    MOV EAX,x
 injcode=injcode+"8bd7"            ;8BD7           MOV EDX,EDI
 injcode=injcode+"83c220"          ;83C2 20        ADD EDX,20
 injcode=injcode+"8902"            ;8902           MOV DWORD PTR DS:[EDX],EAX
 injcode=injcode+"b800000000"      ;B8 00000000    MOV EAX,z
 injcode=injcode+"8bd7"            ;8BD7           MOV EDX,EDI
 injcode=injcode+"83c224"          ;83C2 24        ADD EDX,24
 injcode=injcode+"8902"            ;8902           MOV DWORD PTR DS:[EDX],EAX
 injcode=injcode+"b800000000"      ;B8 00000000    MOV EAX,y
 injcode=injcode+"8bd7"            ;8BD7           MOV EDX,EDI
 injcode=injcode+"83c228"          ;83C2 28        ADD EDX,28
 injcode=injcode+"8902"            ;8902           MOV DWORD PTR DS:[EDX],EAX
 injcode=injcode+"6A00"            ;6A 00          PUSH 0
 injcode=injcode+"6A01"            ;6A 01          PUSH 1
 injcode=injcode+"57"              ;57             PUSH EDI
 injcode=injcode+"6A01"            ;6A 01          PUSH 1
 injcode=injcode+"BA00000000"      ;BA 00000000    MOV EDX,Walk3
 injcode=injcode+"ffd2"            ;FFD2           CALL EDX
 injcode=injcode+"61"              ;61             POPAD
 injcode=injcode+"c3"              ;C3             RETN
01/25/2015 20:16 denzjh#25
Well here is the AutoIt version of the said script. ^_^
Attached is the Address Retriever which includes the 3 new Addresses of the Called Built-in Functions for this new MoveTo Function

It can move vertically so Rejoice!
^___^

01/25/2015 21:01 Stark77#26
You guys are the best :D

i'd love to know how to find such OPcodes but thanks alot for sharing this. :handsdown:

Also thanks for the exe version of the address finder. I still havent figured out why the au3 isnt working for me so this is very helpful.

here copy pasted to AHK:

-.-.-.-.-.-.--.-.-.-.-.-.--.-.-.-.-.-.--.-.-.-.-.-.--.-.-.-.-.-.--.-.-.-.-.-.--.-.-.-.-.-.-

Does anyone has a snipet how to use skills now since the action structs dont work? I am doing it with packets, but those dont move to the object so i use for skill a normal attack till the skill is in cooldown. see here:

to talk to a npc i move near it (must be lower than 5 meter) this way:
01/25/2015 21:22 Smurfin#27
Ah finally a working vertical movement script, and it's already in AutoIt. Thanks a ton ! :)
01/27/2015 11:46 denzjh#28
Quote:
Originally Posted by Stark77 View Post
Does anyone has a snipet how to use skills now since the action structs dont work? I am doing it with packets, but those dont move to the object so i use for skill a normal attack till the skill is in cooldown. see here:
For Interact-To-Dig

To Interact-To-TalktoNPC

For Interact-To-Normal Attack (Left Click the NPC when its already selected or double left click when not selected)

For Interact-To-Cast-Spell

For Cast Spell

As you will notice that there are 2 functions called similar to the MoveXYZ function by Remmm. These are "PWI.0049FF80" and "PWI.004A0590". And there are functions called in between them. Thus, we can name them as PerformAction and FinishAction respectively, Right?.

Unfortunately, I do not know ASM language and I can not translate them as Injectable Function... :facepalm:

Hopefully someone like Remmm can :D
01/27/2015 20:25 Remmm#29
Code:
Procedure PicWalcLyt(wid,type)
  calladr=$495C40
  GameAdr=$00D23414
  injcode.s ="60"                   ;60             PUSHAD 
  injcode=injcode+"B900000000"      ;B9 00000000    MOV ECX, GameAdr
  injcode=injcode+"8B09"            ;8B09           MOV ECX,DWORD PTR DS:[ECX]
  injcode=injcode+"8B4928"          ;8B49 28        MOV ECX,DWORD PTR DS:[ECX+28] ; pers_str
  injcode=injcode+"6800000000"      ;68 00000000    PUSH 0-lyt , 1- mine
  injcode=injcode+"6800000000"      ;68 00000000    PUSH wid
  injcode=injcode+"BB00000000"      ;BB 00000000    MOV EBX,caladr
  injcode=injcode+"FFD3"            ;FFD3           CALL EBX
  injcode=injcode+"61"              ;61             POPAD
  injcode=injcode+"c3"              ;C3             RETN
[Only registered and activated users can see links. Click Here To Register...]
01/28/2015 14:07 Underavelvetmoon#30
So if im correct after reading those snippets, in order to make a function (That doesnt come from Packets or Memory Read/Write) you pretty much copy the opcode from IDA/Olly, find where the function parameters are, attach them to (in my case) autoit declarations e.g Func Move($X, $Y, $Z) then a bunch of opcode where x y z are put into use?

That seems incredibly simple - albeit ive never attempted that - but does make a lot of sense. Would make it incredibly easy to make an API or something if thats the case.

Its a shame that theres no generalized API for PWI, like gwa2 for Guild Wars. Would make coding much more easy, but I guess this way you learn a lot. I would never start experimenting with opcode xD