new offset for pw ph pls :handsdown::handsdown:
$CHAR_DATA_BASE = memread(memread($APP_BASE_ADDRESS) + 0x20),Quote:
what is 'Player' ? is it Playername base address ?
let me borrow these lines from prophet bot :
so if you gave me 0x5C0 from playername, then it would be :Code:$CHAR_DATA_BASE = memread(memread($APP_BASE_ADDRESS) + 0x20), $NAME = memread(memread($CHAR_DATA_BASE + $OFFSET_NAME), 'wchar[30]')
is that it ?Code:$Guild=memread(memread($NAME + 0x5C0), 'wchar[30]')
sorry I'm still having a hard time understanding pointer/baseadd/offset, although I know a bit on how to use them in autoit. Calculating Base address and an offset of something will get me a Pointer, right ? and that pointer can be used as a starting base address if there is other memory location that's read from there so we can call it like $Charname_Base ?
Hotkeyset("{numpadAdd}", "increaseOffset")
Hotkeyset("{numpadSub}", "decreaseOffset")
$baseOffset = 0x0
$offset = 0x0
while 1
$outPut = ""
For $i = 1 to 40 Step 1
$offset = $offset + 0x4
$outPut = $OutPut + "`n" + memread($CHAR_DATA_BASE + $Offset)
next
tooltip($OutPut)
Wend
func increaseOffset()
baseOffset = baseOffset + 0xA0
endfunc
func increaseOffset()
baseOffset = baseOffset - 0xA0
endfunc
Dont be sorry man helps us ALOT THX!!!!Quote:
$CHAR_DATA_BASE = memread(memread($APP_BASE_ADDRESS) + 0x20),
$NAME = memread(memread($CHAR_DATA_BASE + 0x5F4, 'wchar[30]')
$Guild=memread($CHAR_DATA_BASE + 0x5C0)
$GuildRank=memread($CHAR_DATA_BASE + 0x5C4)
I just meant that for PW MS the name offset is 0x5F4, so if the one for your version is almost the same, then your guild offset should be around the same place as mine.
PLease note that the offset for guild i gave is the guild Id, not the guild name. THe first guild created on your server would be 1, second guild 2, and so on. Didn't find how to get the actual guildname. The easiest way to find offsets is to simply loop through a bunch of offsets and throw them out in a tooltip so you can just browse through the different values in the "character data base". I have never used AutoIt before but I imagine it would look something like this:
Code:Hotkeyset("{numpadAdd}", "increaseOffset") Hotkeyset("{numpadSub}", "decreaseOffset") $baseOffset = 0x0 $offset = 0x0 while 1 $outPut = "" For $i = 1 to 40 Step 1 $offset = $offset + 0x4 $outPut = $OutPut + "`n" + memread($CHAR_DATA_BASE + $Offset) next tooltip($OutPut) Wend func increaseOffset() baseOffset = baseOffset + 0xA0 endfunc func increaseOffset() baseOffset = baseOffset - 0xA0 endfunc
edit: sorry to prophets for throwing this into your thread. Keep up the good work on the bot, seems to be working for people :)
For $i = 0 To 4000 Step 4 For $i2 = 0 To 4000 Step 4 $result = memread(memread(memread(memread(0xA5BFCC) + 0x20) + $i) + $i2, 'wchar[30]') If $result = "GUILDNAME" Then MsgBox(0,"",$i & @CRLF & $i2) Next Next
Yeah I tried something similar, just looking for any strings hiding somewhere near your character pointer. Did find the name of the cat shop though :D (bloody useless :P).Quote:
i did something to see if the guildname adress might be hiding there like the charname but it isnt
this is the script i used
u can test if it works if you just put in your charname instead of "GUILDNAME" ;-)Code:For $i = 0 To 4000 Step 4 For $i2 = 0 To 4000 Step 4 $result = memread(memread(memread(memread(0xA5BFCC) + 0x20) + $i) + $i2, 'wchar[30]') If $result = "GUILDNAME" Then MsgBox(0,"",$i & @CRLF & $i2) Next Next
i traced the guildname though in tsearch but i couldnt find any static pointer yet >.> well i guess i go on searching that the next days =)
PUSHAD MOV EAX, 0060E310 MOV ECX, DWORD PTR [BaseAddress] MOV ECX, DWORD PTR [ECX+20] MOV EDI, packetAddress PUSH packetSize PUSH EDI CALL EAX POPAD RET
look,Quote:
[Only registered and activated users can see links. Click Here To Register...]
As I said i will keep informing for this.
well....
1. Look at line 61 :
-Global $APP_TITLE = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_BASEADDRESS_ROOT_KEY, $CFG_BASEADDRESS_APP_KEY, "Element Client"), $PROCESS_ID = WinGetProcess($APP_TITLE), $PROCESS_INFORMATION = _MemoryOpen($PROCESS_ID), $HANDLE = ControlGetHandle($APP_TITLE, "", "")
And i add a same line as above to line 62 but add 2 at end of Element Client :
QUOTE]
And what is this edited bot ment to do exactly?
Tried it but no. It still does not work that way.Quote:
Elucas, wouldn't it be easier to simply have a second copy of the bot in a separate folder, do a search and replace for "Element Client" -> "Element Client2" and run that bot for your second window? Or am I missing something here :)
It is going to be quite a task to transform a semi-regularly updated program into one that handles two clients. Unless of course Prophets decide to support multi clienting, but I believe that isn't the case thusfar.