|
You last visited: Today at 16:46
Advertisement
Sending Packets
Discussion on Sending Packets within the PW Hacks, Bots, Cheats, Exploits forum part of the Perfect World category.
12/15/2014, 07:17
|
#406
|
elite*gold: 0
Join Date: Oct 2008
Posts: 1,243
Received Thanks: 670
|
Same here but worse, I don't know about anything much, I just follow pattern sometimes.
About the flyup using packet it's because my function only move to x,y, and z too, but it stops if x and y already reached, and I read about flying to certain altitude  and Interest07 wrote "Flying until a certain altitude is 'moving by packets'" so I thought that's how it's done.
Here is the function I use to Move, there is Z (Z coordinate) and there is H ( Height), I remember Interest07 said the move action using HEIGHT is like moving using alt + click in world map.
It stops after X and Y is reached and doesn't care about the HEIGHT, sure it will go up but only if the character hasn't reached X and Y.
Code:
func movexyz()
$moveactionplus[5]=0x8
_MEMORYPOINTERWRITE($APPBASEADDRESS, $mid2, $moveactionplus,0)
$moveactionplus[5]=0x14
_MEMORYPOINTERWRITE($APPBASEADDRESS, $mid2, $moveactionplus,1)
$moveactionplus[5]=0x20
_MEMORYPOINTERWRITE($APPBASEADDRESS, $mid2, $moveactionplus,$xx,"float")
$moveactionplus[5]=0x28
_MEMORYPOINTERWRITE($APPBASEADDRESS, $mid2, $moveactionplus,$yy,"float")
$moveactionplus[5]=0x24
_MEMORYPOINTERWRITE($APPBASEADDRESS, $mid2, $moveactionplus,$z,"float")
$moveactionplus[5]=0x68
_MEMORYPOINTERWRITE($APPBASEADDRESS, $mid2, $moveactionplus,$hh,"float")
$movetoh = _MEMORYPOINTERREAD($APPBASEADDRESS, $mid2, $moveactionplus,"float")
if $movetoh[1]>=0.0 then
$moveactionplus[5]=0x64
_MEMORYPOINTERWRITE($APPBASEADDRESS, $mid2, $moveactionplus,26625)
$moveactionplus[5]=0x6c
_MEMORYPOINTERWRITE($APPBASEADDRESS, $mid2, $moveactionplus,256)
else
$moveactionplus[5]=0x64
_MEMORYPOINTERWRITE($APPBASEADDRESS, $mid2, $moveactionplus,26624)
$moveactionplus[5]=0x6c
_MEMORYPOINTERWRITE($APPBASEADDRESS, $mid2, $moveactionplus,65536)
EndIf
;$moveactionplus[5]=0x2c
;_MEMORYPOINTERWRITE($APPBASEADDRESS, $mid2, $moveactionplus,0)
$moveactionplus[5]=0x2c
_MEMORYPOINTERWRITE($APPBASEADDRESS, $mid2, $moveactionplus,1)
$moveactionvalue=_memorypointerread($APPBASEADDRESS, $mid2, $moveaction)
$actionstructplus[3]=0xc ;actionstruct
_MEMORYPOINTERWRITE($APPBASEADDRESS, $mid2, $actionstructplus,$moveactionvalue[1])
$actionstructplus[3]=0x18 ;actionstruct
_MEMORYPOINTERWRITE($APPBASEADDRESS, $mid2, $actionstructplus,1)
$moveactionvalue=_memorypointerread($APPBASEADDRESS, $mid2, $moveaction)
$actionstructplus[3]=0x14 ;actionstruct
_MEMORYPOINTERWRITE($APPBASEADDRESS, $mid2, $actionstructplus,$moveactionvalue[1])
endfunc
I've tried what you suggested "writeMemory(moveType, MoveAction + 0x2C)" with moveType=1 (the part I separate with a few lines in my function above), but it still won't move up.
If you observe the movement packets, it should fit with Interest07's post about sending movement packet
Quote:
...
0000<X><Y><Z><X><Y><Z><interval><speed><moveType>< counter>
500 ms later
0000<X><Y><Z><X><Y><Z><interval><speed><moveType>< counter>
500 ms later
0000<X><Y><Z><X><Y><Z><interval><speed><moveType>< counter>
500 ms later
0700<X><Y><Z><speed><direction><moveType><counter> <interval>
id = 0000 this is the id for a moving packet
...
|
Quote:
|
THese are by far the most annoying packets to send. Usually you'll prefer using the action struct for moving. It can however be good to know it's possible in certain situations.
|
now I know what that means
|
|
|
12/15/2014, 14:43
|
#407
|
elite*gold: 0
Join Date: Sep 2013
Posts: 146
Received Thanks: 84
|
i used Interest's WQ-Bot as example. here is my moveto and flyz. the flyz uses the moveto with the height+moveType. So if u move to X,Y and your height is lower that what u want, just make him use flyz. works fine for me. never tested if this works in water.
Code:
MoveTo(X, Z, Y=0, moveType=0, height=-1.0
{
actionStruct := ReadMemoryUint(playerPointer + playerActionStructOffset, processID)
if X < 1000
X := floattohex((X*10)-4000)
if Z < 1000
Z := floattohex((Z*10)-5500)
if Y < 1000
Y := floattohex(Y*10)
actionList := ReadMemoryUint(actionStruct+0x30,processID)
MoveAction := ReadMemoryUint(actionList+0x4,processID)
writeMemory(0, MoveAction+0x8, processID) ;Action finished = 0
writeMemory(1, MoveAction+0x14, processID) ;Action Start = 1
writeMemory(X, MoveAction + 0x20, processID)
writeMemory(Y, MoveAction + 0x24, processID)
writeMemory(Z, MoveAction + 0x28, processID)
writeMemory(FloatToHex(height), MoveAction + 0x68, processID)
if(height >= 0.0)
{
writeMemory(26625, MoveAction + 0x64, processID)
writeMemory(256, MoveAction + 0x6C, processID)
}
else
{
writeMemory(26624, MoveAction + 0x64, processID)
writeMemory(65536, MoveAction + 0x6C, processID)
}
writeMemory(moveType, MoveAction + 0x2C, processID) ;movetype for flying 1 for ground run 0
writeMemory(MoveAction, actionstruct+0xC, processID)
writeMemory(1, actionstruct+0x18, processID)
writeMemory(moveAction, actionstruct+0x14, processID)
}
flyZ(height)
{
X := getX()
Y := getY()
MoveTo(X, Y, height, 1, height)
}
|
|
|
12/15/2014, 15:43
|
#408
|
elite*gold: 0
Join Date: Oct 2008
Posts: 1,243
Received Thanks: 670
|
Thanks a lot for the function, I'll look into it and translate to AutoIT later.
-edit-
tried it a bit , it worked vertically but no matter what height I put it , it always go vertically down >_<"
I'll try again later I'm a bit confused lol, the Z is now Y and the Y is now Z, but hey it works vertically, just wondering why it always goes down on mine.
-edit 2-
I'll just put my analyzation here for notes later when I have the time to go back into this.
from my function, 0x20 = x, 0x28 = y, 0x24 = z
Code:
$xx=(10*$x)-4000
$yy=(10*$y)-5500
$hh=$h
$moveactionplus[5]=0x20
_MEMORYPOINTERWRITE($APPBASEADDRESS, $mid2, $moveactionplus,$xx,"float")
$moveactionplus[5]=0x28
_MEMORYPOINTERWRITE($APPBASEADDRESS, $mid2, $moveactionplus,$yy,"float")
;$moveactionplus[5]=0x24
;_MEMORYPOINTERWRITE($APPBASEADDRESS, $mid2, $moveactionplus,$zz,"float")
but from your function, 0x20=X, 0x24=Y, 0x28=Z but you treat Z like my Y and treat Y like my Z.
Quote:
actionStruct := ReadMemoryUint(playerPointer + playerActionStructOffset, processID)
if X < 1000
X := floattohex((X*10)-4000)
if Z < 1000
Z := floattohex((Z*10)-5500)
if Y < 1000
Y := floattohex(Y*10)
writeMemory(X, MoveAction + 0x20, processID)
writeMemory(Y, MoveAction + 0x24, processID)
writeMemory(Z, MoveAction + 0x28, processID)
|
the original MoveTo :
MoveTo(X, Z, Y=0, moveType=0, height=-1.0
then for flyz :
MoveTo(X, Y, height, 1, height)
from here MoveTo for flyz uses X as X, Y as your Z which is a Y for mine, and height replaces Y=0 which is a Z or height for mine.
-edit 3-
Nevermind the above, got it right now. I'll just let it there and not delete it for a reminder if I mess up my function again by accident or just forgot  .
Z has to be multiplied by 10 while Height uses a number as in the game. I guess I forgot to add $zz=$h*10
and it WORKS UNDER WATER , thanks again
=edit 4============================================
One more thing, I use these things a lot like sending keypresses repeatedly, action functions for auto follow, move, drop down from flyer, fly, etc . So every once in a while my character can get stuck probably because of inbetween forced actions executed while other action still incomplete, sometimes equipping/unequipping flyer doesn't work and have to relog to reset, or character get stuck like walking on a treadmill or repeatedly jumping in place
It's similar to aps sins' which also get stuck often because of button mashing too fast for doing 3 sparks / normal attacking / whatever skills, I bet if you have a sin you ever encounter that.
My question is, is there any way to reset that kind of char stuck without relogging, but using memorywrite ? Haven't tried observing default value for every memory address used in action struct and compare the values to the ones after getting stuck though , but if you or anyone ever encounter that and can fix it without relog, please post it here on the how.
|
|
|
12/18/2014, 10:50
|
#409
|
elite*gold: 0
Join Date: Oct 2008
Posts: 1,243
Received Thanks: 670
|
Another packets that might be useful for multiclienting.
Code:
Func RollCall($pid)
;//Daily Roll Call quest
$packet='310003000000017E77'
$packetsize=9
sendPacket($packet, $packetSize, $pid)
EndFunc
Func acceptPsySummon($summonerId,$pid)
;//summonerId is charId of the psychic
;//used for summoning using useSkill
;//sendpacket with $skillId=1824
$packet='82000201'
$packet&= _hex($summonerId)
$packetsize=8
sendPacket($packet, $packetSize, $pid)
EndFunc
|
|
|
02/19/2015, 02:07
|
#410
|
elite*gold: 0
Join Date: Jul 2011
Posts: 145
Received Thanks: 97
|
I've been playing a bit with packets and found something a little fun with leap skills.
Code:
Func Leap($leapSkillId, $pos, $pid)
local $packet, $packetSize
$packet = '5900'
$packet &= _hex($leapSkillId)
$packet &= _hex($pos[0], 8, 'float')
$packet &= _hex($pos[2], 8, 'float') ;altitude
$packet &= _hex($pos[1], 8, 'float')
$packet &= '0300'
$packetSize = 20
sendPacket($packet, $packetSize, $pid)
EndFunc
You can see that the leap packet just encodes the destination but there's really nothing about what direction you are facing. In practice I found that you can leap in any direction, through solid walls, and even at angles up to 60 degrees from the horizontal or so (nearly vertical). Going through walls allows some interesting exploration into out of bounds areas you can't normally get to even with teleport skills. This is probably one of the easiest ways to get into out of bounds areas. You're still limited to the range of the skill though and if you teleport into an invalid area it wont work. Here's a set of skillIds which should work but there might be others I'm forgetting about.
Blademaster
Leap Back = 58 (distance 16)
Tiger Leap = 59 (distance 16)
Wizard
Distance Shrink = 100 (distance 25)
Sage Distance Shrink = 478 (distance 25)
Demon Distance Shrink = 479 (distance 30)
Archer
Leap Left = 1844 (distance 20)
Leap Right = 1845 (distance 20)
Here's some helper code to make exploration easier:
Code:
Func PlayerPos()
$Player = _MemoryRead(_MemoryRead(_MemoryRead($ADDRESS_BASE, $GAME_PROCESS) + 0x1C, $GAME_PROCESS) + 0x28, $GAME_PROCESS)
Dim $pos[3]
$pos[0] = _MemoryRead($Player + 0x3C, $GAME_PROCESS, 'float')
$pos[1] = _MemoryRead($Player + 0x44, $GAME_PROCESS, 'float')
$pos[2] = _MemoryRead($Player + 0x40, $GAME_PROCESS, 'float')
Return $pos
EndFunc
Func PlayerDir()
$Player = _MemoryRead(_MemoryRead(_MemoryRead($ADDRESS_BASE, $GAME_PROCESS) + 0x1C, $GAME_PROCESS) + 0x28, $GAME_PROCESS)
Dim $dir[3]
$dir[0] = -1* _MemoryRead($Player + 0x14, $GAME_PROCESS, 'float')
$dir[1] = _MemoryRead($Player + 0xC, $GAME_PROCESS, 'float')
$dir[2] = 0
Return $dir
EndFunc
Func FancyLeap($distance, $skillId, $pid, $angle=0)
;you can use negative distance to leap backwards
;angle can go up to about 60 degrees
$pos = PlayerPos()
$dir = PlayerDir()
$pos[0] = $pos[0] + $dir[0] * $distance*cos($angle/180.0*3.14159)
$pos[1] = $pos[1] + $dir[1] * $distance*cos($angle/180.0*3.14159)
$pos[2] = $pos[2] + abs($distance)*sin($angle/180*3.14159)
Leap($skillId, $pos, $pid)
EndFunc
|
|
|
02/20/2015, 12:00
|
#411
|
elite*gold: 0
Join Date: Sep 2013
Posts: 146
Received Thanks: 84
|
now thats what i call hax :P
working just fine. do u use this for anything or is it just for the fun of it?
|
|
|
02/20/2015, 19:03
|
#412
|
elite*gold: 0
Join Date: Jul 2011
Posts: 145
Received Thanks: 97
|
Quote:
Originally Posted by Stark77
now thats what i call hax :P
working just fine. do u use this for anything or is it just for the fun of it?
|
Took some shortcuts through out of bounds areas when running nuema. You can probably find some added shortcuts in farming TT (though door hacks already broke that). Vertical leaps can climb above the ceiling and run around up there in some places as well. I set it up so I used the count of a stack of items in a certain spot in my inventory as the angle and bound it to a hotkey so I can adjust the angle in game (often times you want to angle the leap up). It's like having a new skill.
I don't think there's too much use outside of OOB shortcuts. Teleport skills have had their own broken shortcuts but those don't usually let you go OOB so leaps can be more versatile.
It would be OP to use in TW to jump into and out of the base easily through the wall but I wouldn't use this in front of people. I guess you could set up a leap so it works identically to a teleport (where you leap to a selected target's location as long as it is in range), that shouldn't be too obvious even in PVP as long as the vertical difference isn't much.
|
|
|
03/04/2015, 19:02
|
#413
|
elite*gold: 0
Join Date: Jul 2011
Posts: 145
Received Thanks: 97
|
Here's what the fancy leap has done to my 3-3 farming bot. It opened up some interesting shortcuts in the route.
 (3x speed)
In the video I move the camera but don't provide any actual input. It takes about 30 minutes for the bot to run 3-3. I'd share the code but the route and skillset are hardcoded and wouldn't work for other characters. I'm rather proud of it, it's a pity I can't show it off more.
|
|
|
03/05/2015, 16:25
|
#414
|
elite*gold: 0
Join Date: May 2011
Posts: 111
Received Thanks: 94
|
That's insane! I love it. What language did you code it in? Would love to check out the source to see what's going on in there.
|
|
|
03/07/2015, 18:32
|
#415
|
elite*gold: 0
Join Date: Oct 2008
Posts: 1,243
Received Thanks: 670
|
Wow farming bot ninja style. Great job for finding something like that. It somehow reminds me of wallhack but works differently and it's 'ninjarcher' class onli
|
|
|
03/07/2015, 18:55
|
#416
|
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
|
Haha that is awesome, nice job!
|
|
|
03/12/2015, 18:54
|
#417
|
elite*gold: 0
Join Date: Jul 2011
Posts: 145
Received Thanks: 97
|
There is actually a version of the superleap you can do with teleport skills like assassin / bm / duskblade / seeker
The only real difference is that you have to pass a targetId in addition to the destination.
Code:
Func TeleportJump($skillId, $posX, $posY, $posZ, $targetId)
local $packet, $packetSize
$packet = '5900'
$packet &= _hex($skillId)
$packet &= _hex($posX, 8, 'float')
$packet &= _hex($posZ, 8, 'float')
$packet &= _hex($posY, 8, 'float')
$packet &= '1101'
$packet &= _hex($targetId)
$packetSize = 24
sendPacket($packet, $packetSize, $GAME_PID)
EndFunc
The only restrictions are that the target must be an NPC/Player within a valid range of you (for the skill) and the destination must be within range of you. Unlike leap you can teleport straight up.
For example you can use an NPC 30m away and teleport 30m straight up out of the level. Leaps actually cant go perfectly up by teleport can. You can't use your own id for the target though, it has to be something else.
Something you can almost always do is use an all class pet that you summon as the teleport target.
That all said teleport users had an easy time getting through walls anyway but this can still get you into interesting OOB areas and makes scripting instances easier.
Ohh and here is what the script looks like I wrote to make that video, it's nothing special and plenty messy. Most of it was generated by hitting a Hotkey as I run the instance manually to create move/kill/leap commands.
Code:
Func RunTT()
WaitForNpc("Pianist's Spirit")
Move(461.03,243.17)
CloseNpcWindow()
Rebuff()
KillAllInRange(456.88,274.05, 50, "Twilight Guard")
KillAllInRange(398.5,276.45, 50, "Twilight Guard")
Move(390.81,304.94); 39.87
LeapW(1845, 385.85,315.17, 53.19)
KillAllInRange(385.85,315.17, 40, "Twilight Guard"); 53.01
KillAllInRange(385.85,315.17, 40, "Twilight Blademan"); 53.01
KillAllInRange(380.1,340.26, 40, "Twilight Guard")
Move(392.74,340.22)
Jump()
Move(418.43,340.58)
Jump()
Move(421.27,339.75)
KillAllInRange(421.27,339.75, 32, "Twilight Guard")
KillAllInRange(421.27,339.75, 32, "Twilight Witch")
KillAllInRange(473.67,351.85, 60, "Twilight Guard")
LeapW(1844, 473.35, 360.6, 57.53)
Move(473.76,449.44)
Move(430.66,444.21)
KillAllInRange(430.66,444.21, 32, "Twilight Witch")
LeapW(1845, 410.8, 443.99, 27.26)
KillAllInRange(399.33,436.79, 32, "Twilight Witch")
KillAllInRange(399.33,436.79, 60, "Twilight Guard")
Move(380.47,417.74)
KillAllInRange(333.99,420.05, 40, "Twilight Guard")
Move(380.47,417.74)
Move(398.84,453.29)
Move(398.36,479.68); 25.63
Move(368.15,485.83); 25.63
Aoe()
sleep(200)
KillAllInRange(370.13,487.73,80,"Twilight Assassin")
Move(370.13,487.73)
Move(328.43,478.42)
LeapW(1844, 314.54, 471.98, 40.45)
KillAllInRange(304.85,468.41, 32, "Twilight Witch")
;KillAllInRange(302.79,434.65, 32, "Twilight Guard")
KillAllInRange(280.43,464.72, 32, "Twilight Witch")
KillAllInRange(256.45,463.13, 32, "Twilight Witch")
Move(256.45,463.13)
LeapW(1845, 255.12, 445.18, 38.85)
;Move(257.82,465.38) ;Then leap
;Move(229.08,466.21); 38.82
KillAllInRange(238.33,425.01, 50, "Twilight Witch")
KillAllInRange(238.33,425.01, 32, "Twilight Guard")
;sleep(1000)
;CastSkill(1841)
;sleep(3000)
;KillAllInRange(214.14,429.97, 50, "Twilight Guard")
KillAllInRange(258.46,406.08, 55, "Twilight Guard")
Move(258,385.69)
Jump()
Move(257.8,336.82)
LeapW(1844, 257.93, 317.45, 42.64)
Move(256.74,173.52)
LeapW(1845, 257.21, 158.91, 42.35)
KillAllInRange(254.16,150.25, 80, "Twilight Witch")
Move(258.31,159.42); 39.36
LeapW(1844, 258.09, 169.41, 54.67)
;2nd floor after killing 2 witches
Move(257.12,177.69)
Move(162.89,177.93); 53.19
Move(160.05,196.89); 53.19
;in front of ghost entrance
Move(140.21,197.52); 53.01
LeapW(1845, 130.22, 197.84, 66.33)
Move(-33.18,208.52)
LeapW(1844, -43.87,204.18, 49.5)
;KillBoss("Twilight Wrath Fighter") ??
sleep(200)
CastSkill(371) ;3 spark
sleep(2000)
KillAllInRange(-43.87,204.18, 80, "Twilight Wrath Fighter"); 48.89
Move(-72.82,170.42)
selectTarget(NpcName("Steelation: Doom"))
Rebuff()
Move(-72.93,124.06)
WingsOfGrace()
AttackOnce("Steelation: Doom")
Move(-72.93,126.06)
;Jump()
LeapW(1845, -72.83,144.45, 49)
holypath()
Move(-72.82,170.42)
Jump()
Move(-71.25,219.67)
Stealth()
;In case we pulled one
KillAllInRange(-71.25,219.67, 32, "Twilight Guarnob")
KillAllInRange(-71.25,219.67, 32, "Twilight Cenequus")
KillBoss("Steelation: Doom")
PickUpTTLoot()
GoKillEmperor()
Move(-42.65,204.24)
jump()
Move(-23.09,208.96)
LeapW(1844, -13.11, 209.51, 64.89)
Move(132.3,198.43)
LeapW(1845, 147.17,197.03, 53.3)
Move(161.1,196.5)
;Front of Minister
Move(162.05,343.68); 53.19
Move(135.61,345.64); 53.2
LeapW(1844, 125.64, 346.39, 62.0)
Move(81.98,346.14);
Move(81.99,444.27)
Move(84.1,451.79)
sleep(300)
KillBoss("Twilight Minister: Doom")
LeapW(1845, 82.1, 461.79, 53.5)
PickUpTTLoot()
Move(81.91,455.28)
LeapW(1844, 81.99,444.27, 62.5)
Move(81.98,346.14)
Move(128.24,344.05)
LeapW(1845, 146.08,343.66, 60.08)
Move(164.97,343.16)
LeapW(1844, 182.8, 334.17, 53.9)
Move(217.6,276.72)
Move(231.68,274.5)
KillBoss("Illusion Lord: Armageddon", 0)
;Move(231.68,274.5)
PickUpTTLoot()
Move(285.36,273.08)
GoKillBeast()
;KILL BEAST HERE
EndFunc
Func GoKillBeast()
Move(357.55,273.79)
LeapW(1844, 372.37,274.12, 40.07)
Move(461.52,243.68); 39.22
Move(461.69,197.2); 39.24
Rebuff()
AttackOnce("Dark Colluseast: Doom")
Stealth()
Move(461.69,195.2); 39.24
LeapW(1845, 458.69, 178.88, 35.77)
KillBoss("Dark Colluseast: Doom", 1)
PickUpTTLoot()
EndFunc
Func GoKillEmperor()
Move(-42.65,204.07)
Jump()
Move(-23.09,208.86)
Jump()
selectTarget(NpcName("Twilight Emperor: Doom"))
Move(33.72,208.64)
WingsOfGrace()
AttackOnce("Twilight Emperor: Doom")
Move(30.13,208.05)
;Jump()
LeapW(1845, 14.49, 208.59, 53.16)
Move(-20.09,208.86)
Move(-42.65,204.07)
Move(-77.5,202.9)
KillBoss("Twilight Emperor: Doom", 0)
PickUpTTLoot()
EndFunc
Func KillBoss($name, $goMelee=0)
Rebuff()
selectTarget(NpcName($name))
sleep(1000)
CastSkill(621) ;sharptooth
sleep(2200)
$awakenLastCast = 0
While NpcAlive($name) or PlayerTarget()
if PlayerTarget() <> NpcName($name) then selectTarget(NpcName($name))
sleep(200)
if Chi() > 100 and SkillOffCooldown(932) Then
ToggleMelee(0)
CastSkill(932) ;BV
Elseif (Not HasBuff("Sharpen") Or HasBuff("Weapon Disabled") Or ($goMelee and HasBuff("Curse"))) And Chi() >= 300 Then
CastSkill(371) ;3 spark
ElseIf SkillOffCooldown(931) and Chi() < 100 and not HasBuff("Explosion") Then
CastSkill(931) ;Awaken
$awakenLastCast = 10
ElseIf $goMelee Then
ToggleMelee(1)
RegAttack(NpcName($name))
ElseIf Chi() < 200 and not HasBuff("Explosion") and GenieEnergy() > 130 and not $awakenLastCast Then
CastSkill(1047, 1) ;CE
ElseIf HasBuff("Quicken") Then
RegAttack(NpcName($name))
ElseIf NpcDistance($name) < 5 Then
CloseSkill() ;melee
Else
QuickSkill()
EndIf
if $awakenLastCast then $awakenLastCast -= 1
if not NpcAlive($name) then
;some weird bug pops up sometimes
sleep(1000)
EndIf
CheckCharm()
WEnd
ToggleMelee(0)
EndFunc
Func WingsOfGrace()
While not HasBuff("Immune to movement debuffs")
if not (Chi() > 100) then
CastSkill(1047, 1) ;Cloud eruption
sleep(1000)
EndIf
CastSkill(252)
sleep(4300)
WEnd
EndFunc
Func Stealth()
while not HasBuff("Stealth")
CastSkill(1843) ;Ataraxia
sleep(200)
WEnd
Sleep(5500)
while HasBuff("Stealth")
CastSkill(613) ;Blazing
sleep(200)
wend
Sleep(1500)
EndFunc
|
|
|
03/17/2015, 18:51
|
#418
|
elite*gold: 0
Join Date: Sep 2013
Posts: 146
Received Thanks: 84
|
packet structure for pressing the refinement button:
Func refine($ItemInventoryPosition, $ItemID, $RefinementAidPosition)
;//refines an item at elder npc
local $packet, $packetSize
$packet = '2500230000000C000000'
$packet &= _hex($ItemInventoryPosition)
$packet &= _hex($ItemID)
$packet &= _hex($RefinementAidPosition)
$packetSize = 16
sendPacket($packet, $packetSize, $pid)
EndFunc
note: without any refinement Aids RefinementAidPosition (inventory posistion of refine aid like tisha) is 'FFFFFFFF'
|
|
|
04/08/2015, 13:23
|
#419
|
elite*gold: 4
Join Date: Apr 2015
Posts: 98
Received Thanks: 69
|
actually pretty helpful.
used some of this pakets to make a private tool working more stable.
thx!
|
|
|
04/22/2015, 18:32
|
#420
|
elite*gold: 0
Join Date: Jul 2009
Posts: 35
Received Thanks: 2
|
can you make a simple script with F1 hotkey for doing vertial demon mage leap? I have no auto-it knowledge
|
|
|
 |
|
Similar Threads
|
Help with sending packets in autoit
08/16/2010 - AutoIt - 1 Replies
ive been lookin around different sites for ways to send packets to the game server. the only examples i see is to create a server and a client which i dont need, i think. well to the point now, can someone lead me in a direction or tell me how to send packets to a game? also if i send packets then that means i dont need the game to be active, correct? Because in autoit when u use keys u need to have the game active, and control send does not work. ty
|
Sending Packets !!!
09/07/2008 - Kal Online - 14 Replies
now i know how to sniff / analyse packets ... but what then ? :)
how can i send packets ?? to pimp or mix weapon for example
i just need the way to send , and then i can depend on myself :D
|
Sending Packets (need advice)
03/20/2008 - Conquer Online 2 - 7 Replies
OK well im finaly trying to stop leaching off of everybodys work its been great n all download n play :D But im tired of being a begger n the past couple months ive been learning as much as i can about macros memery add blah blah you know ...
After playing around with ce and ahk the past couple months i stumbled across wpe pro, theres not alot of tuturals and its hard to find good help.
Well heres what ive been doing so far, open my CO then i attach it to my sniffer.
I change my...
|
Scamming by sending packets???
04/15/2006 - Conquer Online 2 - 1 Replies
Well my friend and i came up with the idea to send packets to the server to show a certain item in the trade window. We want to use this as a type of scam. I didnt see this in any other threads and was wondering if anyone knew if this is possible and if they could point use in the right direction. My friend was pretty good with packets in CO 1.0 but we arent really sure to go about doing it. If anyone one could please lend a helping hand?
P.S.- Before I get flamed for this because i know i...
|
Sending packets
10/12/2005 - Conquer Online 2 - 10 Replies
I've a question. Is it possible to send 1 packet multiple times at the exact same time?
|
All times are GMT +1. The time now is 16:46.
|
|