Make a client for your server!
Summary:
Well as you probably the know the last tutorial on how to make a client was pre-dated back to June 07, meaning out-dated sources and none of the more modern releases can be used. This tutorial will give you the foundations on which you can build a great client, it will explain different aspects of the 317 client and things you can do when trying to make a client. Credits will be given to the different sources that are used during this tutorial and a personal thanks also goes out as the sources that are used are the things that made this possible.
Step 1 - Getting Started:
In order to get started you will have to get a base client source, I recommend you use a renamed source (WYSIWYG Client), meaning that the variables in the client are a lot easier to understand then the non-renamed version as they are named according to what they do whilst the non-renamed version is just variables that are numbered with no clue in then name on what it does. If you are already accustomed to non-renamed then please go ahead and use one. Most tutorials these days are a mixture so it doesn't really matter what base you get as it's not too hard to convert the variables.
Here is a list of bases, it is recommended you use one of these. They are both renamed and non-renamed below:
Last three need a cache so here:
http://www.rune-server.org/showthread.php?t=116551
(Thanks to stewie for link to last three clients.)
If you do not have a past experience with clients I don't recommend you use the last client on the list as that requires you to set up everything and start from a client with no features that can't even connect to a server currently and requires you to set it all up. Whichever one you pick, you are going to need a compiler. Seeing as you already have a server I will presume you have JDK, if not you can download it here:
https://cds.sun.com/is-bin/INTERSHOP...-CDS_Developer
Once you have got this installed you are ready to begin developing as that allows your compiler to work. Each of the client bases should come with a compiler, if not you can always download another base and take a compiler or learn from the compiler that is in their. For those of you who do not know what a compiler is, a compiler is a batch file that lets you execute a command that takes all of your java code a turns it into bytecode of which the computer can understand. Do not ever tamper with the class files as you are not expected to know/edit bytecode. The simplest of compilers comes in the form of:
"JAVAC *.java"
This allows you to compiler all files with a .java extension in a single directory. Although you will need your paths setup in order to be able to use that code. In order to setup your classpaths simply follow this tutorial for Vista, if you want it for XP just simply do the same but for "My Computer".
Vista:
Click "Start" > right click "Computer" > Click "Properties" > Then go to "Advanced System Settings" > and finally "Environmental Variables".
Once you have got that page open click new under "User Variables" and put the following information in.
Variable name:
CLASSPATH
Variable value: CLASSPATH=C:\ProgramFiles\Java\jdk1.6.0_10\bin;%CL ASSPATH%;
Now click OK and then click "new" once again under "User Variables" and put the next bit of information in.
Variable name:
PATH
Variable value:
C:\Program Files\Java\jdk1.6.0_10\bin
Click OK but this time click new under "System Variables" and put this information in.
Variable name:
CLASSPATH
Variable value:
.;C:\Program Files\Java\jre6\lib\ext\QTJava.zip
Click OK and then click ok on the System Properties menu in order to apply everything you have just done.
Congratulations you have correctly configured your classpaths in order for javac to work!
Step 2 - Customizing your client:
If the client is going to be for your server you will firstly have to change the name, client background and more to make it different from other clients. Go into the Client class (Client.java) and press "CTRL+F", the search box will appear. Type into it the name of the client and search down the whole file for the names, change these names to what you want it to be for your own server. Please bear in mind some names may be in different classes such as GUI.java and RSFrame.java (renamed).
Once you have changed all the names in your client you are ready to change the client background, before you do anything get yourself an image that you want as your client background for the login page. You will now need to make sure that the image is 766 x 533. Once you have done everything you want with the image including titles and more, open it up in paint. You will now need to cut the image in half length ways and flip the image horizontally, once you have done that save it as a "background.png" in a directory called "Sprites" in your client files. Now go into Sprite.java or Class30_sub2_sub1_sub1 depending on whether your renamed or not, and find something similar to this:
Image image = Toolkit.getDefaultToolkit().getImage("path to background.");
change that to:
Image image = Toolkit.getDefaultToolkit().getImage("./Sprite/background.png");
Congratulations, you should now have a customized client with both your server name and background on it!
Step 3 - Developing your client:
Now that you have customized your client you will want to be adding all of the features that your server demands from your client, this guide will teach you not just some random tutorials but will show you how you can go about getting pretty much anything done. You will be able to use the principles that are shown in section three and apply them to most updates you could possibly want to do to your client.
Instead of me just spamming this guide with every tutorial known to man I'll link to some of the more bigger tutorials used for things that most people want to do.
Some commonly used tutorials:
To add custom items/npcs/objects or any new items that aren't in the 317 cache - http://www.rune-server.org/showthread.php?t=117887
To add a jframe menu - http://www.rune-server.org/showthread.php?t=90869
You can use this to learn about and how to implement custom interfaces - http://www.rune-server.org/showthread.php?t=130016
Removing the flames from 317 de-ob - http://www.rune-server.org/showthread.php?t=21076
New HP bar from RuneScape - http://www.rune-server.org/showthread.php?t=144903
This isn't so much a tutorial as it is a tip, I recommend you go by this if you want to have an original client - http://www.rune-server.org/showthread.php?t=104173
How to add a client update:
They are just a few of many tutorials that will be helpful to somebody developing a client for their server, you do not have to do them all if you don't want the features of which they offer. Now for the main part of section three, what to do if you don't know how to add something. This will help you first find out what you want to do and then how to do it.
Firstly, what is it you are trying to do? Is it something that is likely to have been done before? Or is it something completely new. The first thing you should do is go to the tutorial section and use the search functions to make sure that it has not already been released as a tutorial, you should also check over the snippet section as it may have been released their also. If there is no tutorial or snippet for it, it's time to check the downloads section to see if that feature has ever been released in an actual client. If yes, then download the client and check through the source code to see how it was done. If not, then it's time to start thinking logically, how can this be done? Use the following thread to help you:
http://www.rune-server.org/showthread.php?t=65881
You can check that thread to see what method/packet does what, you can utilize this thread by seeing if what you want to do is similar to something that is done by a method/packet in the client already. If you find a packet/method that is similar to what you want to do then locate it in your client files and check how it works and then implement the idea to get your update done. If you can still not do the update at this stage then simply post a help thread about the subject.
Step 4 - Getting your client downloaded:
Once your client is finished, you will need to zip the client with WinRAR. Once zipped you still need to get people to download the client. Simply go to http://www.**********/ and click browse, find the directory where you zipped your client files and click on it. Then click upload, once your client is finally uploaded the site will update and give you a link as to where people can download your client. Do what you want with this link, either make it appear as a login message on your server or put it on your forums or server status page. Anything that lets people see where to download it.
Credits:
There is too many credits to just make a list of names, instead I will just send a general thank you to anyone who contributed to this thread in anyway shape or form you know who you are.
I hope this thread helps, if there is anything else that I have missed that needs clarifying please post it and I will update the thread.
~Webber.