Page 1 of 2 12 LastLast
Results 1 to 25 of 38

Thread: Tvs Runescape Loader

  1. #1
    Join Date
    Aug 2007
    Location
    England
    Posts
    136
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default Tvs Runescape Loader

    INTRODUCTION

    Tired of them adds at the top of client???
    want to play full screen windowed in HD???
    don't want to load a webbrowser to play runescape??
    well here's my client loader, only loads the main client applet.
    supports HD and SD

    enjoy.

    VERSION INFORMATION

    v0.1 - Only supported unsigned SD runescape (via runescape.jar)
    v0.2 - Only supported signed SD runescape (via loader.jar)
    v0.3 - Supported SD and HD runescape (via loader_gl.jar)
    v0.4 - Supports SD/HD now prases params from runescape.com.

    PICTURES





    UPDATED 10-10-09

    Yours Tv
    Last edited by Tv-XxX; 10-10-2009 at 08:04 PM. Reason: Update

  2. #2
    Join Date
    Oct 2007
    Location
    The deep web
    Posts
    2,496
    Mentioned
    1 Post(s)
    Quoted
    3 Post(s)

    Default

    you finaly did it, well done.
    Did someone say GDK?

  3. #3
    Join Date
    Jul 2008
    Location
    England
    Posts
    763
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Very nice, well done.
    lol

  4. #4
    Join Date
    Aug 2007
    Location
    England
    Posts
    136
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Yer jakeyboy29 :P

    thank you to everyone whom helped

    thanking about adding abit of reflection next :P just to past the time

    Yours Tv.

  5. #5
    Join Date
    May 2007
    Location
    Netherlands, Amersfoort
    Posts
    2,701
    Mentioned
    1 Post(s)
    Quoted
    0 Post(s)

    Default

    WOW, just WOW

    very nice! thanks for this! srsly!

    may I see the java code to? I would love to see it

    E:

    Play rs like fullscreen, and still be able to msn/xfire/steam...

    ILOVEIT ILOVEIT ILOVEIT

  6. #6
    Join Date
    Jan 2008
    Location
    NC, USA.
    Posts
    4,429
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Took two times to get it to get off of Connecting to update server.
    Its very, Very nice. It doesnt like like when its in a browser! Thanks! Repped
    Quote Originally Posted by irc
    [00:55:29] < Guest3097> I lol at how BenLand100 has become noidea
    [01:07:40] <@BenLand100> i'm not noidea i'm
    [01:07:44] -!- BenLand100 is now known as BenLand42-
    [01:07:46] <@BenLand42-> shit
    [01:07:49] -!- BenLand42- is now known as BenLand420
    [01:07:50] <@BenLand420> YEA

  7. #7
    Join Date
    Sep 2006
    Location
    New Jersey, USA
    Posts
    5,347
    Mentioned
    1 Post(s)
    Quoted
    3 Post(s)

    Default

    Nice! So how did you manage to get HD mode working?
    Interested in C# and Electrical Engineering? This might interest you.

  8. #8
    Join Date
    Aug 2007
    Location
    England
    Posts
    136
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    It was really really easy actually once i worked out how to do it...

    originally i was loading from the runescape.jar, but that was slow and wouldnt allow HD so i changed to the loader.jar, and updated my classes ect... it now loaded really quick, but still no HD

    so to google i went, and i found out that HD uses loader_gl.jar, updated that, and removed using save mode in my params, and it worked

    so here's my java code, nothing special, and a little ugly lol, but who cares
    its mainly based on banks tutorial from mopharisthebest, just with HD capabillities

    Code:
    import java.applet.Applet;
    import java.applet.AppletContext;
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.Toolkit;
    import java.net.URL;
    import java.net.URLClassLoader;
    import java.util.HashMap;
    import javax.swing.JPanel;
    import javax.swing.JPopupMenu;
    
    public class RunescapeApp extends javax.swing.JFrame implements
    		java.applet.AppletStub {
    
    	private static final HashMap<String, String> parameters = new HashMap<String, String>();
    
    	public RunescapeApp() {
    		try {
    
                setSize(768, 534);
                setResizable(true);
                this.setExtendedState(this.getExtendedState() | RunescapeApp.MAXIMIZED_BOTH);
    
                Toolkit toolkit = Toolkit.getDefaultToolkit();
                Dimension screenSize = toolkit.getScreenSize();
                int x = (screenSize.width - this.getWidth()) / 2;
                int y = (screenSize.height - this.getHeight()) / 2;
                setLocation(x, y);
    
    			setTitle("Tvs Runescape Loader");
                parameters.put("height", "762");
    			parameters.put("width", "503");
    			parameters.put("worldid", "81");
    			parameters.put("modewhat", "0");
    			parameters.put("modewhere", "0");
    
    			ClassLoader clientClassLoader = new URLClassLoader(
    					new URL[] { new URL(
    							"http://world81.runescape.com/loader_gl.jar") });
    			Class<?> clientClass = clientClassLoader.loadClass("loader");
    			Applet loader = (Applet) clientClass.newInstance();
    
    			loader.setStub(this);
    			loader.init();
    			loader.start();
    
    			JPopupMenu.setDefaultLightWeightPopupEnabled(false);
    			JPanel theGame = new JPanel(new BorderLayout());
    			theGame.setPreferredSize(new Dimension(769, 510));
    			setPreferredSize(new Dimension(769, 510));
    			theGame.add(loader);
    			getContentPane().add(loader, BorderLayout.CENTER);
    			setDefaultCloseOperation(EXIT_ON_CLOSE);
                setVisible(true);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    	public void appletResize(int width, int height) {
    		// TODO Auto-generated method stub
    
    	}
    
    	public final URL getCodeBase() {
    		try {
    			return new URL("http://world81.runescape.com/");
    		} catch (Exception e) {
    			return null;
    		}
    	}
    
    	public final URL getDocumentBase() {
    		try {
    			return new URL("http://world81.runescape.com/");
    		} catch (Exception e) {
    			return null;
    		}
    	}
    
    	public final String getParameter(String name) {
    		return parameters.get(name);
    	}
    
    	public final AppletContext getAppletContext() {
    		return null;
    	}
    
    	public static void main(String[] args) {
    		new RunescapeApp().setVisible(true);
    	}
    }
    Yours
    Tv.

  9. #9
    Join Date
    Aug 2006
    Location
    London
    Posts
    2,021
    Mentioned
    2 Post(s)
    Quoted
    0 Post(s)

    Default

    fairly typical loader, but its good
    Join the Official SRL IRC channel. Learn how to Here.

  10. #10
    Join Date
    Aug 2007
    Location
    England
    Posts
    136
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Cheers Yakman
    Just been looking into reflection... I got a headache now :P ill read again tomorrow XD

    Yours
    Tv.

  11. #11
    Join Date
    Mar 2007
    Posts
    3,042
    Mentioned
    1 Post(s)
    Quoted
    14 Post(s)

    Default

    Looks fine. The height of the applet is 765 x 503, though, not 762 x 503. I doubt it makes much of a difference, if any, but it's best to make sure your parameters are correct. You could even parse them directly from the game page if you wanted to.
    :-)

  12. #12
    Join Date
    Dec 2006
    Location
    Copy pastin to my C#
    Posts
    3,788
    Mentioned
    8 Post(s)
    Quoted
    29 Post(s)

    Default

    What I learned when I tried reading some of the good old tuts at MITB was that parsing is safer than the way people usually do in their first loaders? So you could try that

  13. #13
    Join Date
    Aug 2007
    Location
    England
    Posts
    136
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I've now Parsed the client params... I think :P well it loads, and i think my codes right...

    have a read

    Code:
    import java.applet.Applet;
    import java.applet.AppletContext;
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.Toolkit;
    import java.io.DataInputStream;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLClassLoader;
    import java.util.HashMap;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    import java.util.regex.PatternSyntaxException;
    import javax.swing.JPanel;
    import javax.swing.JPopupMenu;
    
    public class RunescapeApp extends javax.swing.JFrame implements
    		java.applet.AppletStub {
    
    	private static final HashMap<String, String> parameters = new HashMap<String, String>();
    
    	public RunescapeApp() {
            String HTMLsource = "";
    		try {
               
                setSize(768, 534);
                setResizable(true);
                this.setExtendedState(this.getExtendedState() | RunescapeApp.MAXIMIZED_BOTH);
    
                Toolkit toolkit = Toolkit.getDefaultToolkit();
                Dimension screenSize = toolkit.getScreenSize();
                int x = (screenSize.width - this.getWidth()) / 2;
                int y = (screenSize.height - this.getHeight()) / 2;
                setLocation(x, y);
    
    			setTitle("Tvs Runescape Loader");
    
                try {
                    String thisLine;
                    URL u = new URL("http://world81.runescape.com/a2,m0,j0,o0");
                    DataInputStream theHTML = new DataInputStream(u.openStream());
                    while ((thisLine = theHTML.readLine()) != null) {
                        HTMLsource = HTMLsource + thisLine;
                    }
                }
                catch (MalformedURLException e) {
                    System.err.println(e);
                }
    
                try {
                    Pattern regex = Pattern.compile("<param name=([^\\s]+)\\s+value=([^>]*)>", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
                    Matcher regexMatcher = regex.matcher(HTMLsource);
                    while (regexMatcher.find())
                    	if (!parameters.containsKey(regexMatcher.group(1)))
                         	parameters.put(regexMatcher.group(1), regexMatcher.group(2));
                } catch (PatternSyntaxException ex) {
                    ex.printStackTrace();
                }
    
    			ClassLoader clientClassLoader = new URLClassLoader(
    					new URL[] { new URL(
    							"http://world81.runescape.com/loader_gl.jar") });
    			Class<?> clientClass = clientClassLoader.loadClass("loader");
    			Applet loader = (Applet) clientClass.newInstance();
                System.out.println("I <3 Nic");
    			loader.setStub(this);
    			loader.init();
    			loader.start();
    
    			JPopupMenu.setDefaultLightWeightPopupEnabled(false);
    			JPanel theGame = new JPanel(new BorderLayout());
    			theGame.setPreferredSize(new Dimension(769, 510));
    			setPreferredSize(new Dimension(769, 510));
    			theGame.add(loader);
    			getContentPane().add(loader, BorderLayout.CENTER);
    			setDefaultCloseOperation(EXIT_ON_CLOSE);
                setVisible(true);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    	public void appletResize(int width, int height) {
    		// TODO Auto-generated method stub
    
    	}
    
    	public final URL getCodeBase() {
    		try {
    			return new URL("http://world81.runescape.com/");
    		} catch (Exception e) {
    			return null;
    		}
    	}
    
    	public final URL getDocumentBase() {
    		try {
    			return new URL("http://world81.runescape.com/");
    		} catch (Exception e) {
    			return null;
    		}
    	}
    
    	public final String getParameter(String name) {
    		return parameters.get(name);
    	}
    
    	public final AppletContext getAppletContext() {
    		return null;
    	}
    
    	public static void main(String[] args) {
    		new RunescapeApp().setVisible(true);
    	}
    }
    and I've attached the new client

    Yours
    Tv.

  14. #14
    Join Date
    Jan 2008
    Location
    Ontario, Canada
    Posts
    7,805
    Mentioned
    5 Post(s)
    Quoted
    3 Post(s)

    Default

    This client is awesome. I suggest using this when scripting as well. I say this because it loses focus a lot less than say FF or IE.
    Writing an SRL Member Application | [Updated] Pascal Scripting Statements
    My GitHub

    Progress Report:
    13:46 <@BenLand100> <SourceCode> @BenLand100: what you have just said shows you 
                        have serious physchological problems
    13:46 <@BenLand100> HE GETS IT!
    13:46 <@BenLand100> HE FINALLY GETS IT!!!!1

  15. #15
    Join Date
    Oct 2008
    Posts
    500
    Mentioned
    1 Post(s)
    Quoted
    0 Post(s)

    Default

    Ive been using this since you released it and havent shown any thanks. The client is awesome and I couldnt tell you how to do any better. Thanks alot for the time.

  16. #16
    Join Date
    Aug 2006
    Location
    London
    Posts
    2,021
    Mentioned
    2 Post(s)
    Quoted
    0 Post(s)

    Default

    since some people have said they will be using this, i feel it is my duty to suggest improvements because now its being used in the 'real world'.

    Code:
                    String thisLine;
                    URL u = new URL("http://world81.runescape.com/a2,m0,j0,o0");
                    DataInputStream theHTML = new DataInputStream(u.openStream());
                    while ((thisLine = theHTML.readLine()) != null) {
                        HTMLsource = HTMLsource + thisLine;
    this is a horrible way of doing it,

    java strings are immutable, when you add them like that, you dont modify them but make a whole new string.
    with the way you're doing it now, you will use 10x more memory then you should and take much longer (even though speed isnt the biggest issue)

    also, HTMLSource should be called htmlSource or something that follows the java naming convention


    also, readLine() doesnt return the line break itself, so you've lost one or two characters per line
    iv seen some people try to compensate with something like this
    Code:
                    while ((thisLine = theHTML.readLine()) != null) {
                        HTMLsource = HTMLsource + thisLine + '\n';
    this isnt ideal either, because you dont know if readLine() found a "\n" char, or "\r" or even "\r\n"


    also, you dont close 'theHTML' stream

    i would suggest doing it this way
    Code:
                    URL u = new URL("http://world81.runescape.com/a2,m0,j0,o0");
                    URLConnection urlcon = u.openConnection();
                    DataInputStream theHTML = new DataInputStream(urlcon.getInputStream());
                    byte[] buffer = new byte[urlcon.getContentLength()];
                    theHTML.readFully(buffer);
                    theHTML.close();
    
                    String htmlSource = new String(buffer);


    dont feel bad though, a very similar technique is found in smart too

    Code:
    	private String downloadHTML(String address) {
    		try {
    			URL url = new URL(address);
    			BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
    			StringBuilder builder = new StringBuilder();
    			String inputLine;
    			while((inputLine = in.readLine()) != null) 
    				builder.append(inputLine).append("\n");
    			in.close();
    			return builder.toString();
    		}
    		catch(Exception e) {
    			e.printStackTrace();
    		}
    		return null;
    	}
    </potshot@ben>



    Code:
    	public final URL getDocumentBase() {
    		try {
    			return new URL("http://world81.runescape.com/");
    		} catch (Exception e) {
    			return null;
    		}
    	}
    this is wrong, not what a normal browser returns

    you should change it to this
    new URL("http://world81.runescape.com/a2,m0,j0,o0");

    you'll be pleased to know that your getCodeBase() is correct though


    Code:
    	public final AppletContext getAppletContext() {
    		return null;
    	}
    you really should write your own implementation of AppletContext, no real browser returns null on this method.
    you dont have to actually do anything in those methods, since the applet has no way of knowing if you really opened a web page or whatever.
    just make them return sane values
    Join the Official SRL IRC channel. Learn how to Here.

  17. #17
    Join Date
    Nov 2006
    Posts
    2,369
    Mentioned
    4 Post(s)
    Quoted
    78 Post(s)

    Default

    Cool i downloaded the zip and the client was awsome
    But if I would like to make the file from the text should i compile it or something or just save to .jar?
    Quote Originally Posted by DeSnob View Post
    ETA's don't exist in SRL like they did in other communities. Want a faster update? Help out with updating, otherwise just gotta wait it out.

  18. #18
    Join Date
    Feb 2009
    Location
    Nebraska
    Posts
    68
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I usually play using the exe client that JagEx provides, which seems to be happy to run full screen HD on P2P and F2P, except that it puts a banner ad at the top for F2P. Other than the ad for F2P, do these do the same thing?

    Cool stuff BTW, I was curious to see how that was done.

  19. #19
    Join Date
    Feb 2006
    Location
    Belgium
    Posts
    3,137
    Mentioned
    3 Post(s)
    Quoted
    5 Post(s)

    Default

    Quote Originally Posted by Grippy View Post
    I usually play using the exe client that JagEx provides, which seems to be happy to run full screen HD on P2P and F2P, except that it puts a banner ad at the top for F2P. Other than the ad for F2P, do these do the same thing?

    Cool stuff BTW, I was curious to see how that was done.
    This is completely different... This loads the java client directly, it doesn't use a browser... If you wanna learn how to mess with the client I'd suggest visiting the tutorial section at my community: http://rs-hacking.com/index.php/board,14.0.html

  20. #20
    Join Date
    Dec 2007
    Location
    192.168.1.73
    Posts
    2,439
    Mentioned
    6 Post(s)
    Quoted
    119 Post(s)

    Default

    Thats a pretty nice piece of work, how long did it take you?

    And I'm being slow with my Java learning so it'll be ages before I do something useful :s

  21. #21
    Join Date
    Feb 2009
    Location
    Nebraska
    Posts
    68
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by Freddy1990 View Post
    This is completely different... This loads the java client directly, it doesn't use a browser
    So presumably the Jagex Exe simply hosts an IE client which then loads the RS client?
    Grippy has approximately 30,000 hours of Delphi coding experience. srsly.

  22. #22
    Join Date
    Sep 2006
    Location
    New Jersey, USA
    Posts
    5,347
    Mentioned
    1 Post(s)
    Quoted
    3 Post(s)

    Default

    Exactly.
    Interested in C# and Electrical Engineering? This might interest you.

  23. #23
    Join Date
    Jan 2008
    Location
    NC, USA.
    Posts
    4,429
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    When I tried to use this on a laggy compute with SCAR, it often cashed, and put java errors in the file destination.
    Quote Originally Posted by irc
    [00:55:29] < Guest3097> I lol at how BenLand100 has become noidea
    [01:07:40] <@BenLand100> i'm not noidea i'm
    [01:07:44] -!- BenLand100 is now known as BenLand42-
    [01:07:46] <@BenLand42-> shit
    [01:07:49] -!- BenLand42- is now known as BenLand420
    [01:07:50] <@BenLand420> YEA

  24. #24
    Join Date
    Sep 2006
    Location
    New Jersey, USA
    Posts
    5,347
    Mentioned
    1 Post(s)
    Quoted
    3 Post(s)

    Default

    Yakman, could you give an example of a 'sane' AppletContext? One would need to write a whole class for it, correct?

    Code:
    import java.applet.Applet;
    import java.applet.AppletContext;
    import java.applet.AudioClip;
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.Toolkit;
    import java.awt.Image;
    import java.io.InputStream;
    import java.io.DataInputStream;
    import java.io.IOException;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLConnection;
    import java.net.URLClassLoader;
    import java.util.HashMap;
    import java.util.Enumeration;
    import java.util.Iterator;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    import java.util.regex.PatternSyntaxException;
    import javax.swing.JPanel;
    import javax.swing.JPopupMenu;
    
    
    public class RSLoader extends javax.swing.JFrame implements java.applet.AppletStub {
    
    	private static final HashMap<String, String> parameters = new HashMap<String, String>();
    
    	public RSLoader() {
            String htmlSource = "";
    		try {
    
                setSize(768, 534);
                setResizable(true);
                this.setExtendedState(this.getExtendedState() | RSLoader.MAXIMIZED_BOTH);
    
                Toolkit toolkit = Toolkit.getDefaultToolkit();
                Dimension screenSize = toolkit.getScreenSize();
                int x = (screenSize.width - this.getWidth()) / 2;
                int y = (screenSize.height - this.getHeight()) / 2;
                setLocation(x, y);
    
    			setTitle("Light Runescape Loader");
    
                try {
                    URL u = new URL("http://world81.runescape.com/a2,m0,j0,o0");
                    URLConnection urlcon = u.openConnection();
                    DataInputStream theHTML = new DataInputStream(urlcon.getInputStream());
                    byte[] buffer = new byte[urlcon.getContentLength()];
                    theHTML.readFully(buffer);
                    theHTML.close();
    
                    htmlSource = new String(buffer);
                }
                catch (MalformedURLException e) {
                    System.err.println(e);
                }
    
                try {
                    Pattern regex = Pattern.compile("<param name=([^\\s]+)\\s+value=([^>]*)>", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
                    Matcher regexMatcher = regex.matcher(htmlSource);
                    while (regexMatcher.find())
                    	if (!parameters.containsKey(regexMatcher.group(1)))
                         	parameters.put(regexMatcher.group(1), regexMatcher.group(2));
                } catch (PatternSyntaxException ex) {
                    ex.printStackTrace();
                }
    
    			ClassLoader clientClassLoader = new URLClassLoader(
    					new URL[] { new URL(
    							"http://world81.runescape.com/loader_gl.jar") });
    			Class<?> clientClass = clientClassLoader.loadClass("loader");
    			Applet loader = (Applet) clientClass.newInstance();
    			loader.setStub(this);
    			loader.init();
    			loader.start();
    
    			JPopupMenu.setDefaultLightWeightPopupEnabled(false);
    			JPanel theGame = new JPanel(new BorderLayout());
    			theGame.setPreferredSize(new Dimension(769, 510));
    			setPreferredSize(new Dimension(769, 510));
    			theGame.add(loader);
    			getContentPane().add(loader, BorderLayout.CENTER);
    			setDefaultCloseOperation(EXIT_ON_CLOSE);
                setVisible(true);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    	public void appletResize(int width, int height) {
    		// TODO Auto-generated method stub
    
    	}
    
    	public final URL getCodeBase() {
    		try {
    			return new URL("http://world81.runescape.com/");
    		} catch (Exception e) {
    			return null;
    		}
    	}
    
    	public final URL getDocumentBase() {
    		try {
    			return new URL("http://world81.runescape.com/a2,m0,j0,o0");
    		} catch (Exception e) {
    			return null;
    		}
    	}
    
    	public final String getParameter(String name) {
    		return parameters.get(name);
    	}
    
    	public final AppletContext getAppletContext() {
    		return new aContext();
    	}
    
    	public static void main(String[] args) {
    		new RSLoader().setVisible(true);
    	}
    }
    
    
    class aContext implements AppletContext {
        
        public AudioClip getAudioClip(URL url) {
            return getAudioClip(url);
        }
      
        public Image getImage(URL url) {
            return null;
        }
    
        public Applet getApplet(String name) {
            return null;
        }
    
        public Enumeration getApplets() {
            return null;
        }
    
          public void showDocument(URL url) {
            return; //Is this 'proper', or should this method just be left blank?
        }
    
        public void showDocument(URL url, String frame) {
            return;
        }
    
        public void showStatus(String message) {
            return;
        }
    
        public void setStream(String key, InputStream stream) throws IOException {
            return;
        }
    
        public InputStream getStream(String key) {
            return null;
        }
    
        public Iterator<String> getStreamKeys() {
            return null;
        }
    }
    Last edited by Smartzkid; 04-10-2009 at 05:21 AM.
    Interested in C# and Electrical Engineering? This might interest you.

  25. #25
    Join Date
    Aug 2006
    Location
    London
    Posts
    2,021
    Mentioned
    2 Post(s)
    Quoted
    0 Post(s)

    Default

    you need to store aContext in a field, you cant make a new instance of it every time getAppletContext() is invoked


    Code:
        public AudioClip getAudioClip(URL url) {
            return getAudioClip(url);
        }
    infinate recursion much?

    you need to write and AudioClip class too (it doesnt need to play sound remember)



    for getImage() you can pass the URL to Toolkit.getImage()


    you'll need to implement the getStream(), possibly just use a hashmap
    Join the Official SRL IRC channel. Learn how to Here.

Page 1 of 2 12 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Help? Runescape
    By sundown55 in forum News and General
    Replies: 1
    Last Post: 12-02-2008, 08:11 AM
  2. runescape has won
    By w4rri0r in forum News and General
    Replies: 12
    Last Post: 12-14-2007, 04:37 AM
  3. Error Loader Nocache
    By Vagrant in forum RuneScape News and General
    Replies: 3
    Last Post: 05-30-2007, 01:21 AM
  4. runescape is ours!!!
    By logical guy711 in forum Who Are You ? Who ? Who ?
    Replies: 23
    Last Post: 03-08-2007, 04:59 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •