Jump to content
Sign in to follow this  
LikeAlcohol

Who is behind the pkodev github?

Recommended Posts

Who is behind https://github.com/pkodev ?

I was looking at the source of the proxy - https://github.com/pkodev/proxy

 

Was wondering who wrote this?

I'm doing some work with receiving and sending packets to and from the TOP client, would love to ask a question or two if at all possible.

 

Thanks!

Edited by LikeAlcohol

Share this post


Link to post
Share on other sites
5 minutes ago, KONG said:

Ill take a guess. I think it was Insider because he deals with nodejs

Ah cheers, could be. Especially as he was behind one of the emulators.

Is he like the only one who knows about packets sent to and from the TOP client and the server?

Share this post


Link to post
Share on other sites

Hello @LikeAlcohol!

 

The owner of this repository is duduf (his profile on MainDEV.RU). He is from Russia and he is member of Mordo Team (Russian TOP/PKO server).

The repository has no relation with our forum.


Share this post


Link to post
Share on other sites
19 minutes ago, V3ct0r said:

Hello @LikeAlcohol!

 

The owner of this repository is duduf (his profile on MainDEV.RU). He is from Russia and he is member of Mordo Team (Russian TOP/PKO server).

The repository has no relation with our forum.

 

Thanks dude, do you know anyone who's familiar with packets sent to and from TOP client/ server?

Share this post


Link to post
Share on other sites
7 минут назад, LikeAlcohol сказал:

 

Thanks dude, do you know anyone who's familiar with packets sent to and from TOP client/ server?

What do you want to know about packets?


Share this post


Link to post
Share on other sites
1 hour ago, V3ct0r said:

What do you want to know about packets?

 

Well I'm playing around with the client, using nodejs.

Listening in on port 1973 and seeing what the client sends back. 

So far the only data it sends back is 0002 (hex). Was wondering what other data I can receive from the client upon login.

Not looking to recreate an AccountServer, just certain bits if that makes sense.

 

