Results 1 to 6 of 6
Like Tree1Likes
  • 1 Post By Cranavvo

Thread: Booched Emulator (C#, MySQL)

  1. #1
    Junior Member
    Cranavvo is offline

    Posts
    16

    Booched Emulator (C#, MySQL)

    I said when I first joined here I would try and make something to further my desktop development skills and I thought, because everything on here is breaking the rules of Puzzle Pirates any way, we take it one step further and jump into Private Server Development.

    I would like to say, yes, I have saw the ThreeDonuts Emulator and I have been using the PacketCrypt class in order to decode and encode the packets to the Puzzle Pirates Client. I would like the thank the developer of that for helping me code this.

    I would like to start by saying that this is a long project and the likely hood of a Public BETA coming any time soon is very low. I have no even began to work on the client-to-server interactions at all, I have just been building the environment of the emulator.

    Planned features
    • Register and Login which will be stored into a MySQL server
    • Ability to chat in-game
    • Go-to an island/scene

    I am not pushing myself to completely replicate the game at the moment, all I want is to get things so people can join and chat... basically I'm doing what obstacles I think will be easy.

    Below is a little bit of code I have taken from the TCP class which handles the connections from the client. When logging in I need it to be a completely new pirate entering the server and so on so forth and only when they are logged in can I manipulate them using the Pirate class:

    Code:
            protected void Receive(IAsyncResult Result)
            {
                try
                {
                    this.Log.Output("Connection to the client established.");
                    this.Connector[this.SocketID] = this.Listener.EndAccept(Result);
                    this.Listener.BeginAccept(new AsyncCallback(this.Receive), null);
    
                    this.User = new Pirate(this.Connector[this.SocketID], this.SocketID);
    
                    this.Log.Output("This is where I will handle the packets..... IF I HAD ANY!");
    
                    this.SocketID++;
                }
                catch (Exception)
                {
                    this.Log.Error("Socket error occurred!");
                }
            }
    So yeah, I'll keep updating this thread with any updates and we'll see where I get to!

    Ferizaj likes this.


  2. #2
    Junior Member
    Cranavvo is offline

    Posts
    16
    I have managed to start sending packets to interact with the client. If anybody tries to login they're getting the "wrong password" screen.

    I now have to build it up so that it is looking into the database for usernames and passwords.

    - - - Updated - - -

    Another little preview of me messing with the error messages of the client:


  3. #3
    Server Admin
    Sticky is offline

    Posts
    966
    Massive project you're looking at, but very nice work.

  4. #4
    Senior Member
    Ferizaj is offline

    Posts
    227
    Have seen someone do something like this in similar games, haven't seen them actually finish. Good luck with your project.

  5. #5
    Junior Member
    Cranavvo is offline

    Posts
    16
    Quote Originally Posted by Ferizaj View Post
    Have seen someone do something like this in similar games, haven't seen them actually finish. Good luck with your project.
    It's quite hard to do and very long to complete on my own and also there's also the issue of I'm learning C# so I think that when, if ever, the source is released it is deemed obsolete.

    Quote Originally Posted by Sticky View Post
    Massive project you're looking at, but very nice work.
    Yeah, thank you. Only baby steps at the moment.


  6. #6
    Junior Member
    Cranavvo is offline

    Posts
    16
    I have began Packet Sniffing Y!PP. I've decided to brand the packets and bytes within ThreeDonuts very outdated, and or wrong. How they have ever been written in code to be correct is actually beyond me.

    This has put the development plan back quite a bit since it takes hours to decode and find the right packets.


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •