[HELP] SENDING PACKETS IN A ROW

09/22/2014 23:35 Muhab*#16
Quote:
Originally Posted by eitai123 View Post
Why it should work what is the difference ?
cuz it should work! xD
however adding this into your agent thread will confirm any spawns you do it.
09/23/2014 08:47 magicanoo#17
I think that I understood what you actually want. You want to movetouser and recall another user to your location.
Well, you can't do both of them at the same time, since it would appear like you're recalling in the middle of teleporting and before the spawn is confirmed, which will not work. The solution is to simply put a delay after the movetouser packet.

Check this picture from your parsing :

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

You are recalling the user while your GM is still teleporting. Do as I suggested above in your agent.cs
Code:
else if (packet.Opcode == 0x34B5) //spawn confirmation packet
                        {
                            Packet p = new Packet(0x34b6);
                            Send(p);
                        }
This will confirm any spawning your clientless do, without the need to put it in every packet you send that involves teleportation. Afterwards, put a delay after movetouser packet

Code:
Thread.Sleep(3000);
Then, you can use the recalluser, and it should work.
09/23/2014 15:07 Isoline*#18
Quote:
Originally Posted by magicanoo View Post
I think that I understood what you actually want. You want to movetouser and recall another user to your location.
Well, you can't do both of them at the same time, since it would appear like you're recalling in the middle of teleporting and before the spawn is confirmed, which will not work. The solution is to simply put a delay after the movetouser packet.

Check this picture from your parsing :

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

You are recalling the user while your GM is still teleporting. Do as I suggested above in your agent.cs
Code:
else if (packet.Opcode == 0x34B5) //spawn confirmation packet
                        {
                            Packet p = new Packet(0x34b6);
                            Send(p);
                        }
This will confirm any spawning your clientless do, without the need to put it in every packet you send that involves teleportation. Afterwards, put a delay after movetouser packet

Code:
Thread.Sleep(3000);
Then, you can use the recalluser, and it should work.
Yes, you understand what i want, but the log for the packet parser
i posted, is including the spawn confirmation and a proper delay time betwern the packets, thats the thing, and its still doesnt work, its still shows that it cant confirm the spawn when it should be, i will try again, n report back,
10/03/2014 13:58 Isoline*#19
Quote:
Originally Posted by Muhab Ashraf View Post
That should work..
PHP Code:
                            if ((current.Opcode == 0x3017) && (current.ReadUInt8() == 2))
                            {
                                
Packet packet3 = new Packet(0x34b6);
                                
Send(packet3);
                            } 
just add it into your Agent thread.
Quote:
Originally Posted by LastThief* View Post
What's your problem exactly ?
Quote:
Originally Posted by magicanoo View Post
I think that I understood what you actually want. You want to movetouser and recall another user to your location.
Well, you can't do both of them at the same time, since it would appear like you're recalling in the middle of teleporting and before the spawn is confirmed, which will not work. The solution is to simply put a delay after the movetouser packet.

Check this picture from your parsing :

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

You are recalling the user while your GM is still teleporting. Do as I suggested above in your agent.cs
Code:
else if (packet.Opcode == 0x34B5) //spawn confirmation packet
                        {
                            Packet p = new Packet(0x34b6);
                            Send(p);
                        }
This will confirm any spawning your clientless do, without the need to put it in every packet you send that involves teleportation. Afterwards, put a delay after movetouser packet

Code:
Thread.Sleep(3000);
Then, you can use the recalluser, and it should work.
guys, i have tried what you suggested, adding delays between packets, confirming the spawn well now here is the Log for the packets:

Code:
[C->S][7010][8 bytes]
0000000000   08 00 04 00 74 65 73 74                           ....test........
   

[S->C][3017][3 bytes]
0000000000   02 01 00                                          ................
   

[S->C][3019][4 bytes]
0000000000   EE 39 00 00                                       î9..............
   

[S->C][3018][0 bytes]
   

[S->C][B010][3 bytes]
0000000000   01 08 00                                          ................
   

[S->C][34B5][2 bytes]
0000000000   A8 62                                             ¨b..............
   

[C->S][34B6][0 bytes]
   

[C->S][7010][8 bytes]
0000000000   11 00 04 00 74 65 73 74                           ....test........
   

[S->C][34A5][0 bytes]
   

