Jump to content

Ronan

Members
  • Posts

    397
  • Joined

  • Last visited

Everything posted by Ronan

  1. Congrat's! :) Up here in Scotland it wasn't as difficult to get a place last year - I had an unconditional so can't say I know how it feels to have to wait off until you get results back - I imagine you'd be incredibly anxious though. Glad it all panned out fine! And yea - which course?
  2. Thanks a lot for the replies everyone, definitely got an idea of the rough places to look now - Toshiba, Asus being the main considerations. With the Mac, I've had no experience with them, so I've got not clue about the benefits of them. I still may consider one if it's going to last me quite a while, but I'd have to know that it would be quite suitable for my needs - there's something for me to look into. ;) Anyway, thanks again for the suggestions - been a great help! :)
  3. Thanks! :) I'll do that - they look like they're in the higher price-ranges, but from what you've said; that price could well be worth paying for it.
  4. Hey everyone! I purchased my current laptop, a HP 6735S a year before heading off to Uni' in anticipation of requiring one at Uni'. It's now come to two years down the road and I'm not sure whether to stick with constantly buying replacement parts for this or seeking out a new one. I'd like some general advice on reliable, heavy-usage laptops. My problem's as such :- A year after purchasing the laptop, I had to replace the battery and power-adapter under HP's warranty service. (Thankfully just in time before it ran out). This was fine, but a little bit of a nuisance after only a single year. The laptop had been pretty heavily-used, but I had tried to adhere to general battery-guidelines that I'd read about. After this being replaced, I then used my laptop more sparingly through Uni' as my Desktop was more suitable for most of the work. However, after that first Uni' year and roughly 2 - 3 months, I'm finding the exact same symptoms again. My laptop power adapter seems to go first, and that ruins the batteries that I have. Looking at replacement parts it seems it'll cost me in the rough range of £100 to replace. I'm fine replacing this, if I can be assured it'll last more than a year. I'm much more willing to look elsewhere for laptops if this would be a recurrent situation every year. This is where techie's come in - I've got little experience with laptops! :) I'm looking for a laptop that can manage pretty heavy-usage and has quite a long-battery cycle. In terms of spec', I won't be gaming with the laptop - so nothing heavy duty with the graphics, but for general processing power I'd like something reasonable. I'm running a few programming projects and down the line they may need to run off this. Even without that, the large part of the laptop's usage would be in developing, heavy-duty IDE's etc. I have been considering taking a trip down the Apple road as I've heard pretty good things about them, but I've never been certain if it's worth the price mark. I could manage one but only if it would really last me a good 4+ years. I am also working on a few group-C# projects now, so I'd have to look into how well Mono integrates on Apple (but that's a different question). tl;dr I'm looking for a heavy-usage, reliable, long-lasting battery laptop which will last me over the next 3-4 years without the likelihood of replacing parts and pieces. Any advice on past experiences with good-laptops would be great! ;)
  5. Java's Verifier should check your version and offer you an update if there's any available: Test Your Java
  6. Just a tiny bit more - only clarification though it seems. Treasure Trail being the biggest change... Hopefully it's not too long away! [hide=Diff' Image - Left is New, Right is Old] [/hide]
  7. Ok then, I've drawn up a simple(ish) MapHandler class. I've (briefly) tested it too, so it should manage for an example and even basic-tests. But if you're actually going to use it be sure to check everything works fine. It's commented in all places that it needs to be, if there's anything that you don't quite get about it feel free to ask. I took into account the different screen-size (sorry for that assumption ;) ) and also made it flexible for tile-sizes if you decide to change to larger / smaller areas. This means it will actually print more than just a single adjacent tile if the player's viewport can see that. In terms of efficiency, I'm not quite sure how well this would do. It would very likely need to be optimised. I did draw up a simple cache-loading for the tile-images but that would probably need to be managed better in a full-game. Anyway, hopefully it helps! :) [hide=MapHandler.java] package mapmock; import java.awt.Graphics; import java.awt.Point; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.HashMap; import javax.imageio.ImageIO; /** * A mock-up of a MapHandler class for a game. This loads tiles when needed and displays at a specific location, drawing * all the tiles that the player can view. Certain variables should be configred / assigned at runtime - in particular the WIDTH / HEIGHT * constants. * * Remember - I've omitted many of the convenience methods that would be practical to have as well! * * @author Ronan */ public class MapHandler { /* The screen width & height */ private final int SCREEN_WIDTH = 500; private final int SCREEN_HEIGHT = 400; /* Dimensions of the tiles. */ private final int TILE_WIDTH = 700; private final int TILE_HEIGHT = 700; /* * Map contains file-references to each tile-image. Ideally, you'd probably * want to cache-load these in an actual game. This would involve loading * the map-piece if it hasn't been loaded and storing the loaded-piece. * * Prior to attempting to load the piece, the Handler could check if it has * been loaded and use that instead. * * Obviously with large maps clean-up would need to be involved to unload * previous stored areas that aren't used commonly. */ private File[][] map; /* * A possible implementation of the cache-loading process. */ private HashMap<File, BufferedImage> loadedTiles; /* * Stores the pointer to the map-array, determining where our current location * is. */ private Point current = new Point(0,0); /* Simple test constructor. */ public MapHandler(File[][] map, Point current) { loadedTiles = new HashMap<File, BufferedImage>(); this.map = map; moveCurrent(current); } /** * Loads the specific tile from the map-array. Deals with the cache-loading process. * * @param x The x-index of the tile to load. * @param y The y-index of the tile to load. * * @return Returns the loaded image from the map-array. Will throw an IOException * if the image cannot be loaded. */ public BufferedImage loadTile(int x, int y) { File currentFile = map[x][y]; if(!loadedTiles.containsKey(currentFile)) { try { /* Place the loaded image and file into the loaded-tiles cache. */ BufferedImage image = loadedTiles.put(currentFile, ImageIO.read(currentFile)); return image; } catch (IOException e) { /* * Throw exception if the file can't be read correctly, * alternatively could deal with the error. */ throw new RuntimeException("I/O Exception occured during reading " + "of file: " + currentFile.getName()); } } else { /* We've loaded the tile already - return it from the cache. */ return loadedTiles.get(currentFile); } } /** * Used to move the player's active-area from one location to another. * * @param newLocation The point reference to the new-location. Corresponds * to the index to the map array. */ public void moveCurrent(Point newLocation) { int newX = newLocation.x; int newY = newLocation.y; /* Error-check the location we're changing to. */ if(newX < 0 || newY < 0 || newX >= map.length || newY > map[newX].length) { throw new RuntimeException("New Location out of Bounds: (" + newX + "," + newY + ")"); } current.x = newX; current.y = newY; /* * Cache-loading details. Loads the current tile's file and adjacent * tiles when moved. Could also invole unloading of previous tiles. */ for(int x = current.x - 1; x <= current.x + 1; x++) { /* Make sure we don't load tiles out of bounds. */ if(x < 0 || x >= map.length) continue; for(int y = current.y - 1; y <= current.y + 1; y++) { /* Make sure we don't load tiles out of bounds. */ if(y < 0 || y >= map[x].length) continue; loadTile(x, y); } } } /** * Draws the current tile and adjacent tiles. * * @param g The Graphics to draw the map to. * @param position The position to draw the map at. This position represents * the upper-left co-ordinate of the current tile and should * be determined at runtime based on your implementation of drawing. * * NOTE :- This doesn't implement cutting of the image-area that isn't going * to be visible to the user. That may be something else to consider. * * As you stated the screen is 500x400, I've edited it a bit to only * draw the other tiles that are needed. Not all 8 adjacent. */ public void paint(Graphics g, Point position) { /* * Calculate extra tiles to be drawn. */ /* * Determines the number of tiles that we need to draw above and to the left * of the current tile. * * This is based on taking the gap between the upper-left of the 'viewport' * and the position that we're drawing the current tile at. We then * calculate the number of tiles that will fit into the gap, taking the * ceiling of the calculation to make sure no small-gaps are left. */ Point upperLeft = new Point(position.x < 0 ? 0 : (int)Math.ceil((double)position.x / TILE_WIDTH), position.y < 0 ? 0 : (int)Math.ceil((double)position.y / TILE_WIDTH)); int lowerWidth = SCREEN_WIDTH - position.x + TILE_WIDTH; int lowerHeight = SCREEN_HEIGHT - position.y + TILE_HEIGHT; /* * A similar method to above is used to calculate the lower-right boundaries. */ Point lowerRight = new Point(lowerWidth < 0 ? 0 : (int)Math.ceil((double)lowerWidth / TILE_WIDTH), lowerHeight < 0 ? 0 : (int)Math.ceil((double)lowerHeight / TILE_HEIGHT)); /* * We now loop over the entire 'area' that we've generated, skipping if * any points are out of bounds. (This should mean we're at the edge of * the map rather than a problem). */ for(int x = current.x - upperLeft.x; x <= current.x + lowerRight.x; x++) { if(x <= 0 || x >= map.length) continue; for(int y = current.y - upperLeft.y; y <= current.y + lowerRight.y; y++) { if(y <= 0 || y >= map[x].length) continue; /* * We draw the tile we're currently at, relative to the position specified * for the 'current' tile that the player is on. */ g.drawImage(loadTile(x, y), position.x - ((current.x - x) * TILE_WIDTH), position.y - ((current.y - y) * TILE_HEIGHT), null); } } } } [/hide]
  8. I'm not sure if you should take much from the fact that the bow is being used against the KQ. Although you are right, Jagex has a nasty habit of doing nonsensical things in images / videos. I'm pretty sure I remember one of Jagex's teaser videos a while ago being them meleeing Kree'ara at one stage. :unsure:
  9. Well, rationally speaking - you're going to need some form of structure to keep track of which segment aligns with others on the map. The map segments; the 700x700 pieces are presumably images (or can be considered as such when generated), therefore in order to 'stitch' these together, you need to store them or a reference to them (i.e File name) in a structure which will represent the map. When it comes to drawing the map, you can find which piece(s) need(s) to be drawn and draw them relative to the location of each other. One method is to view the entire 'map' as being made up of tiled segments, which are the 700x700 areas. If you're looking for simplicity - you could easily store the references in an array (assuming you have a fixed size for the map). The array could be one or two-dimensional; two-dimensional may be more representative of a simple, square, 2D-map yet one-dimensional could easily work the same way, you would simply have to resolve the index to x,y components. Although this method works, it's very static and generic. If you suddenly want to swap map-pieces around, insert some in a different place or even create an entirely different shaped map - you may well run into complications. An alternative method would be to create a 'Linked' map, as such. Within this, each map-piece could have a reference to any adjacent pieces. If the reference doesn't exist - you know you can't move to that area. It would also be flexible in the case that if you wanted to change the shape of the map - you could quite easily do so with the usage of ENUMs to represent the position of tile references and a change to your drawing code. However, if you're wanting to keep things simple - this method may produce more overload than an array-based map. Anyway, once you've got a structure that you've determined is appropriate - you need to create the drawing code that will draw the current location. From the choice of area-size; I'd presume that you've got the screen displaying at 700x700? If so - when drawing you'll need to consider the current area to draw, as well as the adjacent areas - otherwise it will be very obvious that the game will be 'jumping' between areas rather than transitioning. The simple thing to do here is to draw all adjacent tiles as well as the current, relative to the position of the current one being drawn. Alternatively, you could attempt to only draw the part of the other areas needed. (As a large part will obviously be outside of the players viewport). If you're wanting some mock-code to explain more anything that I've said here feel free to ask. Others might have some better suggestions too! :) Apologies about the wall-of-text too...It seems to be my speciality at times!
  10. Within previous games I've made, I always used a similar approach to what has been stated above. Moving everything other than the player to incorporate player movement. However, with that implementation; you do need to be wary. If you are going to be doing anything where it could be necessary for the camera to be located at a different point - this isn't going to follow that logical an approach. Essentially, what I did in a previous game was to define the 'world' in which the player existed and a camera to view this world between specific regions. As the player moved, the camera moved to provide exactly the same as above, yet if the camera had to be moved to a different position it was extremely easy and logical. Although the above method works fine largely for most games, if you are developing in complexity in may be worth considering more than the standard approach. :)
  11. I've always used 000webhost for my small projects. It has some more complex features that you'd obviously want to avoid, but using the Control Panel you could easily upload files / images just to play around with. (It's got no adverts too!) :) The file-manager, like most actually now, has an editor built-in too - if you're not looking for any advanced features from an editor.
  12. I think it's against Tip.it's policy to publicly describe how to access the cache. I can take a look for you though...
  13. I'm kicking around there, eastern side. Name's Ronan. And no worries - I get exp' so I'm happy, heh! :)
  14. I can jump on if you'd like? Which world / location?
  15. Hey! No worries - it was a good read - especially considering it was an early one, no point in being a jerk to anyone in life; it's more important than that.

    Good luck with future ones. :)

  16. Ronan

    New Blood

    Yea, as has been said: remember to paragraph it properly, even if it is a short story. It'll certainly make people more interested in reading it. On the story itself, it was good. The reader gets a bit of a feel for the character(s), in particular Dursk of-course. I do feel expanding a little on the other soldiers would of been good, although you can understand from the short-story perspective the focus shouldn't be entirely on character expansion. You did elaborate on some of the feelings, in particular the new-soldiers' experiences which was a very good part; not only setting the scene for the regiment but also providing a slight insight into what we're expecting to come next. Setting the scene was done reasonably well - a lot of the imagery could be expanded to lay down more of the surroundings rather than leaving it to the reader's understanding. Albeit, leaving the scene rather vague contributes to the uncertainty of the story and presumably what the soldiers would be seeing. You need to watch out with capitalisation; many of the words are incorrectly capitalised mid-sentence. For example: "The 32nd Were Among the Asgarnian's best", "Even so the Rain today". Some of the wording's a bit off in places, small things such as "your" instead of "you're". You'll also need to watch out a little in regards speech-formatting. Although it works as the reader can presume who's speaking, it may be best to highlight this in places where you've missed who's saying what. There's also proper formatting for speech which would be good to try and do. You definitely get a feel for the story though and it was a nice little read. It could definitely be expanded taking in the constructive criticism you get in this thread to produce a slightly longer story, working on the structure and formatting mainly. The language is good but you may want to exemplify some of the surroundings and characters more, in particular the emotions and feelings of the characters. Nice job! :)
  17. Clean irits are currently (slightly) higher priced than grimy irits. Although this seems good to clean I'd probably hold off and sell those grimy irits. I don't expect the clean ones will sell all that easily in comparison, which i'd presume is why you're farming the herbs. In terms of cleaning herbs, it definitely can be profitable - although for the most part you'll find it easier just trying to break even or make only a small loss. Cleaning a small batch of herbs such as your farmed herbs, albeit something, won't add up to that much for quite some time. Rather - the idea would be to buy batches of grimy herbs and sell them clean. The method tends to be used alongside MouseKeys to really speed up the cleaning process. RuneScape Wiki's also got a pretty good article for showing relative prices for cleaning herbs here: /wiki/Calculators/Herbs Edit :- I'd just recommend that the Wiki does fall behind in price-updates at times. So those prices won't be an absolute reference of the current prices, rather an estimate - if you decide on a set of herbs check the prices using the Grand Exchange site.
  18. Yea, I've been doing some Woodcutting lately and most definitely! North of Falador Ivy seems to be very busy with them but down at Yanille now seems to have a few too. Not as easy to tell as other activities of-course as Ivy isn't exactly the most intensive of tasks - but you still notice a few. ;)
  19. Awesome, congrats on that! :) The dedication to do it all through herbs is very impressive to me, I found trees took long enough! 10/10.
  20. Haha, yea - peaceful finish for a peaceful skill. :) Thanks! Wonder how many clicks that advertisement gets the forum? :P
  21. ^ Nice count! :) Finally finished this off the other day, had been sitting at 200k from it for a while :-
  22. Ronan

    Insta-Load

    It depends on the browser you want to launch it in, but a few suggestions :- Assuming you're using Windows, right clicking the desktop and creating a new shortcut with the link given by SerpentEye should create a URL shortcut. By default, this will open in Internet Explorer. Google Chrome's got a handy 'Create Application Shortcuts' feature in the 'Control the current page' dropdown which will place a shortcut to the page you're currently at on your desktop. Most browsers will also support URL command-line options. For example, if you create a shortcut to 'Firefox' on your desktop and add the URL given by SerpentEye after the location in the target box, it will launch firefox and go directly to that page.
  23. Lovely! :) It's nice to see an alternative to the standard method of retrieving data used - I can't say I'm that experienced with VBA but it looks like a nice approach. I've not tested out any of the code yet, but read through the article - I'll have to try my hands on VBA and see how it all works though. Code also looks nice and neat - always a help. :) There were a few mistakes in the article - just small things, but I've put them here for you either way. And as you said, the mirrors aren't uploaded yet. Nicely written up article, I'll be sure to message back once I've played around with the code. :)
  24. Odd step from Jagex - but great too! :) Must be pretty nice for all those who paid out for it to suddenly realise they don't need to spend that £75. ;)
  25. I've always heard good things from friends about gPhotoShow's Wallpaper Slideshow. I've never tried it myself - but it looks like it should provide the functionality! :)
×
×
  • Create New...

Important Information

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