[Development] C# sources

06/19/2010 23:37 hio77#1
hey all,

i know there has been mention of trying to develop a EO C# (or other language) source but its always failed to get started

i really do think all this is possible ... i have actually now coded a fully working acc server (it does not work with the current binary or anything like that since i have not set it up for that but rather use a new game server)

if there is enough interest in this then i might finish of cleaning up my acc server and release it here

btw before anyone looks at it and goes it looks bad the point of a console is not to look good but to use less memory ... i could make an panel etc but i seriously don't see the point i like a console server lol

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

i have based this off a base for co but every single packet is different etc so there's a lot that is actually needed to be done to change it

also eo has many different things such as a wait for a packet from the server before it will send the password

and well no encryption which is even better ... once i have a source that works fairly good on the current ability of the binary i will be able to take it much further ... that means the posibilty of adding devine, celebrity hall, etc

another benefit is there would be none of this horrible rank sharing stuff, totems for all pets(I'm sure its a binary based issue and not client)

so yea let me know all of your interests and maybe we can produce something ...

i really do think this is the way to make an group effort at something in eo instead of starting something like an Epvp server

UPDATES:
26/07/2010

ok today i am releasing 3 things :) they are the acc server source, my packet splitter and for anyone interested in the workings of the packet splitter the source as well

  1. ACC server source Code
ok here is the source as is at its current state anything you want to ask feel free to the point of this development is to learn off it etc
just a few things ill point out ...

DatabaseConnection.cs
Code:
public const string USER_NAME = "phpbb"; < MYSQL user name
public const string PASSWORD = "phpbb"; < MYSQL password 
public const string SERVER = "10.1.1.66"; < MYSQL host ip address
public const string DATA_BASE = "conqueremu"; < MYSQL DATABASE
yes the code still uses the conqueremu emu db ... in later revisions it will be fully rewritten by me

AuthSocket.cs
Code:
private const string SERVER_IP = "127.0.0.1"; < the ip address of the game server
public const string NANO_IP = "70.190.77.101"; < nano ips i wouldn't really think about them as its for a different part of coemu yet to be fully stripped
private const int AUTH_PORT = 5817; < port
MasterSocket.cs
Code:
protected const int LOGIN_PORT = 9959; <login port
protected const string SERVER_IP = "127.0.0.1"; <game server ip
protected const string SITE_IP = "25.86.1.1"; <website ip (so that the server doesnt try and use data from the site)
protected const int AUTH_PORT = 5817; <authentication port 
protected const int GAME_PORT = 5816;
2. Packet Splitter

this tool will split any eo based packet (unencrypted currently)
3. Packet Splitter Source Code
not really much to say about this other than here it is

REMEMBER ALL MY DEVELOPMENTS HERE USES C# 4.0 AND THUS NEED THE .NET 4.0 FRAMEWORKS TO RUN AND DEVELOP ON!

17/07/2010

Today i thought ild put out a copy of my account server at its current state ... sources will come within a few days but its just to prove this concept even more

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

this server sends a packet to the game server which only my game server will accept so really there is no point in trying to connect to any other server ... it will take the login process to the stage were it is asking for a game server but that is it

my source needs to be cleaned up a little before it put that up here but if you are interested let me know and i will push the upload of it forward

why rewrite the account server aswell? .... it allows you to know exactly whats going on ... make advancements such as accepting current eo clients and many more things

also a console application is alot smaller and thus requires less memory (the current acc server uses about 6MB where as mine uses 3.4MB) this drop in memory usage seems pointless atm but then when you look at the game server which i am building (includes both the msg server and npc server) which is currently sitting at 17MB as compared to the current msg server and npc server which can easily be well over 1GB together if the memory is available

what isn't taken into account when the 1GB min memoery for an eo server is all the virtual memory which is actually also being put into the server

also ild like to say again this source is based off COEMUv2 and there is still bits of that in it ....

the exe has been obfuscated and the dlls have been embedded ... there will be open access to them once i put the source out

there is no config files currently so here are the preset user/pass
Code:
mysql user:phpbb
mysql pass:phpbb
30/06/2010

I now have the server running off a dummy set of packets (this was to test i was doing it correctly) from using these dummy packets it shows me where my coding is wrong (in the packets ... btw they are a PAIN to sort)

EO seems to group packets so you have to sit here for hours counting them out (yea i could code something for it but idk i just do it by hand lol!)

ANYWAY ill show you all some proof of concept now :)

Game Server

Client

now yes it is only basic atm and it is only sending what i already have been sent from my eo binary BUT it is clearly progress ... as you can see this is possible ... i havn't put a screen of it up here but there is also error/packet logging in the client when the packet is unknown to the server

Code:
[System][Handler-Error] Please report: Unable to handle packet type 3005[18:18]
all of this can become possible once i get the packets right

btw if anyone says my colouring is pointless it does have a point to it ... it makes it a LOT easier to read on the eyes when you wanna know if its from the client or the server ... there are a few other reasons but i wont go there lol

i hope no one is just going to grab my sources when i release them and call them their own ... im working extremely hard on these ... if you would like to be part of it just straight out pm me and ask don't steal them and try to say its your own

Hio77
06/19/2010 23:41 Manly393#2
That is an awesome idea!! Good luck with it, i really wish i could help you but sadly i don't know C#.
06/19/2010 23:48 hio77#3
Quote:
Originally Posted by Manly393 View Post
That is an awesome idea!! Good luck with it, i really wish i could help you but sadly i don't know C#.
thanks ... i wouldn't say im really good at C# or anything but i do have Google when i need it lol ... its just a case of keeping at it :rolleyes:
06/21/2010 09:14 Arcо#4
Very nice indeed!
I would love to see this project come off the ground!
06/21/2010 09:32 hio77#5
Quote:
Originally Posted by .Arco View Post
Very nice indeed!
I would love to see this project come off the ground!
well in truly off the ground ... alota issues in the way of packets but thats just me learning how to handle the packets well and stuff ... the acc server is to the point that it is fully working and im working on the game server now :D

