Perfect World Open Source Emulator

the pseudo compressor works now for most packets, the login is possible (although it isnt checked in any way for correctness)
As proof of concept, you can set your "C:\windows\system32\drivers\etc\hosts" to
Code:
188.40.48.211 pwieast3.perfectworld.com
and login to "Raging Tide" server. Any login/pass combo will work and deliver the same characters modified by me.
 
This project is open source. So any developer can make own emulator with blackjack and hookers.
tbnanubis, congratulations.
 
The server is running stable now for several hours.
Since most of you tried the Char creation, i think we will setup basic db stuff which can hold chars and accounts for you to play around with and find problems.
me want to test :P: i compiled your stuff on mah computer to test in local also :): Login perfect :):
 
Last edited:
Nice dude. You seem determined and I wish you jus't wont quit. Maybe since you are doing this for free you could ask some support with donations? Just an idea, maybe that would just make you want to work a little more than you already do! :D
 
You need Visual Studio 2010 and a SVN client. Checkout the repository and open the project in VS. Then you can run the subproject "LinkServer"

Edit: for those without svn or Visual Studio, i have uploaded a compiled LinkServer to the Downloads section which is visible again.
 
Last edited:
I want to test toooooooooo xD Lol

How exactly i can log in? What i need to do to "install" ur server

Lol

Answer:

the pseudo compressor works now for most packets, the login is possible (although it isnt checked in any way for correctness)
As proof of concept, you can set your "C:\windows\system32\drivers\etc\hosts" to
Code:
188.40.48.211 pwieast3.perfectworld.com
and login to "Raging Tide" server. Any login/pass combo will work and deliver the same characters modified by me.
 
So basically i need to change the host file and log into Raging Tide server on PWI? o_o

Sorry for those dumb questions <,<
 
You need Visual Studio 2010 and a SVN client. Checkout the repository and open the project in VS. Then you can run the subproject "LinkServer"

Edit: for those without svn or Visual Studio, i have uploaded a compiled LinkServer to the Downloads section which is visible again.

Just as a side note: Visual C# Express should work just fine with this since it isn't a multi language solution. If you do happen to have a nonexpress version of Visual Studio is a very, very nice SVN addin for VS, it may work in the express versions but most of the time addins don't

And I did just play with it a bit, so far so good...

Edit: Seeing as how every project displays the license... instead of repeating yourself so very often you should just stick it in a static class in AngelLib... (I'm assuming you'll eventually have them all build into the main project "AngelEmu" so one AngelLib.dll will be enough)

Such as
Code:
using System;

namespace AngelLib
{
    public static class License
    {
        public const String license = "Angelica emulator account server\n" +
            "Copyright (C) 2011  Anubis\n\n" +

    "This program is free software: you can redistribute it and/or modify\n" +
    "it under the terms of the GNU General Public License as published by\n" +
    "the Free Software Foundation, either version 3 of the License, or\n" +
    "(at your option) any later version.\n\n" +

    "This program is distributed in the hope that it will be useful,\n" +
    "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +
    "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n" +
    "GNU General Public License for more details.\n\n" +

    "You should have received a copy of the GNU General Public License\n" +
    "along with this program.  If not, see <http://www.gnu.org/licenses/>.";
    }
}
 
Last edited:
Yep, i just inserted this in advance because at the moment nothing is linked together.
The AngelEmu project will server as a launcher in the end, which gathers all information for startup and launches the subservers then. They should be all in the same directory if everything works like wanted.
Btw i just completed the random key generator for encryption. Seems it works like a charm. Next thing will be getting the correct hashed pwd to check login.

Update: login hash generation solved, it was just another hmacmd5 round with the hash stored in logindb and the key from the login challenge. Ill update this stuff in 1-2 hours.
 
Last edited:
Yep, i just inserted this in advance because at the moment nothing is linked together.
The AngelEmu project will server as a launcher in the end, which gathers all information for startup and launches the subservers then. They should be all in the same directory if everything works like wanted.
Btw i just completed the random key generator for encryption. Seems it works like a charm. Next thing will be getting the correct hashed pwd to check login.

Update: login hash generation solved, it was just another hmacmd5 round with the hash stored in logindb and the key from the login challenge. Ill update this stuff in 1-2 hours.

Having another thought... you could also have all the other project get built into dll's and let AngelEmu call them all up either with parameters OR if none given launch all...

Kind of weighing the benefits of having them build to actual executables... If you leave the classes public you can still call them from AngelEmu though...
 
That is what i kind of intent to do, but i like it more if you can start/stop a single service from task manager or explorer or shell.

The last update i made makes the Server actually check for a correct login!
The only account that will be working until we have a DB is "test:test"

---------- Post added at 10:43 PM ---------- Previous post was at 09:20 PM ----------

The evil facepalm strikes back again. You do not need to set a host entry. The serverlist simply went from "element\userdata\server\serverlist.txt" to "patcher\server\serverlist.txt"
 
That is what i kind of intent to do, but i like it more if you can start/stop a single service from task manager or explorer or shell.

The last update i made makes the Server actually check for a correct login!
The only account that will be working until we have a DB is "test:test"

---------- Post added at 10:43 PM ---------- Previous post was at 09:20 PM ----------

The evil facepalm strikes back again. You do not need to set a host entry. The serverlist simply went from "element\userdata\server\serverlist.txt" to "patcher\server\serverlist.txt"

Development is always full of /facepalms, hence my signature

And neat on the login parts
 
Back