Jump to content

The Global Distribution System


Recommended Posts

The Global Distribution System is a combination of applications designed to make sending Pokemon to people relatively simple. There are a total of 3 separate parts to the program:

Part 1: The Global Trade Server (v1.03).

The Global Trade Server is a slightly modified version of HyperGTS v1.01 (By Madaruwode) designed to be compatible with the various interactions that the GDS requires it to have, such as checking for reservations and keeping track of the Pokemon to be sent.

The GTS itself has two separate modes: Receiving Mode and Distribution Mode.

Receiving Mode is where the server allows people to upload a Pokemon right from their DS (it gets rejected so they can keep the original) and inject it right into the Search Engine of the Global Distribution System, allowing people to download it. If someone has a reservation, and the server is in Receiving Mode, they are still allowed to get their reservation (but after that, if they revisit without a reservation, they will get the upload screen).

Distribution Mode has three separate modes:

1) Send one Pokemon: Straight forward. Sends out one Pokemon. Period.

2) Ordered Directory Distribution (O.D.D.): Sends out an entire folder, one Pokemon at a time and advances the current Pokemon after each connection. When it goes through the entire folder, it starts back over at the beginning.

3) Random Directory Distribution (R.D.D.): Sends out an entire folder in a randomized fashion.

Part 2: The DNS Server (v0.4)

The DNS Server is a modified version of DNS Server v0.3 (by M@T) to be compatible with the GDS. There were quite a few changes to the code to remove implicit conversions to speed it up as well as removing pieces that were obsolete (to what the GDS required at least).

Part 3: The Global Distribution System (v1.3 Alpha)

The Global Distribution System is a completely custom written piece of software that is the backbone of the entire system. It runs the Search Engine for the downloadable Client, the chat room used for the client, manages reservations and the uploading of custom Pokemon. The System itself also wraps around a custom C# wrapper (affectionately named PokeHack, written by a friend of mine) to read individual .PKM files and extract further details from them (such as IV's, EV's, stats, current level, and more), providing the client with personal details of each Pokemon file so the user can choose which Pokemon they want to download. The system will also allow users to report Pokemon that are bogus/bad/blatantly hacked.

To Do List:

1) Allow the client to download .PKM files directly.

2) Allow clients to perform direct edits on .PKM files to create a 'custom' Pokemon [Legitimacy passing is another thing entirely].

3) Bug fixing the client to not show yourself twice in the user list

4) Add a 4th distribution mode to the GTS where a Pokemon is given out for a specific amount of time, then another is given out (include support for O.D.D. & R.D.D. modes).

5) Actually get the report class finished (it's just a blank class right now)

6) Finish up several administrative interfaces for the server side.

7) Clean up blocks of code and comment more areas of code for other readability.

All the projects (there are a few DLL's, the Client and Server) were developed in Visual Studio 2010 using Visual Basic.NET and C#. The server requires (at minimum) the .NET Framework v3.5, while the Client requires .NET Framework v2.0

Check back periodically for more updates.

EDIT: Licensed this under the GNU GPL. I'll be updating the source files later with the proper headers...I'm pushed for time at the moment.

EDIT 2: Updated zip file with appropriate file headers.

EDIT 3: Removing the compiled version since the Client would never work properly due to the fact the IP it connects to is hardcoded in :frown: Yay me.

EDIT 4: NEW VERSION! WOO

Changelog:

HyperGTS now used for a GUI front, GTS portion ported to VB.net by a friend and manipulated by me

Several coding fixes.

Still no reporting class in :(

A few forms for managing the system.

Directly download Pokemon files to the computer.

...probably more that I missed, no idea.

GTS Binaries.zip

GTS Source.zip

GTS Binaries.zip

GTS Source.zip

Edited by formlesstree4
Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Thank you shiny quagsire. I plan on updating this system again soon, bug fixing the client (it's a mess sometimes still if it doesn't get what it wants) as well as a possible net code library to allow linking of multiple servers together which would involve the rewriting of a few parts to allow for searching and requesting to link across multiple servers. I'll need some testers for that to happen but would anyone be interested?

Link to comment
Share on other sites

  • 4 weeks later...

I have a question.

Okay, I want to distribute pokemon online without going in wifi with my HG game.

I also wanted to know, do you have to pay for this? lol.

Also, is it okay to keep it on for multiple hours? What's the max you can keep it open?

Okay. I started Hyper GTS, uploaded a .pkm file(but it said Pokemon sent:0), and started both the DNS and GDS servers. I copied the IP address to both the primary and secondary of the DS, but when I tested the connection, what came out was Error code 51300.

Okay, with the Start GTS button, I also tried just opening the DNS server, and when I tested the connection, it was green, but turned red and said Error code 52100. In the DNS log, it said "Got interrupt signal, aborting.." Any help with that?

Like above, with the Start GTS button, I tried just clicking the GDS server this time, and when I tested the connection, it was green, but turned red and said Error code 52100. This time, in the log, it didn't say there was an interruption.

Any suggestions? Did I upload the pkm file right? I made sure it was distribution mode.

Do I just either open the DNS, the GDS, or both?

Am I missing any other program?

I really want to distrubute pokemon without going in and out of the DS all the time.

Thanks for any help. ><

Link to comment
Share on other sites

You need to start the GTS server, not the GDS server to distribute Pokemon. The GDS is an additional program to allow reservations to be distributed out via the GTS.

EDIT:

1) You do not need to pay for this, although I wouldn't mind a donation :P

2) It can stay on as long as you want it to. I ran the program for nearly three days straight without issues.

To successfully distribute a Pokemon, you need to have the DNS and GTS servers running. The GDS is optional.

Link to comment
Share on other sites

Do you happen to know how to see if you're router is port 80.. and how to locate/open port 53?

Sorry, I'm not a computer person, when I need help I turn to my sister, but right now she's in another country than me. :(

As for firewall, I have MacFee as a protection.. but no firewall. I have it on, so will that effect the server? Or do I have to leave it off?

Thanks again for the information!

Link to comment
Share on other sites

Just downloaded your program and I think I found a bug or something. When I click start GTS everything works as it should, but when I stop it and start it again I get a System ObjectDisposedException. Only way I seem to be able to fix it is to restart the program other then that its pretty impressive.

Link to comment
Share on other sites

  • 4 weeks later...

Sorry this is so late...I'm probably done developing anything new for the GDS. If someone wants to take the source and modify it for working for B&W when possible they are free to. I do not have time as of now to keep supporting the project.

Any questions or comments may be sent via PM; sorry to anyone who was hoping for any new updates. There are a few bugs that are annoying at best but are fixable.

Link to comment
Share on other sites

  • 1 month later...

every time i try to connect to the GDS with the client, i get this error:

---------------------------

Stack Trace

---------------------------

System.Exception: The server is offline or unavailable!

Copy this box by pressing Ctrl + C and post it for Shiny Jirachi to see.

---------------------------

OK

---------------------------

anyone able to use it without problems who can help me? i'm trying to connect from one PC to another internally. i tried sending a poke to my DS and had no issue, so it's something just just the GDS part. does it use another port besides 53 and 80? although, that shouldn't matter because i'm behind my NAT/firewall.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...