just gonna be a pain if i try moving to current eo version (its now encrypted :mad:) soooo that will be a little harder but ill manage some how ... might have a little talk to people over in the co section (i cant think of names atm lol! but there is diffidently one person in mind to ask for tips/help)

it is nice to see interest coming even from the co section too :)

oh and i moved onto C# 4.0 last night and saw a decent boost in start-up speed etc so ima stick in 4.0 now :)
06/21/2010 13:09 Faith.#6
Awesome work , but sorry to say Here in EO Section few can do such work .
06/21/2010 13:17 hio77#7
Quote:
Originally Posted by [Devil] View Post
Awesome work , but sorry to say Here in EO Section few can do such work .
thank you :)

back when i was doing co servers ironically i couldn't do anything properly lol!

there are an increasing number of people who could do some of this (or they pay others to do what work i have seen) ... a lot of servers have custom loaders now etc ... its all part of the ability here ... honestly i work by trial and error atm ... its like work it out ... compare to co then convert what i can work out into eo test... edit

the hardest bit is the whole difference between co and eos encryption ... uld think removing the crypto would be easy but there's things such as every packet ends in the string "TQServer"

im also trying to keep my code really well coded so it don't turn into a LOFT (very badly coded co source)

i have however just completed the chat packet handling so that allows for login, char creation process start, all chats etc :)
06/21/2010 16:46 funhacker#8
c# is my favourite language so far. But.. I have little experience in OOP. With that said I would suggest perhaps making a working "offline" client first then sort out all the server side stuff after that. This means you have a client to test all your server code as your make it.

Wish I had the time to join in this :) perhaps forcer would?
06/21/2010 17:43 BrokenHilt#9
Trial and Error is the way :D I love it lol Btw, Apply for Mod again please.. I bet you will have More support now.
06/21/2010 17:58 Faith.#10
funhacker.
forcer.
Necron.
Soulerman.
You.
maybe some more outside eo sction, you can all work on the same thing , i hope i can do C# Coding.
why dont you post in other section ?
06/21/2010 18:03 DEADP00L#11
Quote:
Originally Posted by [Devil] View Post
funhacker.
forcer.
Necron.
Soulerman.
You.
maybe some more outside eo sction, you can all work on the same thing , i hope i can do C# Coding.
why dont you post in other section ?
of those you listed onyl 4 can actually do coding.
06/21/2010 18:13 BrokenHilt#12
Quote:
Originally Posted by DEADP00L View Post
of those you listed onyl 4 can actually do coding.
Take of Necron? Because i remember him causing problems and getting banned O_O And didnt had much Coding contributions lol
06/21/2010 21:36 hio77#13
Quote:
Originally Posted by funhacker View Post
c# is my favourite language so far. But.. I have little experience in OOP. With that said I would suggest perhaps making a working "offline" client first then sort out all the server side stuff after that. This means you have a client to test all your server code as your make it.

Wish I had the time to join in this :) perhaps forcer would?
maybe he will ... we will see .... im just working with the client and comparing to the server packets ... it seems to work out fine :D im surprised at how well i can actually read it

EDIT: ugh maybe offline client would be good lmao ... im now working on the char info packets etc but surprise surprise eo puts like 50 packets into about 2 really long ones >.> you have to count out each packet then remove it and then take on the next one ... cut off any of the packet and well its gonna screw you lol

Quote:
Originally Posted by BrokenHilt View Post
Trial and Error is the way :D I love it lol Btw, Apply for Mod again please.. I bet you will have More support now.
hmmmm we will see...

Quote:
Originally Posted by [Devil] View Post
funhacker.
forcer.
Necron.
Soulerman.
You.
maybe some more outside eo sction, you can all work on the same thing , i hope i can do C# Coding.
why dont you post in other section ?
i have to say i agree with deadpool

Quote:
Originally Posted by DEADP00L View Post
of those you listed onyl 4 can actually do coding.
so true lol ... one just hopes lol

Quote:
Originally Posted by BrokenHilt View Post
Take of Necron? Because i remember him causing problems and getting banned O_O And didnt had much Coding contributions lol
yup exactly ... hes graphical not code based now anyway
06/22/2010 10:52 Faith.#14
Okay i think you have to Post also in CO Section too , or maybe in other section you. can ask DeadP00l Which Section exactly, its a good idea and you will find more support.
=)
06/22/2010 11:05 hio77#15
Quote:
Originally Posted by [Devil] View Post
Okay i think you have to Post also in CO Section too , or maybe in other section you. can ask DeadP00l Which Section exactly, its a good idea and you will find more support.
=)
you know how much a co mod would maul me for that lol ... they seem to jump on people for anything ... theres like 3 over there and they are all really active and really good at thier job ... honistly its a EO server so it should be in the EO section regardless of the help

look up theres a post from .Arco who i know to be a well known co mod so that just shows that word travels

if i was really that desperate for help i would throw the source up here every 10 mins when i change things lol

in some ways im taking making this sever as a way for me to learn alot more about C#

i will be turning to a few in the co section when i move onto the new encryption in eo as idk how to write the decryption (or rather find the encryption method in the first place)

the worse thing about it is finding the hidden keys such as trying to find the constitution on a mage for example (its a 0 so there no chance in working it out in one log ...)