[S->C][3013][464 bytes]
0000000000   8E 0E 87 4B 76 07 00 00 22 01 01 00 00 00 00 00   ...Kv...".......
0000000016   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0000000032   00 00 00 00 00 00 00 00 00 00 C8 00 00 00 C8 00   ..........È...È.
0000000048   00 00 01 00 00 00 00 00 00 00 00 00 2D 08 01 00   ............-...
0000000064   00 00 00 38 0E 00 00 00 00 00 00 00 00 00 00 00   ...8............
0000000080   2C 00 00 00 00 01 00 02 00 04 00 00 00 00 39 0E   ,.............9.
0000000096   00 00 00 00 00 00 00 00 00 00 00 2C 00 00 00 00   ...........,....
0000000112   01 00 02 00 05 00 00 00 00 3A 0E 00 00 00 00 00   .........:......
0000000128   00 00 00 00 00 00 2C 00 00 00 00 01 00 02 00 06   ......,.........
0000000144   00 00 00 00 30 0E 00 00 00 00 00 00 00 00 00 00   ....0...........
0000000160   00 3E 00 00 00 00 01 00 02 00 07 00 00 00 00 86   .>..............
0000000176   2A 00 00 00 00 00 00 00 00 00 00 00 2E 00 00 00   *...............
0000000192   00 01 00 02 00 0D 00 00 00 00 42 1D 00 00 01 00   ..........B.....
0000000208   0E 00 00 00 00 43 1D 00 00 01 00 0F 00 00 00 00   .....C..........
0000000224   8E 28 00 00 14 00 05 00 00 01 01 01 00 00 00 01   .(..............
0000000240   02 01 00 00 00 01 03 01 00 00 00 01 11 01 00 00   ................
0000000256   00 01 12 01 00 00 00 01 13 01 00 00 00 01 14 01   ................
0000000272   00 00 00 02 00 02 01 00 01 00 00 00 02 02 00 00   ................
0000000288   00 00 00 08 01 8D 01 00 00 10 00 18 08 01 01 00   ................
0000000304   16 00 53 4E 5F 43 4F 4E 5F 51 45 56 5F 41 4C 4C   ..SN_CON_QEV_ALL
0000000320   5F 42 41 53 49 43 5F 30 01 00 00 00 00 00 00 00   _BASIC_0........
0000000336   00 00 1B 3A 00 00 A8 62 8F 30 8C 44 C6 B0 DC 42   ...:..¨b.0.DưÜB
0000000352   13 FE B2 44 FE 8B 00 01 00 FE 8B 00 00 00 00 00   .þ²Dþ....þ......
0000000368   00 80 41 00 00 48 42 00 00 C8 42 00 0A 00 54 65   ..A..HB..ÈB...Te
0000000384   6C 65 70 6F 72 74 65 72 00 00 00 01 00 00 00 00   leporter........
0000000400   00 00 00 00 00 00 00 00 00 00 00 FF 02 00 00 00   ...........ÿ....
0000000416   00 00 00 00 01 00 00 00 01 07 04 01 4A EA 03 00   ............Jê..
0000000432   64 02 4A F0 03 00 64 03 4A EE 03 00 64 04 4A F8   d.Jð..d.Jî..d.Jø
0000000448   03 00 64 00 00 00 00 00 00 00 00 01 00 01 00 00   ..d.............
   

[S->C][34A6][0 bytes]
   

[S->C][3020][8 bytes]
0000000000   1B 3A 00 00 06 00 0A 0E                           .:..............
   

[C->S][3012][0 bytes]
   

[S->C][3809][2 bytes]
0000000000   01 B4                                             .´..............
   

[S->C][3017][3 bytes]
0000000000   01 01 00                                          ................
   

[S->C][3019][50 bytes]
0000000000   2A 4C 00 00 33 01 00 00 A8 62 E1 2A C4 44 25 A4   *L..3...¨bá*ÄD%¤
0000000016   8B 42 B8 66 8B 44 B5 80 00 01 00 B5 80 01 00 00   .B¸f.Dµ....µ....
0000000032   00 00 00 00 00 00 00 00 00 00 00 C8 42 00 02 02   ...........ÈB...
0000000048   01 18                                             ................
   

[S->C][3018][0 bytes]
   

[S->C][3017][3 bytes]
0000000000   01 01 00                                          ................
   

[S->C][3019][123 bytes]
0000000000   73 07 00 00 22 00 00 01 2D 05 38 0E 00 00 00 39   s..."...-.8....9
0000000016   0E 00 00 00 3A 0E 00 00 00 31 0E 00 00 00 86 2A   ....:....1.....*
0000000032   00 00 00 05 00 00 EE 39 00 00 A8 62 8F 30 8C 44   ......î9..¨b.0.D
0000000048   C6 B0 DC 42 13 FE B2 44 23 07 01 01 A8 62 61 04   ưÜB.þ²D#...¨ba.
0000000064   6E 00 97 05 01 00 00 00 00 00 80 41 00 00 48 42   n..........A..HB
0000000080   00 00 C8 42 00 04 00 74 65 73 74 00 01 00 00 00   ..ÈB...test.....
0000000096   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0000000112   00 00 00 00 00 00 00 00 00 00 FF                  ..........ÿ.....
   

[S->C][3018][0 bytes]
   

[S->C][303D][36 bytes]
0000000000   15 00 00 00 17 00 00 00 23 00 00 00 27 00 00 00   ........#...'...
0000000016   0C 00 14 00 23 00 18 00 C8 00 00 00 C8 00 00 00   ....#...È...È...
0000000032   14 00 14 00                                       ................
   

[S->C][30BF][6 bytes]
0000000000   1B 3A 00 00 04 04                                 .:..............
   

[S->C][385F][115 bytes]
0000000000   00 03 01 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0000000016   00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00   ................
0000000032   00 01 00 00 00 00 03 00 00 00 00 00 00 00 00 00   ................
0000000048   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0000000064   01 00 00 00 00 01 00 00 00 00 06 00 00 00 00 00   ................
0000000080   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0000000096   00 00 00 00 01 00 00 00 00 01 00 00 00 00 01 00   ................
0000000112   00 00 00                                          ................
   

[S->C][3077][2 bytes]
0000000000   00 00                                             ................
   

[S->C][3122][4 bytes]
0000000000   A0 01 03 05                                       *...............
   

[S->C][3153][12 bytes]
0000000000   00 00 00 00 00 00 00 00 00 00 00 00               ................
   

[S->C][3305][1 bytes]
0000000000   00                                                ................
it look like it should work but in-game result shows that the clientless GM only moved to character and didnot Recall it.
10/04/2014 00:49 magicanoo#20
Put the 2 commands in a function in a separate thread, this will prevent the program from sleeping as a whole, only the function will sleep. Google "C# Threading".
10/04/2014 21:42 Isoline*#21
well, its working now, not perfectly, sometimes the clientless get dced.
10/08/2014 18:29 LastThief*#22
You must send keep alive packet 0x2002
10/09/2014 03:43 magicanoo#23
Which clientless are you using?