Been using the 'net' module of node, see below (inserting images isn't working so made them links);

https://i.gyazo.com/0f7e8244c1945494c6362f6215d4b459.png

https://i.gyazo.com/e3bba12b3f60a6028b48d840364b55f6.png

 

 

Edited by LikeAlcohol

Share this post


Link to post
Share on other sites

@LikeAlcohol

 

When client connected to the server then GateServer.exe sends to client packet with time and date string. Then client sends login packet. Time and date string from 1st packet is used for password encryption in login packet.

 

0x0002 is ping packet. Client have to answer on ping packets otherwise it will be disconnected from server by timeout.

  • Like 1

Share this post


Link to post
Share on other sites
3 minutes ago, V3ct0r said:

@LikeAlcohol

 

When client connected to the server then GateServer.exe sends to client packet with time and date string. Then client sends login packet. Time and date string from 1st packet is used for password encryption in login packet.

 

0x0002 is ping packet. Client have to answer on ping packets otherwise it will be disconnected from server by timeout.

I see, thank you.

So when the client gets the time and date string from the GateServer it sends the login packet to the GateServer or the AccountServer?

Why does the AccountServer require a connection to the database? (unless the client is sending the login packet there after communicating with GateServer)

Share this post


Link to post
Share on other sites
4 минуты назад, LikeAlcohol сказал:

So when the client gets the time and date string from the GateServer it sends the login packet to the GateServer or the AccountServer?

No, client sends all packets to the GateServer. Then GateServer sends packets to GroupServer and AccountServer. For example, login packet will be sent to the AccountServer, packet with world chat message will be sent to the GroupServer.

 

5 минут назад, LikeAlcohol сказал:

Why does the AccountServer require a connection to the database? (unless the client is sending the login packet there after communicating with GateServer)

It does require a connection to the database to compare login and password from login packet with login and password from the database. It does authentication.

  • Like 1

Share this post


Link to post
Share on other sites
10 minutes ago, V3ct0r said:

No, client sends all packets to the GateServer. Then GateServer sends packets to GroupServer and AccountServer. For example, login packet will be sent to the AccountServer, packet with world chat message will be sent to the GroupServer.

 

It does require a connection to the database to compare login and password from login packet with login and password from the database. It does authentication.

Oh I see. So the GateServer essentially acts as a router in a way?

Interesting, thanks! Was dishing through the AccountServer source code, but it seems I should be looking through the GateServer source.

Share this post


Link to post
Share on other sites

@LikeAlcohol

I'm currently working within GateServer project(2.4).
Take a look at ToClient.cpp > ToClient::OnProcessData()
There you will find an small packet handler, this is probably what you are looking for.

  • Like 1

Discord: andresc

Share this post


Link to post
Share on other sites
15 часов назад, LikeAlcohol сказал:

Oh I see. So the GateServer essentially acts as a router in a way?

Interesting, thanks! Was dishing through the AccountServer source code, but it seems I should be looking through the GateServer source.

Yes, you are right


Share this post


Link to post
Share on other sites
On 17/09/2016 at 8:28 AM, Totoka said:

@LikeAlcohol

I'm currently working within GateServer project(2.4).
Take a look at ToClient.cpp > ToClient::OnProcessData()
There you will find an small packet handler, this is probably what you are looking for.

May I ask what you're working on in particular?

Thanks for the tip, that's exactly what I was looking for! Much appreciated.

Edited by LikeAlcohol

Share this post


Link to post
Share on other sites
10 minutes ago, LikeAlcohol said:

May I ask what you're working on in particular?

Packet filtering, compression, and flooding protection.
Also planning a web API hooked right there, doing real-time changes on players, and also Global/Trade chat sharing by site, by using web sockets.


Discord: andresc

Share this post


Link to post
Share on other sites

@Totoka you mean, a player who is visiting the game's website can see the world & trade chat of the server at real time?


logo-big.png   logo.png

                                   Sunny Go! Online                                                                    pko.host                                                 

Share this post


Link to post
Share on other sites
10 minutes ago, Totoka said:

Packet filtering, compression, and flooding protection.
Also planning a web API hooked right there, doing real-time changes on players, and also Global/Trade chat sharing by site, by using web sockets.

Nice one.

Yeah I was looking to do something similar myself, maybe so you can have a real time map with players locations on etc

We have a lot of flexibility now we have the source files haha

Share this post


Link to post
Share on other sites
10 minutes ago, Shako said:

@Totoka you mean, a player who is visiting the game's website can see the world & trade chat of the server at real time?

yup, cached to avoid a direct dos/ddos, but anyway it will have an small refresh time.


Discord: andresc

Share this post


Link to post
Share on other sites
2 hours ago, LikeAlcohol said:

@Totoka how is your project progressing? It's all pretty interesting!

I was doing it for fun, and currently it's kinda boring xD, most is done, but has some troubles within the packet flooding, characters get a wrong sync when they performs too many packets/time.
I guess most troubles I have, could be due the MTU, being very hard to manage within the current GateServer system,

I added also an small extra header within the packet by trying to control it, but nothing :S


Discord: andresc

Share this post


Link to post
Share on other sites
14 hours ago, Totoka said:

I was doing it for fun, and currently it's kinda boring xD, most is done, but has some troubles within the packet flooding, characters get a wrong sync when they performs too many packets/time.
I guess most troubles I have, could be due the MTU, being very hard to manage within the current GateServer system,

I added also an small extra header within the packet by trying to control it, but nothing :S

 

Same here, started working on something for fun but now it's boring! Haha my thoughts exactly with the GateServer!! I ended up just hacking away in the end...

Doesn't help that the source code of the GateServer is a big mess too though ayy ¬¬

Edited by LikeAlcohol

Share this post


Link to post
Share on other sites
On 11/7/2016 at 8:36 PM, Totoka said:

guess most troubles I have, could be due the MTU, being very hard to manage within the current GateServer system,

 

MTU is not the thing that you simply control from application.

Be aware, that, while network is packet based, the TCP is "Stream" therefor You can not control fully how packets will be sent over wire.

 

16 hours ago, LikeAlcohol said:

Doesn't help that the source code of the GateServer is a big mess too though ayy ¬¬

If GateServer is a mess, then should abandon it right away before you get to GameServer.

Share this post


Link to post
Share on other sites
32 minutes ago, kLabMouse said:

MTU is not the thing that you simply control from application.

Be aware, that, while network is packet based, the TCP is "Stream" therefor You can not control fully how packets will be sent over wire.

Hey kLab,

 

If we are talking about the application layer, the packet integration should be controlled always, the `how`, depends on the software design. Most networking designs within an application level are done with an small header for such purpose, it's supposed to be used on this project, but somehow some packets are delivered without checking It's integrity, which turns it into another problem.

 

About TCP prot., of course, it sends whatever you want byte to byte ~`stream, this supposed to be controlled at low level, and also can be controlled onto the application layer, by reinventing the wheel, but isn't necessary ( that's insane ); Have you never heard about raw protocols ?.


Discord: andresc

Share this post


Link to post
Share on other sites
7 hours ago, Totoka said:

but somehow some packets are delivered without checking It's integrity, which turns it into another problem.

That's true.

But MTU has nothing to do with it.

 

7 hours ago, Totoka said:

Have you never heard about raw protocols ?.

What kind you are interested in exactly? there is quite a lot of them.

 

Also. I think we are way to Offtopic here.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...