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