[HELP] SENDING PACKETS IN A ROW

09/06/2014 11:08 Isoline*#1
Hello all, im having a problem while sending 2 or more packets one after another.
sending movetouser packet, then recalluser packet but it seems that however i manipulate the code, it will always send succesfully one packet, and not the 2 of em, also happens if i spam the packet (even 1) too much, its just doesnt work anymore, whish i could know the source of the problem or how to bypass it,
thanks in advance.
am i missing something? please help me !
09/07/2014 16:58 LastThief*#2
After moving to user you have to confirm your spawn.
09/09/2014 16:01 ​Exo#3
Well maybe it's sending the 2nd packet while its still teleporting..
Try something like loadmonster then recalluser and check if it works
09/11/2014 15:21 Isoline*#4
Quote:
Originally Posted by LastThief* View Post
After moving to user you have to confirm your spawn.
thanks alot !
how do i do that? by sending this "spawn" packet right after the movetouser packet?
and which packets is it, or how do i find it?

and it also happens for example in the notice packet, if i spam it too much its just stop working.
09/13/2014 05:34 Timlock#5
Quote:
Originally Posted by LastThief* View Post
After moving to user you have to confirm your spawn.
Yes, you cannot send the second packet until your spawn is confirmed. Try using a thread.
09/13/2014 13:00 Isoline*#6
Quote:
Originally Posted by Timlock View Post
Yes, you cannot send the second packet until your spawn is confirmed. Try using a thread.
can you give an example on how to do that ? this is my code:
can you be of help?

Code:
Packet movetouser = new Packet(0x7010, true);
            movetouser.WriteUInt16(8);
            movetouser.WriteAscii("test");
            Agent.Send(movetouser);
            
            Log("move to user packet sent " + System.DateTime.Now);

            if (movetouser.Opcode == 0x7010)
            {
                Packet p = new Packet(0x3015); -- is this the spawn confirm? 
                Agent.Send(p);     
            }

  
            Thread.Sleep(1000);

            Packet recalluser = new Packet(0x7010, true);
            recalluser.WriteUInt16(17);
            recalluser.WriteAscii("test");
            Agent.Send(recalluser);
09/16/2014 15:54 magicanoo#7
In your Agent.cs, put this :
Code:
else if (packet.Opcode == 0x34B5) //spawn confirmation packet
                        {
                            Packet p = new Packet(0x34b6);
                            Send(p);
                        }
09/16/2014 18:35 Isoline*#8
Quote:
Originally Posted by magicanoo View Post
In your Agent.cs, put this :
Code:
else if (packet.Opcode == 0x34B5) //spawn confirmation packet
                        {
                            Packet p = new Packet(0x34b6);
                            Send(p);
                        }
Thanks, ill try, the, is there a confirmation packet to others aswell ? Lets say for the notice pa cket for example for example?
09/18/2014 06:39 magicanoo#9
Quote:
Originally Posted by eitai123 View Post
Thanks, ill try, the, is there a confirmation packet to others aswell ? Lets say for the notice pa cket for example for example?
No, just this one. It applies on any sort of teleportation (movetouser/warp/being recalled/gotown/reverse usage).
09/18/2014 08:23 Isoline*#10
Quote:
Originally Posted by magicanoo View Post
No, just this one. It applies on any sort of teleportation (movetouser/warp/being recalled/gotown/reverse usage).
Ok, maybe you can tell why this specefic packets are for the confirmation ? (The opcode number itself)
Or how did you get there?

Quote:
Originally Posted by magicanoo View Post
No, just this one. It applies on any sort of teleportation (movetouser/warp/being recalled/gotown/reverse usage).
i tried what you said but even though you confirmed the spawn it still didnt execute both packets eventually.

Code:
/movetouser packet sent. 18/09/2014 7:02:37 PM
/recalluser packet sent. 18/09/2014 7:02:38 PM
[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   52 3A 00 00                                       R:..............
   

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

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

[S->C][3019][8 bytes]
0000000000   24 01 00 00 34 01 00 00                           $...4...........
   

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

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

[S->C][34B5][2 bytes]
0000000000   A7 61                                             §a..............
   

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

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

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

[S->C][3013][461 bytes]

i think it still didnt confirmed the spawn, i dun know why
can you help?
09/20/2014 13:04 Muhab*#11
Quote:
Originally Posted by eitai123 View Post
Ok, maybe you can tell why this specefic packets are for the confirmation ? (The opcode number itself)
Or how did you get there?


i tried what you said but even though you confirmed the spawn it still didnt execute both packets eventually.

Code:
/movetouser packet sent. 18/09/2014 7:02:37 PM
/recalluser packet sent. 18/09/2014 7:02:38 PM
[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   52 3A 00 00                                       R:..............
   

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

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

[S->C][3019][8 bytes]
0000000000   24 01 00 00 34 01 00 00                           $...4...........
   

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

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

[S->C][34B5][2 bytes]
0000000000   A7 61                                             §a..............
   

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

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

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

[S->C][3013][461 bytes]

i think it still didnt confirmed the spawn, i dun know why
can you help?
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.
09/22/2014 15:14 Isoline*#12
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.
Why it should work what is the difference ?
09/22/2014 15:22 LastThief*#13
What's your problem exactly ?
09/22/2014 15:45 Isoline*#14
Quote:
Originally Posted by LastThief* View Post
What's your problem exactly ?
Im connecting via clientless client to a GM account, sending movetouser packet and then recalluser packet, and its just doesnt work, only the movetouser packet actually works, after that its not sending the recalluser packet as it should be, tried adding delays to load, confirm spawn, as you can see in the previous posts and nothing worked properly.
09/22/2014 18:09 LastThief*#15
Quote:
Originally Posted by eitai123 View Post
Im connecting via clientless client to a GM account, sending movetouser packet and then recalluser packet, and its just doesnt work, only the movetouser packet actually works, after that its not sending the recalluser packet as it should be, tried adding delays to load, confirm spawn, as you can see in the previous posts and nothing worked properly.
Okay to movetouser use this

Code:
Packet p = new Packet(0x7010);
            p.WriteUInt16(0x08);
            p.WriteAscii(PlayerName);
            Send(p);
            Console.WriteLine("Moved to user : " + PlayerName);
            Thread.Sleep(1000);
            Packet p2 = new Packet(0x34B6);
            Send(p2);
            Console.WriteLine("Spawn Confirmed");
Use this to recalluser

Code:
      Packet p = new Packet(0x7010);
                p.WriteUInt16(17);
                p.WriteAscii(CharName);
                Send(p);
                Console.WriteLine("Recalled character : " + CharName);
That should work.