PDA

View Full Version : Little Trilogy server code project


Zaela
08-07-2017, 09:10 PM
There used to be an open source Trilogy server project somewhere, but apparently it isn't open source any more. So, here's a new one.

Video: link (https://youtu.be/vhoKePVSzrU)

Code: link (https://github.com/SCMcLaughlin/zeq-server-trilogy)

Very early stages. Literally all it can do right now is let a Trilogy client log in, create a character, and enter their starting zone. Most of the client packet knowhow is lifted from very old EQEmu sources, but the core design is pretty different from EQEmu past or present. Aiming to be fairly clean, efficient and self-contained, with some dev-friendly ways of handling content.

Current progress represents about 3 weekends of effort, plus some time actively slacking off at work. Pretty happy with how it's come together so far, so hopefully I won't burn out too quick.


"Who cares about code, I just want some nostalgia!"

If you have access to the Trilogy client and want to create a character and wander around your empty starting zone with it, you can download the current server and run it locally.

Download: link (https://www.dropbox.com/s/txf14kyvvr8c4x3/zeq-server-trilogy.zip?dl=0)

Steps:

Unzip zeq-server-trilogy.zip.
Open the zeq-server-trilogy folder that was unzipped, shift-right-click inside it and select "Open command window here" from the context menu.
In the command window, type zeq and hit tab to have it autocompleted to zeq-server-trilogy.exe
Press enter to run zeq-server-trilogy.exe. You should see some messages spit out while the server briefly starts up.
In your Trilogy client folder, open eqhost.txt and make it look like this:

[Registration Servers]
{
"127.0.0.1:5998"
}
[Login Servers]
{
"localhost:5998"
}
Run the Trilogy client and log in. A local login account will automatically be created with whatever username and password you put in.



There are no extra dependencies to install, but you may need to download and run these redistributables (specifically "vc_redist.x86.exe", if you are given a choice) from Microsoft if you get "missing dll" errors:

http://www.microsoft.com/en-us/download/details.aspx?id=29
https://www.microsoft.com/en-us/download/details.aspx%3Fid%3D53840

SamwiseRed
08-07-2017, 10:03 PM
nice key logger

Swish
08-08-2017, 01:30 AM
I don't know about anyone else but I enjoyed the video, very fitting end <3

Zaela
08-08-2017, 10:47 AM
nice key logger

you can always compile it yourself if you want to be sure

trite
08-08-2017, 01:17 PM
the problem with open source emu servers is that they will be hacked to pieces if they ever become popular....if they released the p99 source tomorrow, the server wouldn't last until the day after tomorrow.

Zaela
08-09-2017, 11:06 AM
I'd play it. Might go mad from all the inaccurate content but I like the looks of that UI.

I think you misunderstand. I'm not really interested in making a server with specific content you could log into and play. Just a platform for anyone who might want to try making such a server using the Trilogy client. I imagine anyone who did that would probably skew toward classic, although personally I'd be more interested in something classic in spirit but with more complex NPC behavior and challenging, non-trivializable raid content instead... but that's just me.

the problem with open source emu servers is that they will be hacked to pieces if they ever become popular....if they released the p99 source tomorrow, the server wouldn't last until the day after tomorrow.

Most of the insecurity in EQ comes from the laughably naive design of the client, where it is given way too much information that it can spy on, and sometimes change to influence how it behaves. The server code has limited influence on any of that. I understand that P99 deals with this to some degree with its (heavily-packed) dll injection thingy, but other than a layer of encryption used for sensitive packets and maybe some verification, the involvement of the server in any of that would likely be quite small. (Unrelated, but last time I checked you can still do minor cheats on P99 by editing model data to make walls semi-transparent or able to be walked through, or make your character tiny so you can squeeze into tiny gaps.)

The "hacks" that can be done by sending bad packets to the server (using bad position updates to warp, sending zone requests out of nowhere, moving items to slots that shouldn't be accessible, etc) are largely things that can be detected and denied (EQEmu already handles the mentioned things and others).

Probably inevitable that some crash bugs would sneak in, but the best way to deal with those is to find the cause and fix them.

Anyway, if I did get aynwhere with my code and decided to use a permissive license, someone could make a closed-source fork and do all the things P99 does if they wanted ... kind of like P99 did with EQEmu.