Register for your free account! | Forgot your password?

You last visited: Today at 19:51

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

 

[Release] Project Phoenix (Patch 5187)

Reply
 
Old   #1

 
elite*gold: 0
Join Date: Jul 2011
Posts: 6,536
Received Thanks: 3,170
[Release] Project Phoenix (Patch 5187)

Hey everyone,

I've been meaning to create a decent open source project for a year now. I had a bit of time to work on a project this fall, so I decided to put a new project on my schedule called Phoenix. I haven't had the chance to work on it too much due to my schedule, but it is in working order. Don't ask about features, it's a base source. The entire source is commented: every function, every code block. I programmed this source in C# for patch 5187. It uses MySQL with .NET Hibernate for database transactions. The server is split up into a few projects: the account server, message server, map server, database infrastructure, security infrastructure, networking infrastructure, and core infrastructure (module in design).

Quote:
Account Server:
The account server is designed to accept login data from the player’s client and verify that the username and password combination is correct with the database. If the inputted combination is correct, the client will be transferred to the message server of their choice. The client then disconnects from the account server to be connected to the message server.

Message Server:
The message server manages character data. It accepts the client from the transfer and connects the player to the map server, after authenticating the transfer data. The message server messages and receives packets to and from the client, and to and from the map server to create the game world of Conquer Online.

Map Server:
The map server manages the map and monster intelligence for the world of Conquer Online. If players wish to transfer between map servers, this can be easily done without disconnecting the client from the message server. It is designed to process game structures involving the character’s location and surroundings.

Core Infrastructure:
The core infrastructure contains core classes required by all servers to function correctly. It contains data structure implementations, calculations, interfaces, native implementations, and file processing classes for the servers and additional libraries.

Database Infrastructure:
The database infrastructure contains the substructure for .NET Hibernate. All repositories and table domains rely on this infrastructure for processing transactions to and from the database. All enumerations based on table entries should be contained within this infrastructure library.

Network Infrastructure:
The network infrastructure encapsulates the servers’ asynchronous socket systems. The servers inherit the socket classes found in this library to configure it. The needs of each server can be easily met using these socket base classes. Packets for the servers are also stored in this library.

Security Infrastructure:
The security infrastructure encapsulates the servers’ security algorithms in place to secure the connection between the client and servers. It also contains hashing algorithms to secure accounts found in the database.
I set up the server with this solution architecture as an experiment. Using this layout, the client can change between servers without disconnecting from the client. It can also connect two message servers together for events and such. Traditionally, this should be done with a client-sided proxy (WoW has it built into the client). Oh well! It's still a fun little project. Enjoy.

Setting up the Server:
  1. Download and install . Ensure that you are installing C# as a language option.
  2. and install MySQL Community Server.
    • In feature selection, select "MySQL Server", "MySQL Workbench", and "MySQL Utilities".
    • A configuration wizard will appear after installation. Keep server configuration settings as they are. Type in a root password (keep this saved). You do not need to add any additional users.
    • MySQL Workbench will start automatically. Double click on the local instance and input your MySQL password. Keep the workbench open.
  3. In the MySQL workbench under the "Management" group in the navigator, select "Data Import/Restore". In the data import tab under "Options", select "Import from self-contained file". Browse for the database backup file in the project's main folder. Then, click "Start Import".
  4. Right click on the "Schemas" panel and select "Refresh All". Open the "account_server" database. Under tables, right click on the "msg servers" and select "Select Rows - Limit 1000". Edit the IP Address to your public or Hamachi IP address. Then, click the "Apply" button.
  5. Open the accounts table in the same way and add a new account (input an account name and password - the rest will generate automatically).
  6. Open your 5187 client and copy the "map" and "scene" folders from the "maps" folder into the map server's "DMaps" folder (inside the "Database" folder). Maps will automatically be generated on the first execution (you can delete the DMaps folder's contents after it does that).
  7. Start up the account, message, and map servers. Configuration files will automatically appear for you to edit. Ensure that you set up each server correctly with the MySQL password.
  8. Configure your client using the Conquer Loader specified in my clients thread.

Download:


Kind Regards,
Spirited



Spirited is offline  
Thanks
25 Users
Old   #2
 
elite*gold: 0
Join Date: Aug 2011
Posts: 308
Received Thanks: 84
Fu... slow connection :c interesting project, can't wait the downloads ends for check it out, the design sounds pretty clean and extendable (if that word exists ), something that is reaaaally hard for me to do before start programming, hopefully will learn something from this


U2_Caparzo is offline  
Old   #3

 
elite*gold: 0
Join Date: Jul 2011
Posts: 6,536
Received Thanks: 3,170
Quote:
Originally Posted by U2_Caparzo View Post
Fu... slow connection :c interesting project, can't wait the downloads ends for check it out, the design sounds pretty clean and extendable (if that word exists ), something that is reaaaally hard for me to do before start programming, hopefully will learn something from this
Thanks for the interest. My modular source design relies on inheriting classes from the base, abstract libraries, which helps create an expandable project. The server projects really are just cases around the infrastructure. The only setback in this design is the message and map server communication handlers. If you combine the servers, however, it would be a very clear-cut project, like my Kibou project's design.

Edit: Not saying you should combine the servers. That's completely up to you and what your plans would be for a project like this. There are advantages of keeping them separated, and there are advantages of keeping them together.
Spirited is offline  
Old   #4
 
