Sending Packets

07/28/2011 03:18 Shortpants#241
Fixed. Thanks again interested for the MHS example.
07/31/2011 20:44 Sturolv#242
I'm trying to find out how to detect that I've gotten an party invite and also to accept if the id or name is in a list of players to accept from. I've used the reg exp from the first page to find the invCounterBase, but watching the memory there leads me no where. invCounterBase + 0x14 seems to always be zero for me. The reg exp gave me 0x00AFF1F0 for invCounterBase.

Can you guys please help me out?
07/31/2011 23:02 Interest07#243
Quote:
Originally Posted by Sturolv View Post
I'm trying to find out how to detect that I've gotten an party invite and also to accept if the id or name is in a list of players to accept from. I've used the reg exp from the first page to find the invCounterBase, but watching the memory there leads me no where. invCounterBase + 0x14 seems to always be zero for me. The reg exp gave me 0x00AFF1F0 for invCounterBase.

Can you guys please help me out?
Ah, I'm sorry its been a while since I checked that. I'll look into it tomorrow prolly

Ah right, here's the 'issue'.

The address you find, X = [invCounterBase + 0x14]
You should look up X before you invite, then when you get invited [invCounterBase + 0x14] changes, but you should look at the old address X. This will contain the correct value for you to send. You should change the regexp from +0x20 to +0x24 instead.

Checked it out and found the problem :)

oO cant double post anymore?
08/01/2011 08:48 Sturolv#244
Thanks! I will try that out after work :)

I just realise I should also have asked about the same thing but for embrace invitation.

Quote:
Originally Posted by Interest07 View Post
Ah right, here's the 'issue'.

The address you find, X = [invCounterBase + 0x14]
You should look up X before you invite, then when you get invited [invCounterBase + 0x14] changes, but you should look at the old address X. This will contain the correct value for you to send. You should change the regexp from +0x20 to +0x24 instead.
I changed the reg exp from +0x20 to +0x24 and get the invCounterBase to: 0x00AFF1F4. Adding 0x14 gives me 0x00AFF208 and that address contains 0 for me all the time.

I've been experimenting some and + 0x20 in the reg exp gets me right, got it to work with that.
08/22/2011 09:48 amineurin#245
Woot! :handsdown:
After a long break i read up here and such cool info, thanks man !

Code:
Func feedEquippedGenie($invIndex, $amount, $pid)
    ;//Feeds the equipped genie the amount indicated from
    ;//inv index
    local $packet, $packetSize
    $packet = '7500'
    $packet &= _hex($invIndex, 2)
    $packet &= _hex($amount)
    $packetSize = 7
    sendPacket($packet, $packetSize, $pid)
EndFunc
How did you find this and do you find or know how to find the "Infuse with EXP" function :confused:
08/22/2011 12:16 Interest07#246
Try this:

Code:
Func infuseExp($amount, $pid)
    ;//Infuses genie with your experience
    ;//inv index
    local $packet, $packetSize
    $packet = '7100'
    $packet &= _hex($amount)
    $packet &= '00'
    $packetSize = 7
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func infuseSpirit($amount, $pid)
    ;//Infuses genie with your experience
    ;//inv index
    local $packet, $packetSize
    $packet = '7100'
    $packet &= _hex($amount)
    $packet &= '01'
    $packetSize = 7
    sendPacket($packet, $packetSize, $pid)
EndFunc

Func infuseExpCube($invIndex, $itemTypeId, $amount, $pid)
    ;//Infuses genie with your experience
    ;//inv index
    local $packet, $packetSize
    $packet = '6D00'
    $packet &= _hex($invIndex, 4)
    $packet &= '0001'
    $packet &= _hex($itemTypeId)
    $packet &= _hex($amount)
    $packetSize = 14
    sendPacket($packet, $packetSize, $pid)
EndFunc

Quote:
Originally Posted by amineurin View Post
Woot! :handsdown:
After a long break i read up here and such cool info, thanks man !

Code:
Func feedEquippedGenie($invIndex, $amount, $pid)
    ;//Feeds the equipped genie the amount indicated from
    ;//inv index
    local $packet, $packetSize
    $packet = '7500'
    $packet &= _hex($invIndex, 2)
    $packet &= _hex($amount)
    $packetSize = 7
    sendPacket($packet, $packetSize, $pid)
EndFunc
How did you find this and do you find or know how to find the "Infuse with EXP" function :confused:
08/22/2011 13:35 amineurin#247
Great and much thanks!
Id love to know how you find this all out, maybe one day you wrote a tutorial :handsdown:
08/22/2011 15:29 PW-Prophets#248
Yes we owe Interest07 a lot without him Prophet Bot would not be possible. Thanks again Interest!
08/25/2011 05:44 amineurin#249
Quote:
Func buyItem($itemTypeId,$shopIndex,$amount, $pid)
;//Buy $amount of items of type itemTypeId, located at shopIndex
;//shopIndex is calculated as follows:
;//Each tab in the shop has 32 available spaces, index of each space
;//starts at 0, index of each tab starts at 0. $shopIndex would then be
;//shopIndex = tabIndex * 32 + spaceIndex
;//This function could be expanded to include buying multiple items
;//simultaneously. This would require setting nBytes equal to
;//8 + 12 * nDifferent items. Add the extra items on the same way
;//as the first item.
local $packet, $packetSize
$packet = '2500'
$packet &= '01000000'
$packet &= '1c000000' ;nBytes following
$packet &= '00000000' ; i also try this with shop id like in swoosh´s sample
$packet &= '00000000'
$packet &= '00000000'
$packet &= '01000000' ;nDifferent items being bought
$packet &= _hex($itemTypeId)
$packet &= _hex($shopIndex)
$packet &= _hex($amount)

$packetSize = 38

sendPacket($packet, $packetSize, $pid)
EndFunc
Is this only for NPC Shops ?
I try to buy from my Catshop, but nothing happend :confused:
Ingame Error: Service unavailable

Shop is open, Zeal Genie in Slot 0 and i use to Test:
buyItem(23753,0,1,$pid)
23753 is the Item ID for a Zeal Genie on PWI
0 is the First Slot in Shop Sell Window
1 is the Amount to Buy

I use to see if SlotIndex is different a simple for/next try *cough*
for $i = 0 to 256
buyItem(23753,$i,1,$pid)
next

Buying from NPC Shop works fine, so no Error in my programing and use of your Function.

Can you Point me please to the right Direction ?

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

Sᴡoosh uses here a different packetformat, maybe from old server ?
08/25/2011 08:42 Interest07#250
Yeah buying from a catshop is a different packet.
08/26/2011 10:12 dumbfck#251
That MHS example looks veeeeeery interesting >_>
I think this might be ideal for my next project :)
08/26/2011 10:37 Interest07#252
Quote:
Originally Posted by dumbfck View Post
That MHS example looks veeeeeery interesting >_>
I think this might be ideal for my next project :)
;)
09/02/2011 18:55 amineurin#253
i try to make a auto follow function by using action struct.
i take a look in smurfits source code and come to this:

Quote:
Global $FTARGET1[5]
$FTARGET1[1] = 52
$FTARGET1[2] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, "ActionBase_Offset", "")
$FTARGET1[3] = 48
$FTARGET1[4] = 28

Global $FTARGET2[6]
$FTARGET2[1] = 52
$FTARGET2[2] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, "ActionBase_Offset", "")
$FTARGET2[3] = 48
$FTARGET2[4] = 28
$FTARGET2[5] = 32

Global $FMODE[4]
$FMODE[1] = 52
$FMODE[2] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, "ActionBase_Offset", "")
$FMODE[3] = 12



$LEADERID=$PlayerArray[0][0] ;player id to follow
$FOLMODE = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $FTARGET1)
_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $FTARGET2, $LEADERID)
_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $FMODE, $FOLMODE[1])
$FMODE[3] = Dec("14")
_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $FMODE, $FOLMODE[1])
$FMODE[3] = Dec("18")
_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $FMODE, $FOLMODE[1])
it works, but the problem is after the follow function has started...the priest cant use any key.
u use _SendMessage for this and before auto follow, it works fine.
wen i klick follow in the game, i can use keys again.

do i have to stop the action after called or is there any other way to use auto follow :confused:
like a sendpacket, i try to find it but i messed up with mhs :o

edit: this board is full of cool info :)
there need to be some stickys here...found i think the reason for my problem: [Only registered and activated users can see links. Click Here To Register...]

if any one interested in this, Interest07 descripe it there :)
09/05/2011 22:48 ktulx#254
Hey guys.

I'm trying to learn all this stuff with no success for now :( I know that it might be not the best way to start, but I just want to work with "applicable" things and that can give me motivation.

So I have all the needed offsets and addresses but can't combine all together.
It would be wonderfull to see an example in Delphi that puts my char in meditation when I press a button, so I can analize and see what I'm doing wrong, if I'm not asking too much :handsdown:

Thanks a lot.
09/11/2011 08:58 Sttt#255
Interest07, it is possible to fly straight up with actionstructs.

MemFunctions.MemWriteInt(pr_processHandle, moveAction + 0x2C, 0); // Set moveType

set movetype to 1.


Can you help me with such problem? Some skills needs chi to cast and i didnt find any addresses in client memory for them. Surely, i can hardcore them in my programm for every skill but i think it's stupid. So do you know how to get chi requirements for skill from the client memory? Or can you tell any other way to solve this problem?