Creating a source from scratch?

05/31/2010 02:51 scottdavey#1
Can anyone tell me how I go about creating a source from scratch,

I can do most coding but I really don't understand sockets, I kind of understand packets and I'm planning to create it for 4267 client.

Are there any blank sources with just login at least with a good socket system that I could start from?

It's really just a learning experience for me, and if its a success perhaps i'll use it.

Thanks!
05/31/2010 06:03 Santa#2
I'm not sure about one for 4267 but Hybrids source is pretty basic.
05/31/2010 08:16 kinshi88#3
Yeah it's definitely not easy I can tell you that >.<
Good luck.
05/31/2010 10:40 MonstersAbroad#4
Impulses source is pretty basic for 5165

Basic stuff:
Walk
Run
Jump
NPC's

Features :):
NONE
05/31/2010 12:24 s.bat#5
If you're wanting to learn how to use Sockets in C#, then you'll most likely end up decompiling Hybrid's SocketNetwork.dll if you use his source, but I would recommend Googling tutorials first in order to get a basic understanding of them.

Although someone could easily usurp my attempt, I took a little time to work on this source for you (tested using a 4267 client, but there a definitely areas to be improved and fixed. In short, Hybrid's source is an excellent place to start, and most likely has the best design), so hopefully it will provide you with some insight. I have tried to make it as barebones as possible without making its purpose too amorphous. If you have any questions or you would like something added, feel free to ask. If your main focus is on how Sockets work, then take a look at ServerSocket.cs. I've added comments to make things a bit more clear.

In a simple set of instructions:
Start out with a Socket that listens on the login port for new connections.
Then move to reading the data that is sent from those new connections.
Then Decrypt it.
Then handle the decrypted data, sending encrypted data back to the connections when necessary.
Soon, you'll start needing more and more classes to handle that data, and then you'll end up with a source.
05/31/2010 17:56 scottdavey#6
Quote:
Originally Posted by s.bat View Post
If you're wanting to learn how to use Sockets in C#, then you'll most likely end up decompiling Hybrid's SocketNetwork.dll if you use his source, but I would recommend Googling tutorials first in order to get a basic understanding of them.

Although someone could easily usurp my attempt, I took a little time to work on this source for you (tested using a 4267 client, but there a definitely areas to be improved and fixed. In short, Hybrid's source is an excellent place to start, and most likely has the best design), so hopefully it will provide you with some insight. I have tried to make it as barebones as possible without making its purpose too amorphous. If you have any questions or you would like something added, feel free to ask. If your main focus is on how Sockets work, then take a look at ServerSocket.cs. I've added comments to make things a bit more clear.

In a simple set of instructions:
Start out with a Socket that listens on the login port for new connections.
Then move to reading the data that is sent from those new connections.
Then Decrypt it.
Then handle the decrypted data, sending encrypted data back to the connections when necessary.
Soon, you'll start needing more and more classes to handle that data, and then you'll end up with a source.
Thanks, I really appreciate it.

I tried converting hybrids source to work with the 4267 client, but I can't seem to get it working.

[Only registered and activated users can see links. Click Here To Register...]
05/31/2010 18:24 pro4never#7
That's a client problem where the server is trying to have the client load something that doesn't exist.

I'd check the default items and character meshes and try again.

The other option would be invalid monsters but that's unlikely (I know in CoFuture the lab bosses were crashing the game because they used a new mesh or something that wasn't in the client)
05/31/2010 20:11 ImmuneOne#8
Quote:
Originally Posted by scottdavey View Post
Thanks, I really appreciate it.

I tried converting hybrids source to work with the 4267 client, but I can't seem to get it working.

[Only registered and activated users can see links. Click Here To Register...]
Most important of all, did you change the packets? If you did, check the model value or the hair value. If the problem keeps appearing you can private message me whenever you like.
06/01/2010 23:42 becko713#9
if you know how to code with C++ would be nice when you try to code a source like Binary

you can get help from EU C++ source

its the same fature
06/02/2010 00:10 Arcо#10
There is no EU c++ source, its all binaries.
06/02/2010 02:47 tanelipe#11
Yes, there is. Both client and server implementation, they're old though but they do exist.

EDIT: Here are the links:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
06/03/2010 02:39 BlueFlame11#12
Quote:
Originally Posted by s.bat View Post
If you're wanting to learn how to use Sockets in C#, then you'll most likely end up decompiling Hybrid's SocketNetwork.dll if you use his source, but I would recommend Googling tutorials first in order to get a basic understanding of them.

Although someone could easily usurp my attempt, I took a little time to work on this source for you (tested using a 4267 client, but there a definitely areas to be improved and fixed. In short, Hybrid's source is an excellent place to start, and most likely has the best design), so hopefully it will provide you with some insight. I have tried to make it as barebones as possible without making its purpose too amorphous. If you have any questions or you would like something added, feel free to ask. If your main focus is on how Sockets work, then take a look at ServerSocket.cs. I've added comments to make things a bit more clear.

In a simple set of instructions:
Start out with a Socket that listens on the login port for new connections.
Then move to reading the data that is sent from those new connections.
Then Decrypt it.
Then handle the decrypted data, sending encrypted data back to the connections when necessary.
Soon, you'll start needing more and more classes to handle that data, and then you'll end up with a source.
Nice! Is that source you made from scatch able to work on 4267 just needs coding right?
06/03/2010 06:03 s.bat#13
Quote:
Originally Posted by BlueFlame11 View Post
Nice! Is that source you made from scatch able to work on 4267 just needs coding right?
In short, yes, but that source was only made in order to demonstrate how to use sockets in C#, and the only thing it does is send you from the account server to the game server in order to show how the sockets work. Theoretically, any 5017 source should be able to work with a 4267 client, but the packets would mainly need to be restructured. Technically, I wouldn't use this source to build off of because there are plenty of better, more developed sources out there already.
06/03/2010 06:52 Arcо#14
Quote:
Originally Posted by tanelipe View Post
Yes, there is. Both client and server implementation, they're old though but they do exist.

EDIT: Here are the links:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
So TQ coded EU in C++?
06/03/2010 07:12 kinshi88#15
Quote:
Originally Posted by .Arco View Post
So TQ coded EU in C++?
Yup, and Conquer, and every other game they've ever made.
C+P for all of em =P