Jump to content
Returning Members: Password Reset Required ×

Canyon Suite: A Comet project (for 6192)


Recommended Posts

Posted (edited)

Hello Cooldown, I'm here to release (partially) the Canyon Suite.

Canyon Suite is a Conquer Online bundle composed by the Game Server, Web APIs and Website (will not be released due to licensing issues), Launcher, Auto Backup and Discord Bot. Everything is being tested actually in a live server which is currently working with 70-130 online players.

Everything is on Beta right now, so if anyone plans to use any of this be aware that there might be errors. The Launcher itself is not complete yet but it'll be soon.

What is being released right now? Click here to check all repositories

Dragon (Launcher)

Canyon.Stress.Bot

Canyon Authentication Service

Canyon Realm Service

Canyon Keycloak User Federation Provider

What will be released in close future?

  • Discord Bot

Q: Login server won't startup due to invalid client error, what can I do?

R: You can create an API to provide the login information or you can change the login sequence to communicate with a MySQL Server. I aint providing my current Web API.

Canyon (Login, Game, Ai Servers) - Comet Based (Target Version 6192)

The Conquer Online game server, this server targets the version 6192 of the official english client. It still do not support DragonWarrior class or Epic Weapons, those will be added after finishing the Tournaments of the game (ElitePK, TeamPK, SkillTeamPK).

This is probably the most complete high version public source which actually handles things like Conquer did. I were a player at that version and I am trying to achieve what I used to play at that age.

It's compatible with the latest leaked CQ database (and you'll probably need it to get some tables working), besides what's in the repository I aint sending updated database file.

imagem-2023-05-16-173433493.png

Dragon - Launcher

The launcher is ready for version 6192 with Server.dat injection. This version does not have Flash anymore, so you don't need to release the launcher with Flash module.

The Launcher has been done with .NET 7 and has a publish profile which will create an executable that may run in any Windows Version without installing anything. The downside is that it's a 150mb folder.

Screenshot-55.png

Canyon stress bot

A simple tool which will login as many fake accounts as you need to stress your server. The bots walks, jump and attack. (AI must need some work btw)

imagem-2023-08-01-171913078.png

Edit:

Added a database dump with latest structures and some data. It contains no cq_action or cq_task data.

Edit 2023-08-15:

Added database structure for version 6192. No data or LUA scripts will be provided for this.

Edit 2023-10-09:

Added a provider for Keycloak to use within Canyon for OIDC.

Credits:

@Spirited for Dragon and Comet

Lee for the help with client addresses

dumps.7z

account_conquer.zip

6192_structure.7z

Tables structures for account and game after update 6192. No data will be provided.

Edited by Konichu
Posted
Great job with this! I'm looking forward to reading through your changes more once I'm done moving. If you wanna... you can also set up pull requests against Dragon or Comet with things you feel are relevant. Only if you wanna, though. I'd be happy to review them from my phone. Again, great work on this. Can't wait until I have some time to skim through it.
Posted

The game source code is public now.

Database probably is targeting 5838 and may have some structures missing. I won't be providing this for now since it has a lot of work in the database, but if you have the leaked database assets from 6900 it will fit for a lot of stuff.

imagem-2023-05-16-173433493.png

Client wont be provided, I still use retail 6090 client with no edits.

  • 2 weeks later...
Posted
Small suggestion regarding the backup tool, you could also set up a scheduler in the OS. That way you won’t need to keep the program running.
Posted

Small suggestion regarding the backup tool, you could also set up a scheduler in the OS. That way you won’t need to keep the program running.

I was thinking about it too, but I'm thinking about adding more features to this.

Maybe a maintenance server or something to automate other stuff.

Posted
Glad to see you contributing this here. I know sometimes it has hard to open up the stuff you have been putting effort into. Regardless thank you, doing so helps the community in the long run.
Posted

Just had an issue in the running server: monsters stopped to respawn.

Reason: Server 24 days online

Solution: Restart windows

Headache: 1 hour debugging code to think about Environment.TickCount

Posted

Just had an issue in the running server: monsters stopped to respawn.

Reason: Server 24 days online

Solution: Restart windows

Headache: 1 hour debugging code to think about Environment.TickCount

This is because Environment.TickCount returns values from Int32.MinValue to Int32.MaxValue. Therefore, if the system has been running for 24.9 days, the counter will turn negative and the expression Expired = Environment.TickCount-Elapsed > Timeout will return false for the next 24.9 days.

Posted

Just had an issue in the running server: monsters stopped to respawn.

Reason: Server 24 days online

Solution: Restart windows

Headache: 1 hour debugging code to think about Environment.TickCount

This is because Environment.TickCount returns values from Int32.MinValue to Int32.MaxValue. Therefore, if the system has been running for 24.9 days, the counter will turn negative and the expression Expired = Environment.TickCount-Elapsed > Timeout will return false for the next 24.9 days.

