Post: rsps client hack
08-07-2010, 05:25 AM #1
(adsbygoogle = window.adsbygoogle || []).push({}); Veng gfx fix
Purpose: Making veng gfx work
Difficulty: 1/10
Knowledge To read and C&P
Classes Modified: Spotanim.java, cache, playerassistant.java

first go to your Playerassistant and search for

Code:
//c.gfx100(604);//Just use c.gfx100remove the //
Now save and compile

now go into your spotanim.java (Client sided)
search for ur vengeance method and replace

Code:
if(j == 604){//Red skull
cache[j].anInt405 = 1500;
cache[j].anInt406 = 4417;
cache[j].aAnimation_407 = Animation.anims[cache[j].anInt406];
}with this :

Code:
if(j == 604){//Red skull
cache[j].anInt405 = 12411;
cache[j].anInt406 = 4417;
cache[j].aAnimation_407 = Animation.anims[cache[j].anInt406];
}i just changed the model id but its a bit easyer now since that is the original model

now we are going to add the model


put this in Your cache /Raw
UppIT - Free File hosting - 12411.dat
compile and use ur veng





Adding World Map Hovering/Button
Purpose: To add hovering for your world map icon, and giving it an actionID.
Difficulty: 1/10, if you have common sense and basic client/Java knowledge.
Assumed Knowledge: Basic client knowledge, basic Java knowledge.
Classes Modified: client.java and Sprite.java
Client Base: You must login or register to view this content.

I do not give permission for my tutorials to be converted to non-renamed and released.

NOTE: This will only work right away for my refactored base. You can configure it for yours, but this is for mine.

Step 1: Getting the sprite to load.

Download this sprite(save it): You must login or register to view this content.. Make sure it is saved as mapiconh.png, in the Sprites folder.


Now, to make the sprite load correctly, we must edit Sprite.java, and client.java. First, lets do Sprite.java. In Sprite.java, find:


Code:
} else if (img.equalsIgnoreCase("mapicon")) {simply replace it with:

Code:
} else if (img.equalsIgnoreCase("mapicon") || img.equalsIgnoreCase("mapiconh")) {Now save and close Sprite.java. Open up client.java, and find:

Code:
worldMapIcon = new Sprite("mapicon");Under it, add:

Code:
worldMapIconH = new Sprite("mapiconh");Find:

Code:
private Sprite worldMapIcon;Under it, add:

Code:
private Sprite worldMapIconH;Find:

Code:
worldMapIcon = null;Under it, add:

Code:
worldMapIconH = null;That will load the sprite. But you aren't finished.


Step 2: Getting the mouse-over to work.

Find "public int logIconHPos = 0;", and below that add:

Code:
public int worldMapHPos = 0;Then find "public void processMapAreaClick() {", and replace that method with:

Code:
public void processMapAreaClick() {
if(super.mouseX >= 742 && super.mouseX <= 764 && super.mouseY >= 1 && super.mouseY <= 23) {
logIconHPos = 1;
} else {
logIconHPos = 0;
}
if(super.mouseX >= 527 && super.mouseX <= 560 && super.mouseY >= 126 && super.mouseY <= 159) {
worldMapHPos = 1;
} else {
worldMapHPos = 0;
}
}Now find "public void drawWorldMapButton() {", and replace that whole method with:

Code:
public void drawWorldMapButton() {
if(worldMapHPos == 0) {
worldMapIcon.drawSprite(8, 124);
} else if(worldMapHPos == 1) {
worldMapIconH.drawSprite(8, 124);
}
}This will make it so if you mouse over the world map icon, it draws the hover sprite.


Step 3: Making it a button with an action.

Find "public void rightClickMapArea() {", and replace the entire method with:

Code:
private void rightClickMapArea() {
if(super.mouseX >= 742 && super.mouseX <= 764 && super.mouseY >= 1 && super.mouseY <= 23 && tabInterfaceIDs[10] != -1) {
menuActionName[1] = "Logout";
menuActionID[1] = 1004;
menuActionRow = 2;
} else if(super.mouseX >= 527 && super.mouseX <= 560 && super.mouseY >= 126 && super.mouseY <= 159) {
menuActionName[1] = "World Map";
menuActionID[1] = 1005;
menuActionRow = 2;
}
}Now find "if(l == 1004) {" and above that, add:

Code:
if(l == 1005) {
//World map action
pushMessage("The world map feature is currently disabled.", 0, "");
}Now I don't know what you want it to do, but you can make it do anything you want by putting it in there.
__________________________

Now thats it, you're done. Save, compile, try it out. If you have any errors, feel free to ask about them.

Credits to Galkon.





Last Updated: August 22, 2009
Difficulty: Look at poll
Purpose: To make a webclient for your server/site.
Browser's Tested on: Google Chrome (with the java plugin), Internet Explorer, Mozilla Firefox, Opera.
Client's Tested on: Mine But should work on all 317 clients
Classes Modified: Signlink.java, Client.java, Class30_Sub2_Sub1_Sub1.java
Table of Contents:

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

Section 1 - Updates/Requirements
1.1 - Revision History:

Code:
1/2/09 - Downloading cache percentage will appear in the client(no more jframe)
1/3/09 - Downloads cache faster.
4/1/09 - Tutorial re-written.
4/2/09 - Uploaded "Cache + Sprites Zipping" video from uppit to youtube.
4/25/09 - Tutorial updated.
4/28/09 - Step 2.6 was updated.
5/3/09 - Step 2.3 was updated.
8/22/09 - New FAQ question and updated browser's tested on list.1.2 - Requirements
1. Regular Web host or VPS(Virtual Private Server) or Dedi(Dedicated Server) - For the web client page, client.jar(Should be around 600kb), cache.zip(usually is around 16mb)
2. Jar maker - Download below
3. A Client
4. Patience and Time

1.3 - Files to download:
1. Jar Maker: You must login or register to view this content.

Incase above don't work:
You must login or register to view this content.

Section 2 - Tutorial:
This video is to help you see what you gotta do.
Webclient tutorial video: [ame=https://www.youtube.com/watch?v=l7o4uNTrdEQ&fmt=22]YouTube - ‪Webclient Tutorial Video‬‎[/ame]
Subscribe for future videos. I might make a new webclient video or something.
--------------------------------------------------------------------------------------------------------------

2.1 - Step 1 - Signlink.java
Open up Signlink.java and search for findcachedir() and replace that method with this one:



replace yourclientname with the name of your client. For example: C:/.ricscape_file_store_32/
Save signlink.java and close it.

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

2.2 - Step 2 - Client.java
Open up client.java and search for Class44 method67 and replace that method with this one:


Code:
private Class44 method67(int i, String s, String s1, int j, byte byte0, int k)
{
byte abyte0[] = null;
int l = 5;
try
{
if(aClass14Array970[0] != null)
{
abyte0 = aClass14Array970[0].method233(true, i);
}
if(abyte0 == null)
{
method13(15, (byte)4, "Downloading Cache");
downloadcache("YOUR CACHE URL LINK HERE", "cache.zip", "", "cache");
}
if(aClass14Array970[0] != null)
{
abyte0 = aClass14Array970[0].method233(true, i);
}
}
catch(Exception exception) { }
if(abyte0 != null);
if(abyte0 != null)
{
Class44 class44 = new Class44(44820, abyte0);
return class44;
}
int i1 = 0;
do
{
if(abyte0 != null)
{
break;
}
String s2 = "Unknown error";
method13(k, (byte)4, "Client updated - please reload client");
//method13(k, (byte)4, (new StringBuilder()).append("Requesting ").append(s).toString());
Object obj = null;
try
{
int j1 = 0;
DataInputStream datainputstream = method132((new StringBuilder()).append(s1).append(j).toString());
byte abyte1[] = new byte[6];
datainputstream.readFully(abyte1, 0, 6);
Class30_Sub2_Sub2 class30_sub2_sub2 = new Class30_Sub2_Sub2(abyte1, 891);
class30_sub2_sub2.anInt1406 = 3;
int l1 = class30_sub2_sub2.method412() + 6;
int i2 = 6;
abyte0 = new byte[l1];
for(int j2 = 0; j2 < 6; j2++)
{
abyte0[j2] = abyte1[j2];
}

while(i2 < l1)
{
int k2 = l1 - i2;
if(k2 > 1000)
{
k2 = 1000;
}
int l2 = datainputstream.read(abyte0, i2, k2);
if(l2 < 0)
{
s2 = (new StringBuilder()).append("Length error: ").append(i2).append("/").append(l1).toString();
throw new IOException("EOF");
}
i2 += l2;
int i3 = (i2 * 100) / l1;
if(i3 != j1)
{
method13(k, (byte)4, (new StringBuilder()).append("Loading ").append(s).append(" - ").append(i3).append("%").toString());
}
j1 = i3;
}
datainputstream.close();
try
{
if(aClass14Array970[0] != null)
{
aClass14Array970[0].method234(abyte0.length, abyte0, (byte)2, i);
}
}
catch(Exception exception3)
{
aClass14Array970[0] = null;
}
}
catch(IOException ioexception)
{
if(s2.equals("Unknown error"))
{
s2 = "Connection error";
}
abyte0 = null;
}
catch(NullPointerException nullpointerexception)
{
s2 = "Null error";
abyte0 = null;
if(!signlink.reporterror)
{
return null;
}
}
catch(ArrayIndexOutOfBoundsException arrayindexoutofboundsexception)
{
s2 = "Bounds error";
abyte0 = null;
if(!signlink.reporterror)
{
return null;
}
}
catch(Exception exception1)
{
s2 = "Unexpected error";
abyte0 = null;
if(!signlink.reporterror)
{
return null;
}
}
if(abyte0 == null)
{
for(int k1 = l; k1 > 0; k1--)
{
if(i1 >= 3)
{
method13(k, (byte)4, "Game updated - please reload page");
k1 = 10;
} else
{
method13(k, (byte)4, (new StringBuilder()).append(s2).append(" - Retrying in ").append(k1).toString());
}
try
{
Thread.sleep(1000L);
}
catch(Exception exception2) { }
}

l *= 2;
if(l > 60)
{
l = 60;
}
aBoolean872 = !aBoolean872;
}
} while(true);
Class44 class44_1 = new Class44(44820, abyte0);
if(byte0 != -41)
{
throw new NullPointerException();
} else
{
return class44_1;
}
}Replace the following:
YOUR CACHE URL LINK HERE
cache.zip
which is in this line:
downloadcache("YOUR CACHE URL LINK HERE", "cache.zip", "", "cache");
You only replace what's in the first 2 quotes.

The first quote is your link.
Your cache link must end with .zip
For example:
You must login or register to view this content.

The second quote is the extraction so it would like this:
"cache.zip"
Unless your zip file has a different name. If it does then you would put:
"zipfilename.zip"

This is the most important method and without it your client will not download the cache.
On top of Class44 method67 put this:

Code:
/*
Made by Ric914
*/
public String name;
public String dir;

public void downloadcache(String url, String name1, String dir1, String type)
{
dir = dir1;
name = name1;
try
{
URLConnection connection = (new URL(url)).openConnection();
String f[] = url.split("/");
File file = new File(f[f.length - 1]);
int length = connection.getContentLength();
InputStream instream = connection.getInputStream();
try{new File(signlink.findcachedir()+dir).mkdir();}catch(Exception e){}
FileOutputStream outstream = new FileOutputStream(signlink.findcachedir()+dir+file);
int size = 0;
int copy;
byte[] buffer = new byte[4096];
while((copy = instream.read(buffer)) != -1)
{
outstream.write(buffer, 0, copy);
size+= copy;
int percentage = (int)(((double)size / (double)length) * 100D);
method13(percentage, (byte)4, "Downloading Cache - "+percentage+"%");
}
if(length != size)
{
instream.close();
outstream.close();
} else
{
method13(5, (byte)4, "Unpacking files...");
instream.close();
outstream.close();
unZipFile();
deleteFile();
method13(10, (byte)4, "Unpacking was complete");
}
}
catch(Exception e)
{
System.err.println("Error connecting to server.");
e.printStackTrace();
}
}
public void writeStream(InputStream In, OutputStream Out) throws IOException
{
byte Buffer[] = new byte[4096];
int Len;
while((Len = In.read(Buffer)) >= 0)
{
Out.write(Buffer, 0, Len);
}
In.close();
Out.close();
}

public void unZipFile()
{
try
{
ZipFile ZipFile = new ZipFile(signlink.findcachedir()+dir+name);
for(Enumeration Entries = ZipFile.entries(); Entries.hasMoreElements()Winky Winky
{
ZipEntry Entry = (ZipEntry)Entries.nextElement();
if(Entry.isDirectory())
{
(new File(signlink.findcachedir()+dir+Entry.getName())).mkdir();
} else
{
writeStream(ZipFile.getInputStream(Entry), new BufferedOutputStream(new FileOutputStream(signlink.findcachedir()+dir+Entry.getName())));
}
}
ZipFile.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}

public void deleteFile()
{
try
{
File file = new File(signlink.findcachedir()+dir+name);
file.delete();
}
catch(Exception e)
{
e.printStackTrace();
}
}Once you have added those method's in your client.java, scroll all the way up still you see import's then add the following under the rest of them.

Code:
import java.awt.Dimension;
import java.net.URL;
import java.net.URLConnection;
import javax.swing.*;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;--------------------------------------------------------------------------------------------------------------

2.3 - Step 3 - Class30_Sub2_Sub1_Sub1.java(Sprites)
Now for the sprite part. Which most people don't do right.
Open up Class30_Sub2_Sub1_Sub1.java and replace all:

with this

Like this:

Do the same for the background

Once you have changed the location your client reads the sprites from your gonna wanna save the file and close it.

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

2.4 - Jarring and Signing
Before we start make sure you have downloaded the jar maker.(link located on top)
If you have already downloaded it then run the jar maker and watch this video.

Jarring and signing video: [ame=https://www.youtube.com/watch?v=9obXgxm_9qY&fmt=18]YouTube - ‪Jaring and Signing client‬‎[/ame]

Once you have jarred and signed the client do the following:
Put the cache files(Everything inside the cache folder) and sprite "folder" together in a zip file.

To understand what i mean watch this video:
Cache + Sprites/Background Zipping:
Youtube: [ame=https://www.youtube.com/watch?v=KUPvCEObZuk]YouTube - ‪Cache + Sprites Zipping‬‎[/ame]

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

2.5 - Webclient Web Page

Replace yourclientname with the name of your client.

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

2.6 - End of tutorial details
This is what your webclient should do if you did this tutorial right:
[ame=https://www.youtube.com/watch?v=4wzI6JJP-Ds&fmt=22]YouTube - ‪Finished Webclient‬‎[/ame]

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

Section 3 - Extra
3.1 - Frequently Asked Questions
Question: What's a good file host for my cache?
Answer: You can use any host that allows direct linking. Here are some that allow direct linking:
You must login or register to view this content.
You must login or register to view this content.

Question: Ric, it's too hard. Can you make it for me?
Answer: No, I don't do this for people anymore. You gotta learn how to make a webclient for when you update your client.

Question: I have found a error or a misspelled word on your tutorial, what do I do?
Answer: Send me a private message with the error or misspelled word.

Question: The java console says it cannot find client.class, What should I do?
Answer: I recommend deleting all the class files and recompile your client.

Question: I get the 1,2,3,4,5 error. What do I do?
Answer: Make sure you have the cache and sprites in cache.zip and that the client reads the cache and sprites from *where your cache.zip downloads/extracts to*

Question: I get a java heap space error, What do I do?
Answer: Make sure you have <param name="java_arguments" value="-Xmx1024m"> in your applet code.
--------------------------------------------------------------------------------------------------------------

3.2 - Credit:
Ric914 - Writing/Releasing this tutorial.
Moparisthebest - I used some stuff from his downloader


No Credits to me bc its Ric's Tut
I only posted this bc i thought We need a Webclient Tut !

The following user thanked hiyav1 for this useful post:

racecar12
08-07-2010, 03:55 PM #2
orange12
Space Ninja
Originally posted by another user
3.2 - Credit:
Ric914 - Writing/Releasing this tutorial.
Moparisthebest - I used some stuff from his downloader


No Credits to me bc its Ric's Tut
I only posted this bc i thought We need a Webclient Tut !


1. what exactly does this do ?
2. did you copy and paste from another site ?

Copyright © 2024, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo