Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Conquer Online 2 > CO2 Programming
You last visited: Today at 23:44

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Packet jump noob question - How to update hero position /client ?

Discussion on Packet jump noob question - How to update hero position /client ? within the CO2 Programming forum part of the Conquer Online 2 category.

Reply
 
Old   #1
 
giacometti's Avatar
 
elite*gold: 0
Join Date: May 2006
Posts: 319
Received Thanks: 49
Packet jump noob question - How to update hero position /client ?

Hello, this my first project messing with packets, so get it easy guys.

After sending a jump packet to server I can see from another account logged in that the jump was made, but client that i sent the packet didnt update the hero position (jump animation on client was not made). How can I update the client, I mean, how can i synchronize it?
Shouldn't it working by sending the same jump packet to client? I guess no, right...

I can call jump function from memory, but at the end it will send jump packet again to server, so no point doing that way...

Would it work if I use same packet that I received from others players jump and construct one with my hero info and send it to client? (I suppose that there is some hero info on this packet)

Here are some jump packets, one received (server->client) from someone jumping around and one packet sent by jumping with mouseclick.

Code:
27-05-2018 20:15:15 [RECV] Type: 2102 Length: 25
===================================================================
19 00 36 08 08 fc b3 c9 02 18 00 48 ac 81 86 0f  ; ..6........H....
60 a1 01 68 00 70 00 78 00                       ; `..h.p.x.

[DECODED]  Decoded-length: 32 Decoded-Fields: 7
Field's key :  1,  3,  9, 12, 13, 14, 15, 
Field's type:  0,  0,  0,  0,  0,  0,  0, 
Field's size:  4,  4,  4,  4,  4,  4,  4, 
19 00 36 08 fc 59 52 00 00 00 00 00 ac 80 e1 01  | ..6..YR.........
a1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................

Code:
27-05-2018 20:29:21[SENT] Type: 2102 Length: 47
===================================================================
2f 00 36 08 08 fb b3 c9 02 38 b2 03 40 d3 03 48  ; /[email protected]
d3 96 c3 0f 60 89 01 68 06 70 af 03 78 d2 03 88  ; ....`..h.p..x...
01 ea 07 a0 01 ff ff ff ff ff ff ff ff ff 01     ; ...............

[DECODED]  Decoded-length: 56 Decoded-Fields: 11
Field's key :  1,  7,  8,  9, 12, 13, 14, 15, 17, 20,  0, 
Field's type:  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1, 
Field's size:  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8, 
2f 00 36 08 fb 59 52 00 b2 01 00 00 d3 01 00 00  | /.6..YR.........
53 cb f0 01 89 00 00 00 06 00 00 00 af 01 00 00  | S...............
d2 01 00 00 ea 03 00 00 ff ff ff ff ff ff ff ff  | ................
fd 7e bf df ed 76 bb dd                          | .~...v..
Thank you in advance. I can't enjoy a sunday break in other way.
giacometti is offline  
Thanks
1 User
Old 05/28/2018, 02:31   #2
 
Spirited's Avatar
 
elite*gold: 12
Join Date: Jul 2011
Posts: 8,282
Received Thanks: 4,191
You won't see the animation. Even if you send the jump back to the client, that only confirms the new location. It doesn't perform the animation because it expects that you requested the jump (because why wouldn't you be the requester in a normal situation). Easiest way would be to send a teleport, or some other forced movement, to the client so it updates the location. It won't look great, but it will work. Why did you post guild member list packets?
Spirited is offline  
Thanks
1 User
Old 05/28/2018, 13:14   #3
 
giacometti's Avatar
 
elite*gold: 0
Join Date: May 2006
Posts: 319
Received Thanks: 49
Hmmm.... Well, maybe the jumps made in autohunt is triggered by received packets, cause that jump does not trigger the jump function on memory, I will look further into this tonight.

I just listed the packets triggered when jump action is done/received. For jump, packet type is 2102 and for running, packet type is 2245 for current conquer patch ( 6717).
giacometti is offline  
Old 05/29/2018, 20:39   #4
 
giacometti's Avatar
 
elite*gold: 0
Join Date: May 2006
Posts: 319
Received Thanks: 49
Quote:
Originally Posted by giacometti View Post
maybe the jumps made in autohunt is triggered by received packets,
did not work;


Quote:
Originally Posted by Spirited View Post
Easiest way would be to send a teleport
worked like a charm!


is helping a lot by the way.

For reference, this was the packet that I test to teleport, by sending it to client:

Code:
29-05-2018 15:14:32 [RECV] Type: 2102 Length: 29
===================================================================
1d 00 36 08 08 fb b3 c9 02 18 ea 07 48 a2 d1 dd  ; ..6.........H...
10 50 00 60 56 68 07 70 d7 02 78 b2 03           ; .P.`Vh.p..x..

[DECODED]  Decoded-length: 36 Decoded-Fields: 8
Field's key :  1,  3,  9, 10, 12, 13, 14, 15, 
Field's type:  0,  0,  0,  0,  0,  0,  0,  0, 
Field's size:  4,  4,  4,  4,  4,  4,  4,  4, 
1d 00 36 08 fb 59 52 00 ea 03 00 00 a2 68 17 02  | ..6..YR......h..
00 00 00 00 56 00 00 00 07 00 00 00 57 01 00 00  | ....V.......W...
b2 01 00 00                                      | ....
I think this is like the MsgAction... Fieldkey 1 = playerId, Fieldkey 3 = mapId, Fieldkey 9 = timestamp? , Fieldkey 12 is the actiontype if I am not wrong. F13 maybe the facedirection, F14 and F15 are the coords for sure.
giacometti is offline  
Old 05/29/2018, 21:30   #5
 
elite*gold: 0
Join Date: Apr 2018
Posts: 22
Received Thanks: 0
Quote:
Originally Posted by giacometti View Post
did not work;




worked like a charm!


is helping a lot by the way.

For reference, this was the packet that I test to teleport, by sending it to client:

Code:
29-05-2018 15:14:32 [RECV] Type: 2102 Length: 29
===================================================================
1d 00 36 08 08 fb b3 c9 02 18 ea 07 48 a2 d1 dd  ; ..6.........H...
10 50 00 60 56 68 07 70 d7 02 78 b2 03           ; .P.`Vh.p..x..

[DECODED]  Decoded-length: 36 Decoded-Fields: 8
Field's key :  1,  3,  9, 10, 12, 13, 14, 15, 
Field's type:  0,  0,  0,  0,  0,  0,  0,  0, 
Field's size:  4,  4,  4,  4,  4,  4,  4,  4, 
1d 00 36 08 fb 59 52 00 ea 03 00 00 a2 68 17 02  | ..6..YR......h..
00 00 00 00 56 00 00 00 07 00 00 00 57 01 00 00  | ....V.......W...
b2 01 00 00                                      | ....
I think this is like the MsgAction... Fieldkey 1 = playerId, Fieldkey 3 = mapId, Fieldkey 9 = timestamp? , Fieldkey 12 is the actiontype if I am not wrong. F13 maybe the facedirection, F14 and F15 are the coords for sure.
hey guys
i saw this packet and i know it
but i have one question and please dont say im stupid
can i use this packet to get speedhack ?
if its possible can you only give me the idea about how?
ghosfromhell is offline  
Old 05/29/2018, 21:32   #6
 
boDil's Avatar
 
elite*gold: 0
Join Date: Apr 2017
Posts: 91
Received Thanks: 56
Quote:
Originally Posted by giacometti View Post
For reference, this was the packet that I test to teleport, by sending it to client:

Code:
29-05-2018 15:14:32 [RECV] Type: 2102 Length: 29
===================================================================
1d 00 36 08 08 fb b3 c9 02 18 ea 07 48 a2 d1 dd  ; ..6.........H...
10 50 00 60 56 68 07 70 d7 02 78 b2 03           ; .P.`Vh.p..x..

[DECODED]  Decoded-length: 36 Decoded-Fields: 8
Field's key :  1,  3,  9, 10, 12, 13, 14, 15, 
Field's type:  0,  0,  0,  0,  0,  0,  0,  0, 
Field's size:  4,  4,  4,  4,  4,  4,  4,  4, 
1d 00 36 08 fb 59 52 00 ea 03 00 00 a2 68 17 02  | ..6..YR......h..
00 00 00 00 56 00 00 00 07 00 00 00 57 01 00 00  | ....V.......W...
b2 01 00 00                                      | ....
I think this is like the MsgAction... Fieldkey 1 = playerId, Fieldkey 3 = mapId, Fieldkey 9 = timestamp? , Fieldkey 12 is the actiontype if I am not wrong. F13 maybe the facedirection, F14 and F15 are the coords for sure.
You should try using the "NinjaStep" (156) action type - that one doesn't require the map ID and doesn't have any "side effects" like the teleport one does, I believe.
boDil is offline  
Thanks
2 Users
Old 05/29/2018, 21:35   #7
 
elite*gold: 0
Join Date: Apr 2018
Posts: 22
Received Thanks: 0
Quote:
Originally Posted by boDil View Post
You should try using the "NinjaStep" (156) action type - that one doesn't require the map ID and doesn't have any "side effects" like the teleport one does, I believe.
hey bodil
please tell me more about the ninja step

please i realy need this
ghosfromhell is offline  
Old 05/30/2018, 00:06   #8
 
giacometti's Avatar
 
elite*gold: 0
Join Date: May 2006
Posts: 319
Received Thanks: 49
Quote:
Originally Posted by Spirited View Post
Why did you post guild member list packets?

Just notice that. Sorry, probably I ctrl+c/v the wrong one... The first packet on the first post should be something like this (packet of jump action from someone jumping around near hero):

Code:
29-05-2018 18:56:34 [RECV] Type: 2102 Length: 38
===================================================================
26 00 36 08 08 fb b3 c9 02 38 b6 03 40 d5 03 48  ; &[email protected]
b5 d5 94 17 60 89 01 68 00 70 b5 03 78 d2 03 88  ; ....`..h.p..x...
01 ea 07 b8 01 00                                ; ......

[DECODED]  Decoded-length: 44 Decoded-Fields: 10
Field's key :  1,  7,  8,  9, 12, 13, 14, 15, 17, 23, 
Field's type:  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
Field's size:  4,  4,  4,  4,  4,  4,  4,  4,  4,  4, 
26 00 36 08 fb 59 52 00 b6 01 00 00 d5 01 00 00  | &.6..YR.........
b5 2a e5 02 89 00 00 00 00 00 00 00 b5 01 00 00  | .*..............
d2 01 00 00 ea 03 00 00 00 00 00 00              | ............
FK1 = playerId
FK7 = x dest
FK8 = y dest

FK9 = timestamp ?
FK12 = actiontype

FK14 = x source
FK15 = y source
FK17 = mapId
giacometti is offline  
Old 05/30/2018, 16:29   #9
 
elite*gold: 0
Join Date: Feb 2009
Posts: 262
Received Thanks: 161
Code:
    [ProtoContract]
    public class ActionQuery
    {

        [ProtoMember(1, IsRequired = false)]
        public uint UID;

        [ProtoMember(2, IsRequired = false)]
        public uint TargetUID;
        [ProtoMember(3, IsRequired = false)]
        public uint dwParam;//possible to be ulong
        [ProtoMember(4, IsRequired = false)]
        public uint dwParam2;
        [ProtoMember(5, IsRequired = false)]
        public uint dwParam3;
        [ProtoMember(6, IsRequired = false)]
        public uint dwParam4;
        [ProtoMember(7, IsRequired = false)]
        public uint ObjectX;
        [ProtoMember(8, IsRequired = false)]
        public uint ObjectY;

        [ProtoMember(9, IsRequired = false)]
        public int Timestamp;

        [ProtoMember(10, IsRequired = false)]
        public uint AttackerUID;
        [ProtoMember(11, IsRequired = false)]
        public uint unknow11;


        [ProtoMember(12, IsRequired = true)]
        public ActionType Type;
        [ProtoMember(13, IsRequired = false)]
        public ushort Fascing;//26
        [ProtoMember(14, IsRequired = false)]
        public ushort wParam1;
        [ProtoMember(15, IsRequired = false)]
        public ushort wParam2;
        [ProtoMember(16, IsRequired = false)]
        public uint wParam3;
        [ProtoMember(17, IsRequired = false)]
        public uint wParam4;
        [ProtoMember(18, IsRequired = false)]
        public ushort wParam5;

        [ProtoMember(19, IsRequired = false)]
        public int unknow19;
        [ProtoMember(20, IsRequired = false)]
        public int unknow20;
        [ProtoMember(21, IsRequired = false)]
        public int unknow21;
        [ProtoMember(22, IsRequired = false)]
        public int unknow22;
        [ProtoMember(23, IsRequired = false)]
        public int unknow23;

        [ProtoMember(24, IsRequired = false)]
        public string Text;
}
JumpX = ObjectX;
JumpY = ObjectY;
dwParam3 = mapid;
teroareboss1 is offline  
Thanks
1 User
Old 05/30/2018, 16:37   #10
 
giacometti's Avatar
 
elite*gold: 0
Join Date: May 2006
Posts: 319
Received Thanks: 49
Quote:
Originally Posted by teroareboss1 View Post
Code:
    [ProtoContract]
    public class ActionQuery
    {

        [ProtoMember(1, IsRequired = false)]
        public uint UID;

        [ProtoMember(2, IsRequired = false)]
        public uint TargetUID;
        [ProtoMember(3, IsRequired = false)]
        public uint dwParam;//possible to be ulong
        [ProtoMember(4, IsRequired = false)]
        public uint dwParam2;
        [ProtoMember(5, IsRequired = false)]
        public uint dwParam3;
        [ProtoMember(6, IsRequired = false)]
        public uint dwParam4;
        [ProtoMember(7, IsRequired = false)]
        public uint ObjectX;
        [ProtoMember(8, IsRequired = false)]
        public uint ObjectY;

        [ProtoMember(9, IsRequired = false)]
        public int Timestamp;

        [ProtoMember(10, IsRequired = false)]
        public uint AttackerUID;
        [ProtoMember(11, IsRequired = false)]
        public uint unknow11;


        [ProtoMember(12, IsRequired = true)]
        public ActionType Type;
        [ProtoMember(13, IsRequired = false)]
        public ushort Fascing;//26
        [ProtoMember(14, IsRequired = false)]
        public ushort wParam1;
        [ProtoMember(15, IsRequired = false)]
        public ushort wParam2;
        [ProtoMember(16, IsRequired = false)]
        public uint wParam3;
        [ProtoMember(17, IsRequired = false)]
        public uint wParam4;
        [ProtoMember(18, IsRequired = false)]
        public ushort wParam5;

        [ProtoMember(19, IsRequired = false)]
        public int unknow19;
        [ProtoMember(20, IsRequired = false)]
        public int unknow20;
        [ProtoMember(21, IsRequired = false)]
        public int unknow21;
        [ProtoMember(22, IsRequired = false)]
        public int unknow22;
        [ProtoMember(23, IsRequired = false)]
        public int unknow23;

        [ProtoMember(24, IsRequired = false)]
        public string Text;
}
JumpX = ObjectX;
JumpY = ObjectY;
dwParam3 = mapid;


Nice, just confirmed field 9, thank you very much!

By the way, anyone knows how to determine timestamp? I could not replicate it, it does not seem a general time like the one you get in gettickcount() function. Maybe it is a mesh with some other value? Am I missing something basic in time functions?

Meanwhile just sending invalid or even null timestamps to client doesnt seem to affect at all, but eventually I will send packets to server, and then problems will arrive for sure. Well, I guess it's just about reversing the client when its building the packet timestamp to see how its constructed (if it is really a mesh).
giacometti is offline  
Old 05/30/2018, 16:41   #11
 
elite*gold: 0
Join Date: Feb 2009
Posts: 262
Received Thanks: 161
you can send back... the same packet (received packet).

and 2.. They've protobuf and on 10014 ... you can see the other character?

If I remember rightly .. timerstamp is Environment.TickCount
teroareboss1 is offline  
Old 05/30/2018, 16:52   #12
 
giacometti's Avatar
 
elite*gold: 0
Join Date: May 2006
Posts: 319
Received Thanks: 49
Quote:
Originally Posted by teroareboss1 View Post
you can send back... the same packet (received packet).
Do you mean about the question in first post? or about timestamp?


If it is about timestamp it doesnt work for my purpose, I mean, constructing/building the packet from nothing and just send it to server... But I guess this is not a good idea, I will be caught by a simple packet counter that is easy to miss in client assembly... Better to inject a packet in a client action to get timestamp! Well, no need to evaluated timestamp now I think, having in mind this strategy. Unless timestamps are calculated different in packets types... LoL, so much to cover!

Quote:
Originally Posted by teroareboss1 View Post
They've protobuf and on 10014 ... you can see the other character?
What do you mean? I could not understand.

Quote:
Originally Posted by teroareboss1 View Post
If I remember rightly .. timerstamp is Environment.TickCount
I am not using managed C++ (.net), so I don't have access to that function. But I will look further about it. Thx.

What I can see about timestamp is that the one conquer uses seems to have a precision of 0.1 milliseconds (gettickcount has precision of 1 millisecond).
giacometti is offline  
Reply


Similar Threads Similar Threads
Unl. Jump, Freeze Hack, Vac Hack & Position, and Farell Tele (IAH V. 0.1.19)
07/30/2009 - Dragonica Hacks, Bots, Cheats & Exploits - 106 Replies
For Client version 0.1.19 IAHGames ONLY DON'T ASK FOR ANY OTHER VERSIONS Frognik from snox d.n et has done it again, fixing his hack for version 0.1.19 and adding a few features. Now, you can walk through walls, teleport to various Farrell locations (Not directly to the boss though) plus all of the features of his previous hack. The vac hack has been changed, and you can now change how close you vac the monsters. Overall, this is an improvement to his 0.1.18 hack. Like his previous,...



All times are GMT +1. The time now is 23:44.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.