Yeah, I know. I did forget about it and then lost some time trying to solve the problem.

  • 2 weeks later...
Posted

Update 2.1.0-preview is on the development branch already.

It does not add nothing to the game itself but only a GM Tools server which will integrate to a GM Panel online.

What is Canyon.GM.Server?

Canyon GM Server (aka Piglet) is being developed and may change a lot in the next days. Since I plan on maybe upgrading to versions which use ProtoBuf I started using it already for the GM Server. It will make sure that realtime actions made in the GM Panel reflects into the game servers that are connected.

It also adds a new MsgBase which will be used to ProtoBuf packets (actually only for usage on GM Server) and may be used in the current server settings without any new addition.

public abstract class MsgProtoBufBase<TActor, TData> : MsgBase<TActor> where TActor : TcpServerActor
   {
       public MsgProtoBufBase(PacketType packetType)
       {
           Type = packetType;
       }

       public TData Data { get; set; }

       public override byte[] Encode()
       {
           using var writer = new PacketWriter();
           writer.Write((ushort)Type);
           Serializer.SerializeWithLengthPrefix(writer.BaseStream, Data, PrefixStyle.Fixed32);
           return writer.ToArray();
       }

       public override void Decode(byte[] bytes)
       {
           using var reader = new PacketReader(bytes);
           Length = reader.ReadUInt16();
           Type = (PacketType)reader.ReadUInt16();
           Data = Serializer.DeserializeWithLengthPrefix<TData>(reader.BaseStream, PrefixStyle.Fixed32);
       }
   }

Different from other packets, the ProtoBuf packets do not need to override Encode and Decode methods.

The GM Panel will be added here in the first message as soon as I make sure everything is working as planned, for now I just tested the ban feature which is working fine and if a user is online and the GM locks his account in the GM Panel it will be disconnected from the game server.

image.png

Edit: Account tables has been added to the main post as an attachment: account_conquer.zip

  • 2 weeks later...
  • 1 month later...
Posted
Hello , first of all thank you for this release , I just wanted to ask if this source is based on your project world conquer which means the bugs found are fixed in comet too or that is not included ?
Posted

It has some stuff based on Demons Source + other sources references + reversing bins and client. It is similar with WCOv2 in some parts but it's ofc not the same.

No deadlocks has been identified until now, so it is expected to don't have the same bugs. But it has new bugs xD (nothing that would crash the server but it has some bugs and missing features that are being fixed and implemented).

Posted
First, thank you for your good work, but I have some suggestions, with artificial intelligence, why is there no cross server system, transfer servers, and why is there no build, complete with script
Posted

First, thank you for your good work, but I have some suggestions, with artificial intelligence, why is there no cross server system, transfer servers, and why is there no build, complete with script

It sounds like it would be easy enough for you to add that yourself? What is stopping you?

Posted

First, thank you for your good work, but I have some suggestions, with artificial intelligence, why is there no cross server system, transfer servers, and why is there no build, complete with script

Because sadly artificial intelligence has yet to be able to create wizards and unicorns

Posted

First, thank you for your good work, but I have some suggestions, with artificial intelligence, why is there no cross server system, transfer servers, and why is there no build, complete with script

It sounds like it would be easy enough for you to add that yourself? What is stopping you?

I have the original crossserver bin, I don't need it. It was just a suggestion, then he uses the script I leaked

  • 3 weeks later...
Posted

The automatic backup too has beem removed from the list. It will be kept in the repository but it has been integrated with the GM Server which will soon also auto update the server.

Main branch is now being fed and will follow my server version.

From now on my pipeline will be packing game releases to THIS LINK. It will also be used by the server auto updater.

Those files are built to run on win-x64.

  • 3 weeks later...
Posted

The automatic backup too has beem removed from the list. It will be kept in the repository but it has been integrated with the GM Server which will soon also auto update the server.

Main branch is now being fed and will follow my server version.

From now on my pipeline will be packing game releases to THIS LINK. It will also be used by the server auto updater.

Those files are built to run on win-x64.

Could you give some small guide to get it started? It would be very useful, thanks for your contributions

  • 5 weeks later...
Posted

For those interested in using Keycloak as identity provider (in case you want to use Angular or some other kind of SPA without the need for implementing your own OAUTH2 and stuff) I added a repository which I am using to build a user federation provider.

Canyon Keycloak User Federation Provider

You'll need Java 17 and you can compile it with

mvn clean install

After compiling take ONLY the following JAR to /keycloak_folder/providers:

imagem-2023-10-09-193707243.png

And configure it in your realm with your database credentials

imagem-2023-10-09-193815551.png

And you'll be able to generate access tokens from Keycloak with the users information from Canyon account DB

imagem-2023-10-09-193955608.png

It still a work in progress and more functions will be added

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...