Quantcast
Channel: Rune-Server
Viewing all 56156 articles
Browse latest View live

[317] Server Cache Help

$
0
0
I'm using Arkitori source, and I'm having trouble figuring out my cache issue

I am getting one of two errors.
The client saying "Requesting Title Screen", which means its reading my cache, but unsure where the sprites are.
And after going into my cache and deleting and just pasting the actual files and not having it unzip by it's self, Im getting this error
Spoiler for Error Image:

Running the client through eclipse works just fine, no issues.

Here is what my cache folder looks like:
Spoiler for Cache Folder:
[


Not sure what could be causing it, so heres my signlink:
Spoiler for Signlink:

import java.applet.Applet;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.net.InetAddress;
import java.net.Socket;
import java.net.URL;

public final class Signlink implements Runnable {

public static void startpriv(InetAddress inetaddress) {
threadliveid = (int) (Math.random() * 99999999D);
if (active) {
try {
Thread.sleep(500L);
} catch (Exception _ex) {
}
active = false;
}
socketreq = 0;
threadreq = null;
dnsreq = null;
savereq = null;
urlreq = null;
socketip = inetaddress;
Thread thread = new Thread(new Signlink());
thread.setDaemon(true);
thread.start();
while (!active) {
try {
Thread.sleep(50L);
} catch (Exception _ex) { }
}
}

public void run() {
active = true;
uid = getuid(findcachedir());
try {
cache_dat = new RandomAccessFile(findcachedir() + "main_file_cache.dat", "rw");
for (int j = 0; j < 6; j++) {
cache_idx[j] = new RandomAccessFile(findcachedir() + "main_file_cache.idx" + j, "rw");
}
} catch (Exception exception) {
exception.printStackTrace();
}
for (int i = threadliveid; threadliveid == i;) {
if (socketreq != 0) {
try {
socket = new Socket(socketip, socketreq);
} catch (Exception _ex) {
socket = null;
}
socketreq = 0;
} else if (threadreq != null) {
Thread thread = new Thread(threadreq);
thread.setDaemon(true);
thread.start();
thread.setPriority(threadreqpri);
threadreq = null;
} else if (dnsreq != null) {
try {
dns = InetAddress.getByName(dnsreq).getHostName();
} catch (Exception _ex) {
dns = "unknown";
}
dnsreq = null;
} else if (savereq != null) {
if (savebuf != null)
try {
FileOutputStream fileoutputstream = new FileOutputStream(findcachedir() + savereq);
fileoutputstream.write(savebuf, 0, savelen);
fileoutputstream.close();
} catch (Exception _ex) {
}
if (waveplay) {
waveplay = false;
}
if (midiplay) {
midi = findcachedir() + savereq;
midiplay = false;
}
savereq = null;
} else if (urlreq != null) {
try {
System.out.println("urlstream");
urlstream = new DataInputStream((new URL(mainapp.getCodeBase(), urlreq)).openStream());
} catch (Exception _ex) {
urlstream = null;
}
urlreq = null;
}
try {
Thread.sleep(50L);
} catch (Exception _ex) {
}
}
}

public static String findcachedir() {
File file = new File(System.getProperty("user.home") + "/XandrCache/");
if (!file.exists()) {
if (!file.mkdir())
return secondDir();
}
return System.getProperty("user.home") + "/XandrCache/";
//return "./Cache/";
}

public static String secondDir() {
File file = new File("c:/XandrCache/");
if (!file.exists())
file.mkdir();
return file.toString();
}

private static int getuid(String s) {
try {
File file = new File(s + "uid.dat");
if (!file.exists() || file.length() < 4L) {
DataOutputStream dataoutputstream = new DataOutputStream(new FileOutputStream(s + "uid.dat"));
dataoutputstream.writeInt((int) (Math.random() * 99999999D));
dataoutputstream.close();
}
} catch (Exception _ex) { }
try {
DataInputStream datainputstream = new DataInputStream(new FileInputStream(s + "uid.dat"));
int i = datainputstream.readInt();
datainputstream.close();
return i + 1;
} catch (Exception _ex) {
return 0;
}
}

public static synchronized Socket opensocket(int i) throws IOException {
for (socketreq = i; socketreq != 0;)
try {
Thread.sleep(50L);
} catch (Exception _ex) {
}

if (socket == null)
throw new IOException("could not open socket");
else
return socket;
}

public static synchronized DataInputStream openurl(String s) throws IOException {
for (urlreq = s; urlreq != null;)
try {
Thread.sleep(50L);
} catch (Exception _ex) {
}

if (urlstream == null)
throw new IOException("could not open: " + s);
else
return urlstream;
}

public static synchronized void dnslookup(String s) {
dns = s;
dnsreq = s;
}

public static synchronized void startthread(Runnable runnable, int i) {
threadreqpri = i;
threadreq = runnable;
}

public static synchronized boolean wavesave(byte abyte0[], int i) {
if (i > 0x1e8480)
return false;
if (savereq != null) {
return false;
} else {
wavepos = (wavepos + 1) % 5;
savelen = i;
savebuf = abyte0;
waveplay = true;
savereq = "sound" + wavepos + ".wav";
return true;
}
}

public static synchronized boolean wavereplay() {
if (savereq != null) {
return false;
} else {
savebuf = null;
waveplay = true;
savereq = "sound" + wavepos + ".wav";
return true;
}
}

public static synchronized void midisave(byte abyte0[], int i) {
if (i > 0x1e8480)
return;
if (savereq != null) {
} else {
midipos = (midipos + 1) % 5;
savelen = i;
savebuf = abyte0;
midiplay = true;
savereq = "jingle" + midipos + ".mid";
}
}

public static void reporterror(String s) {
System.out.println("Error: " + s);
}

private Signlink() {
}

public static final int clientversion = 317;
public static int uid;
public static int storeid = 32;
public static RandomAccessFile cache_dat = null;
public static final RandomAccessFile[] cache_idx = new RandomAccessFile[6];
public static boolean sunjava;
public static Applet mainapp = null;
private static boolean active;
private static int threadliveid;
private static InetAddress socketip;
private static int socketreq;
private static Socket socket = null;
private static int threadreqpri = 1;
private static Runnable threadreq = null;
private static String dnsreq = null;
public static String dns = null;
private static String urlreq = null;
private static DataInputStream urlstream = null;
private static int savelen;
private static String savereq = null;
private static byte[] savebuf = null;
private static boolean midiplay;
private static int midipos;
public static String midi = null;
public static int midivol;
public static int midifade;
private static boolean waveplay;
private static int wavepos;
public static int wavevol;
public static boolean reporterror = true;
public static String errorname = "";
}


And here is my UpdateCache.java
Spoiler for UpdateCache.java:
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

import javax.swing.JOptionPane;


public class UpdateCache implements Runnable {

public static final String ZIP_URL = "https://www.dropbox.com/sh/mlo7j0uoykud8wm/AADf8LsCHtdvw3FeWR1MopVLa?dl=1";
public static final String VERSION_URL = "https://www.dropbox.com/s/wtht055e7g4pr70/cacheVersion.dat?dl=1";
public static final String VERSION_FILE = ClientConstants.CACHE_LOCATION + "cacheVersion.dat";
private Client client;
Client frame;

public UpdateCache(Client client) {
this.client = client;
}

private void drawLoadingText(int amount, String text) {
client.drawLoadingText(amount, text);
}

public double getCurrentVersion(){
try {
@SuppressWarnings("resource")
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(VERSION_FILE)));
return Double.parseDouble(br.readLine());
} catch (Exception e) {
return 0.1;
}
}

