Jump to content

Search the Community

Showing results for tags 'runeescape'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • RuneLocus
    • News & Announcements
    • Information Booth
    • Website Support
    • Introductions
    • Chat
    • Forum Games
  • RuneScape Development
    • RSPS General
    • RuneScape Private Server (RS2)
    • RuneScape Private Server (503+)
    • RuneScape Private Server (EoC 742+)
  • Other
    • Digital Art
    • Gaming
    • Webdevelopment
    • Computers
  • Marketplace
    • RuneScape Market
    • RSPS Market
    • Others Market
    • Freelance Middleman Services
  • Super Secret Club's Topics

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Found 30 results

  1. [CENTER]-Recent Updates- -Clipped Projectile -Perfect NPC vs. NPC -Full Bandos Chamber with All NPC's 100% -Forcetalk on Players and NPC Media: Bandos boss, sry for shit def, (had a bug fixed now) [video=youtube;Qk5wQl57NAU]http://www.youtube.com/watch?v=Qk5wQl57NAU[/video] NPC VS NPC, sara and bandos bosses improved [video=youtube;YWz6KxVv6Wk]http://www.youtube.com/watch?v=YWz6KxVv6Wk[/video] Clipped Projectiles(oh ye 100% gfto you if you didnt belive i had this): [video=youtube;waCAmxnVTis]http://www.youtube.com/watch?v=waCAmxnVTis[/video] [/CENTER]
  2. When I run RuneEscape with the original 659 client it runs fine, but when I run RuneEscape with the new 663 client it crashes. I get this error: Code: [CODE]Error: client.M(77) | Class131_Sub1_Sub2.method1401:25 Class131_Sub2_Sub3.method 1486:149 PacketParser.method1581:464 client.method43:632 Applet_Sub1.method41:32 5 Applet_Sub1.run:842 java.lang.Thread.run | java.lang.NullPointerException error_game_crash Shutdown complete - clean:true[/CODE] According to dragonkk, it has something to do with the sound packet structure of the 663 client (since the 663 client no longer has delayed sounds and such) What needs to be done in order to fix this. Please reply to this if you are going to help, or need more information on the problem I am having.
  3. When I run RuneEscape with the original 659 client it runs fine, but when I run RuneEscape with the new 663 client it crashes. I get this error: [CODE]Error: client.M(77) | Class131_Sub1_Sub2.method1401:25 Class131_Sub2_Sub3.method 1486:149 PacketParser.method1581:464 client.method43:632 Applet_Sub1.method41:32 5 Applet_Sub1.run:842 java.lang.Thread.run | java.lang.NullPointerException error_game_crash Shutdown complete - clean:true[/CODE] Accordind to dragonkk, it has something to do with the sound packet structure of the 663 client (since the 663 client no longer has delayed sounds and such) But how would I go about fixing this?
  4. axter

    RuneEscape won't run

    I need help running RuneEscape. when i run it the black CMD comes up, and then closes... I can't even see what it says. any help please? if i can't get it running can anyone give me a blank 562? thankss.
  5. How to handle teleporting in a little easier way. In com.rs.game.player.content make a new class called: [CODE] TeleportLocations [/CODE] Then Copy & Paste this code inside: [CODE] package com.rs.game.player.content; import java.util.HashMap; import com.rs.game.WorldTile; public class TeleportLocations { public static HashMap<String, WorldTile> locs = new HashMap<String, WorldTile>(); public static boolean inited = false; private static void add(String name, int x, int y) { locs.put(name, new WorldTile(x, y)); } public static WorldTile getByName(String name) { if (!inited) initTeleportLocations(); return locs.get(name); } public static void initTeleportLocations() { locs.clear(); add("alkharid", 3272, 3166); add("essence", 2898, 4819); add("lumbridge", 3222, 3219); add("varrock", 3213, 3423); add("grandexchange", 3164, 3468); add("edgeville", 3086, 3502); add("falador", 2965, 3381); add("catherby", 2803, 3433); add("camelot", 2756, 3477); add("seersvillage", 2725, 3492); add("ranging guild", 2667, 3429); add("fishing guild", 2595, 3406); add("rock crabs", 2677, 3716); add("relekka", 2643, 3677); add("yanille", 2610, 3093); add("castlewars", 2442, 3090); add("soulwars", 1890, 3177); add("eastardougne", 2662, 3305); add("westardougne", 2528, 3310); add("treegnomevillage", 2465, 3490); add("burthorpe", 2892, 3532); add("warriorsguild", 2846, 3538); add("magebank", 3099, 3959); add("dungeoneering", 3449, 3719); add("elementalworkshop", 2720, 9889); inited = true; } } [/CODE] Now, go to Commands.java and find this: [CODE] processAdminCommand [/CODE] Under that boolean add this command: [CODE] if (cmd[0].equals("t")) { player.setNextWorldTile(TeleportLocations.getByNam e(cmd[1] .replaceAll("_", " "))); } [/CODE] How to use: [video=youtube;IEQtmrmpRX8]http://www.youtube.com/watch?v=IEQtmrmpRX8[/video] If you're just going to flame, don't post.
  6. This is just Mining I made today for RuneEscape. You can add it anywhere you want to. You'd just have to change the placing of the package. This doesn't really need an explanation, since it pretty much explains itself. The first file is what you do with the skill. The second file is the definitions. [CODE]/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.rs.game.player.actions.mining; import com.rs.cache.loaders.ItemDefinitions; import com.rs.game.Animation; import com.rs.game.World; import com.rs.game.WorldObject; import com.rs.game.player.Player; import com.rs.game.player.actions.Action; import com.rs.utils.Utils; /** * * @author Halo` <RuneUnited> */ public class Mining extends Action { private static int Armour[] = { 20787, 20788, 20789, 20790, 20791, 20792 }; private static int Weapons[] = { 1265, 1267, 1269, 1271, 1273, 1275 }; private int emoteId; private int pickaxeTime; private WorldObject rock; private static MiningDefs detail; public Mining(MiningDefs detail, WorldObject rock) { this.detail = detail; this.rock = rock; } private static int Armour() { return Armour[(int) (Math.random() * Armour.length)]; } public boolean hasPickAxe(Player player) { int weaponId = player.getEquipment().getWeaponId(); if (player.getInventory().containsOneItem(Weapons)) return true; if (weaponId != -1) return false; switch(weaponId) { case 1267: case 1269: case 1271: case 1273: case 1265: case 1275: return true; default: return false; } } private boolean checkRock(Player player) { return World.getRegion(rock.getRegionId()).containsObject(rock.getId(), rock); } public int getMiningDelay(Player player) { int mineTimer = detail.getBaseTime() - player.getSkills().getLevel(14) - Utils.getRandom(pickaxeTime); if (mineTimer < 1 + detail.getRandomTime()) mineTimer = 1 + Utils.getRandom(detail.getRandomTime()); return mineTimer; } private void addOre(Player player) { double xpBoost = 1.0; if(player.getEquipment().equals(Armour)) xpBoost += 2.5; if(player.getEquipment().getChestId() == 20791) xpBoost += 0.8; if(player.getEquipment().getLegsId() == 20790) xpBoost += 0.6; if(player.getEquipment().getHatId() == 20792 || player.getEquipment().getHatId() == 20789) xpBoost += 0.4; if(player.getEquipment().getBootsId() == 20788) xpBoost += 0.2; if(player.getEquipment().getGlovesId() == 20787) xpBoost += 0.2; player.getSkills().addXp(14, detail.getXp() * xpBoost); player.getInventory().addItem(detail.getItemId(), 1); String oreName = ItemDefinitions.getItemDefinitions(detail.getItemId()).getName().toLowerCase(); player.sm("You successfully mine some " + oreName + "."); //todo infernal adze } private boolean setPickaxe(Player player) { int level = player.getSkills().getLevel(14); int weaponId = player.getEquipment().getWeaponId(); if (weaponId != -1) switch (weaponId) { default: break; case 15259: if (level >= 61) { emoteId = 12190; pickaxeTime = 13; return true; } break; case 1275: if (level >= 41) { emoteId = 624; pickaxeTime = 10; return true; } break; case 1271: if (level >= 31) { emoteId = 628; pickaxeTime = 7; return true; } break; case 1273: if (level >= 21) { emoteId = 629; pickaxeTime = 5; return true; } break; case 1269: if (level >= 6) { emoteId = 627; pickaxeTime = 3; return true; } break; case 1267: emoteId = 626; pickaxeTime = 2; return true; case 1265: emoteId = 625; pickaxeTime = 1; return true; case 13661: if (level >= 61) { emoteId = 10222; pickaxeTime = 13; return true; } break; } if (player.getInventory().containsOneItem(new int[] { 15259 }) && level >= 61) { emoteId = 12190; pickaxeTime = 13; return true; } if (player.getInventory().containsOneItem(new int[] { 1275 }) && level >= 41) { emoteId = 624; pickaxeTime = 10; return true; } if (player.getInventory().containsOneItem(new int[] { 1271 }) && level >= 31) { emoteId = 628; pickaxeTime = 7; return true; } if (player.getInventory().containsOneItem(new int[] { 1273 }) && level >= 21) { emoteId = 629; pickaxeTime = 5; return true; } if (player.getInventory().containsOneItem(new int[] { 1269 }) && level >= 6) { emoteId = 627; pickaxeTime = 3; return true; } if (player.getInventory().containsOneItem(new int[] { 1267 })) { emoteId = 626; pickaxeTime = 2; return true; } if (player.getInventory().containsOneItem(new int[] { 1265 })) { emoteId = 625; pickaxeTime = 1; return true; } if (player.getInventory().containsOneItem(new int[] { 13661 }) && level >= 61) { emoteId = 10222; pickaxeTime = 13; return true; } else { return false; } } @Override public boolean start(Player player) { if (!checkAll(player)) { return false; } else { player.getPackets().sendGameMessage( "You swing your pickaxe at the rock."); setSkillDelay(player, getMiningDelay(player)); return true; } } @Override public boolean checkAll(Player player) { if (!hasPickAxe(player)) { player.sm("You need a pickaxe to mine this ore."); return false; } if(!setPickaxe(player)) { player.sm("You don't have the required level to use this pick-axe."); return false; } if (!hasLevel(player)) { return false; } if (!player.getInventory().hasFreeSlots()) { player.sm("You don't have enough space in your inventory."); return false; } return true; } @Override public boolean hasLevel(Player player) { if (detail.getLevel() > player.getSkills().getLevel(14)) { player.sm("You require a Mining Level of "+detail.getLevel()+" to mine here."); return false; } return true; } @Override public boolean process(Player player) { player.setNextAnimation(new Animation(emoteId)); return checkRock(player); } @Override public int processWithDelay(Player player) { addOre(player); if (Utils.getRandom(detail.getRandomLife()) == 0) { World.spawnTemporaryObject( new WorldObject(detail.getEmptyId(), rock.getType(), rock.getRotation(), rock.getX(), rock.getY(), rock .getPlane()), detail.getRespawnDelay() * 600); player.setNextAnimation(new Animation(-1)); return -1; } if (!player.getInventory().hasFreeSlots()) { player.setNextAnimation(new Animation(-1)); player.getPackets().sendGameMessage( "Not enough space in your inventory."); return -1; } else { return getMiningDelay(player); } } @Override public void stop(Player player) { setSkillDelay(player, 3); } } [/CODE] That's the first file I used. The second belongs under a different name. [CODE]/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.rs.game.player.actions.mining; /** * * @author Halo` <RuneUnited> */ public enum MiningDefs //Still more Rock Definitions to be added. I was just too lazy to add them all. :P { COPPER_ORE("Copper Ore", 1, 1.5, 10, 4, 4, 11552, 436, 0), TIN_ORE("Tin Ore", 1, 2.5, 10, 4, 4, 11552, 438, 0), IRON_ORE("Iron Ore", 15, 7.7, 15, 12, 12, 11552, 440, 3), RUNITE_ORE("Runite Ore", 85, 50.6, 150, 30, 360, 11552, 451, 0); private String name; private int level; private double xp; private int baseTime; private int randomTime; private int emptyId; private int respawnDelay; private int itemId; private int randomLifeTime; private MiningDefs(String name, int level, double xp, int baseTime, int randomTime, int respawnDelay, int emptyId, int itemId, int randomLifeTime) { this.name = name; this.level = level; this.xp = xp; this.baseTime = baseTime; this.randomTime = randomTime; this.emptyId = emptyId; this.respawnDelay = respawnDelay; this.itemId = itemId; this.randomLifeTime = randomLifeTime; } public int getLevel() { return level; } public double getXp() { return xp; } public int getBaseTime() { return baseTime; } public int getEmptyId() { return emptyId; } public int getItemId() { return itemId; } public int getRandomTime() { return randomTime; } public int getRespawnDelay() { return respawnDelay; } public int getRandomLife() { return randomLifeTime; } } [/CODE]
  7. This is just simple Bone Burying for RuneEscape. [CODE]package com.rs.game.player.content; import com.rs.game.Animation; import com.rs.game.item.Item; import com.rs.game.player.Player; import com.rs.game.tasks.WorldTask; import com.rs.game.tasks.WorldTasksManager; /** * @author Halo` <RuneUnited> */ public class Bones { public static enum Bone { WOLF_BONE("Wolf Bones", 2859, 4.4), BONE("Bones", 526, 4.5), MONKEY_BONE( "Monkey Bones", 3179, 5), BURNT_BONE("Burnt Bones", 528, 5), BAT_BONE( "Bat Bones", 530, 5.25), BIG_BONE("Big Bones", 532, 15), ZOYRGE_BONE( "Zogre Bones", 4812, 22.5), DRAGON_BONE("Dragon Bones", 534, 72), DAGANORTH_BONE( "Dagganoth Bones", 6155, 125), OURG_BONE("Ourg Bones", 4834, 140), ANCIENT_BONE("Ancient Bones", 15410, 200), FROST_BONE( "Frost Bones", 18830, 180); private int boneID; private double xp; private String name; private Bone(String name, int boneID, double xp) { this.boneID = boneID; this.name = name; this.xp = xp; } public double getXp() { return xp; } public int getID() { return boneID; } public String getName() { return name; } } private static Bone getBone(int boneID) { for (Bone b : Bone.values()) { if (boneID == b.boneID) { return b; } } return null; } public static boolean bury(final Player player, Item item, int slot) { final Bone b = getBone(item.getId()); player.getPackets().sendGameMessage("You dig a hole in the ground..."); WorldTasksManager.schedule(new WorldTask() { @Override public void run() { player.getPackets().sendGameMessage( "...and you bury the " + b.getName() + "."); player.setNextAnimation(new Animation(827)); player.getPackets().sendSound(2738, 0); player.getInventory().deleteItem(b.getID(), 1); player.getSkills().addXp(5, b.getXp()); stop(); } }, 2); return true; } }[/CODE] This didn't take me very long but to use it add this is ItemOption1 of your "InventoryPacketHandler" or "WorldPacketsDecoder": [CODE]if (Bones.bury(player, item, slotId)) return;[/CODE]
  8. [code]import com.rs.game.player.skills.Skill; import com.rs.game.player.Player; import com.rs.game.Animation; import com.rs.game.npc.NPC; import com.rs.utils.Utils; import com.rs.cache.loaders.ItemDefinitions; import com.rs.game.player.skills.SkillExecutor; /** * @author Ethan <Atlas Development Team> * @version 1.0 * @since 2011 */ public class Fishing extends Skill { private FishingDetails detail; public enum FishingDetails { CRAY(1, 10, 13431, 619, new int[]{13435}, 20, 4, 5), SHRIMP(1, 10, 303, 621, new int[]{317, 321}, 20, 4, 5), SARDINE(5, 20, 309, 7261, new int[]{327}, 25, 4, 5), HERRING(10, 30, 305, 620, new int[]{345}, 28, 4, 10), TROUT(20, 50, 307, 622,new int[]{335, 331}, 35, 4, 10), SHARK(76, 110, 311 | 10129, 618, new int[]{383}, 150, 21, 10); private int level; private double xp; private int equipmentId; private int emoteId; private int[] fishId; private int fishBaseTime; private int randomCatchTime; private int randomLifeProbability; /** * Enum's Constructor */ private FishingDetails(int level, double xp, int equipmentId, int emoteId, int[] fishId, int fishBaseTime, int randomCatchTime, int randomLifeProbability) { this.level = level; this.xp = xp; this.equipmentId = equipmentId; this.emoteId = emoteId; this.fishId = fishId; this.fishBaseTime = fishBaseTime; this.randomCatchTime = randomCatchTime; this.randomLifeProbability = randomLifeProbability; } public int getLevel() { return level; } public double getXP() { return xp; } public int getEquipmentId() { return equipmentId; } public int getEmoteId() { return emoteId; } public int getFishId() { return fishId[(int)(Math.random() * fishId.length)]; } public int getFishBaseTime() { return fishBaseTime; } public int getRandomCatchTime() { return randomCatchTime; } public int getRandomLifeProbability() { return randomLifeProbability; } } /** * Constructor * @param detail is used to choose which detail in the enum to call */ public Fishing(FishingDetails detail) { this.detail = detail; } /** * Starts the skill from the top * @param player gets information from the Player class * @return true, meaning that everything checks out */ @Override public boolean start(Player player) { if(!checkAll(player)) { return false; } player.getPackets().sendGameMessage("You plunge your hands into the cold fishing spot."); return true; } /** * Gets the delay time for the fish depending on the enum, and your level * @param player gets information from the Player class * @return fishingTimer, meaning the time it will take to catch the fish. * @return used in the processWithDelay method */ private int getDelay(Player player) { int fishingTimer = detail.getFishBaseTime() - player.getSkills().getLevel(10); if(fishingTimer < 1 + detail.getRandomCatchTime()) fishingTimer = 1 + Utils.getRandom(detail.getRandomCatchTime()); return fishingTimer; } /** * Checks is the player has the equipment needed to fish * @param player gets information from the Player class * @return true, meaning that the player does have the equipment needed */ private boolean hasEquipment(Player player) { if(player.getInventory().containsOneItem(detail.getEquipmentId())) { return true; } return false; } /** * Checks multiple variables to see if the player has everything required to fish * @param player gets information from the Player class * @return true, meaning every thing is right for the player to fish */ public boolean checkAll(Player player) { if(!player.getInventory().hasFreeSlots()) { player.getPackets().sendGameMessage("You can't carry any more fish."); return false; } if(!hasEquipment(player)) { player.getPackets().sendGameMessage("You don't have the needed equipment to fish here."); return false; } if(!hasLevel(player)) { return false; } if(detail == FishingDetails.TROUT) { if(!player.getInventory().containsOneItem(314)) { player.getPackets().sendGameMessage("You need feathers to fish with a rod here."); return false; } } if(detail == FishingDetails.SARDINE) { if(!player.getInventory().containsOneItem(313)) { player.getPackets().sendGameMessage("You need bait to fish with a rod here."); return false; } } return true; } /** * Checks to see if the player has the level needed * @param player gets information from the Player class * @return true, meaning that the player has the level required */ public boolean hasLevel(Player player) { if(detail.getLevel() > player.getSkills().getLevel(10)) { player.getPackets().sendGameMessage("You need a fishing level of " + detail.getLevel() + " fishing to fish at this spot."); return false; } return true; } /** * Handles animation, just that really.. * @param player gets information from the Player class * @return true, meaning that the process is allowed to happen */ @Override public boolean process(Player player) { player.setNextAnimation(new Animation(detail.getEmoteId())); return true; } /** * processes the players action using a delay that you set * @param player gets information from the Player class * @return getDelay @see getDelay */ @Override public int processWithDelay(Player player) { addFish(player); if(Utils.getRandom(detail.getRandomLifeProbability()) == 0) { player.setNextAnimation(new Animation(-1)); return -1; } if(!player.getInventory().hasFreeSlots()) { player.setNextAnimation(new Animation(-1)); player.getPackets().sendGameMessage("You can't carry any more fish."); return -1; } return getDelay(player); } /** * Handles adding fish, xp and what not * @param player gets information from the Player class */ public void addFish(Player player) { if(detail == FishingDetails.TROUT) { player.getInventory().deleteItem(314, 1); } if(detail == FishingDetails.SARDINE) { player.getInventory().deleteItem(313, 1); } int fishId = detail.getFishId(); String fishName = ItemDefinitions.getItemDefinitions(fishId).getName().toLowerCase(); player.getInventory().addItem(fishId, 1); player.getPackets().sendGameMessage("You catch a " + fishName + "."); player.getSkills().addXp(10, detail.getXP()); } /** * Stops process * @param player gets information from the Player class */ @Override public void stop(Player player) { setSkillDelay(player, 3); } }[/code]
  9. [IMG]http://i55.tinypic.com/be6cxy.png[/IMG] Well i didnt do part of loop but that you can do. So first of all you need interface scripts: [CODE] package com.rs.cache.loaders; import java.util.HashMap; import java.util.concurrent.ConcurrentHashMap; import com.rs.cache.Cache; import com.rs.io.InputStream; import com.rs.utils.Utils; public final class InterfaceScript { @SuppressWarnings("unused") private char aChar6337; @SuppressWarnings("unused") private char aChar6345; private String defaultStringValue; private int defaultIntValue; private HashMap<Long, Object> values; private static final ConcurrentHashMap<Integer, InterfaceScript> interfaceScripts = new ConcurrentHashMap<Integer, InterfaceScript>(); public static final InterfaceScript getInterfaceScript(int scriptId) { InterfaceScript script = interfaceScripts.get(scriptId); if(script != null) return script; byte[] data = Cache.STORE.getIndexes()[17].getFile(scriptId >>> 0xba9ed5a8, scriptId & 0xff); script = new InterfaceScript(); if(data != null) script.readValueLoop(new InputStream(data)); interfaceScripts.put(scriptId, script); return script; } public Object getValue(long key) { if(values == null) return null; return values.get(key); } public long getKeyForValue(Object value) { for(Long key : values.keySet()) { if(values.get(key).equals(value)) return key; } return -1; } public int getIntValue(long key) { if(values == null) return defaultIntValue; Object value = values.get(key); if(value == null || !(value instanceof Integer)) return defaultIntValue; return (Integer) value; } public String getStringValue(long key) { if(values == null) return defaultStringValue; Object value = values.get(key); if(value == null || !(value instanceof String)) return defaultStringValue; return (String) value; } private void readValueLoop(InputStream stream) { for (; ;) { int opcode = stream.readUnsignedByte(); if (opcode == 0) break; readValues(stream, opcode); } } private void readValues(InputStream stream, int opcode) { if(opcode == 1) aChar6337 = Utils.method2782((byte) stream.readByte()); else if (opcode == 2) aChar6345 = Utils.method2782((byte) stream.readByte()); else if (opcode == 3) defaultStringValue = stream.readString(); else if (opcode == 4) defaultIntValue = stream.readInt(); else if (opcode == 5 || opcode == 6) { int count = stream.readUnsignedShort(); int loop = opcode == 7 || opcode == 8 ? stream.readUnsignedShort() : count; values = new HashMap<Long, Object>(Utils.getHashMapSize(count)); for(int i = 0; i < loop; i++) { int key = stream.readInt(); Object value = opcode == 5 || opcode == 7 ? stream.readString() : stream.readInt(); values.put((long) key, value); } } } private InterfaceScript() { defaultStringValue = "null"; } } [/CODE] Go region.java and replace those methods, thats real music id by name directly from list not from cache named archives:(rs stoped adding them after dung there): [CODE] public static final String getMusicName(int regionId) { switch(regionId) { /* * tutorial island */ case 12336: return "Newbie Melody"; /* * darkmeyer * */ case 14644: return "Darkmeyer"; /* * kalaboss * */ case 13626: case 13627: case 13882: return "Born to Do this"; /* * Lumbridge, falador and region. */ case 12850: case 12849: return "Dream"; case 12851: return "Autumn Voyage"; case 12338: case 12339: return "Start"; case 12593: return "Book of Spells"; case 12083: return "Competition"; case 12082: return "Sea Shanty"; case 12081: case 11573: case 11574: case 11575: case 11317: return "Attention"; case 11825: return "Arrival"; case 11823: return "Mudskipper Melody"; case 11824: return "Sea Shanty2"; case 11826: return "Fanfare"; case 11570: return "Wandar"; case 11827: return "Splendour"; case 11828: return "Long Way Home"; case 11829: return "Workshop"; case 12341: return "Barbarianims"; case 12853: case 12854: return "Greatness"; case 12852: return "Expanse"; case 12597: return "Bounty Hunter Level 1"; case 12594: return "Doorways"; case 12855: return "Crystal Sword"; case 12856: return "Dark"; case 12599: case 11320: return "Bounty Hunter Level 3"; case 12598: return "Doorways"; case 12342: case 12343: return "Spirit"; case 12600: return "Scape Wild"; /* * Camelot and region. */ case 11062: case 10806: case 10805: return "Camelot"; case 10550: return "Talking Forest"; case 10549: return "Lasting"; case 10548: return "Wonderous"; case 10547: return "Baroque"; case 10291: case 10292: case 10293: return "Knightly"; /* * Mobilies Armies. */ case 9516: return "Command Centre"; default: return null; } } private static final int getMusicId(int regionId) { String musicName = getMusicName(regionId); if(musicName == null) return -1; int musicIndex = (int) InterfaceScript.getInterfaceScript(1345).getKeyForValue(musicName); return InterfaceScript.getInterfaceScript(1351).getIntValue(musicIndex); } [/CODE] Now the MusicsManager(player) class: [CODE] package com.rs.game.player; import java.io.Serializable; import java.util.ArrayList; import com.rs.cache.loaders.InterfaceScript; public final class MusicsManager implements Serializable { private static final long serialVersionUID = 1020415702861567375L; private static final int LAST_MUSIC_ID = 736; private static final int[] CONFIG_IDS = new int[] {20,21,22,23,24,25,298,311,346,414,464,598,662,721,906,1009,1104,1136,1180,1202,1381,1394,1434}; private transient Player player; private transient int playingMusic; private transient long playingMusicDelay; private ArrayList<Integer> unlockedMusics; public MusicsManager() { unlockedMusics = new ArrayList<Integer>(); } public void setPlayer(Player player) { this.player = player; } public void refreshListConfigs() { int[] configValues = new int[CONFIG_IDS.length]; for(int musicId : unlockedMusics) { int musicIndex = (int) InterfaceScript.getInterfaceScript(1351).getKeyForValue(musicId); if(musicIndex == -1 || musicIndex >= LAST_MUSIC_ID) continue; int index = getConfigIndex(musicIndex); if(index >= CONFIG_IDS.length) continue; configValues[index] |= 1 << (musicIndex-(index*32)); } for(int i = 0; i < CONFIG_IDS.length; i++) { if(configValues[i] != 0) player.getPackets().sendConfig(CONFIG_IDS[i], configValues[i]); } } public void addMusic(int musicId) { unlockedMusics.add(musicId); refreshListConfigs(); } public int getConfigIndex(int musicId) { return (musicId+1) / 32; } public void unlockMusicPlayer() { player.getPackets().sendUnlockIComponentOptionSlots(187, 1, 0, LAST_MUSIC_ID, 0); } public void init() { //unlock music inter all options if(playingMusic > 0) playMusic(playingMusic); refreshListConfigs(); } public boolean musicEnded() { return playingMusic > 0 && playingMusicDelay + (60000) < System.currentTimeMillis(); } public void replayMusic() { playMusic(playingMusic); } public void checkMusic(int requestMusicId) { if(playingMusic != requestMusicId) playMusic(requestMusicId); } public void playMusic(int musicId) { this.playingMusic = musicId; playingMusicDelay = System.currentTimeMillis(); if(!player.hasStarted()) return; player.getPackets().sendMusic(musicId); int musicIndex = (int) InterfaceScript.getInterfaceScript(1351).getKeyForValue(musicId); System.out.println(musicId); if(musicIndex != -1) { String musicName = InterfaceScript.getInterfaceScript(1345).getStringValue(musicIndex); player.getPackets().sendIComponentText(187, 14, musicName); if(!unlockedMusics.contains(musicId)) { addMusic(musicId); if(musicName != null) player.getPackets().sendGameMessage("<col=ff0000>You have unlocked a new music track: "+musicName+"."); } } } } [/CODE] At World.java [CODE] /* * check if the entity region changed because moved or teled then we update it */ public static final void updateEntityRegion(Entity entity) { if(entity.hasFinished()) { if(entity instanceof Player) getRegion(entity.getLastRegionId()).removePlayerIndex(entity.getIndex()); else getRegion(entity.getLastRegionId()).removeNPCIndex(entity.getIndex()); return; } int regionId = entity.getRegionId(); if(entity.getLastRegionId() != regionId) { //map region entity at changed if(entity instanceof Player) { if(entity.getLastRegionId() > 0) getRegion(entity.getLastRegionId()).removePlayerIndex(entity.getIndex()); Region region = getRegion(regionId); region.addPlayerIndex(entity.getIndex()); Player player = (Player) entity; player.getControlerManager().moved(); if(region.getMusicId() > 0) player.getMusicsManager().checkMusic(region.getMusicId()); }else{ if(entity.getLastRegionId() > 0) getRegion(entity.getLastRegionId()).removeNPCIndex(entity.getIndex()); getRegion(regionId).addNPCIndex(entity.getIndex()); } entity.checkMultiArea(); entity.setLastRegionId(regionId); }else{ if(entity instanceof Player) { Player player = (Player) entity; player.getControlerManager().moved(); if(player.getMusicsManager().musicEnded()) player.getMusicsManager().replayMusic(); } entity.checkMultiArea(); } } [/CODE] At InterfaceManager.java: [CODE] public final void sendInterfaces() { if(player.getDisplayMode() == 2 || player.getDisplayMode() == 3) { resizableScreen = true; sendFullScreenInterfaces(); }else{ resizableScreen = false; sendFixedInterfaces(); } player.getPackets().sendHideIComponent(745, 1, !player.isAtMultiArea()); //multi icon player.getCombatDefinitions().sendUnlockAttackStylesButtons(); player.getMusicsManager().unlockMusicPlayer(); player.getPrayer().init(); //unlock pray options player.getControlerManager().sendInterfaces(); } [/CODE] At Utils.java: [CODE] public static char method2782(byte value) { int byteChar = 0xff & value; if (byteChar == 0) throw new IllegalArgumentException("Non cp1252 character 0x" + Integer.toString(byteChar, 16) + " provided"); if ((byteChar ^ 0xffffffff) <= -129 && byteChar < 160) { int i_4_ = aCharArray6385[-128 + byteChar]; if ((i_4_ ^ 0xffffffff) == -1) i_4_ = 63; byteChar = i_4_; } return (char) byteChar; } public static int getHashMapSize(int size) { size--; size |= size >>> -1810941663; size |= size >>> 2010624802; size |= size >>> 10996420; size |= size >>> 491045480; size |= size >>> 1388313616; return 1 + size; } [/CODE] 32musics per config 1 per bit :p. Quests might work somewhat like this but they have 1 extra value so we can get up to 21quests and 1unused bit per config for quests if my theory correct anywaydoesnt matter. Thats 100% music unlocking + music book :). NP
  10. [code] import com.rs.game.player.Player; public class SkillBase extends Skill { public enum SkillDefinitions { FILLER(1,1); private int level; private double xp; /** * Constructor * @param level * @param xp */ private SkillDefinitions(int level, double xp) { this.level = level; this.xp = xp; } public int getLevel() { return level; } public double getXP() { return xp; } } private SkillDefinitions definitions; @Override public boolean start(Player player) { if(!checkAll(player) { return false; } return true; } @Override public boolean process(Player player) { if(!checkAll(player)) { return false; } setSkillDelay(player, 20); return true; } public boolean checkAll(Player player) { if(!hasLevel(player)) { return false; } return true; } private boolean hasLevel(Player player) { if (definitions.getLevel() > player.getSkills().getLevel(0)) { return false; } return true; } @Override public int processWithDelay(Player player) { return -1; } @Override public void stop(Player player) { setSkillDelay(player, 3); } }[/code]
  11. Just downloaded RuneEscape because I fucked my RS2HD source :p The glitch is, when I wear something, it doesn't refresh the player. Then, if I try and walk, it d/cs me. If I try and open equipment stats, it d/cs me. If I try and take the item off, it d/cs me... When I relog, I'll be wearing the item, and I can move and stuff... But when I try to equip another item... Doesn't work... -.- EDIT - just figured out, it actually just d/cs me about 10 seconds after I equip the item... In the client, I get: "Error: T1 - bunch of numbers - 0" Searched it up in PacketParser and the comment in there says "Disabled Packets Crashing"
  12. [CENTER]I didnt do this earlier because i didnt have the id's for npc and ect. Thanks to iRepo, I converted his rs2hd version to RuneEscape This code is 100% converted and test by me, I didnt see any glitches or error so if you do, please reply. Media: [video=youtube;5ixgmKK3WTc]http://www.youtube.com/watch?v=5ixgmKK3WTc[/video] [code] case 19709: case 19710: //Master dungeoneering cape WorldTasksManager.schedule(new WorldTask() { int step; private NPC dung1, dung2, dung3, dung4; @Override public void run() { if (step == 1) { player.getAppearence().transformIntoNPC(11229); player.setNextAnimation(new Animation(14608)); dung1 = new NPC(-1, new WorldTile(player.getX(), player.getY() -1, player.getPlane()), -1, true); dung1.setLocation(dung1); dung1.setNextGraphics(new Graphics(2777)); dung2 = new NPC(-1, new WorldTile(player.getX()+1, player.getY()-1, player.getPlane()), -1, true); } if (step == 2) { dung1.finish(); player.getAppearence().transformIntoNPC(11228); dung2.setLocation(dung2); player.setNextAnimation(new Animation(14609)); player.setNextGraphics(new Graphics(2782)); dung2.setNextGraphics(new Graphics(2778)); dung3 = new NPC(-1, new WorldTile(player.getX(), player.getY()-1, player.getPlane()), -1, true); dung4 = new NPC(-1, new WorldTile(player.getX(), player.getY()+1, player.getPlane()), -1, true); } if (step == 3) { dung2.finish(); player.getAppearence().transformIntoNPC(11227); dung3.setLocation(dung3); dung4.setLocation(dung4); dung4.setNextFaceEntity(player); player.setNextAnimation(new Animation(14610)); dung3.setNextGraphics(new Graphics(2779)); dung4.setNextGraphics(new Graphics(2780)); } if (step > 4) { dung4.setNextFaceEntity(null); player.getAppearence().transformIntoNPC(-1); dung3.finish(); dung4.finish(); stop(); } step++; } }, 0, 1); break;[/code] Credits must be given to the needed so: 50% - iRepo for finding the npc, gfx, emote id. 50% - Me for converting this to RuneEscape format.[/CENTER]
  13. [CENTER][COLOR="#0000FF"]Alright so i know everyone was looking forward to this. I didnt think i was gonna release but now since the emote is kinda getting old, i figured why not? Media: [video=youtube;LObubvgmcik]http://www.youtube.com/watch?v=LObubvgmcik[/video] Info: I updated the code after the video. How to use: Make a static int called Maxdelay; Under the place where you call the maxCape method, add, "Maxdelay = 30;" Compile and Run. Code: [code] public static void maxCape(final Player p) { final NPC n = new NPC(1224, new WorldTile(p.getX(), p.getY() - 1, p.getPlane()), 0, false); n.setNextFaceEntity(p); p.setNextFaceEntity(n); WorldTasksManager.schedule(new WorldTask() { @Override public void run() { if (Maxdelay < 1) { Maxdelay = -1; p.setNextFaceEntity(p); this.stop(); } if (Maxdelay == 30) { n.setLocation(p.getX(), p.getY() - 1, p.getPlane()); p.setNextAnimation(new Animation(1179)); n.setNextGraphics(new Graphics(1482)); } if (Maxdelay == 28) { p.setNextAnimation(new Animation(1180)); n.setNextGraphics(new Graphics(1486)); } if (Maxdelay == 27) { n.setNextAnimation(new Animation(1436)); } if (Maxdelay == 26) { p.setNextAnimation(new Animation(1181)); n.setNextGraphics(new Graphics(1498)); } if (Maxdelay == 25) { p.setNextAnimation(new Animation(1182)); n.setNextAnimation(new Animation(1448)); } if (Maxdelay == 23) { p.setNextAnimation(new Animation(1250)); } if (Maxdelay == 21) { p.setNextAnimation(new Animation(1251)); p.setNextGraphics(new Graphics(1499)); n.setNextAnimation(new Animation(1454)); } if (Maxdelay == 19) { n.setNextGraphics(new Graphics(1315)); } if (Maxdelay == 16) { p.setNextAnimation(new Animation(1291)); p.setNextGraphics(new Graphics(1505)); n.setNextAnimation(new Animation(1440)); n.setNextGraphics(new Graphics(1598)); } if (Maxdelay == 15) { //This needs fixing n.setNextGraphics(new Graphics(2737, 0, 300)); World.sendProjectile(p, n, 2729, 40, 60, 4, 0, -1, 0); } if (Maxdelay == 12) { n.reset(); n.finish(); n.setFinished(true); World.removeNPC(n); Maxdelay = -1; } if (Maxdelay > 0){ Maxdelay--; } } }, 1, 1); }[/code][/COLOR] Credits: Code -100% me emote, gfx, npc id - Some1 from RL. Forgot who.[/CENTER]
  14. [COLOR="#B22222"]Well, I did it as a command because its much easier to do it that way to my opinion. [video=youtube;rbh2dWhPZYk]http://www.youtube.com/watch?v=rbh2dWhPZYk[/video] [code] if(cmd[0].equalsIgnoreCase("halloween")){ final NPC n = new NPC(14388, new WorldTile(player.getX(), player.getY() + 4, player.getPlane()), 0, false); n.setLocation(n); n.setNextFaceEntity(player); player.setNextFaceEntity(n); WorldTasksManager.schedule(new WorldTask() { int emote = 10; @Override public void run() { if (emote <= 0 || player.hasFinished()) { this.stop(); } if (emote == 10) { n.setNextAnimation(new Animation(13964)); player.setNextGraphics(new Graphics(1766)); player.setNextAnimation(new Animation(13965)); } if (emote == 1) { n.setFinished(true); World.removeNPC(n); n.setNextFaceEntity(null); } if (emote == 0) { player.setNextForceTalk(new ForceTalk("Phew! Close call.")); player.setNextFaceEntity(null); emote = 0; } if (emote > 0) { emote--; } } }, 1, 1); return true; }[/code][/COLOR]
  15. Is there Dragon Claws Spec? Is it 100%? Is there a Post-Hit of 1000+?
  16. How do i make x10 prayer for RuneEscape Based Server Anyone
  17. Fixed*
  18. [CENTER][COLOR="#B22222"]-Just another simple tutorial- Purpose: If you update the cache, the old cache still remains until you delete it manually. This will delete it automatically, When new cache starts downloading. If you change the cache dir when you update cache, It deletes the old cache folder. Step 1: Go to ClientSettings class and Under: [code] public static String getCacheDir() { return System.getProperty("user.home") + "/fathien666v2"; //only change this if you edit cache }[/code] Paste this code: [code] public static String getOldDir() { return System.getProperty("user.home") + "/fathien666"; //only change this if you edit cache }[/code] [B]Remember to replace "fathien666" to your oldCachedir!![/B] Step 2: Close that class. Go into Client class and this line: [code]public static int hitpoints;[/code] Above that add this method: [code] public static boolean deleteDir(File dir) { if (dir.isDirectory()) { String[] children = dir.list(); for (int i=0; i<children.length; i++) { boolean success = deleteDir(new File(dir, children[i])); if (!success) { return false; } } } return dir.delete(); }[/code] Step 3: In that class, Find this line: [code]downloader = new Downloader(new URL(ClientSettings.cacheLink), new File(ClientSettings.getCacheDir() + "/cache"+temporaryNamePart+".zip"));[/code] Above that add this: [code]if (deleteDir(new File(ClientSettings.getOldDir())))[/code] There, Done. Old cache folder should be deleted automatically now. If you have any error, Please post it.[/COLOR][/CENTER]
  19. Hash

    RuneEscape packet

    I made summoning but I need packet 29 to finish it. If someone could show me how to fully add it, it would be very nice. :D
  20. OK this probably isn't a very good way to do this but it will auto save the player in case of un expected shut downs. look for: [code]private void processThisPlayer(OutputStream stream, OutputStream updateBlockData) {[/code] In LocalPlayerUpdate.java then find: [code]stream.writeBits(1, needUpdate || movementUpdate ? 1 : 0);[/code] and under it add: [code]SerializableFilesManager.savePlayer(player);[/code] Now it should auto save players.
  21. replace at world class this method: [CODE] public static final void spawnTemporaryObject(final WorldObject object, long time) { final int regionId = object.getRegionId(); WorldObject realMapObject = getRegion(regionId).getRealObject(object); //remakes object, has to be done because on static region coords arent same of real final WorldObject realObject = realMapObject == null ? null : new WorldObject(realMapObject.getId(), realMapObject.getType(), realMapObject.getRotation(), object.getX(), object.getY(), object.getPlane()); spawnObject(object, false); CoresManager.slowExecutor.schedule(new Runnable() { @Override public void run() { synchronized(players) { getRegion(regionId).removeObject(object); for(Player p2 : players) { if(p2 == null || !p2.hasStarted() || p2.hasFinished() || p2.getPlane() != object.getPlane() || !p2.getMapRegionsIds().contains(regionId)) continue; if(realObject != null) p2.getPackets().sendSpawnedObject(realObject); else p2.getPackets().sendDestroyObject(object); } } } }, time, TimeUnit.MILLISECONDS); } [/CODE] And at WorldPacketEncoder add: public void sendDestroyObject(WorldObject object) { sendWorldTile(object); OutputStream stream = new OutputStream(3); stream.writePacket(27); stream.writeByte128(0); //the hash for coords, useless stream.writeByteC((object.getType() << 2) + (object.getRotation() & 0x3)); session.write(stream); }
  22. Data/Npc/ UnpackedSpawnsList.txt - Im guessing this is the file to add npcs to the map? When i add an npc, it doesnt appear ingame. [code] //use: NPCid - x y plane (optional: MapAreaName canBeAttackFromOutOfArea?) //dungeonnering 9708 - 3254 3170 0 //RegionId: 7474, regionX: 1856, regionY: 3200 8599 - 1875 3207 0 8599 - 1878 3210 0 8599 - 1880 3206 0 8599 - 1882 3208 0 8599 - 1886 3207 0 8593 - 1886 3231 0 8599 - 1891 3208 0 8599 - 1891 3251 0 8599 - 1892 3254 0 8599 - 1896 3250 0 8599 - 1897 3253 0 8599 - 1903 3250 0 8599 - 1903 3254 0 //RegionId: 7490, regionX: 1856, regionY: 4224 11 - 3083 3603 0 2682 - 1866 4237 0 2682 - 1866 4240 0 3778 - 1867 4233 0 2682 - 1867 4243 0 6188 - 1901 4271 0 6168 - 1904 4274 0 6166 - 1904 4279 0 6190 - 1906 4270 0 6167 - 1906 4277 0 3780 - 1906 4281 0 6188 - 1909 4271 0 //RegionId: 9540, regionX: 2368, regionY: 4352 3318 - 2401 4378 0 3345 - 2412 4370 0 3345 - 2416 4376 0 3345 - 2419 4374 0 3345 - 2420 4377 0 3345 - 2421 4370 0 //RegionId: 9541, regionX: 2368, regionY: 4416 11417 - 2373 4447 0 11420 - 2375 4448 0 534 - 2375 4449 0 11421 - 2376 4446 0 535 - 2376 4447 0 4422 - 2377 4450 0 11308 - 2377 4468 0 498 - 2379 4457 0 909 - 2379 4459 0 126 - 2381 4422 0 11419 - 2381 4423 0 126 - 2381 4425 0 4422 - 2381 4459 0 126 - 2382 4429 0 11422 - 2383 4456 0 126 - 2385 4419 0 11415 - 2386 4431 0 3322 - 2386 4439 0 4423 - 2387 4456 0 126 - 2388 4421 0 4422 - 2388 4425 0 126 - 2388 4428 0 4431 - 2388 4470 0 11416 - 2391 4453 0 11418 - 2393 4447 0 4422 - 2394 4440 0 154 - 2394 4453 0 154 - 2394 4457 0 11415 - 2395 4461 0 4424 - 2396 4455 0 11416 - 2396 4457 0 11419 - 2398 4447 0 4425 - 2398 4453 0 11317 - 2401 4452 0 154 - 2406 4447 0 11417 - 2408 4445 0 4455 - 2410 4434 0 5164 - 2410 4456 0 11421 - 2412 4437 0 3344 - 2412 4470 0 3344 - 2414 4467 0 5164 - 2415 4429 0 11419 - 2415 4438 0 3310 - 2415 4451 0 153 - 2415 4466 0 3344 - 2415 4475 0 3310 - 2416 4435 0 11416 - 2418 4437 0 4422 - 2418 4447 0 153 - 2419 4427 0 11416 - 2419 4465 0 3344 - 2419 4467 0 3344 - 2419 4474 0 153 - 2421 4468 0 3310 - 2423 4432 0 4423 - 2423 4461 0 6073 - 2424 4436 0 153 - 2426 4431 0 11419 - 2426 4433 0 6072 - 2426 4442 0 4422 - 2427 4461 0 11420 - 2431 4452 0 11418 - 2431 4457 0 //RegionId: 10028, regionX: 2496, regionY: 2816 7031 - 2499 2820 0 7081 - 2499 2860 0 7079 - 2501 2851 0 7078 - 2502 2838 0 7022 - 2503 2821 0 7039 - 2503 2824 0 7080 - 2508 2853 0 7021 - 2510 2822 0 5072 - 2510 2876 0 7031 - 2511 2819 0 7082 - 2516 2858 0 7072 - 2517 2840 0 5072 - 2517 2878 0 7039 - 2518 2824 0 7067 - 2518 2842 0 7024 - 2523 2823 0 7031 - 2525 2820 0 7091 - 2525 2852 0 7092 - 2526 2854 0 7031 - 2527 2818 0 7094 - 2527 2851 0 7093 - 2527 2853 0 5072 - 2527 2877 0 7068 - 2531 2850 0 7073 - 2533 2848 0 7039 - 2534 2821 0 7034 - 2536 2839 0 7025 - 2537 2820 0 7036 - 2538 2841 0 7032 - 2539 2838 0 7033 - 2541 2837 0 7031 - 2542 2819 0 7035 - 2542 2839 0 7026 - 2543 2822 0 7048 - 2545 2836 0 7051 - 2547 2852 0 7039 - 2548 2823 0 7104 - 2549 2852 0 7031 - 2551 2817 0 7042 - 2551 2863 0 7023 - 2552 2821 0 7050 - 2553 2837 0 7049 - 2553 2839 0 7043 - 2553 2862 0 7031 - 2554 2819 0 7074 - 2556 2858 0 7047 - 2557 2836 0 7031 - 2559 2819 0 7055 - 2559 2851 0 7069 - 2559 2858 0 //RegionId: 10035, regionX: 2496, regionY: 3264 5316 - 2497 3292 0 5298 - 2499 3286 0 5300 - 2500 3283 0 103 - 2501 3289 0 5345 - 2501 3294 0 348 - 2501 3315 0 355 - 2504 3318 0 353 - 2504 3326 0 5303 - 2506 3284 0 351 - 2507 3325 0 353 - 2509 3314 0 354 - 2510 3318 0 5318 - 2511 3287 0 352 - 2511 3322 0 717 - 2513 3294 0 363 - 2513 3315 0 348 - 2513 3325 0 373 - 2516 3274 0 6345 - 2518 3275 0 357 - 2518 3309 0 717 - 2518 3320 0 361 - 2519 3277 0 347 - 2523 3292 0 356 - 2523 3307 0 354 - 2524 3271 0 348 - 2526 3279 0 357 - 2526 3303 0 713 - 2526 3319 0 348 - 2528 3297 0 358 - 2529 3285 0 717 - 2530 3274 0 3216 - 2534 3273 0 348 - 2535 3288 0 717 - 2535 3296 0 347 - 2536 3294 0 729 - 2536 3308 0 362 - 2537 3324 0 347 - 2538 3321 0 3216 - 2539 3273 0 352 - 2540 3279 0 716 - 2540 3286 0 725 - 2540 3305 0 728 - 2540 3308 0 720 - 2542 3306 0 369 - 2542 3326 0 357 - 2543 3309 0 353 - 2545 3278 0 369 - 2545 3324 0 369 - 2545 3327 0 6339 - 2547 3277 0 371 - 2547 3326 0 348 - 2548 3287 0 371 - 2549 3322 0 360 - 2550 3272 0 357 - 2550 3319 0 371 - 2550 3326 0 357 - 2552 3319 0 371 - 2552 3323 0 369 - 2552 3326 0 369 - 2553 3322 0 369 - 2553 3324 0 349 - 2556 3266 0 350 - 2559 3266 0 711 - 2536 3314 1 370 - 2551 3324 1 370 - 2551 3327 1 372 - 2559 3303 1 372 - 2559 3305 1 //RegionId: 10284, regionX: 2560, regionY: 2816 7039 - 2560 2822 0 7056 - 2560 2851 0 7041 - 2562 2863 0 7040 - 2563 2862 0 7031 - 2566 2820 0 7039 - 2570 2823 0 7062 - 2571 2840 0 7052 - 2571 2855 0 7031 - 2575 2818 0 7102 - 2576 2840 0 7031 - 2578 2819 0 7103 - 2579 2843 0 7070 - 2581 2866 0 7039 - 2582 2824 0 7103 - 2582 2843 0 7075 - 2583 2865 0 7101 - 2585 2842 0 7099 - 2585 2844 0 7100 - 2586 2840 0 7031 - 2587 2819 0 7039 - 2588 2828 0 7031 - 2595 2821 0 7031 - 2595 2826 0 7057 - 2596 2845 0 7076 - 2596 2865 0 7071 - 2598 2864 0 7095 - 2609 2863 0 7096 - 2610 2865 0 7097 - 2611 2862 0 7098 - 2611 2864 0 7077 - 2617 2856 1 7066 - 2619 2856 1 7065 - 2621 2857 1 //RegionId: 10291, regionX: 2560, regionY: 3264 719 - 2560 3288 0 2945 - 2562 3319 0 2949 - 2562 3320 0 885 - 2565 3271 0 888 - 2565 3273 0 890 - 2569 3272 0 887 - 2570 3275 0 889 - 2571 3270 0 20 - 2571 3306 0 20 - 2572 3299 0 20 - 2572 3303 0 8345 - 2573 3321 0 738 - 2574 3319 0 8468 - 2574 3321 0 20 - 2577 3308 0 20 - 2581 3286 0 20 - 2581 3299 0 23 - 2582 3297 0 20 - 2583 3292 0 15 - 2584 3305 0 15 - 2585 3289 0 15 - 2587 3291 0 7574 - 2592 3264 0 131 - 2592 3269 0 131 - 2594 3271 0 1469 - 2595 3277 0 8693 - 2596 3266 0 131 - 2596 3269 0 5445 - 2596 3270 0 7580 - 2597 3265 0 6891 - 2598 3272 0 132 - 2600 3275 0 1463 - 2600 3276 0 132 - 2600 3279 0 109 - 2601 3269 0 1463 - 2601 3276 0 1463 - 2601 3277 0 1463 - 2601 3278 0 107 - 2602 3267 0 7572 - 2602 3274 0 1463 - 2602 3279 0 1463 - 2602 3282 0 107 - 2603 3270 0 132 - 2603 3279 0 132 - 2603 3281 0 7571 - 2603 3284 0 109 - 2604 3272 0 1463 - 2604 3276 0 132 - 2604 3277 0 109 - 2605 3268 0 1463 - 2605 3280 0 1463 - 2605 3281 0 109 - 2606 3271 0 1463 - 2606 3280 0 5138 - 2607 3264 0 107 - 2607 3268 0 7573 - 2608 3279 0 128 - 2610 3274 0 128 - 2610 3275 0 28 - 2611 3269 0 1216 - 2611 3285 0 1215 - 2612 3287 0 25 - 2612 3316 0 366 - 2612 3324 0 1215 - 2613 3287 0 590 - 2613 3294 0 290 - 2614 3306 0 24 - 2614 3318 0 80 - 2615 3266 0 128 - 2615 3276 0 591 - 2615 3292 0 128 - 2616 3275 0 128 - 2616 3276 0 95 - 2616 3283 0 31 - 2616 3308 0 289 - 2617 3299 0 80 - 2619 3265 0 7570 - 2619 3279 0 95 - 2620 3283 0 80 - 2621 3266 0 24 - 2621 3293 0 113 - 2622 3272 0 116 - 2622 3277 0 372 - 2561 3303 1 372 - 2561 3305 1 20 - 2572 3292 1 4580 - 2572 3299 1 885 - 2573 3268 1 890 - 2573 3269 1 25 - 2574 3321 1 20 - 2577 3295 1 364 - 2577 3298 1 20 - 2578 3285 1 20 - 2581 3286 1 20 - 2581 3307 1 20 - 2582 3306 1 20 - 2584 3288 1 20 - 2584 3304 1 20 - 2585 3290 1 20 - 2586 3289 1 20 - 2586 3303 1 20 - 2587 3291 1 20 - 2588 3301 1 25 - 2621 3293 1 27 - 2574 3285 2 27 - 2574 3308 2 27 - 2582 3284 2 27 - 2582 3309 2 27 - 2588 3290 2 27 - 2588 3303 2 //RegionId: 10547, regionX: 2624, regionY: 3264 99 - 2624 3319 0 99 - 2624 3327 0 89 - 2629 3266 0 15 - 2629 3295 0 21 - 2630 3288 0 105 - 2632 3280 0 15 - 2632 3299 0 7563 - 2632 3313 0 105 - 2633 3274 0 89 - 2634 3265 0 845 - 2635 3311 0 4247 - 2639 3291 0 8081 - 2641 3283 0 99 - 2642 3314 0 843 - 2644 3274 0 843 - 2644 3276 0 99 - 2646 3325 0 843 - 2647 3271 0 21 - 2647 3306 0 32 - 2651 3307 0 23 - 2652 3318 0 23 - 2653 3300 0 2256 - 2653 3315 0 574 - 2655 3302 0 571 - 2655 3310 0 495 - 2657 3280 0 494 - 2657 3283 0 494 - 2657 3286 0 2256 - 2657 3307 0 9167 - 2658 3273 0 9166 - 2659 3272 0 572 - 2659 3296 0 32 - 2659 3309 0 569 - 2659 3316 0 589 - 2660 3291 0 32 - 2660 3309 0 32 - 2661 3309 0 32 - 2661 3317 0 32 - 2663 3301 0 573 - 2664 3296 0 32 - 2665 3300 0 6138 - 2665 3311 0 9169 - 2666 3273 0 9170 - 2666 3277 0 21 - 2667 3315 0 23 - 2669 3298 0 570 - 2669 3302 0 571 - 2669 3310 0 23 - 2671 3313 0 11271 - 2680 3290 0 11272 - 2682 3288 0 844 - 2683 3323 0 6386 - 2683 3326 0 381 - 2679 3275 1 4961 - 2683 3275 1 4953 - 2684 3274 1 //RegionId: 10802, regionX: 2688, regionY: 3200 1588 - 2691 3215 0 1587 - 2692 3204 0 1587 - 2695 3216 0 112 - 2698 3206 0 4688 - 2699 3212 0 108 - 2715 3218 0 108 - 2719 3223 0 108 - 2720 3212 0 108 - 2722 3220 0 108 - 2724 3215 0 108 - 2729 3224 0 108 - 2733 3225 0 //RegionId: 10835, regionX: 2688, regionY: 5312 5758 - 2693 5332 0 5765 - 2694 5333 0 5767 - 2695 5331 0 5828 - 2697 5316 0 5753 - 2697 5332 0 5827 - 2699 5329 0 5827 - 2699 5335 0 5777 - 2699 5348 0 5776 - 2699 5349 0 5783 - 2701 5348 0 6394 - 2703 5366 0 8656 - 2703 5367 0 5787 - 2704 5366 0 5796 - 2711 5314 0 5752 - 2711 5331 0 5794 - 2712 5321 0 5764 - 2712 5342 0 5790 - 2715 5313 0 5772 - 2716 5359 0 5798 - 2717 5315 0 425 - 2717 5332 0 5770 - 2717 5359 0 5789 - 2718 5313 0 5767 - 2719 5331 0 5800 - 2719 5335 0 5780 - 2722 5313 0 5771 - 2722 5333 0 5781 - 2723 5321 0 5755 - 2723 5336 0 8654 - 2723 5359 0 424 - 2724 5359 0 5761 - 2725 5349 0 5758 - 2729 5329 0 5801 - 2730 5333 0 423 - 2731 5340 0 5757 - 2743 5358 0 5869 - 2744 5344 0 5827 - 2747 5342 0 5800 - 2747 5373 0 5766 - 2701 5352 1 5756 - 2702 5352 1 5786 - 2712 5369 1 5785 - 2726 5372 1 5799 - 2730 5365 1 5832 - 2730 5366 1 1722 - 2735 5344 1 439 - 2736 5346 1 1720 - 2737 5342 1 443 - 2737 5343 1 441 - 2737 5344 1 5887 - 2737 5351 1 5821 - 2740 5334 1 5807 - 2741 5334 1 5809 - 2741 5341 1 5803 - 2741 5344 1 5813 - 2742 5338 1 5782 - 2742 5339 1 5815 - 2743 5341 1 5805 - 2743 5345 1 5804 - 2744 5333 1 5819 - 2744 5336 1 5817 - 2744 5338 1 5811 - 2744 5342 1 5802 - 2744 5353 1 8655 - 2745 5353 1 5806 - 2746 5333 1 //RegionId: 11074, regionX: 2752, regionY: 4224 6465 - 2764 4251 0 6450 - 2764 4266 0 6454 - 2765 4253 0 6417 - 2765 4264 0 6406 - 2765 4267 0 6487 - 2765 4268 0 6485 - 2766 4250 0 6432 - 2766 4255 0 6410 - 2766 4257 0 6439 - 2766 4265 0 6443 - 2767 4252 0 6421 - 2768 4254 0 6428 - 2768 4268 0 6430 - 2769 4236 0 6408 - 2770 4238 0 6419 - 2771 4237 0 6441 - 2771 4241 0 6452 - 2772 4235 0 6501 - 2772 4256 0 6463 - 2773 4238 0 6486 - 2774 4236 0 6502 - 2775 4247 0 6503 - 2775 4265 0 6443 - 2776 4250 0 6429 - 2776 4252 0 6441 - 2777 4252 0 6417 - 2777 4260 0 6459 - 2778 4264 0 6463 - 2779 4248 0 6454 - 2779 4256 0 6450 - 2781 4261 0 6460 - 2783 4251 0 6458 - 2784 4249 0 6459 - 2784 4252 0 6462 - 2785 4248 0 6463 - 2785 4250 0 6462 - 2786 4251 0 6461 - 2787 4250 0 6409 - 2787 4262 0 6489 - 2787 4266 0 6440 - 2789 4248 0 6460 - 2789 4264 0 6438 - 2790 4254 0 6461 - 2791 4249 0 6396 - 2791 4279 0 6449 - 2792 4252 0 6431 - 2792 4260 0 6409 - 2792 4275 0 6499 - 2793 4247 0 6500 - 2793 4265 0 6442 - 2795 4273 0 6484 - 2795 4276 0 6498 - 2796 4256 0 6464 - 2796 4267 0 6431 - 2796 4275 0 6420 - 2796 4277 0 6453 - 2797 4272 0 6418 - 2799 4243 0 6405 - 2799 4260 0 6449 - 2800 4254 0 6438 - 2800 4256 0 6462 - 2801 4242 0 6460 - 2801 4252 0 6416 - 2801 4258 0 6482 - 2801 4260 0 6451 - 2802 4243 0 6440 - 2802 4244 0 6407 - 2802 4246 0 6427 - 2802 4259 0 6483 - 2804 4246 0 6429 - 2805 4242 0 6488 - 2784 4255 1 //RegionId: 11581, regionX: 2880, regionY: 3904 1591 - 2891 3919 0 1592 - 2893 3929 0 1592 - 2893 3942 0 1592 - 2897 3951 0 1591 - 2901 3914 0 1592 - 2903 3954 0 1592 - 2910 3954 0 1591 - 2911 3914 0 1591 - 2920 3919 0 1592 - 2920 3952 0 1591 - 2929 3919 0 1591 - 2929 3935 0 1591 - 2929 3944 0 1592 - 2929 3952 0 //RegionId: 11825, regionX: 2944, regionY: 3136 11665 - 2944 3147 0 11654 - 2945 3147 0 3915 - 2948 3146 0 2727 - 2969 3146 0 2800 - 2981 3190 0 2795 - 2983 3196 0 325 - 2986 3176 0 2726 - 2994 3138 0 446 - 2994 3192 0 325 - 2996 3158 0 4924 - 2997 3192 0 604 - 3001 3144 0 380 - 2953 3147 1 4655 - 2954 3156 1 4653 - 2954 3157 1 //RegionId: 11826, regionX: 2944, regionY: 3200 585 - 2946 3205 0 530 - 2947 3217 0 531 - 2948 3217 0 2682 - 2953 3204 0 11597 - 2953 3222 0 2682 - 2955 3202 0 1860 - 2957 3203 0 180 - 2957 3239 0 2682 - 2959 3202 0 2682 - 2960 3205 0 11598 - 2965 3214 0 307 - 2968 3206 0 7276 - 2994 3256 0 1770 - 2995 3209 0 7275 - 2995 3252 0 1771 - 2996 3201 0 7275 - 2996 3259 0 1769 - 2997 3216 0 1772 - 2998 3205 0 1773 - 2999 3208 0 1774 - 2999 3211 0 2678 - 3001 3202 0 1776 - 3002 3206 0 1775 - 3002 3210 0 7276 - 3002 3250 0 6997 - 3002 3257 0 2680 - 3003 3205 0 2679 - 3004 3201 0 2681 - 3004 3209 0 2684 - 2965 3213 1 2683 - 2967 3212 1 //RegionId: 12340, regionX: 3072, regionY: 3328 5576 - 3072 3336 0 59 - 3075 3366 0 3021 - 3087 3352 0 5199 - 3093 3357 0 47 - 3099 3366 0 5201 - 3099 3370 0 9352 - 3100 3360 0 47 - 3101 3355 0 152 - 3103 3347 0 152 - 3107 3337 0 152 - 3107 3342 0 152 - 3107 3344 0 152 - 3108 3346 0 9350 - 3108 3359 0 285 - 3110 3330 0 3291 - 3110 3367 0 152 - 3111 3339 0 152 - 3111 3348 0 9354 - 3113 3363 0 152 - 3115 3344 0 9354 - 3119 3366 0 152 - 3120 3344 0 152 - 3122 3335 0 9351 - 3122 3357 0 59 - 3135 3340 0 104 - 3094 3356 1 5349 - 3098 3359 1 5350 - 3099 3356 1 9354 - 3105 3369 1 9350 - 3107 3368 1 5351 - 3108 3358 1 9354 - 3114 3373 1 5352 - 3123 3357 1 3290 - 3110 3366 2 286 - 3110 3367 2 //RegionId: 12443, regionX: 3072, regionY: 9920 4702 - 3084 9957 0 134 - 3088 9945 0 4705 - 3088 9961 0 134 - 3089 9943 0 134 - 3090 9944 0 4703 - 3092 9958 0 93 - 3101 9956 0 181 - 3104 9942 0 93 - 3104 9948 0 93 - 3104 9955 0 181 - 3105 9936 0 7105 - 3106 9940 0 2547 - 3107 9943 0 93 - 3108 9951 0 93 - 3108 9954 0 181 - 3109 9931 0 181 - 3110 9941 0 7105 - 3111 9936 0 2547 - 3111 9939 0 93 - 3111 9954 0 93 - 3112 9958 0 2547 - 3114 9929 0 7105 - 3115 9925 0 7105 - 3115 9932 0 63 - 3118 9950 0 63 - 3118 9956 0 124 - 3118 9974 0 124 - 3119 9971 0 63 - 3120 9952 0 124 - 3120 9976 0 63 - 3122 9955 0 7110 - 3123 9929 0 63 - 3124 9951 0 124 - 3124 9974 0 63 - 3125 9958 0 63 - 3126 9948 0 7109 - 3127 9929 0 7111 - 3127 9933 0 63 - 3127 9956 0 63 - 3128 9954 0 7108 - 3130 9930 0 7112 - 3131 9934 0 7114 - 3132 9921 0 7106 - 3132 9926 0 7107 - 3133 9928 0 7113 - 3134 9935 0 //RegionId: 12851, regionX: 3200, regionY: 3264 8876 - 3201 3272 0 8876 - 3202 3265 0 5160 - 3202 3271 0 5157 - 3205 3266 0 8876 - 3206 3269 0 4571 - 3207 3299 0 2252 - 3208 3301 0 4570 - 3209 3300 0 8876 - 3210 3265 0 5161 - 3210 3274 0 46 - 3211 3322 0 708 - 3214 3281 0 2693 - 3214 3313 0 46 - 3214 3314 0 46 - 3214 3318 0 2693 - 3214 3320 0 12354 - 3215 3276 0 2693 - 3215 3303 0 46 - 3216 3314 0 12353 - 3217 3278 0 46 - 3218 3287 0 2693 - 3219 3285 0 2693 - 3219 3288 0 46 - 3223 3281 0 452 - 3223 3293 0 4315 - 3224 3286 0 1017 - 3225 3300 0 6113 - 3226 3283 0 2333 - 3226 3311 0 7 - 3227 3292 0 6114 - 3228 3282 0 1017 - 3228 3297 0 1017 - 3228 3299 0 6113 - 3229 3280 0 4317 - 3230 3285 0 41 - 3230 3298 0 41 - 3230 3299 0 46 - 3231 3271 0 1017 - 3231 3297 0 41 - 3231 3300 0 7565 - 3231 3320 0 7566 - 3231 3321 0 1017 - 3232 3299 0 46 - 3233 3267 0 46 - 3233 3270 0 1757 - 3233 3308 0 2693 - 3234 3267 0 2693 - 3234 3268 0 46 - 3235 3265 0 41 - 3235 3298 0 41 - 3237 3323 0 708 - 3240 3307 0 12365 - 3243 3295 0 12363 - 3244 3289 0 12362 - 3247 3284 0 12364 - 3247 3287 0 1759 - 3250 3310 0 12362 - 3252 3288 0 3807 - 3254 3274 0 12363 - 3255 3278 0 12364 - 3256 3273 0 12365 - 3256 3292 0 12362 - 3258 3265 0 1756 - 3258 3315 0 1754 - 3258 3317 0 1755 - 3260 3317 0 12365 - 3261 3270 0 12362 - 3261 3282 0 12364 - 3261 3289 0 12363 - 3261 3292 0 12366 - 3262 3287 0 1758 - 3262 3325 0 //RegionId: 12852, regionX: 3200, regionY: 3328 3328 - 3203 3344 0 708 - 3205 3355 0 5919 - 3205 3379 0 641 - 3208 3391 0 5920 - 3211 3378 0 5919 - 3211 3381 0 8873 - 3223 3367 0 8872 - 3223 3372 0 8874 - 3224 3370 0 8871 - 3225 3365 0 8871 - 3225 3374 0 8874 - 3228 3373 0 5148 - 3230 3346 0 8872 - 3230 3363 0 8873 - 3230 3365 0 8873 - 3230 3374 0 5926 - 3230 3391 0 8871 - 3232 3367 0 8872 - 3232 3372 0 5161 - 3233 3343 0 12371 - 3234 3345 0 5149 - 3234 3349 0 5148 - 3238 3345 0 43 - 3238 3349 0 708 - 3238 3390 0 42 - 3240 3342 0 2235 - 3240 3345 0 5161 - 3243 3347 0 12369 - 3245 3347 0 5160 - 3247 3344 0 12348 - 3254 3347 0 12348 - 3254 3352 0 12348 - 3256 3350 0 12348 - 3256 3355 0 12348 - 3258 3346 0 3264 - 3259 3338 0 12348 - 3259 3352 0 2260 - 3260 3383 0 12348 - 3261 3345 0 12348 - 3261 3349 0 12348 - 3261 3356 0 12346 - 3234 3385 1 643 - 3246 3384 1 //RegionId: 12853, regionX: 3200, regionY: 3392 5917 - 3200 3399 0 9362 - 3202 3424 0 551 - 3203 3397 0 546 - 3203 3433 0 359 - 3203 3435 0 548 - 3204 3417 0 2778 - 3204 3419 0 552 - 3205 3399 0 11475 - 3206 3400 0 11269 - 3214 3425 0 523 - 3217 3411 0 547 - 3217 3435 0 5924 - 3218 3395 0 522 - 3218 3415 0 5925 - 3219 3432 0 781 - 3221 3434 0 783 - 3221 3435 0 756 - 3222 3397 0 11270 - 3222 3424 0 645 - 3223 3395 0 5909 - 3224 3402 0 733 - 3226 3399 0 2792 - 3228 3412 0 549 - 3229 3438 0 5910 - 3230 3401 0 550 - 3232 3423 0 5918 - 3233 3394 0 12345 - 3234 3398 0 11 - 3235 3401 0 12345 - 3237 3406 0 12347 - 3238 3406 0 8124 - 3238 3412 0 12345 - 3245 3395 0 5916 - 3250 3429 0 553 - 3251 3418 0 553 - 3252 3418 0 5913 - 3253 3402 0 553 - 3253 3418 0 6135 - 3253 3429 0 5938 - 3253 3454 0 2759 - 3254 3418 0 5933 - 3254 3443 0 2759 - 3255 3418 0 5932 - 3255 3442 0 2759 - 3256 3418 0 8079 - 3256 3428 0 646 - 3257 3447 0 12346 - 3259 3404 0 5934 - 3259 3443 0 5935 - 3260 3442 0 5941 - 3260 3447 0 5947 - 3260 3452 0 5946 - 3261 3455 0 5917 - 3262 3410 0 368 - 3263 3407 0 5943 - 3263 3441 0 5984 - 3263 3452 0 5923 - 3231 3395 1 12347 - 3231 3399 1 5939 - 3253 3453 1 5940 - 3262 3442 1 2414 - 3263 3400 1 5930 - 3257 3454 2 5947 - 3261 3451 2 4405 - 3262 3455 2 //RegionId: 13105, regionX: 3264, regionY: 3136 330 - 3267 3148 0 2897 - 3271 3159 0 8079 - 3274 3162 0 2809 - 3274 3168 0 330 - 3275 3140 0 9709 - 3275 3175 0 1027 - 3278 3155 0 107 - 3280 3145 0 18 - 3282 3176 0 18 - 3284 3170 0 18 - 3284 3174 0 1 - 3284 3199 0 5282 - 3286 3180 0 18 - 3288 3168 0 541 - 3288 3190 0 18 - 3292 3169 0 2 - 3294 3196 0 18 - 3295 3168 0 2819 - 3295 3193 0 18 - 3301 3170 0 18 - 3301 3174 0 18 - 3301 3177 0 923 - 3302 3163 0 3 - 3303 3199 0 2817 - 3306 3197 0 542 - 3316 3175 0 525 - 3316 3182 0 524 - 3316 3184 0 61 - 3319 3139 0 5532 - 3321 3139 0 61 - 3322 3141 0 61 - 3324 3138 0 496 - 3267 3164 1 497 - 3267 3166 1 496 - 3267 3167 1 497 - 3267 3168 1 496 - 3267 3169 1 543 - 3272 3182 1 2824 - 3275 3193 1 16 - 3277 3187 1 2816 - 3301 3190 1 544 - 3316 3164 1 5531 - 3319 3138 1 545 - 3322 3194 1 //RegionId: 13106, regionX: 3264, regionY: 3200 925 - 3266 3229 0 925 - 3267 3226 0 926 - 3268 3226 0 926 - 3269 3229 0 3809 - 3284 3212 0 2813 - 3285 3201 0 540 - 3288 3212 0 2811 - 3289 3209 0 8707 - 3292 3212 0 2812 - 3296 3227 0 3 - 3298 3206 0 539 - 3299 3204 0 9159 - 3301 3208 0 2818 - 3303 3204 0 1862 - 3304 3211 0 2810 - 3311 3208 0 7564 - 3318 3203 0 3670 - 3318 3238 0 47 - 3319 3250 0 16 - 3293 3205 1 957 - 3314 3240 1 //RegionId: 13611, regionX: 3392, regionY: 2752 6779 - 3392 2759 0 6779 - 3408 2763 0 6779 - 3410 2786 0 6779 - 3420 2778 0 6779 - 3427 2792 0 6779 - 3429 2802 0 6777 - 3432 2810 0 6774 - 3435 2808 0 6773 - 3439 2808 0 6778 - 3440 2806 0 6776 - 3441 2810 0 6776 - 3445 2813 0 6787 - 3408 2813 1 6786 - 3409 2812 1 //RegionId: 13625, regionX: 3392, regionY: 3648 11257 - 3426 3687 0 9716 - 3428 3698 0 11256 - 3429 3678 0 4732 - 3429 3701 0 9714 - 3433 3680 0 9713 - 3439 3698 0 9711 - 3443 3698 0 //RegionId: 13626, regionX: 3392, regionY: 3712 9722 - 3392 3713 0 9718 - 3393 3774 0 9723 - 3395 3757 0 9723 - 3418 3717 0 9723 - 3426 3753 0 9722 - 3428 3773 0 9710 - 3448 3720 0 9712 - 3452 3720 0 //RegionId: 13722, regionX: 3392, regionY: 9856 7711 - 3405 9902 0 1049 - 3440 9895 0 //RegionId: 13878, regionX: 3456, regionY: 3456 1043 - 3459 3457 0 1043 - 3460 3462 0 1043 - 3462 3459 0 1043 - 3463 3490 0 1043 - 3464 3511 0 1043 - 3465 3466 0 1043 - 3466 3495 0 1043 - 3466 3497 0 1043 - 3467 3485 0 1043 - 3467 3497 0 1043 - 3467 3509 0 1043 - 3469 3470 0 1043 - 3470 3469 0 1043 - 3471 3477 0 6029 - 3474 3474 0 1043 - 3474 3505 0 1040 - 3475 3497 0 1043 - 3476 3507 0 6041 - 3479 3492 0 6042 - 3479 3498 0 1043 - 3479 3511 0 1043 - 3480 3468 0 1043 - 3480 3470 0 1043 - 3482 3469 0 6033 - 3483 3478 0 6039 - 3483 3495 0 1043 - 3483 3511 0 1043 - 3484 3464 0 6035 - 3485 3488 0 1043 - 3485 3509 0 6026 - 3489 3490 0 1043 - 3490 3461 0 6043 - 3490 3473 0 6027 - 3490 3474 0 1043 - 3491 3460 0 1042 - 3493 3471 0 1043 - 3494 3461 0 1043 - 3494 3512 0 6030 - 3496 3476 0 6037 - 3497 3475 0 1920 - 3497 3478 0 6028 - 3497 3497 0 1043 - 3498 3461 0 1043 - 3499 3513 0 6034 - 3501 3493 0 1043 - 3501 3513 0 1043 - 3502 3464 0 6032 - 3502 3487 0 2020 - 3503 3477 0 1043 - 3504 3463 0 1043 - 3506 3512 0 1043 - 3506 3515 0 1043 - 3507 3515 0 1043 - 3509 3512 0 1043 - 3511 3488 0 8481 - 3511 3509 0 8482 - 3512 3509 0 1043 - 3513 3467 0 1043 - 3513 3487 0 1043 - 3513 3489 0 1043 - 3513 3503 0 1043 - 3514 3490 0 1043 - 3515 3495 0 1043 - 3515 3499 0 1043 - 3516 3469 0 6045 - 3479 3498 1 4246 - 3480 3484 1 6038 - 3490 3472 1 1041 - 3490 3503 1 6040 - 3498 3472 1 6036 - 3499 3474 1 1039 - 3499 3506 1 6044 - 3505 3491 1 1038 - 3507 3496 1 6031 - 3511 3482 1 1036 - 3514 3479 1 1036 - 3514 3481 1 //RegionId: 13881, regionX: 3456, regionY: 3648 9722 - 3456 3683 0 9723 - 3459 3655 0 9722 - 3463 3671 0 9723 - 3472 3681 0 11257 - 3474 3678 0 9719 - 3474 3691 0 9718 - 3492 3648 0 9719 - 3497 3697 0 9715 - 3501 3696 0 9717 - 3506 3679 0 9722 - 3510 3665 0 9718 - 3510 3705 0 9707 - 3513 3694 0 //RegionId: 13882, regionX: 3456, regionY: 3712 9723 - 3489 3762 0 9718 - 3505 3774 0 9722 - 3506 3731 0 9718 - 3515 3747 0 9717 - 3515 3760 0 //RegionId: 14488, regionX: 3584, regionY: 9728 7643 - 3587 9737 0 7637 - 3588 9768 0 7643 - 3592 9746 0 7639 - 3592 9766 0 7642 - 3595 9742 0 7642 - 3597 9751 0 7642 - 3598 9736 0 7643 - 3600 9740 0 7637 - 3600 9768 0 7639 - 3603 9770 0 7642 - 3604 9746 0 7643 - 3605 9738 0 7639 - 3605 9757 0 7637 - 3606 9780 0 7641 - 3607 9776 0 7640 - 3608 9780 0 7641 - 3610 9772 0 7640 - 3610 9777 0 7639 - 3611 9749 0 7639 - 3611 9766 0 7637 - 3612 9729 0 7637 - 3613 9764 0 7640 - 3613 9772 0 7637 - 3614 9740 0 7637 - 3614 9750 0 7641 - 3614 9778 0 7641 - 3615 9746 0 7639 - 3616 9737 0 7639 - 3616 9756 0 7639 - 3616 9762 0 7640 - 3617 9748 0 7640 - 3617 9758 0 7639 - 3617 9779 0 7636 - 3618 9736 0 7641 - 3618 9753 0 7641 - 3619 9748 0 7636 - 3620 9732 0 7637 - 3621 9748 0 7640 - 3621 9751 0 7639 - 3621 9754 0 7636 - 3624 9736 0 7636 - 3625 9738 0 7637 - 3629 9737 0 //RegionId: 11578, regionX: 2880, regionY: 3712 1951 - 2886 3723 0 1956 - 2886 3758 0 1956 - 2886 3762 0 1951 - 2887 3720 0 1951 - 2890 3721 0 1951 - 2890 3724 0 1956 - 2890 3756 0 1956 - 2890 3762 0 1952 - 2892 3726 0 1952 - 2894 3726 0 1952 - 2895 3728 0 1952 - 2895 3730 0 1955 - 2895 3740 0 1955 - 2895 3744 0 1954 - 2895 3751 0 1954 - 2895 3755 0 1953 - 2897 3733 0 1953 - 2897 3737 0 1955 - 2898 3740 0 1955 - 2898 3744 0 1954 - 2898 3751 0 1954 - 2898 3755 0 1955 - 2908 3739 0 1951 - 2909 3736 0 6202 - 2912 3749 0 1953 - 2913 3736 0 1952 - 2922 3755 0 1956 - 2928 3753 0 1955 - 2928 3763 0 1954 - 2930 3765 0 8076 - 2933 3772 0 //RegionId: 11573, regionX: 2880, regionY: 3392 6976 - 2883 3431 0 6984 - 2884 3434 0 6972 - 2885 3418 0 586 - 2885 3449 0 6986 - 2888 3440 0 6979 - 2889 3448 0 6977 - 2890 3435 0 5987 - 2891 3454 0 6973 - 2893 3419 0 6985 - 2893 3440 0 6987 - 2896 3442 0 6982 - 2897 3429 0 6978 - 2897 3436 0 6974 - 2898 3419 0 587 - 2899 3427 0 6974 - 2900 3449 0 6976 - 2902 3449 0 6983 - 2906 3441 0 8417 - 2909 3450 0 1213 - 2913 3417 0 6981 - 2913 3450 0 6980 - 2915 3446 0 6893 - 2923 3435 0 250 - 2924 3405 0 6989 - 2924 3444 0 6988 - 2925 3444 0 6895 - 2927 3432 0 6894 - 2928 3432 0 2339 - 2933 3438 0 5062 - 2938 3422 0 7562 - 2938 3437 0 454 - 2897 3426 1 6976 - 2898 3432 1 8420 - 2904 3449 1 //RegionId: 12187, regionX: 3008, regionY: 9920 8320 - 3014 9971 1 8320 - 3016 9969 1 8312 - 3016 9974 1 8324 - 3016 9977 1 8316 - 3017 9972 1 8324 - 3021 9939 1 8312 - 3021 9940 1 8312 - 3023 9940 1 8324 - 3024 9954 1 8312 - 3024 9959 1 8324 - 3025 9943 1 8324 - 3025 9954 1 8316 - 3025 9962 1 8324 - 3026 9966 1 8312 - 3027 9960 1 8320 - 3028 9942 1 8320 - 3029 9943 1 8316 - 3030 9943 1 8320 - 3030 9951 1 8324 - 3032 9952 1 8316 - 3033 9941 1 8320 - 3033 9950 1 8316 - 3034 9950 1 8316 - 3035 9950 1 8316 - 3036 9940 1 8316 - 3038 9939 1 8324 - 3039 9954 1 8312 - 3043 9967 1 8324 - 3044 9967 1 8324 - 3044 9971 1 8320 - 3045 9965 1 8316 - 3045 9968 1 8324 - 3057 9936 1 8316 - 3058 9952 1 8324 - 3059 9953 1 8320 - 3061 9953 1 8320 - 3062 9953 1 8316 - 3063 9952 1 8324 - 3041 9975 2 8324 - 3043 9975 2 8324 - 3045 9975 2 //RegionId: 12192, regionX: 3008, regionY: 10240 4701 - 3028 10250 0 4700 - 3030 10259 0 4699 - 3035 10245 0 134 - 3043 10262 0 134 - 3044 10252 0 4675 - 3048 10266 0 134 - 3051 10257 0 4676 - 3054 10269 0 134 - 3055 10253 0 134 - 3067 10255 0 134 - 3067 10257 0 134 - 3068 10253 0 134 - 3069 10257 0 134 - 3069 10259 0 //RegionId: 12615, regionX: 3136, regionY: 4544 5403 - 3141 4557 0 5395 - 3141 4598 0 5404 - 3143 4555 0 5386 - 3143 4595 0 5386 - 3145 4598 0 5393 - 3146 4596 0 5402 - 3154 4559 0 5397 - 3155 4583 0 5389 - 3157 4568 0 5391 - 3158 4552 0 5387 - 3158 4584 0 5387 - 3159 4577 0 5405 - 3163 4559 0 5391 - 3163 4569 0 5393 - 3163 4598 0 5384 - 3165 4598 0 5384 - 3167 4577 0 5394 - 3167 4589 0 5387 - 3169 4587 0 5395 - 3170 4592 0 5394 - 3172 4598 0 5409 - 3173 4550 0 5391 - 3177 4549 0 5390 - 3182 4562 0 5386 - 3182 4577 0 5391 - 3184 4550 0 5390 - 3185 4560 0 5389 - 3185 4562 0 5386 - 3187 4578 0 5409 - 3190 4551 0 5410 - 3190 4561 0 5383 - 3194 4569 0 5407 - 3141 4547 1 5404 - 3144 4549 1 5395 - 3144 4589 1 5398 - 3145 4574 1 5396 - 3145 4583 1 5405 - 3146 4565 1 5401 - 3151 4573 1 5387 - 3152 4569 1 5393 - 3155 4591 1 5391 - 3158 4560 1 5386 - 3158 4589 1 5406 - 3159 4603 1 5408 - 3170 4559 1 5402 - 3171 4571 1 5391 - 3174 4566 1 5400 - 3175 4579 1 5397 - 3176 4576 1 5402 - 3179 4586 1 5398 - 3182 4586 1 5404 - 3190 4587 1 5385 - 3191 4595 1 5385 - 3191 4601 1 5386 - 3194 4599 1 5391 - 3195 4577 1 5405 - 3195 4582 1 5399 - 3140 4557 2 5400 - 3142 4560 2 5388 - 3156 4567 2 5400 - 3159 4569 2 5403 - 3182 4577 2 5404 - 3186 4576 2 5399 - 3188 4578 2 //RegionId: 13622, regionX: 3392, regionY: 3456 8065 - 3399 3467 0 3076 - 3403 3492 0 3074 - 3404 3492 0 1044 - 3408 3484 0 1044 - 3408 3493 0 1046 - 3409 3489 0 1218 - 3412 3512 0 1218 - 3412 3515 0 1046 - 3413 3485 0 1045 - 3413 3489 0 1218 - 3413 3514 0 1218 - 3414 3512 0 1218 - 3415 3518 0 1218 - 3416 3509 0 1218 - 3416 3511 0 1218 - 3417 3518 0 1218 - 3418 3509 0 1218 - 3419 3512 0 1218 - 3420 3517 0 1218 - 3420 3518 0 1218 - 3423 3461 0 1218 - 3426 3465 0 1218 - 3427 3463 0 1218 - 3428 3458 0 1218 - 3428 3465 0 1218 - 3430 3462 0 1218 - 3430 3467 0 1514 - 3432 3487 0 1218 - 3433 3458 0 1218 - 3433 3468 0 1519 - 3433 3486 0 1218 - 3434 3464 0 1517 - 3434 3483 0 1520 - 3434 3486 0 1518 - 3435 3483 0 1048 - 3437 3486 0 1516 - 3437 3487 0 1515 - 3438 3487 0 1054 - 3444 3459 0 7563 - 3449 3474 0 1045 - 3409 3485 1 1044 - 3410 3489 1 1044 - 3412 3487 1 1045 - 3413 3489 1 1046 - 3414 3491 1 1047 - 3415 3489 2 //RegionId: 12850, regionX: 3200, regionY: 3200 59 - 3200 3236 0 59 - 3200 3238 0 43 - 3201 3262 0 5156 - 3202 3263 0 7969 - 3204 3242 0 1765 - 3204 3262 0 47 - 3205 3203 0 47 - 3205 3204 0 47 - 3205 3209 0 5146 - 3205 3263 0 47 - 3206 3202 0 47 - 3206 3204 0 47 - 3206 3209 0 47 - 3207 3202 0 47 - 3207 3203 0 0 - 3207 3233 0 7891 - 3207 3250 0 705 - 3207 3251 0 43 - 3207 3261 0 7890 - 3208 3227 0 7891 - 3208 3250 0 1861 - 3208 3255 0 5168 - 3208 3262 0 278 - 3209 3215 0 7891 - 3209 3250 0 5147 - 3209 3263 0 7878 - 3210 3247 0 1765 - 3210 3262 0 3384 - 3211 3225 0 5423 - 3212 3263 0 4707 - 3213 3252 0 520 - 3214 3240 0 521 - 3214 3243 0 4474 - 3214 3252 0 4474 - 3214 3253 0 4474 - 3214 3254 0 2238 - 3217 3254 0 2237 - 3219 3230 0 7873 - 3219 3247 0 7888 - 3221 3219 0 708 - 3221 3224 0 6539 - 3222 3213 0 47 - 3222 3215 0 7876 - 3223 3236 0 7869 - 3224 3241 0 7882 - 3224 3242 0 7879 - 3224 3250 0 1770 - 3224 3261 0 7870 - 3225 3238 0 4904 - 3227 3253 0 4906 - 3228 3245 0 47 - 3229 3223 0 7872 - 3231 3207 0 3777 - 3231 3227 0 519 - 3232 3203 0 47 - 3232 3229 0 8081 - 3233 3214 0 29 - 3233 3233 0 7875 - 3235 3219 0 155 - 3235 3222 0 2238 - 3235 3225 0 46 - 3235 3259 0 7868 - 3236 3202 0 7883 - 3236 3210 0 2244 - 3238 3219 0 2693 - 3238 3238 0 6112 - 3238 3239 0 46 - 3238 3244 0 2693 - 3238 3246 0 6112 - 3238 3247 0 329 - 3238 3252 0 2693 - 3239 3235 0 329 - 3239 3241 0 46 - 3241 3230 0 46 - 3241 3234 0 4903 - 3243 3213 0 46 - 3243 3228 0 59 - 3243 3236 0 456 - 3244 3205 0 3331 - 3244 3237 0 2276 - 3244 3245 0 2275 - 3244 3246 0 2274 - 3244 3247 0 59 - 3245 3232 0 2277 - 3245 3244 0 2237 - 3245 3261 0 2278 - 3246 3246 0 46 - 3247 3221 0 2281 - 3247 3245 0 2280 - 3247 3246 0 2279 - 3247 3247 0 46 - 3248 3220 0 1769 - 3249 3243 0 1770 - 3250 3238 0 1772 - 3252 3228 0 1771 - 3253 3234 0 1767 - 3254 3255 0 397 - 3254 3258 0 81 - 3254 3262 0 1773 - 3255 3223 0 155 - 3255 3226 0 1771 - 3255 3249 0 1772 - 3255 3252 0 1774 - 3258 3223 0 1773 - 3258 3228 0 1769 - 3258 3245 0 1770 - 3258 3249 0 81 - 3258 3260 0 6267 - 3259 3203 0 6267 - 3259 3204 0 6267 - 3259 3205 0 46 - 3259 3212 0 1774 - 3260 3233 0 1775 - 3260 3237 0 1776 - 3260 3240 0 397 - 3261 3259 0 1772 - 3262 3219 0 7874 - 3205 3241 1 7884 - 3205 3242 1 7886 - 3206 3214 1 7877 - 3209 3215 1 2079 - 3209 3219 1 4900 - 3210 3212 1 7885 - 3211 3227 1 741 - 3212 3220 1 7889 - 3213 3210 1 7887 - 3215 3219 1 4473 - 3227 3240 1 7880 - 3231 3203 1 7881 - 3231 3207 1 4907 - 3208 3222 2 7968 - 3210 3218 3[/code] Data/Map/UnpackedSpawnsList.txt - And im also guessing this is were the objects are. But when i add an object it doesnt appear ingame. [code] //use: Object type rotation - x y plane boolean clip 42425 10 0 - 3084 3503 0 true 46500 10 0 - 3351 3415 0 true[/code] What do i have to do to add NPC's and Objects?
  23. [SIZE="3"][COLOR="DarkGreen"]Purpose: [/COLOR] Add Food and Item Select packet. [COLOR="Green"]Difficulty: 2/10[/COLOR] [COLOR="SeaGreen"]Assumed Knowledge: [/COLOR] Copy paste and search skills. [COLOR="Lime"]Classes Modified:[/COLOR] com.rs.net.decoders.WorldPacketDecoder.java, com.rs.game.player.Player [COLOR="PaleGreen"]Tested On(if it applies):[/COLOR] RuneEscape v1.2 (still under desevolpment) [/SIZE] Btw do not forget to add this snipet to fix hp(its realy simple, i doubt you need a tutorial for this): [url]http://www.runelocus.com/forums/showthread.php?49955-RuneEscape-562-Fixing-heal-on-players[/url] First of all lets add select item packet. Step1: Open com.rs.net.decoders.WorldPacketDecoder.java class and look for: [B]private final static int ITEM_DROP_PACKET = 248;[/B] Before or after it add: [CODE] private final static int ITEM_SELECT_PACKET = 66; [/CODE] Step2: Now look for [B]PACKET_SIZES[ITEM_DROP_PACKET] = 8;[/B] Before or after it add: [CODE] PACKET_SIZES[ITEM_SELECT_PACKET] = 8; [/CODE] Step3: Now look for [B]}else if (packetId == ITEM_DROP_PACKET) {[/B] Before it add: [CODE] }else if (packetId == ITEM_SELECT_PACKET) { if(!clicked) { //hack, or server error or client error //player.getSession().getChannel().close(); return; } clicked = false; int interfaceId = stream.readUnsignedShort(); if(player.isDead() || Utils.getInterfaceDefinitionsSize() <= interfaceId) { //hack, or server error or client error //player.getSession().getChannel().close(); return; } if(player.getStopDelay() > System.currentTimeMillis()) return; if(!player.getInterfaceManager().containsInterface(interfaceId)) return; int componentId = stream.readUnsignedShort(); if(componentId == 65535) componentId = -1; if(componentId != -1 && Utils.getInterfaceDefinitionsComponentsSize(interfaceId) <= componentId) { //hack, or server error or client error //player.getSession().getChannel().close(); return; } int itemId = stream.readUnsignedShort(); int slotId = stream.readUnsignedShort128(); if(interfaceId == 149 && componentId == 0) { if(slotId >= 28 || player.getInterfaceManager().containsInventoryInter()) return; Item item = player.getInventory().getItem(slotId); if(item == null || item.getId() != itemId) return; player.stopAll(); if(Foods.eat(player, item, slotId)) return; } [/CODE] Step 4: Before any import or after add: [CODE] import com.rs.game.player.content.Foods; [/CODE] Save the class and close it. Step5: Now open com.rs.game.Player.java class and add: [CODE] private transient long foodDelay;[/CODE]It can be added example after [B]private transient long musicDelay;[/B] Step6: Add these method on end of the file before the last } : [CODE] public void addFoodDelay(long time) { foodDelay = time+System.currentTimeMillis(); } public long getFoodDelay() { return foodDelay; } [/CODE] Step 7: Look for [B]public void reset() {[/B] method and inside it after the bracket({) add: [CODE]foodDelay = 0;[/CODE] Save the class and close it. Step8: Now at package com.rs.game.player.content create a new File called Foods.java Step9: Open it and copy this inside: [CODE] package com.rs.game.player.content; import com.rs.game.Animation; import com.rs.game.item.Item; import com.rs.game.player.Player; public final class Foods { private static enum Food { CRAYFISH(13433, 20), ANCHOVIE(319, 10), SHRIMP(315, 30), SARDINE(325, 40), CHICKEN(2140, 30), MEAT(2142, 30), CAKE(1891, 40, 1893), HALF_CAKE(1893, 40, 1895), BREAD(2309, 50), HERRING(347, 50), MACKEREL(355, 50), TROUT(333, 70), COD(339, 70), PIKE(351, 80), SALMON(329, 90), TUNA(361, 100), LOBSTER(379, 120), BASS(365, 130), SWORDFISH(373, 140), POTATO_WITH_CHEESE(6705, 160), MONKFISH(7946, 160), ANCHOVY_PIZZA(2297, 90, 2299), HALF_ANC_PIZZA(2299, 90), SHARK(385, 200), CAVEFISH(15226, 200), TURTLE(397, 21), PINEAPPLE_PIZZA(2301, 110, 2303), HALF_PINE_PIZZA(2303, 110), MANTA(391, 22), TUNA_POTATO(7060, 160), WILD_PIE(7208, 110, 7210), HALF_WILD_PIE(7210, 110), ROCKTAIL(15272, 230), GARDEN_PIE(7178, 60, 7180), HALF_GARDEN_PIE(7180, 60, 2313), REDBERRY_PIE_FULL(2325, 40, 2333), REDBERRY_PIE_HALF(2333, 40, 2313), MEAT_PIE_FULL(2327, 60, 2331), MEAT_PIE_HALF(2331, 60, 2313), APPLE_PIE_FULL(2323, 70, 2335), APPLE_PIE_HALF(2335, 70, 2313), ADMIRAL_PIE_FULL(7198, 80, 7200), ADMIRAL_PIE_HALF(7200, 80, 2313), SUMMER_PIE_FULL(7218, 110, 7220), SUMMER_PIE_HALF(7220, 110, 2313); private int id, heal, toId; private Food(int id, int heal) { this(id, heal, -1); } private Food(int id, int heal, int toId) { this.id = id; this.heal = heal; this.toId = toId; } } private static Food getFood(int id) { for(Food food : Food.values()) if(id == food.id) return food; return null; } public static boolean eat(Player player, Item item, int slot) { Food food = getFood(item.getId()); if(food == null) return false; if(player.getFoodDelay() > System.currentTimeMillis()) return false; player.addFoodDelay(2250); player.getSkillExecutor().addSkillDelay(4); player.getInventory().getItems().set(slot, food.toId == -1 ? null : new Item(food.toId, 1)); player.getInventory().refresh(slot); int hitpoints = player.getHitpoints(); player.heal(food.heal); player.setNextAnimation(new Animation(829)); player.getPackets().sendGameMessage("You eat the "+item.getDefinitions().getName()+".", true); if(hitpoints < player.getHitpoints()) player.getPackets().sendGameMessage(""It heals some health.", true); return true; } private Foods() { } } [/CODE] Save the class and close it. Step10: Theres no step10. You're done with tutorial. Compile your source and enjoy.
×