elite*gold: 0
Join Date: Oct 2007
Posts: 1,476
Received Thanks: 558
You must register and activate your account in order to view images.

Do you mind telling us what has already been done ? :O


turk55 is offline  
Thanks
1 User
Old   #5

 
elite*gold: 0
Join Date: Jul 2011
Posts: 6,536
Received Thanks: 3,170
It's a base source, so just very basic systems such as the map and screen system, character loading and creation, and messages. I wasn't going to spend too much time on this project, so the rest is up to you (or whoever wants to develop with the source after me).
Spirited is offline  
Old   #6
 
elite*gold: 0
Join Date: May 2011
Posts: 648
Received Thanks: 411
Lets see what codes I can steal :3

Stolen:

Concurrent Random
Y u k i is offline  
Thanks
5 Users
Old   #7

 
elite*gold: 0
Join Date: Jul 2011
Posts: 6,536
Received Thanks: 3,170
Quote:
Originally Posted by Y u k i View Post
Lets see what codes I can steal :3
Steal away, as long as you recognize and read what you're stealing.
Spirited is offline  
Thanks
1 User
Old   #8
 
elite*gold: 0
Join Date: Jul 2011
Posts: 344
Received Thanks: 174
FINALLY ITS OUT!, Thanks for the homework fang <3
Execution! is offline  
Thanks
1 User
Old   #9
 
elite*gold: 0
Join Date: Feb 2011
Posts: 335
Received Thanks: 171
best src evr.
Arco. is offline  
Old   #10
 
elite*gold: 0
Join Date: Feb 2014
Posts: 76
Received Thanks: 4
Good work ,
Fang .
AhmedGfx is offline  
Old   #11
 
elite*gold: 0
Join Date: Jan 2008
Posts: 32
Received Thanks: 0
how do i send the packets? sorry nooby question here...
Hikaru01 is offline  
Old   #12

 
elite*gold: 0
Join Date: Jul 2011
Posts: 6,536
Received Thanks: 3,170
Quote:
Originally Posted by Hikaru01 View Post
how do i send the packets? sorry nooby question here...
No, it's not a nooby question. I know I over-complicated the source a bit. I was experimenting with a map and message server. First, you should know that any packet made with the PacketStructure base class can be implicitly converted into a byte array to be sent.

Client <--> Message Server:
Receive packets on server in Message Packet Handlers.cs.
Send packets to client using client.Send(byte[] packet).
Nothing new there. If you don't need the map server to check something, just handle it on the message server.

Message Server <--> Map Server:
Receive packets on the map server in Packet Handlers.cs.
Receive packets on the message server in Map Packet Handlers.cs.
Send packets to the map server using client.MapServer.Send(byte[] packet).
Send packets to the message server using client.Send(byte[] packet).
All packets sent to the message server get sent to the client if there is no map packet handler for the packet on the message server.
Spirited is offline  
Old   #13
 
elite*gold: 0
Join Date: Apr 2011
Posts: 103
Received Thanks: 3
Question Problem

i got this Problem when i try to login

You must register and activate your account in order to view images.
ahmed1234550 is offline  
Old   #14

 
elite*gold: 0
Join Date: Jul 2011
Posts: 6,536
Received Thanks: 3,170
Quote:
Originally Posted by ahmed1234550 View Post
i got this Problem when i try to login

You must register and activate your account in order to view images.
Alright? Debug it then. That's the purpose of this source, to be a learning tool.
PS: There are many examples on how to fix that problem on this forum. It's very easy to fix if you try.
Spirited is offline  
Thanks
1 User
Old   #15
 
elite*gold: 0
Join Date: Apr 2011
Posts: 103
Received Thanks: 3
Exclamation

im new in C# idk much about C# source's
can you tell me how to fix this error please?

Edit.

i change my libeay32.dll but problem not fix yet,

and change project running in 32bit mode.

still not fix

Edit.

Problem fix! but when i login i cant see any npc,mob or ping... nothing


ahmed1234550 is offline  
Reply



« Previous Thread | Next Thread »

Similar Threads
Public Source Development: Project Phoenix
Hey everyone, I was told that the next time I create a thread about this project, I should just make it a development thread... so here it is....
18 Replies - CO2 PServer - Discussions / Questions
5187-5200 Packet collection?
Hey, ImmuneOne's 5187 source doesn't include all the packets, Does anyone have an old source around with most of the packets for that patch? I...
2 Replies - CO2 PServer - Discussions / Questions
New itemtype,StrRes.ini patch 5187
New ItemType Patch 5187 Weapons Examples:- EmperorKatana. >> Refiend Katana EmperorKatana. >> Unique Katana EmperorKatana. >> Elite Katana ...
52 Replies - CO2 Exploits, Hacks & Tools
Phoenix Project finally released for closed beta testers?
Wie manche noch wissen wurde vor einiger zeit ein S4-Privatserver projekt namens Phoenix angekündigt, die Beta sollte am 14. Oktober stattfinden,...
6 Replies - S4 League
Phoenix Project
Extra sorry for English translation, again big fail by Google ~ PS : Explore mode accept 64 players max actually (with buggy for list of...
14 Replies - S4 League



All times are GMT +1. The time now is 19:51.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2017 elitepvpers All Rights Reserved.