Skip to content
View in the app

A better way to browse. Learn more.

Tip.It Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Ronan

Members
  • Joined

  • Last visited

Everything posted by Ronan

  1. I always found the Anti-Dragon shield to be fairly pointless when I did it, using Protect from Mage seemed to be adequate enough. I guess if it's the first few times though, or your particularly worried about hits, taking one's a good idea? Edit: Beat to it! :^_^:
  2. Lovely stats! Congratulations on (very nearly) achieving all 75+, nice goal to aim for! :^_^: Oh, and love the banner! :D Edit: Good luck with Agility! :)
  3. Damn, that's insane, 6 boots within 188 kills - congratulations! :D Good luck with your goals, you've got some pretty mean stats there! :^_^:
  4. Congrats again on 99-Ranged Cruz! And good luck with your Strength goal! :D
  5. Thanks for the support! :D Going to take quite some work, already beginning to feel the repetition - should get it eventually though, I think! :P Edit: Getting very close with farming! Further Edit: Just hit 93-Agility, w00t! :D Screenie
  6. Well, shiny new forums are pretty awesome! Take some getting used to though... My main blog is going to be at my thread on BlogScape's forums: here. However, i'll use this more personally-linked blog to just post updates on my daily experience gains / goings on and mirror that with my official thread. So, today was a pretty awesome day actually. Gained a whopping 440k experience in Agility, bumping me up to be only a little under 200k experience until 93, w00t! :) Farming's going very well, only got 2 days left of runs to do, I'm ~440k experience left until 99, going to be awesome! :^_^:
  7. Seems I was dramatically outposted! :lol: That's a handy page Puremage, nice one! :)
  8. You could always use the Search tab at the top and input your name into the Author field, not sure if that's what you want though as you can't bookmark it and use it as a direct link...
  9. Edit: I've currently taken a break from progressing on this character due to certain reasons.
  10. The Deflection Skin's pretty awesome too! Although it's change! :shock: Will take a bit of getting used to. :P Honestly, great job everyone!
  11. Fantastic, way to go everyone who's made this possible!
  12. [hide=Rather large quote pertaining to Username as a Primary Key] In fairness when "in the first place" occurred. - they didn't have a company at all, let alone one filled with software engineers. Just a couple of guys who were almost still hobbyists. Yup pretty much straight out of university and started up with 2-3 people. [/hide] Granted, and yet - I'm a very inexperienced student, just about to start a Computer Science course in September and I would of never considered using a username as the primary identifier in a database. ;) Maybe it's a sign of the change over the years, or just me - but it seems a rather bad move, they understand that now though obviously. Shame they didn't sort out a better identifier than the username with this update, although I don't want to imagine the work involved in Runescape's systems to straighten out that issue... -.-
  13. I'd agree with the other posters and say: Spirit Graahk. I'm getting an average of ~2.8k Essence crafted over the course of 1-hour, that's with the 3-largest pouches, MouseKeys and not banking the crafted Natures. Although I've yet to do testing on if the lack of banking Natures actually makes up for the loss of 2 Essence crafted each run, seems to save a lot though so I expect it is. Most definitely agreed! Runecrafting for me wasn't much in the way of highlights until I started Graahking, I've now found it's the most relaxing thing in the game for me. :)
  14. In the video, the creator is using MouseKeys to move the mouse from Right clicking the Bandit -> Knock Out. Not sure if this speeds it up personally, as there was always a slight delay required between the 2nd pickpocket attempt and knocking-out from what I remember, given that delay you could move the mouse to "Knock-out" in-time to click as quickly as possible, making the extra speed gained from MouseKeys insignificant. Could be wrong though. ;) In terms of experience comparisons - I'm truly no expert, but I do believe Blackjacking 'can' be the same as Pyramid Plunder, if you're consistent and focused enough.
  15. Haha, agreed. First thing that popped into my head too. ;) I'm loving this update, really leaves a positive direction for Jagex's updates - high level content? :o Still, way to go Jagex! Seriously considering Agility for next 99 now. Also pretty impressed by the look of the new animations for the courses. Thanks for recording the videos! :)
  16. Is it just me - or are they using a Melee Weapon (Dragon Long?) to attack Kree'ara, no doubt the restrictions have been removed for them, but it seems rather strange? :P Point i'm talking about is around 0:18.
  17. Again, many congratulations Cruzaar! Really dedicated and incredibly fast training - certainly paid off. Well Done. =D>
  18. SharpKeys isn't packed with any version of Windows as far as i'm aware. It's a third-party downloadable piece of software. ;) Edit: Sorry, didn't check back on this thread as much as I should have. I'll get the specific key-codes that I remapped now. :) Further Edit: Actually, silly me - I actually saved a screenshot of my settings that I use in SharpKeys, so once you've got SharpKeys installed, to use the same settings as I have, it should look like this: sharpkeys.jpg
  19. Go Cruzaar! You has a blog. : Loving the Exp Gains! Edit: Title still says 97/99. ;)
  20. Hey, Looking at the Bestiary for the Zombie Monkey, (Page: http://www.tip.it/runescape/index.php?rs2monster_id=561), it seems that the wrong location is listed for them. The Level 129's are located underneath Ape Atoll's temple, 2 spawns next to each 'fire wall' where the M'speak amulet is made. Last time I checked, there aren't any Level 129 Zombie Monkeys in Marim Dungeon, only Level 98s, but I'm not entirely certain on that. Cheers, Ronan.
  21. Posts like this always catch my interest, player's specualting about the mechanics of the game can lead to some interesting takes. ;) I completely agree with your first point - from a logical perspective, having logs cut FASTER due to the number of players being around the tree cutting, would be silly. I'd imagine the structure to be more similar to a random 'roll' which is influenced by your Woodcutting level than that. Now, I arrive at a point of specific interest to me. Your argument that the trees cannot use a random number of logs to distribute to players in order to determine when the tree falls. Immediately, this flagged as being something odd. Game Servers require a vast amount of processing, which is why primarily you use dedicated machines for the task. Furthermore, your argument is memory usage - YES, excessive memory usage is bad. However, a random number initialised upon construction isn't excessive. The standard Integer Java Data Type requires 4 Bytes of Memory from the machine. Your argument of 10,000 trees and 169 Worlds (May be wrong there), would result in 40,000 bytes per machine (assuming worlds are dedicated) and 6,760,000 bytes overall. A meagre 6601kb distributed over 169 Worlds (Machines), I don't know about you, but if that's something to worry about I think a much higher priority is worrying about Jagex's Server Machines than that. ;) As for your 'getting logs faster' method, well - I'm not completely doubting it. But I feel that simply stating it is far too many assumptions. It makes common, logical sense - yes, and in that respect I'd have to agree with it. But - when you're trying to argue a point, I'd highly advise looking into the probability of a tree falling due to 1 player cutting, and a tree falling due to N players cutting. Compare these using a variety of test-runs and see what comes out. Furthermore, I'd have to add that your point about Dragon Hatchet vs Rune Axe, although you've stated that it's false, casts a LOT of doubt on your post for me. I've set that aside to write this argument, as that would be highly-biased, but just thought I should mention it somewhat. Now - as this has really piqued my interest, I thought I'd digress from developing Java Games for a while to write a little test program for your findings. I'll create a post later or edit this one once it's done with the source, and the test results for clarity. Then we can see, partially, which stands out more. :) Cheers, Ronan. Edit: Well, here it is - my apologies if it seems a little rushed, some of the code may be a bit inefficient in places, but it gets the job done. ;) [hide=Constant.java]/* * Constant.java * * Created on 01-Jun-2009. * * This is part of the Woodcutting Test Application developed by Ronan Turner * in order to test basic randomness of a variety of possible methods implemented * in Runescape for the Woodcutting Skill. */ package game; /** * The Constant class defines constants used throughout this application. * Primarily - tree maximum log values. * * @author Ronan Turner. */ public class Constant { /** * Define Constants. */ public static final int NORMAL_MAXIMUM = 1; public static final int OAK_MAXIMUM = 10; public static final int WILLOW_MAXIMUM = 20; public static final int YEW_MAXIMUM = 30; public static final int MAGIC_MAXIMUM = 50; public static final int MAXIMUM_NO_TREES = 4000; }[/hide] [hide=Game.java]/* * Game.java * * Created on 01-Jun-2009. * * This is part of the Woodcutting Test Application developed by Ronan Turner * in order to test basic randomness of a variety of possible methods implemented * in Runescape for the Woodcutting Skill. */ package game; import java.util.ArrayList; import java.util.Iterator; /** * The Game is where everything is initialised and set going. * * @author Ronan Turner. */ public class Game { /** * Define instanced variables. */ private ArrayList worlds; /** * Constructor for the Game Class. Creates an ArrayList of worlds, ready to * process. */ public Game() { worlds = new ArrayList(); for(int i = 0; i < 1; i++) { worlds.add(new World()); } processWorlds(); } /** * Process all the Worlds. */ public void processWorlds() { Iterator iter = worlds.iterator(); while(iter.hasNext()) { World world = (World)iter.next(); world.processWorld(); } } /** * The Main Method, used to start the Java Application. */ public static void main(String[] args) { new Game(); } }[/hide] [hide=Magic.java]/* * Magic.java * * Created on 01-Jun-2009. * * This is part of the JavaGames package used as an educational * learning application. Created by Ronan Turner. */ package game; /** * Magic defines the mighty, magnificent magic trees... * * @author Ronan Turner. */ public class Magic extends Tree { /** * Constructor for the Magic Tree. */ public Magic() { super(Constant.MAGIC_MAXIMUM, "Magic"); } }[/hide] [hide=Normal.java]/* * Constant.java * * Created on 01-Jun-2009. * * This is part of the Woodcutting Test Application developed by Ronan Turner * in order to test basic randomness of a variety of possible methods implemented * in Runescape for the Woodcutting Skill. */ package game; /** * Normal indicates a Standard, Normal Tree in Runescape. (Lowest level). * * @author Ronan Turner. */ public class Normal extends Tree { /** * Constructor for the Normal Tree. */ public Normal() { super(Constant.NORMAL_MAXIMUM, "Normal"); } }[/hide] [hide=Oak.java]/* * Oak.java * * Created on 01-Jun-2009. * * This is part of the Woodcutting Test Application developed by Ronan Turner * in order to test basic randomness of a variety of possible methods implemented * in Runescape for the Woodcutting Skill. */ package game; /** * Oak defines your standard Oak Tree in Runescape. * * @author Ronan Turner. */ public class Oak extends Tree { /** * Constructor for the Oak Tree. */ public Oak() { super(Constant.NORMAL_MAXIMUM, "Oak"); } }[/hide] [hide=Player.java]/* * Player.java * * Created on 01-Jun-2009. * * This is part of the Woodcutting Test Application developed by Ronan Turner * in order to test basic randomness of a variety of possible methods implemented * in Runescape for the Woodcutting Skill. */ package game; import java.util.Random; /** * The Player class emulates a player in that the player is assigned to a tree, * has an 'inventory' of logs, and can chop the tree. * * @author Ronan Turner. */ public class Player { /** * Define Instanced Variables. */ private int invLogs; //Stores the number of logs this player has. private int swings; private Random random; //Create an instance of the Random class. /** * Constructor for the Player. */ public Player() { random = new Random(); swings = 0; invLogs = 0; } /** * Chop Tree Method. This uses a standard 'dice-roll' method to determine if * the player gets a log. * * @return Returns true if a log was chopped. */ public boolean chopTree() { swings++; int roll = random.nextInt(10) + 1; if(roll == 1) { invLogs++; return true; } else { return false; } } /** * @return Returns the number of logs this player has. */ public int getLogs() { return invLogs; } /** * @return Returns the number of swings. */ public int getSwings() { return swings; } }[/hide] [hide=Tree.java]/* * Tree.java * * Created on 01-Jun-2009. * * This is part of the Woodcutting Test Application developed by Ronan Turner * in order to test basic randomness of a variety of possible methods implemented * in Runescape for the Woodcutting Skill. */ package game; import java.util.ArrayList; import java.util.Iterator; import java.util.Random; /** * Tree acts as an overall superclass for all trees in Runescape. * * @author Ronan Turner. */ public class Tree { /** * Define Instanced Variables. */ private Random random; //Create an instance Java's Random Class, used for pseudo-random generation. private ArrayList players; //Holds a Random Number of Players chopping this tree. private boolean alive; //Determines if this tree can be chopped. (Is available). private String type; //Shows the type of tree. private int rollChance; /** * The Constructor for the Tree Class. * * @param max The MAXIMUM number of logs available to this tree. (Constant for each type of tree). */ public Tree(int rollChance, String type) { players = new ArrayList(); random = new Random(); this.type = type; this.rollChance = rollChance; for(int i = 0; i < random.nextInt(10) + 1; i++) { players.add(new Player()); } alive = true; } /** * Decreases the logsAvailable by 1 each time it's called. Used to indicate * a Player has 'chopped' a log. * * @return Returns true to indicate succesfull chop. */ public void chopLog() { int roll = random.nextInt(rollChance) + 1; if(roll == 1) { alive = false; } } /** * @return Returns the ArrayList of players. */ public ArrayList getPlayers() { return players; } /** * 'Processes' this tree. It gets each player to chop the tree, until the * tree dies. */ public void processTree() { while(alive) { Iterator iter = players.iterator(); while(iter.hasNext()) { Player player = (Player)iter.next(); if(player.chopTree()) { chopLog(); } if(!alive) { displayInfo(); return; } } } } /** * Display Information about this tree upon death. */ public void displayInfo() { String playerSwing = ""; String playerLogs = ""; int totalSwings = 0; int totalLogs = 0; for(int i = 0; i < players.size(); i++) { Player player = (Player)players.get(i); playerSwing += "(" + player.getSwings() + ") "; totalSwings += player.getSwings(); totalLogs += player.getLogs(); playerLogs += "(" + player.getLogs() + ") "; } System.out.println(""); System.out.println("=========================="); System.out.println("Tree Type: " + type); System.out.println("Players: " + players.size()); System.out.println("Swings: " + playerSwing); System.out.println("Logs: " + playerLogs); System.out.println("Av. Swing/Log: " + (totalSwings / players.size())); System.out.println("Av. # Logs: " + (totalLogs / players.size())); System.out.println("=========================="); } }[/hide] [hide=Willow.java]/* * Willow.java * * Created on 01-Jun-2009. * * This is part of the Woodcutting Test Application developed by Ronan Turner * in order to test basic randomness of a variety of possible methods implemented * in Runescape for the Woodcutting Skill. */ package game; /** * Willow defines those poor, abused, weeping-willows of Runescape. * * @author Ronan Turner. */ public class Willow extends Tree { /** * Constructor for the Willow Tree. */ public Willow() { super(Constant.WILLOW_MAXIMUM, "Willow"); } }[/hide] [hide=World.java]/* * World.java * * Created on 01-Jun-2009. * * This is part of the JavaGames package used as an educational * learning application. Created by Ronan Turner. */ package game; import java.util.ArrayList; import java.util.Iterator; /** * The World class creates a 'World', this emulates a Runescape World by having a * large number of trees in the world. * * @author Ronan Turner. */ public class World { /** * Define Instaced Variables. */ private ArrayList trees; //Trees is an ArrayList used to store all the trees created. /** * Constructor for the World Class, 'Creates' the world. The trees are in * proportion: (15:10:8:5:2) (Norm:Oak:Willow:Yew:Magic) */ public World() { trees = new ArrayList(); int split = Constant.MAXIMUM_NO_TREES / 40; for(int i = 0; i < split*15; i++) { trees.add(new Normal()); } for(int i = 0; i < split*10; i++) { trees.add(new Oak()); } for(int i = 0; i < split*8; i++) { trees.add(new Willow()); } for(int i = 0; i < split*5; i++) { trees.add(new Yew()); } for(int i = 0; i < split*2; i++) { trees.add(new Magic()); } } /** * Process this world. This iterates through the list of trees, and gets * each player associated with the tree to keep cutting it until the tree is * dead. */ public void processWorld() { Iterator treeIterator = trees.iterator(); while(treeIterator.hasNext()) { Tree tree = (Tree)treeIterator.next(); tree.processTree(); } System.out.println("World processed."); } /** * @return Returns the ArrayList of trees. */ public ArrayList getTrees() { return trees; } }[/hide] [hide=Yew.java]/* * Yew.java * * Created on 01-Jun-2009. * * This is part of the JavaGames package used as an educational * learning application. Created by Ronan Turner. */ package game; /** * Yew defines the highly-coveted Yew Trees of Runescape. * * @author Ronan Turner. */ public class Yew extends Tree { /** * Constructor for the Yew Tree. */ public Yew() { super(Constant.YEW_MAXIMUM, "Yew"); } }[/hide] [hide=Tree - Max Logs Based. (Tree.java)]/* * Tree.java * * Created on 01-Jun-2009. * * This is part of the Woodcutting Test Application developed by Ronan Turner * in order to test basic randomness of a variety of possible methods implemented * in Runescape for the Woodcutting Skill. */ package game; import java.util.ArrayList; import java.util.Iterator; import java.util.Random; /** * Tree acts as an overall superclass for all trees in Runescape. * * @author Ronan Turner. */ public class Tree { /** * Define Instanced Variables. */ private Random random; //Create an instance Java's Random Class, used for pseudo-random generation. private ArrayList players; //Holds a Random Number of Players chopping this tree. private int logsAvailable; //Stores the number of logs available for this tree. (This instance) private int startingLogs; //Stores the starting number of logs available. private boolean alive; //Determines if this tree can be chopped. (Is available). private String type; //Shows the type of tree. /** * The Constructor for the Tree Class. * * @param max The MAXIMUM number of logs available to this tree. (Constant for each type of tree). */ public Tree(int max, String type) { players = new ArrayList(); random = new Random(); this.type = type; for(int i = 0; i < random.nextInt(10) + 1; i++) { players.add(new Player()); } logsAvailable = random.nextInt(max) + 1; //Generate a Random # between 1 and max. startingLogs = logsAvailable; alive = true; } /** * Decreases the logsAvailable by 1 each time it's called. Used to indicate * a Player has 'chopped' a log. * * @return Returns true to indicate succesfull chop. */ public void chopLog() { logsAvailable--; } /** * @return Returns the ArrayList of players. */ public ArrayList getPlayers() { return players; } /** * @return Returns the number of starting logs. */ public int getStartingLogs() { return startingLogs; } /** * 'Processes' this tree. It gets each player to chop the tree, until the * tree dies. */ public void processTree() { while(alive) { Iterator iter = players.iterator(); while(iter.hasNext()) { Player player = (Player)iter.next(); if(player.chopTree()) { chopLog(); } if(logsAvailable <= 0) { alive = false; displayInfo(); return; } } } } /** * Display Information about this tree upon death. */ public void displayInfo() { String playerSwing = ""; String playerLogs = ""; int totalSwings = 0; int totalLogs = 0; for(int i = 0; i < players.size(); i++) { Player player = (Player)players.get(i); playerSwing += "(" + player.getSwings() + ") "; totalSwings += player.getSwings(); totalLogs += player.getLogs(); playerLogs += "(" + player.getLogs() + ") "; } System.out.println(""); System.out.println("=========================="); System.out.println("Tree Type: " + type); System.out.println("Logs: " + startingLogs); System.out.println("Players: " + players.size()); System.out.println("Swings: " + playerSwing); System.out.println("Logs: " + playerLogs); System.out.println("Av. Swing/Log: " + (totalSwings / players.size())); System.out.println("Av. # Logs: " + (totalLogs / players.size())); System.out.println("=========================="); } }[/hide] Hmm, well - apologies for such a long post, I would of uploaded the files to my host, but I'm not sure if these forums like the posting of links to outside files, even if they are txt / java. Anyway - if you have a better suggestion, please, feel free to reply and i'll get it sorted as soon as possible. ;) This application creates a 'World', within that world a fixed number of trees are created, these trees are created in proportion to each other. (Normal, Oak, Willow, Yew and Magics are created.) After this creation, a random number of 'players' are assigned to each tree. Upon finishing construction, the application 'processes' all the trees. Processing involves iterating through the trees, and having all players cut the tree sequentially - the players have a random chance of successfully chopping the tree and receiving a log. With the first version - if a player receives a log, the tree then performs a 'roll' to determine if the tree dies or not due to that player. With the second version (Trees based on Max Logs), the tree will subtract one from the logsAvailable variable, if that hits 0 - the tree dies. In the second version, the logsAvailable is a random number created upon construction. This application provides 2 very feasible methods for the Woodcutting mechanics - both implementable as you can see. These 2 methods are the Maximum Logs Available per tree and a Random Chance of the Tree Dieing upon Chopping. Two out of the three methods described by the original poster - one proposed as not efficient. The methods are interchangeable by replacing the code within Tree.java, with the code in Tree - Max Logs Based. No other changes should be necessary. The application is entirely customisable, with a bit of playing around, one can run quite a few different test scenarios. For example - the results i'm about to post can provide insight into the logs gained via one player chopping a tree and the logs gained via multiple players chopping a tree. The application could be extended in order to implement regrowing trees - but i'll leave that to anyone that's interested enough to do it. ;) The following are two test results from the application, I've uploaded them as a .txt file as they're each just under 40,000 lines long, I don't think that would work great in a hide tag. :lol: Output from Maximum Logs Tree: http://rturner.byethost3.com/output2.txt Output from Random Death Roll: http://rturner.byethost3.com/outputDeathRoll.txt I'll leave this up to the readers to decide which one has a greater likeness to the Woodcutting mechanics in the game. All I'd say is that there are some interesting results there - and the tests were carried out using the same test data, only different methods, so it should of been a fair test. However - you're welcome of course to compile the source and try it for yourself. ;) Now, I just thought I should mention the inconsistencies of the application. The primary difficulty is that there are a lot of assumptions made based on the game's mechanics, such as the Player's random roll to determine if a log is chopped. I also haven't implemented any possible relation about different grades of Hatchets. Furthermore, I'm using Java's Random class. This is a standard, pseudo-random generator, and like most random generators - it's not entirely random. ;) This is a flaw which is difficult to overcome, as any 'Random' generator, has to follow a set pattern to generate the random number. Java's pseudo-random generator uses the System Time to influence random numbers, as such - there is a bit of an inconsistency with the actual game in that all trees are processed very quickly after each other, resulting in possible influences to the random numbers generated. Within the game, all trees aren't chopped down simultaneously, so it doesn't hold the same flaw. Anyway, this little application's primary aim is to show the readers and the original poster that the two methods are highly possible implementations, and perhaps put some insight into the mechanics in contribution to this post. Enjoy, Ronan. :)
  22. Just posting this as a prior message - I've managed to get MouseKeys working on my laptop. (HP 6735s - Vista). It was a bit of fiddling, but i'll go back through and get a reasonable post up about how to do it, for now - just posting to say it IS doable! : Edit: Okay... Well, i'll describe my situation first and foremost. I have a standard Desktop PC, my primary use for Runescape, and have been using MouseKeys for some time on it brilliantly. Having recently bought a laptop for Uni' next year, I arrived at the slight predicament of setting up MouseKeys with the standard laptop keyboard layout. The layout is your standard keyboard layout, without the right - numpad section. Instead, the Function (Fn) key is used to activate Num Lock (Fn+Scroll Lock). The num keys however override 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / keys following standard numpad layouts. As such - simply activating MouseKeys and using those for the movement, well - not to mention it's a bit of a stretch, but it also makes it very difficult to type properly. :lol: So, the solution I've came up with is as follows (Note: This solution is used primarily for banking, dropping etc - not sure how well it applies to other uses of MouseKeys, but you can always try it.): I'm not a fan of StickyKeys, using it results in the constant need to 'double-tap' the respective button to turn it on and off, generally making it more 'fiddly' to use than the ability it contributes. Instead, I use the standard Control (Ctrl) Key on the left side of the keyboard whenever needing to Bank / Drop. However, as prior mentioned, the Numpad keys on a Laptop aren't good either. My solution to this is remapping the Windows key on the left side of the keyboard, and the left-alt key to Num-5 and Num-2 respectively. This allows me to simply hold Ctrl down with my left 'pinky', using my index and middle finger to apply the Num-2 and Num-5 keys for ease of banking / dropping. To do so, I found a free Key-Registry editor named "Sharp-Keys". I'm not sure if I can post links or not, so I won't - but it's freely available and a quick google-search will find it. It's a simply to use Key Remapper. An Image of my current Settings can be seen here: Sharp Keys Now, as for my MouseKeys settings, they are as follows: Turn On Mouse Keys - Checked. All Keyboard Shortcuts - Unchecked. Hold down CTRL to Speed up and shift to slow down - Checked. Use Mouse Keys when NUM LOCK is: OFF (Important for a laptop). Display Mouse Keys Icon in Taskbar: Checked. These settings in combination with the Key Remapping allows you to have the NumLock turned OFF, whilst still being able to use MouseKeys on a Laptop - resulting in no hindrance to typing. Ofcourse, the Key Remappings can be played around with to find the option best suited to you - the keys suggested are simply my preference. If i'm not clear (as I quite possibly may not be :?), please do post a reply and say so. I'll try and explain in more detail as soon as possible. Cheers, Ronan. (Piesofdoom) Further Edit: My apologies, when reading through I meant to remember to mention about Mac OS Laptop Users. Personally - I've got absolutely no experience with a Mac unfortunately :( , however from the understanding of this I'd imagine that if Macs contain the same feature, then if you can find a Keyboard Remapper with support for the Mac OS then the guide could apply to you too - simply replacing SharpKeys with the appropriate Keyboard Remapping tool. Good luck!
  23. Been using this spot for a while now, and I must say it's truly fantastic, especially due to the attention required. I read this guide a while ago and unfortunately never got round to posting. Thanks very much for it! : Getting an average of 82k xp / hr here, using Super Attacks, Super Strengths and 5% Strength Prayer. (At Attack Level 81 and Strength Level 82).
  24. Here you go: [hide=][/hide] Good luck working out that elusive formula! :
  25. I must say I had to go for Runecrafting with this one. Having recently achieved Runecrafting 99 - taking a few months break at 93, I can say it certainly took a lot of time and dedication to achieve it. The other competition seems to be Slayer and Farming, although I'm not halfway to farming 99 yet, I'm experienced at Level 90 and can certainly say that's been an absolute breeze to that level. A 30 minute run each night and this is obtainable with minimal-effort, Runecrafting is constant attention. Slayer, I'd have to say even though it's slower exp again - you've got less attention required for the majority of things than Runecrafting in my opinion. Meh, maybe I'm biased but it seems to be the general opinion too. :

Important Information

By using this site, you agree to our Terms of Use.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.