public double getNewestVersion(){
try {
URL tmp = new URL(VERSION_URL);
BufferedReader br = new BufferedReader(new InputStreamReader(tmp.openStream()));
return Double.parseDouble(br.readLine());
} catch (Exception e) {
// handleException(e);
return -1;
}
}

private void handleException(Exception e){
StringBuilder strBuff = new StringBuilder();
strBuff.append("Please Screenshot this message, and send it to an admin!\r\n\r\n");
@SuppressWarnings("unused")
StringBuilder append = strBuff.append(e.getClass().getName()).append(" \"").append(e.getMessage()).append("\"\r\n");
for(StackTraceElement s : e.getStackTrace())
strBuff.append(s.toString()).append("\r\n");
alert("Exception [" + e.getClass().getSimpleName() + "]",strBuff.toString(),true);
}

private void alert(String msg){
alert("Message",msg,false);
}

private void alert(String title,String msg,boolean error){
JOptionPane.showMessageDialog(null,
msg,
title,
(error ? JOptionPane.ERROR_MESSAGE : JOptionPane.PLAIN_MESSAGE));
}

@Override
public void run() {
drawLoadingText(0, "Checking Versions");
try{
double newest = getNewestVersion();
if(newest > this.getCurrentVersion()){
int n = JOptionPane.showConfirmDialog(
null,
"There is an update to version " + newest + "\n" +
"Would you like to update?",
"Current version: "+ getCurrentVersion(),
JOptionPane.YES_NO_OPTION);
if(n == 0){
updateClient();
drawLoadingText(0, "Cache has been updated, please restart the client!");
alert("Cache has been updated, please restart the client!");
@SuppressWarnings("resource")
OutputStream out = new FileOutputStream(VERSION_FILE);
out.write(String.valueOf(newest).getBytes());;
out.close();
System.exit(0);
}else{
alert(" Your client may not load correct, current version is: " +
getCurrentVersion());
System.exit(0);
}
}
}catch(Exception e){
handleException(e);
}
}

private void updateClient() {
File clientZip = downloadClient();
if(clientZip != null){
unZip(clientZip);
}
}

private void unZip(File clientZip) {
try {
unZipFile(clientZip,new File(Signlink.findcachedir()));
clientZip.delete();
} catch (IOException e) {
handleException(e);
}
}

private void unZipFile(File zipFile,File outFile) throws IOException{
ZipInputStream zin = new ZipInputStream(new BufferedInputStream(new FileInputStream(zipFile)));
ZipEntry e;
long max = 0;
long curr = 0;
while((e = zin.getNextEntry()) != null)
max += e.getSize();
zin.close();
@SuppressWarnings("resource")
ZipInputStream in = new ZipInputStream(new BufferedInputStream(new FileInputStream(zipFile)));
while((e = in.getNextEntry()) != null){
if(e.isDirectory())
new File(outFile,e.getName()).mkdirs();
else{
@SuppressWarnings("resource")
FileOutputStream out = new FileOutputStream(new File(outFile,e.getName()));
byte[] b = new byte[1024];
int len;
while((len = in.read(b,0,b.length)) > -1){
curr += len;
out.write(b, 0, len);
setUnzipPercent((int)((curr * 100) / max));
System.out.println("Percentage: " + (int)((curr * 100) / max));
}
}

}
}

public int percent = 0;

public void setDownloadPercent(int amount){
percent = amount;
drawLoadingText(amount, "Downloading Cache" + " - " + amount + "%");
}

public int percent2 = 0;

public void setUnzipPercent(int amount2){
percent2 = amount2;
drawLoadingText(amount2, "Extracting Cache" + " - " + amount2 + "%");
}

private File downloadClient(){
File ret = new File(Signlink.findcachedir()+"XandrCache.zip");
try{
OutputStream out = new FileOutputStream(ret);
URLConnection conn = new URL(ZIP_URL).openConnection();
InputStream in = conn.getInputStream();
long max = conn.getContentLength();
long curr = 0;
byte[] b = new byte[1024];
int len;
while((len = in.read(b, 0, b.length)) > -1){
out.write(b,0,len);
curr += len;
setDownloadPercent((int)((curr * 100) / max));
}
out.flush();
out.close();
in.close();
return ret;
}catch(Exception e){
handleException(e);
ret.delete();
return null;
}
}
}


My cacheVersion.dat is set to 3.9
and in my ClientConstants.java it is also set to 3.9
Spoiler for Client Version:
public final static String CLIENT_VERSION = "3.9";


clientVersion.dat is 572347
Same number as inside of ClientConstants.java

Like I said, i'm not sure entirely what i'm doing wrong, I have tried pretty much everything i've came across while trying to fix this issue.


I'm expecting "Learn Java" or some other backhanded comments lol
An RSPS helps me learn, it keeps me interested in adding and removing things, and like this, learning what is going wrong and learning from these problems.
I have searched for about 4 hours and i'm not sure what i'm doing wrong.

FIXED:
Thanks to Adam200214
Solution:
My Client Version was not correct, as well as my ItemBonusDefinitions.XML was not loading correctly

Inside Client.Java

Find this code:
Spoiler for Client.Java:
@SuppressWarnings("unchecked")
public static void loadItemBonusDefinitions() throws IOException {
List<ItemBonusDefinition> list = (List<ItemBonusDefinition>) xStream.fromXML(new FileInputStream("./ItemBonusDefinitions.xml"));
for (ItemBonusDefinition definition : list) {
itemBonusDefinitions.put(definition.getId(), definition);
}
System.out.println("Loaded " + list.size() + " item bonus definitions.");
}

And replace with this:
Spoiler for Client.Java:
@SuppressWarnings("unchecked")
public static void loadItemBonusDefinitions() throws IOException {
List<ItemBonusDefinition> list = (List<ItemBonusDefinition>) xStream.fromXML(new FileInputStream(Signlink.findcachedir() + "./ItemBonusDefinitions.xml"));
for (ItemBonusDefinition definition : list) {
itemBonusDefinitions.put(definition.getId(), definition);
}
System.out.println("Loaded " + list.size() + " item bonus definitions.");
}

Rendering my 'targets' char

$
0
0
https://gyazo.com/ef5cefcc9b193e96206efac24c5e08b2

In the picture above you can see i'm working on a in-game highscore.
As you can see I can load the players char by using

addChar in my interface. Now how would I go about rendering the targets character instead of my own?

like server sided I can sendFrame126 to change text, Is this possible?

Thanks in advance.

Tormented demons map data

$
0
0
Maybe someone have map data for torm demon cave?

[5$] 🎨 After Effects Animated Banners

$
0
0
Making animated banners for 5-10$
Discord: SilverNova#5932

Previous work:




Vouches
Spoiler for Vouches (3):

Quote:

Originally Posted by Unzy View Post
Vouch for silvernova, very good banners, especially if you get a hold of a free one, glws mate!

Quote:

Originally Posted by Adam200214 View Post
My Xeric banner is dope my man, vouch, did this within a few hours. Very nice work on all 3 my guy!

Quote:

Originally Posted by premjer View Post
pretty big vouche!he making just dope banners!and pretty cheap!

Rev cave map files

$
0
0
Don't need all the OSRS maps, just the rev cave map files, if anyone has would be dope :P

Hi Everyone

$
0
0
Hi everyone i would like to introduce myself, i am Craig (IGN in RSPS Coeus)

I used to play RSPS a while back in 2010-2014 but took a bit of break from it all for various reasons but back now so thought id say hi!

Feel free to add me on discord

ꉓ ꂦ ꍟ ꀎ ꌗ#0001

Have a good day all and maybe seeya around!

Illustrator Cartoon Adventures P5? (WORK IN PROGRESS)

$
0
0



Spoiler for EDIT 1:


Small edit but i fixed the lighting on his 5head to make it go from light to midtone. (thanks omni)

Okay so as you guys have probably noticed from my past few showcases and if your in the designer discord, I am trying to learn to draw cartoon faces in Illustrator. I even went out and got a drawing tablet. So as I learn I will post my progress in this section sorta like a blog. Again, im just beginning and I have pretty much NO drawing or illustrator background so dont expect anything CRAZY yet.
KEEP IN MIND this piece is still in progress so any feedback given will be used to improve this! :)

Baroko's SHOWCASE Thread

$
0
0
Hello! People!

I've been trying to pick up designing for two months now and what I want to show you today are the fruits of my labor!

Some of my recent work:









I've improved a lot since joining the graphical discord, I get tons of feedback of the avid users and appreciate all the feedback they've given me.

My first design after joining the Discord:


No clue on what it is supposed to be, It was just me messing on Krita after Omni recommending it.

My second design!


Etc



My first ever paid design:

(Thank you Math).

I want to thank everyone in the graphical discord, I've improved a lot in a short amount of time thanks through that Discord alone. It has a great vibe and everyone gives amazing feedback which was very useful for me and will also be helpful to others.

I want to give a quick shoutout to the following people!
Omni, Tousuki, Nikolas and (Lord) Ethan for giving me great advice, tips and in general helping me to improve.
Isak for being a meme and Chance for being clean (YES THAT RHYMED).
And last but not least, Thank you Cryptic, Ju and Math(ijs).


My Discord: @BAROKOBOY Inc.#2309
(If I didn't mention you. I'm sorry).

Perfect Data Structure for storing Player's Points

$
0
0
Why?

I wrote this cause I was being tired of not being able to group the player's points and having to create a new variable, getter & setter each time when adding a new point.

Implementation

Using: guava

Player class:
Code:

/**
* An {@link EnumMultiset} containing the player's points.
*/
private Multiset<Points> points = EnumMultiset.create(Points.class);

/**
* An enumerated type that represents the player's points.
*
* @author Blake
*
*/
public enum Points {
        ACHIEVEMENT, ARENA, DONATOR, PRESTIGE, PEST, SLAYER, TRIVIA, VOTE;

        @Override
        public String toString() {
                return name().toLowerCase().replaceAll("_", " ");
        }
}
       
/**
* Gets the points.
*
* @return The points.
*/
public Multiset<Points> getPoints() {
        return points;
}

Sample usage

The code below adds 1 vote point.
Code:

player.getPoints().add(Points.VOTE, 1);
The code below removes an amount of points according to the item's amount and price.
Code:

player.getPoints().remove(Points.VOTE, item.getPrice() * amount);
For save & load use count & setCount

FrugooScape Client Base?

$
0
0
Anyone know what the FrugooScape client was based off of?
Did it even have a base, or was it from scratch?
Was it srcAllDummysRemoved?

[317] ⭐ Simplicity RSPS - 300 Players Online - Packed with PRE-EOC & OSRS - Raids 1 & 2 ⭐

$
0
0
SIMPLICITY
Our forums can be found here: Forums

⚔️Website⚔️
Simplicity RSPS - RuneScape Private Server



Welcome to Simplicity, one of the biggest Runescape private servers. Hosted by a professional team of developers and experienced staff members,
We are keeping all our players satisfied by pushing out updates and organizing server events with beautiful rewards.

Train all your skills and earn your max cape. Complete achievements, slay one of the many bosses or battle with others in the wilderness.
Play mini-games. There is active gambling and we are always pushing out new items and bosses that get released on Oldschool Runescape.
Download the game client and play now for free!












Ah yes.

$
0
0
Tinypic had to ruin the moment didnt they the cunts


I don't know about you but I'm feeling 22.....



send cake pls

[317] [ACTIVE CONTESTS] Sovark - Eco Server - Presets - Collection Log- Tourneys - + more!

[317] ⭐ Simplicity RSPS - 300 Players Online - Daily Events - Raids 1 & 2 ⭐

$
0
0
SIMPLICITY
Our forums can be found here: Forums

⚔️Website⚔️
Simplicity RSPS - RuneScape Private Server



Welcome to Simplicity, one of the biggest Runescape private servers. Hosted by a professional team of developers and experienced staff members,
We are keeping all our players satisfied by pushing out updates and organizing server events with beautiful rewards.

Train all your skills and earn your max cape. Complete achievements, slay one of the many bosses or battle with others in the wilderness.
Play mini-games. There is active gambling and we are always pushing out new items and bosses that get released on Oldschool Runescape.
Download the game client and play now for free!












[OSRS] Varrock PS Release! - PS4 Giveaway! - Content Packed!


[667] Varrock PS Release! - PS4 Giveaway! - Content Packed!

[377] Only 377 Source?

$
0
0
A while ago I was told that the only 377 was something by the name of "WhiteScape".
I was wondering why there aren't, or haven't been more of the 377 revision. Why are these uncommon?
XTEA encrypted maps didn't come until from what I'm hearing was the early 400's.

Money pouch

Does anyone have a copy of runelites bytecode sigantures?

$
0
0
I believe RuneLite used to have a bunch of files, containing bytecode signatures for various classes & functions in the osrs client,
but it appears they've since removed this from the public repo.
So i'm just wondering if anyone has a copy of the files or know where i can get them? Thanks.

Edit:
i'm not actually 100% certain whether the files contained bytecode signatures or something else. I just heard they contained info used to identify & deob the various classes & functions from the osrs client.
But i assume the only way to do that, (consistently, between updates) is by doing some sort of signature pattern scanning of the java bytecode.

Greetings from ValorRsps

$
0
0
Hello there guys, and thank you for taking the time to stop by!
Viewing all 56156 articles
Browse latest View live