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

Shade Promotional Video


Asteria Animated Banner

317 New Pre-EOC Server, Looking For Developers!

$
0
0
I'm looking for some like-minded developers who are willing to work alongside me. Hoping to develop this base (Simplicity) for a while and gain a following and then release it. I'm a 25 year old and very experienced in development, rsps in particular. I'll be starting college in January so I have a lot of free time at the moment and should for the foreseeable future. The base itself is a terrible mess internally so will need some cleanup, but it has a lot of good content so it gives us a lot to work from. Looking for partners, we will share the profits equally and the workload (hopefully), I'm looking for someone with sufficient experience to program decently. We will be using bitbucket (git) to host the whole project, so you should be comfortable with that or be willing to learn.

The server itself is a 317 with 667 characters and items mixed with some OSRS items and content. Based originally on ruse and kept the majority of ruse content but has expanded beyond that. Features some custom content but nothing too disgusting.

Let me know if you're interested, Míchael#2843

317 Smithing Workshop Custom map

718 Buy back untradeables at death

$
0
0



Code:

package com.rs.game.player.dialogues.player;

import com.rs.game.item.Item;
import com.rs.game.player.dialogues.Dialogue;
import com.rs.net.decoders.handlers.ButtonHandler;
import com.rs.utils.Utils;

public class ClaimUntradeablesD extends Dialogue {

        int itemId;
        int slotId;
        int price;
        boolean bank;

        public static final BuyBackPrice[] items = BuyBackPrice.values();

        @Override
        public void start() {
                stage = 0;
                itemId = (int) parameters[0];
                slotId = (int) parameters[1];
                bank = (boolean) parameters[2];
                Item item = new Item(itemId);
                /*
                * for (BuyBackPrice items : BuyBackPrice.values()) { if (items == null)
                * continue; if (items.getItemId() == itemId) { price = items.getPrice(); }
                * }//UNUSED, GRABS PRICE FROM CACHE
                */
                sendOptionsDialogue(
                                item.getName() + " will cost you : "
                                                + Utils.getFormattedNumber(item.getDefinitions().getHighAlchPrice(), ',') + " gp.",
                                "Buy back.", "Dont buy back.");
        }

        @Override
        public void run(int interfaceId, int componentId) {
                Item item = new Item(itemId);
                int pouch = player.getMoneyPouch().getTotal();
                int coins = player.getInventory().getNumberOf(995);
                int alchPrice = item.getDefinitions().getHighAlchPrice();
                switch (stage) {
                case 0:
                        switch (componentId) {
                        case OPTION_1:
                                if (item.getDefinitions().getHighAlchPrice() > 0) {
                                        if (pouch + coins < alchPrice) {
                                                player.getPackets().sendGameMessage("You don't have enough coins to buy " + item.getName() + " back.");
                                                end();
                                                break;
                                        }
                                        boolean added = true;
                                        if (!item.getDefinitions().isStackable() || item.getAmount() < 2) {
                                                if (bank)
                                                        player.getBank().addItem(item, true);
                                                else
                                                        player.getInventory().addItem(item);
                                                player.getPackets().sendGameMessage(
                                                                item.getDefinitions().getName() + " has been added to " + (bank ? "bank." : "inventory."));
                                                player.getUntradeables().toArray()[slotId] = null;
                                                player.getUntradeables().shift();
                                                if (pouch >= alchPrice)
                                                        player.getMoneyPouch().takeMoneyFromPouch(alchPrice);
                                                else if (pouch + coins >= alchPrice) {
                                                        int finalPrice = alchPrice - pouch;
                                                        player.getMoneyPouch().takeMoneyFromPouch(pouch);
                                                        player.getInventory().deleteItem(995, finalPrice);
                                                        player.getPackets().sendGameMessage(Utils.getFormattedNumber(finalPrice, ',') + " coins has been removed from your inventory.");
                                                } else {
                                                        player.getInventory().deleteItem(995, alchPrice);
                                                        player.getPackets().sendGameMessage(Utils.getFormattedNumber(alchPrice, ',') + " coins has been removed from your inventory.");
                                                }
                                                end();
                                        } else {
                                                for (int i = 0; i < item.getAmount(); i++) {
                                                        Item single = new Item(item.getId());
                                                        if (!player.getInventory().addItem(single)) {
                                                                added = false;
                                                                break;
                                                        }
                                                        player.getUntradeables().remove(single);
                                                }
                                        }
                                        if (!added) {
                                                player.getPackets().sendGameMessage(
                                                                "You only had enough space in your inventory to accept some of the items.");
                                                break;
                                        }
                                        ButtonHandler.refreshUntradeables(player);
                                } else {
                                        player.getPackets().sendGameMessage("This item has no price therefor you're unable to buy it, contact developer.");
                                        end();
                                }
                                break;
                        case OPTION_2:
                                end();
                                break;
                        }
                        break;
                }
        }

        public enum BuyBackPrice {// UNUSED, GRABS PRICE FROM CACHE

                TOKHAAR_KAL(23659, 100000), ARCANE_STREAM_NECKLACE(18335, 150000), FIRE_CAPE(6570, 50000);

                private int itemId;

                private int price;

                private BuyBackPrice(int itemId, int price) {
                        this.itemId = itemId;
                        this.price = price;
                }

                public int getItemId() {
                        return itemId;
                }

                public void setItemId(int itemId) {
                        this.itemId = itemId;
                }

                public int getPrice() {
                        return price;
                }

                public void setPrice(int price) {
                        this.price = price;
                }

        }

        @Override
        public void finish() {
                // TODO Auto-generated method stub

        }

}

ButtonHandler

Code:

        public static void refreshUntradeables(Player player) {
                Item[] items = player.getUntradeables().getItems();
                player.getInterfaceManager().sendInterface(1284);
                player.getPackets().sendIComponentText(1284, 28, "Untradeables");
                player.getPackets().sendIComponentText(1284, 4, "-");
                player.getPackets().sendIComponentText(1284, 42, "-");
                player.getPackets().sendIComponentText(1284, 46, "-");
                player.getPackets().sendHideIComponent(1284, 8, true);
                player.getPackets().sendHideIComponent(1284, 9, true);
                player.getPackets().sendHideIComponent(1284, 10, true);
                player.getPackets().sendInterSetItemsOptionsScript(1284, 7, 100, 8, 3, "Claim", "Bank", "Examine");
                player.getPackets().sendUnlockIComponentOptionSlots(1284, 7, 0, 28, 0, 1, 2);
                player.getPackets().sendItems(100, items);
                player.temporaryAttribute().put("untradeables", Boolean.TRUE);
                player.setCloseInterfacesEvent(new Runnable() {
                        @Override
                        public void run() {
                                player.temporaryAttribute().remove("untradeables");
                        }
                });
        }

Code:

} else if (interfaceId == 1284) {
                        if (player.getTemporaryAttributtes().get("untradeables") != null) {
                                Item item = player.getUntradeables().get(slotId);
                                if (item == null && componentId == 7)
                                        return;
                                switch (componentId) {
                                case 7:
                                        if (player.getInventory().getFreeSlots() == 0
                                                        && !player.getInventory().containsItem(player.getUntradeables().get(slotId).getId(), 1)) {
                                                player.getPackets().sendGameMessage("You don't have enough inventory space.");
                                                return;
                                        }
                                        switch (packetId) {
                                        case 67:
                                                player.getDialogueManager().startDialogue("ClaimUntradeablesD", item.getId(), slotId, true);
                                                break;
                                        case 14:
                                                player.getDialogueManager().startDialogue("ClaimUntradeablesD", item.getId(), slotId, false);
                                                break;
                                        case 5:
                                                player.getInventory().sendExamine(slotId);
                                                break;
                                        }
                                        break;
                                }
                        }

Player.java

Code:

private ItemsContainer<Item> untradeables;

untradeables = new ItemsContainer<Item>(28, false);

public ItemsContainer<Item> getUntradeables() {
                return untradeables;
        }

if (untradeables == null)
                        untradeables = new ItemsContainer<Item>(28, false);

Code:

                for (int i = 0; i < items[0].length; i++) {
                        Item item = items[0][i];
                        if (ItemConstants.keptOnDeath(item)) {
                                if (item.getId() == 24497 && isAtWild()) {
                                        for (Item runes : getRunePouch().getItems()) {
                                                if (runes == null)
                                                        continue;
                                                World.addGroundItem(new Item(runes.getId(), runes.getAmount()), deathTile,
                                                                killer == null ? this : killer, true, 60);
                                                getRunePouch().remove(runes);
                                        }
                                        getPackets().sendGameMessage("Your rune pouch and your runes was lost at death.");
                                        items[0][i] = new Item(-1);
                                        item = items[0][i];
                                } else {
                                        item = items[0][i];
                                        //World.addGroundItem(item, deathTile, this, true, 60);
                                        // getInventory().addItem(item);
                                        getUntradeables().add(item);
                                }
                        } else {
                                item = items[0][i];
                                inventory.addItem(item.getId(), item.getAmount());
                        }
                }




718 Remove attachments/imbues at death

$
0
0




Code:

if (ItemConstants.removeAttachedId(item) != -1) {
                                if (ItemConstants.removeAttachedId2(item) != -1)
                                        World.updateGroundItem(new Item(ItemConstants.removeAttachedId2(item), 1), deathTile,
                                                        killer == null ? this : killer, 60, 1);
                                items[1][i] = new Item(ItemConstants.removeAttachedId(item));
                        }


Code:

public static int removeAttachedId(Item item) {
                if (item.getDefinitions().getName().toLowerCase().contains("vine whip"))
                        return 21369;
                switch (item.getId()) {
                case 12675:
                case 12674:
                        return 3751;
                case 12678:
                case 12679:
                        return 3755;
                case 12672:
                case 12673:
                        return 3749;
                case 12676:
                case 12677:
                        return 3753;
                case 15018:
                        return 6731;
                case 15019:
                        return 6733;
                case 15020:
                        return 6735;
                case 15220:
                        return 6737;
                case 15017:
                        return 6575;
                case 19335:
                        return 19333;
                case 19336:
                        return 19346;
                case 19337:
                        return 19350;
                case 19338:
                case 19339:
                        return 19348;
                case 19340:
                        return 19352;
                case 19341:
                        return 19354;
                case 19342:
                        return 19358;
                case 19343:
                case 19344:
                        return 19356;
                case 19345:
                        return 19360;

                }
                return -1;
        }

        public static int removeAttachedId2(Item item) {
                if (item.getDefinitions().getName().toLowerCase().contains("vine whip"))
                        return 4151;
                switch (item.getId()) {
                case 19335:
                        return 6585;
                case 19336:
                case 19341:
                        return 11335;

                case 19337:
                case 19342:
                        return 14479;

                case 19338:
                case 19343:
                        return 4087;

                case 19339:
                case 19344:
                        return 4585;

                case 19340:
                case 19345:
                        return 1187;

                }
                return -1;
        }

718 Special Attacks

$
0
0


Dragon claws
Code:

                        case 14484:
                        case 23695:
                                player.setNextAnimationNoPriority(new Animation(10961), player);
                                player.setNextGraphics(new Graphics(1950));
                                int[] hits = new int[] { 0, 1 };
                                int hit = getRandomMaxHit(player, weaponId, attackStyle, false, true, 1.0, true);
                                if (hit > 100) {
                                        hits = new int[] { hit, hit / 2, (hit / 2) / 2, (hit / 2) - ((hit / 2) / 2) };
                                } else {
                                        hit = getRandomMaxHit(player, weaponId, attackStyle, false, true, 1.0, true);
                                        if (hit > 100) {
                                                hits = new int[] { 0, hit, hit / 2, hit - (hit / 2) };
                                        } else {
                                                hit = getRandomMaxHit(player, weaponId, attackStyle, false, true, 1.0, true);
                                                if (hit > 100) {
                                                        hits = new int[] { 0, 0, hit / 2, (hit / 2) + 10 };
                                                } else {
                                                        hit = getRandomMaxHit(player, weaponId, attackStyle, false, true, 1.0, true);
                                                        if (hit > 100) {
                                                                hits = new int[] { 0, 0, 0, (int) (hit * 1.0) };
                                                        } else {
                                                                int[] miss = { Utils.random(10), Utils.random(10) };
                                                                for (int i = 0; i < miss.length; i++) {
                                                                        delayHit(0, weaponId, attackStyle, getMeleeHit(player, miss[i]));
                                                                }
                                                        }
                                                }
                                        }
                                }
                                for (int i = 0; i < hits.length; i++) {
                                        if (i > 1) {
                                                delayHit(1, weaponId, attackStyle, getMeleeHit(player, hits[i]));
                                        } else {
                                                delayNormalHit(weaponId, attackStyle, getMeleeHit(player, hits[i]));
                                        }
                                }
                                break;

Dragon Dagger
Code:

case 1215: // dragon dagger
                        case 5698: // dds
                                player.setNextAnimationNoPriority(new Animation(1062), player);
                                player.setNextGraphics(new Graphics(252, 0, 100));
                                if (target instanceof Player) {
                                        delayNormalHit(weaponId, attackStyle,
                                                        getMeleeHit(player,
                                                                        getRandomMaxHit(player, weaponId, attackStyle, false, true, 1.15, true)),
                                                        getMeleeHit(player,
                                                                        getRandomMaxHit(player, weaponId, attackStyle, false, true, 1.15, true)));
                                } else {
                                        delayNormalHit(weaponId, attackStyle, getMeleeHit(player,
                                                        getRandomMaxHit(player, weaponId, attackStyle, false, true, 1.15, true)));
                                        delayHit(1, weaponId, attackStyle, getMeleeHit(player,
                                                        getRandomMaxHit(player, weaponId, attackStyle, false, true, 1.15, true)));
                                }
                                soundId = 2537;
                                break;

Korasi Sword
Code:

case 19780:
                        case 19784: // korasi sword
                                player.setNextAnimation(new Animation(14788));
                                player.setNextGraphics(new Graphics(1729));
                                final double multiplier = 0.5 + Math.random();
                                attackTarget(getMultiAttackTargets(player), new MultiAttack() {

                                        private boolean nextTarget; // real target is firsts
                                        final int weaponId = player.getEquipment().getWeaponId();

                                        // player on array

                                        @Override
                                        public boolean attack() {
                                                final Entity[] targets = getMultiAttackTargets(player);
                                                int korasiDamage = getMaxHit(player, weaponId, attackStyle, false, true, 1.0);
                                                korasiDamage *= multiplier;
                                                max_hit = (int) (korasiDamage * 1.5);
                                                Hit h = getMagicHit(player, korasiDamage / targets.length + 1);
                                                h.setCriticalMark();
                                                delayHit(0, weaponId, attackStyle, h);

                                                WorldTasksManager.schedule(new WorldTask() {
                                                        @Override
                                                        public void run() {
                                                                for (Entity e : targets)
                                                                        e.setNextGraphics(new Graphics(2795, 0, 100));
                                                                target.setNextGraphics(new Graphics(2795, 0, 100));
                                                        }
                                                });
                                                if (!nextTarget) {
                                                        if (korasiDamage == -1)
                                                                return false;
                                                        nextTarget = true;
                                                }
                                                return nextTarget;

                                        }
                                });
                                return combatDelay;

Statius' warhammer & Bandos godsword
Code:

                        case 11696: // bgs
                        case 24512:
                        case 23680:
                                player.setNextAnimation(new Animation(11991));
                                player.setNextGraphics(new Graphics(2114));
                                int damage1 = getRandomMaxHit(player, weaponId, attackStyle, false, true, 1.15, true);
                                delayNormalHit(weaponId, attackStyle, getMeleeHit(player, damage1));
                                if (target instanceof Player) {
                                        Player targetPlayer = ((Player) target);
                                        int amountLeft;
                                        if ((amountLeft = targetPlayer.getSkills().drainLevel(Skills.DEFENCE, damage1 / 10)) > 0) {
                                                if ((amountLeft = targetPlayer.getSkills().drainLevel(Skills.STRENGTH, amountLeft)) > 0) {
                                                        if ((amountLeft = targetPlayer.getSkills().drainLevel(Skills.PRAYER, amountLeft)) > 0) {
                                                                if ((amountLeft = targetPlayer.getSkills().drainLevel(Skills.ATTACK, amountLeft)) > 0) {
                                                                        if ((amountLeft = targetPlayer.getSkills().drainLevel(Skills.MAGIC,
                                                                                        amountLeft)) > 0) {
                                                                                if (targetPlayer.getSkills().drainLevel(Skills.RANGE, amountLeft) > 0) {
                                                                                        break;
                                                                                }
                                                                        }
                                                                }
                                                        }
                                                }
                                        }
                                } else {
                                        if (damage1 > 0) {
                                                NPC n = (NPC) target;
                                                int npcDef = n.getBonuses()[CombatDefinitions.NPC_DEFENCE_LEVEL];
                                                player.getPackets().sendGameMessage(npcDef + " current def.");
                                                int drain = damage1 / 20;
                                                if ((npcDef - drain) < 0)
                                                        npcDef = 0;
                                                else
                                                        npcDef -= drain;
                                                player.getPackets().sendGameMessage(npcDef + " last def.");
                                                n.getBonuses()[CombatDefinitions.NPC_DEFENCE_LEVEL] = npcDef;
                                        }
                                }
                                break;
                        case 13902: // statius hammer
                        case 13904:
                                player.setNextAnimation(new Animation(10505));
                                player.setNextGraphics(new Graphics(1840));
                                int warhammerDamage = getRandomMaxHit(player, weaponId, attackStyle, false, true, 1.21, true);
                                delayNormalHit(weaponId, attackStyle, getMeleeHit(player, warhammerDamage));
                                if (target instanceof Player) {
                                        Player targetPlayer = ((Player) target);
                                        int amountLeft;
                                        if ((amountLeft = targetPlayer.getSkills().drainLevel(Skills.DEFENCE, warhammerDamage / 10)) > 0) {
                                                if ((amountLeft = targetPlayer.getSkills().drainLevel(Skills.STRENGTH, amountLeft)) > 0) {
                                                        if ((amountLeft = targetPlayer.getSkills().drainLevel(Skills.PRAYER, amountLeft)) > 0) {
                                                                if ((amountLeft = targetPlayer.getSkills().drainLevel(Skills.ATTACK, amountLeft)) > 0) {
                                                                        if ((amountLeft = targetPlayer.getSkills().drainLevel(Skills.MAGIC,
                                                                                        amountLeft)) > 0) {
                                                                                if (targetPlayer.getSkills().drainLevel(Skills.RANGE, amountLeft) > 0) {
                                                                                        break;
                                                                                }
                                                                        }
                                                                }
                                                        }
                                                }
                                        }
                                } else {
                                        if (warhammerDamage > 0) {
                                                NPC n = (NPC) target;
                                                int npcDef = n.getBonuses()[CombatDefinitions.NPC_DEFENCE_LEVEL];
                                                player.getPackets().sendGameMessage(npcDef + " current def.");
                                                int drain = warhammerDamage / 20;
                                                if ((npcDef - drain) < 0)
                                                        npcDef = 0;
                                                else
                                                        npcDef -= drain;
                                                player.getPackets().sendGameMessage(npcDef + " last def.");
                                                n.getBonuses()[CombatDefinitions.NPC_DEFENCE_LEVEL] = npcDef;
                                        }
                                }
                                break;


Abyssal vine whip
Code:

case 21371: // Abby Vine Whip
                        case 21372:
                        case 21373:
                        case 21374:
                        case 21375:
                                processVineCall(player);
                                break;

Code:

public void processVineCall(final Player player) {
                int weaponId = player.getEquipment().getWeaponId();
                final int attackStyle = player.getCombatDefinitions().getAttackStyle();
                final Entity finalTarget = target;
                player.setNextAnimation(new Animation(11971));
                if (Utils.random(1) == 0 && !target.getPoison().isPoisoned()) {
                        target.getPoison().makePoisoned(48);
                }
                delayNormalHit(weaponId, attackStyle,
                                getMeleeHit(player, getRandomMaxHit(player, weaponId, attackStyle, false, true, 1.0, true)));
                if (finalTarget.getTemporaryAttributtes().get("VINEEFFECT") == Boolean.TRUE) {
                        finalTarget.vineHits = 10;
                } else
                        finalTarget.vineHits += 10;
                finalTarget.getTemporaryAttributtes().put("VINEEFFECT", Boolean.TRUE);
                final WorldTile vineTile = new WorldTile(target.getX(), target.getY(), target.getPlane());
                WorldTasksManager.schedule(new WorldTask() {

                        @Override
                        public void run() {
                                /*
                                * if (player.getEquipment().getWeaponId() != 21371) { player.getPackets()
                                * .sendGameMessage("Since you no longer wield a vine whip, the vine ignores your call"
                                * ); finalTarget.getTemporaryAttributtes().remove("VINEEFFECT");
                                * finalTarget.vineHits = 0; stop(); return; }
                                */
                                if (finalTarget.isDead() || finalTarget.hasFinished() || player.isDead() || player.hasFinished()) {
                                        finalTarget.getTemporaryAttributtes().remove("VINEEFFECT");
                                        finalTarget.vineHits = 0;
                                        stop();
                                        return;
                                }
                                if (finalTarget.vineHits > 0) {
                                        finalTarget.vineHits--;
                                        World.sendGraphics(null, new Graphics(478), vineTile);
                                }
                                if (finalTarget.vineHits < 1) {
                                        finalTarget.getTemporaryAttributtes().remove("VINEEFFECT");
                                        stop();
                                }
                                int damage = 0;
                                if (player.isAtMultiArea() && target.isAtMultiArea()) {
                                        if (target instanceof Player) {
                                                int i = 0;
                                                damage = Utils.random(80, 130);
                                                if (Utils.inCircle(finalTarget, vineTile, 1))
                                                        finalTarget.applyHit(new Hit(player, damage, HitLook.MELEE_DAMAGE));
                                                for (Player players : World.getPlayers()) {
                                                        if (players != null) {
                                                                if (Math.abs(player.getSkills().getCombatLevel()
                                                                                - players.getSkills().getCombatLevel()) > WildernessControler
                                                                                                .getWildLevel(player)
                                                                                && Utils.inCircle(players, vineTile, 1)) {
                                                                        if (i > 2)
                                                                                continue;
                                                                        damage = Utils.random(80, 130);
                                                                        i++;
                                                                        if (i > 0) {
                                                                                addMeleeCombatXp(player, damage, weaponId, attackStyle);
                                                                                players.applyHit(new Hit(player, damage, HitLook.MELEE_DAMAGE));
                                                                        }
                                                                }
                                                        }
                                                }
                                        } else {
                                                NPC t = (NPC) target;
                                                int i = 0;
                                                damage = Utils.random(80, 130);
                                                if (Utils.inCircle(finalTarget, vineTile, t.getSize()))
                                                        finalTarget.applyHit(new Hit(player, damage, HitLook.MELEE_DAMAGE));
                                                for (NPC npcs : World.getNPCs()) {
                                                        if (npcs != null && npcs != finalTarget && Utils.inCircle(npcs, vineTile, npcs.getSize())
                                                                        && t.getDefinitions().hasAttackOption()) {
                                                                if (i > 2)
                                                                        continue;
                                                                damage = Utils.random(80, 130);
                                                                i++;
                                                                if (i > 0) {
                                                                        addMeleeCombatXp(player, damage, weaponId, attackStyle);
                                                                        npcs.applyHit(new Hit(player, damage, HitLook.MELEE_DAMAGE));
                                                                }
                                                        }
                                                }
                                        }
                                } else {
                                        damage = Utils.random(80, 130);
                                        if (Utils.inCircle(target, vineTile, 1)) {
                                                addMeleeCombatXp(player, damage, weaponId, attackStyle);
                                                finalTarget.applyHit(new Hit(player, damage, HitLook.MELEE_DAMAGE));
                                        }
                                }

                        }
                }, 4, 2);
        }


Hand Cannon
Code:

case 15241: // Hand cannon
                                player.setNextAnimation(new Animation(12175));
                                WorldTasksManager.schedule(new WorldTask() {
                                        int loop = 0;

                                        @Override
                                        public void run() {
                                                if ((target.isDead() || player.isDead() || loop > 6)) {
                                                        stop();
                                                        return;
                                                }
                                                if (loop == 2) {
                                                        if (player.getEquipment().getWeaponId() == 15241) {
                                                                player.setNextGraphics(new Graphics(2138));
                                                                player.setNextAnimation(new Animation(12153));
                                                                World.sendCannonProjectile(player, target, 2143);
                                                                dropAmmo(player, 1);
                                                                delayHit(Utils.getDistance(player, target) > 3 ? 2 : 1, weaponId, attackStyle,
                                                                                getRangeHit(player, getRandomMaxHit(player, weaponId, attackStyle, true)));
                                                                player.getActionManager().setActionDelay(1);
                                                        } else {
                                                                player.getCombatDefinitions().restoreSpecialAttack(50);
                                                        }
                                                } else if (loop == 3) {
                                                        stop();
                                                }
                                                loop++;
                                        }
                                }, 0, (int) 0.25);
                                combatDelay = 9;
                                break;

Dark bow
Code:

        case 11235: // dark bows
                        case 15701:
                        case 15702:
                        case 15703:
                        case 15704:
                                int ammoId = player.getEquipment().getAmmoId();
                                player.setNextAnimation(new Animation(getWeaponAttackEmote(weaponId, attackStyle)));
                                player.setNextGraphics(new Graphics(getStartArrowProjectileId(weaponId, ammoId), 0, 100));
                                boolean dragonArrows = ItemDefinitions.getItemDefinitions(player.getEquipment().getAmmoId()).getName()
                                                .toLowerCase().contains("dragon arrow");
                                int damage = getRandomMaxHit(player, weaponId, attackStyle, true, true, 1.270, true);
                                int damage2 = getRandomMaxHit(player, weaponId, attackStyle, true, true, 1.270, true);
                                int minimum = dragonArrows ? 80 : 50;
                                if (damage < minimum) {
                                        damage = minimum;
                                } else
                                        damage += minimum;
                                if (damage2 < minimum) {
                                        damage2 = minimum;
                                } else
                                        damage2 += minimum;
                                World.sendSlowBowProjectile(player, target, dragonArrows ? 1099 : 1103);
                                World.sendSlowBow2Projectile(player, target, dragonArrows ? 1099 : 1103);
                                int distance = Utils.getDistance(player, target);
                                delayHit(distance >= 5 ? 2 : distance >= 3 ? 1 : 1, weaponId, attackStyle, getRangeHit(player, damage));
                                delayHit(distance >= 5 ? 4 : distance >= 3 ? 1 : 2, weaponId, attackStyle,
                                                getRangeHit(player, damage2));
                                checkSwiftGlovesEffect(player, attackStyle, weaponId, damage2, getArrowProjectileId(weaponId, ammoId),
                                                2);
                                WorldTasksManager.schedule(new WorldTask() {
                                        @Override
                                        public void run() {
                                                if (player == null || target == null || player.isDead() || player.hasFinished()
                                                                || target.isDead() || target.hasFinished())
                                                        return;
                                                target.setNextGraphics(new Graphics(dragonArrows ? 1100 : 1103, 0, 100));
                                                target.setNextGraphics(new Graphics(dragonArrows ? 1100 : 1103, 0, 100));
                                        }
                                }, distance == 3 ? 1 : 2);
                                break;

Zaniks crossbow
Code:

case 14684: // zanik cbow
                                player.setNextAnimation(new Animation(11359));
                                player.setNextGraphics(new Graphics(1714));
                                WorldTasksManager.schedule(new WorldTask() {
                                        int loop = 0;

                                        @Override
                                        public void run() {
                                                if ((target.isDead() || player.isDead() || loop > 3)) {
                                                        stop();
                                                        return;
                                                }
                                                if (loop == 1) {
                                                        ItemDefinitions defs = ItemDefinitions
                                                                        .getItemDefinitions(player.getEquipment().getWeaponId());
                                                        World.sendCBOWProjectile(player, target, 2001);
                                                        delayHit(Utils.getDistance(player, target) > 3 ? 2 : 1, weaponId, attackStyle,
                                                                        getRangeHit(player,
                                                                                        getRandomMaxHit(player, weaponId, attackStyle, true, true, 1.0, true) + 30
                                                                                                        + Utils.getRandom(120)));
                                                        dropAmmo(player, 1);
                                                        player.getActionManager().setActionDelay(defs.getAttackSpeed());
                                                } else if (loop == 3)
                                                        stop();
                                                loop++;
                                        }
                                }, 0, (int) 0.25);
                                break;

Morrigans javelin
Code:

case 13954:// morrigan javelin
                        case 12955:
                        case 13956:
                        case 13879:
                        case 13880:
                        case 13881:
                        case 13882:
                                player.setNextGraphics(new Graphics(1836));
                                player.setNextAnimation(new Animation(10501));
                                World.sendThrowProjectile(player, target, 1837);
                                final int hit = getRandomMaxHit(player, weaponId, attackStyle, true, true, 1.0, true);
                                delayHit(Utils.getDistance(player, target) > 3 ? 2 : 1, weaponId, attackStyle,
                                                getRangeHit(player, hit));
                                processMorriganJavelins(player, hit);
                                dropAmmo(player, -1);
                                break;

Code:

public void processMorriganJavelins(final Player player, int hit) {
                final Entity finalTarget = target;
                if (finalTarget.getTemporaryAttributtes().get("MORRIGANEFFECT") == Boolean.TRUE) {
                        finalTarget.morriganHits += hit;
                        return;
                }
                finalTarget.getTemporaryAttributtes().put("MORRIGANEFFECT", Boolean.TRUE);
                finalTarget.morriganHits += hit;
                WorldTasksManager.schedule(new WorldTask() {

                        @Override
                        public void run() {
                                if (finalTarget.isDead() || finalTarget.hasFinished() || player.isDead() || player.hasFinished()) {
                                        stop();
                                        finalTarget.morriganHits = 0;
                                        finalTarget.getTemporaryAttributtes().remove("MORRIGANEFFECT");
                                        return;
                                }
                                if (finalTarget.morriganHits >= 50) {
                                        finalTarget.morriganHits -= 50;
                                        finalTarget.applyHit(new Hit(player, 50, HitLook.REGULAR_DAMAGE));
                                } else {
                                        finalTarget.applyHit(new Hit(player, finalTarget.morriganHits, HitLook.REGULAR_DAMAGE));
                                        finalTarget.morriganHits = 0;
                                        finalTarget.getTemporaryAttributtes().remove("MORRIGANEFFECT");
                                        stop();
                                        return;
                                }
                        }
                }, 2, 2);
        }





Closed.


[B]Data packing to vencillio

$
0
0
Hello looking for someone who can pack me osrs data into vencillio also with maps + readvalues

Qoute below with price.

My discord: Replicant#1054

Ruse/Liquid x object problem

$
0
0
So im trying to move the "upgrade" machine and i cant get it to open the interface after i move it added coords and id BOTH server and client sided. So the problem is not that i cant spawn it it just wont open interface after i move it.

[PI] making NPCs not attack based on character appearance

$
0
0
I'm trying to make it so an NPC will not attack if your shirt is blue, in NPC hander.java there's a switch statement for isAggressive for making Npcs aggressive

How can I make an NPC aggressive, but not aggressive if your shirt is a certain color?

the method for changing your shirt color should be

c.playerAppearance[9] = torsoColour;


but I can't figure out how to call these into npchandler without throwing errors

Adding third click object [ruse source]

$
0
0
Hello guys im trying to make a third click for an object (ruse source).. and in the thirdclick(Player player, Packet packet) there is absolutely nothing.. tried using some of the firstclick(..) code, secondclick(..) code.. changing it.. trying to make it work for the thirdclick.. but unfortunatly that didn't happen.. any information that can help me is appreciated. have a nice day
-- if something else needed except first,second,thirdcick(..) tell me

firstclick(..)
Code:

private static void firstClick(final Player player, Packet packet) {
                final int x = packet.readLEShortA();
                final int id = packet.readUnsignedShort();
                final int y = packet.readUnsignedShortA();
                final Position position = new Position(x, y, player.getPosition().getZ());
                final GameObject gameObject = new GameObject(id, position);
                if(player.getLocation() != Location.CONSTRUCTION) {
                        if(id > 0 && id != 6 && !RegionClipping.objectExists(gameObject) && id != 9294) {
                                //        player.getPacketSender().sendMessage("An error occured. Error code: "+id).sendMessage("Please report the error to a staff member.");
                                return;
                        }
                }
                int distanceX = (player.getPosition().getX() - position.getX());
                int distanceY = (player.getPosition().getY() - position.getY());
                if (distanceX < 0)
                        distanceX = -(distanceX);
                if (distanceY < 0)
                        distanceY = -(distanceY);
                int size = distanceX > distanceY ? GameObjectDefinition.forId(id).getSizeX() : GameObjectDefinition.forId(id).getSizeY();
                if (size <= 0)
                        size = 1;
                gameObject.setSize(size);
                if(player.getMovementQueue().isLockMovement())
                        return;
                if(player.getRights() == PlayerRights.DEVELOPER)
                        player.getPacketSender().sendMessage("First click object id; [id, position] : [" + id + ", " + position.toString() + "]");
                player.setInteractingObject(gameObject).setWalkToTask(new WalkToTask(player, position, gameObject.getSize(), new FinalizedMovementTask() {
                        @Override
                        public void execute() {
                                player.setPositionToFace(gameObject.getPosition());
                                if(player.getRegionInstance() != null) {
                                        Construction.handleFifthObjectClick(x, y, id, player);
                                }
                                if(WoodcuttingData.Trees.forId(id) != null) {
                                        Woodcutting.cutWood(player, gameObject, false);
                                        return;
                                }
                                if(MiningData.forRock(gameObject.getId()) != null) {
                                        Mining.startMining(player, gameObject);
                                        return;
                                }
                                if (player.getFarming().click(player, x, y, 1))
                                        return;
                                if(Runecrafting.runecraftingAltar(player, gameObject.getId())) {
                                        RunecraftingData.RuneData rune = RunecraftingData.RuneData.forId(gameObject.getId());
                                        if(rune == null)
                                                return;
                                        Runecrafting.craftRunes(player, rune);
                                        return;
                                }
                                if(Agility.handleObject(player, gameObject)) {
                                        return;
                                }
                                if(Barrows.handleObject(player, gameObject)) {
                                        return;
                                }
                                if(player.getLocation() == Location.WILDERNESS && WildernessObelisks.handleObelisk(gameObject.getId())) {
                                        return;
                                }
                                switch(id) {
                               
                                //Ronen
                                case 37985:
                                        boolean restore = false;
                                        for(Skill skill : Skill.values()) {
                                                if(player.getSkillManager().getCurrentLevel(skill) < player.getSkillManager().getMaxLevel(skill)) {
                                                        player.getSkillManager().setCurrentLevel(skill, player.getSkillManager().getMaxLevel(skill));
                                                        restore = true;
                                                }
                                        }
                                        if(restore) {
                                                player.performGraphic(new Graphic(1302));
                                                player.getPacketSender().sendMessage("Your stats have been restored.");
                                        } else
                                                player.getPacketSender().sendMessage("Your stats do not need to be restored at the moment.");
                                        break;
                                case 38660:
                                        if(ShootingStar.CRASHED_STAR != null) {

                                        }
                                        break;
                                case 11434:
                                        if (EvilTrees.SPAWNED_TREE != null) {

                                        }
                                        break;
                                       
                                case 2079:
                                        TrioBosses.openChest(player);
                                        break;
                                case 2465:
                                        player.inFFALobby = false;
                                        player.moveTo(new Position(3208,3426,0));
                                        FreeForAll.removePlayer(player);
                                        return;
                                       
                                case 5259:
                                        if(player.getPosition().getX() >= 3653) {
                                                player.moveTo(new Position(3652, player.getPosition().getY()));
                                        } else {
                                                player.setDialogueActionId(73);
                                                DialogueManager.start(player, 115);
                                        }
                                        break;
                                       
                                case 13405:
                                        if(!TeleportHandler.checkReqs(player, null)) {
                                                return;
                                        }
                                        if(!player.getClickDelay().elapsed(4500) || player.getMovementQueue().isLockMovement()) {
                                                return;
                                        }
                                        if(player.getLocation() == Location.CONSTRUCTION) {
                                                player.moveTo(GameSettings.DEFAULT_POSITION.copy());
                                                return;
                                        }
                                        Construction.newHouse(player);
                                        Construction.enterHouse(player, player, true, true);
                                        player.getPacketSender().sendMessage("@red@If your construction area map bugs out, teleport home and back in!");
                                        break;
                                case 8799:
                                GrandExchange.open(player);
                                break;
                                case 21505:
                                case 21507:
                                        player.moveTo(new Position(2329, 3804));
                                        break;
                                case 6420:
                                          KeysEvent.openChest(player);
                                          break;
                               
                                case 38700:
                                        player.moveTo(new Position(3092, 3502));
                                        break;
                                case 45803:
                                case 1767:
                                        DialogueManager.start(player, 114);
                                        player.setDialogueActionId(72);
                                        break;
                                case 7352:
                                        if(Dungeoneering.doingDungeoneering(player) && player.getMinigameAttributes().getDungeoneeringAttributes().getParty().getGatestonePosition() != null) {
                                                player.moveTo(player.getMinigameAttributes().getDungeoneeringAttributes().getParty().getGatestonePosition());
                                                player.setEntityInteraction(null);
                                                player.getPacketSender().sendMessage("You are teleported to your party's gatestone.");
                                                player.performGraphic(new Graphic(1310));
                                        } else
                                                player.getPacketSender().sendMessage("Your party must drop a Gatestone somewhere in the dungeon to use this portal.");
                                        break;
                                case 7353:
                                        player.moveTo(new Position(2439, 4956, player.getPosition().getZ()));
                                        break;
                                case 7321:
                                        player.moveTo(new Position(2452, 4944, player.getPosition().getZ()));
                                        break;
                                case 7322:
                                        player.moveTo(new Position(2455, 4964, player.getPosition().getZ()));
                                        break;
                                case 7315:
                                        player.moveTo(new Position(2447, 4956, player.getPosition().getZ()));
                                        break;
                                case 7316:
                                        player.moveTo(new Position(2471, 4956, player.getPosition().getZ()));
                                        break;
                                case 7318:
                                        player.moveTo(new Position(2464, 4963, player.getPosition().getZ()));
                                        break;
                                case 7319:
                                        player.moveTo(new Position(2467, 4940, player.getPosition().getZ()));
                                        break;
                                case 7324:
                                        player.moveTo(new Position(2481, 4956, player.getPosition().getZ()));
                                        break;
                                case 11356:
                                        player.moveTo(new Position(2860, 9741));
                                        player.getPacketSender().sendMessage("You step through the portal..");
                                        break;
                                case 47180:
                                       
                                        player.getPacketSender().sendMessage("You activate the device..");
                                        player.moveTo(new Position(2586, 3912));
                                        break;
                                case 10091:
                                case 8702:
                                       
                                        Fishing.setupFishing(player, Spot.ROCKTAIL);
                                        break;
                                case 9319:
                                        if(player.getSkillManager().getCurrentLevel(Skill.AGILITY) < 61){
                                                player.getPacketSender().sendMessage("You need an Agility level of at least 61 or higher to climb this");
                                                return;
                                        }
                                        if(player.getPosition().getZ() == 0)
                                                player.moveTo(new Position(3422, 3549, 1));
                                        else if(player.getPosition().getZ() == 1) {
                                                if(gameObject.getPosition().getX() == 3447)
                                                        player.moveTo(new Position(3447, 3575, 2));
                                                else
                                                        player.moveTo(new Position(3447, 3575, 0));
                                        }
                                        break;

                                case 9320:
                                        if(player.getSkillManager().getCurrentLevel(Skill.AGILITY) < 61) {
                                                player.getPacketSender().sendMessage("You need an Agility level of at least 61 or higher to climb this");
                                                return;
                                        }
                                        if(player.getPosition().getZ() == 1)
                                                player.moveTo(new Position(3422, 3549, 0));
                                        else if(player.getPosition().getZ() == 0)
                                                player.moveTo(new Position(3447, 3575, 1));
                                        else if(player.getPosition().getZ() == 2)
                                                player.moveTo(new Position(3447, 3575, 1));
                                        player.performAnimation(new Animation(828));
                                        break;
                                case 2274:
                                        if(gameObject.getPosition().getX() == 2912 && gameObject.getPosition().getY() == 5300) {
                                                player.moveTo(new Position(2914, 5300, 1));
                                        } else if(gameObject.getPosition().getX() == 2914 && gameObject.getPosition().getY() == 5300) {
                                                player.moveTo(new Position(2912, 5300, 2));
                                        } else if(gameObject.getPosition().getX() == 2919 && gameObject.getPosition().getY() == 5276) {
                                                player.moveTo(new Position(2918, 5274));
                                        } else if(gameObject.getPosition().getX() == 2918 && gameObject.getPosition().getY() == 5274) {
                                                player.moveTo(new Position(2919, 5276, 1));
                                        } else if(gameObject.getPosition().getX() == 3001 && gameObject.getPosition().getY() == 3931 || gameObject.getPosition().getX() == 3652 && gameObject.getPosition().getY() == 3488) {
                                                player.moveTo(GameSettings.DEFAULT_POSITION.copy());
                                                player.getPacketSender().sendMessage("The portal teleports you to Edgeville.");
                                        }
                                        break;
                                case 7836:
                                case 7808:
                                        int amt = player.getInventory().getAmount(6055);
                                        if(amt > 0) {
                                                player.getInventory().delete(6055, amt);
                                                player.getPacketSender().sendMessage("You put the weed in the compost bin.");
                                                player.getSkillManager().addExperience(Skill.FARMING, 20*amt);
                                        } else {
                                                player.getPacketSender().sendMessage("You do not have any weeds in your inventory.");
                                        }
                                        break;
                                case 5960: //Levers
                                case 5959:
                                        player.setDirection(Direction.WEST);
                                        TeleportHandler.teleportPlayer(player, new Position(3090, 3475), TeleportType.LEVER);
                                        break;
                                case 5096:
                                        if (gameObject.getPosition().getX() == 2644 && gameObject.getPosition().getY() == 9593)
                                                player.moveTo(new Position(2649, 9591));
                                        break;

                                case 5094:
                                        if (gameObject.getPosition().getX() == 2648 && gameObject.getPosition().getY() == 9592)
                                                player.moveTo(new Position(2643, 9594, 2));
                                        break;

                                case 5098:
                                        if (gameObject.getPosition().getX() == 2635 && gameObject.getPosition().getY() == 9511)
                                                player.moveTo(new Position(2637, 9517));
                                        break;

                                case 5097:
                                        if (gameObject.getPosition().getX() == 2635 && gameObject.getPosition().getY() == 9514)
                                                player.moveTo(new Position(2636, 9510, 2));
                                        break;
                                case 26428:
                                case 26426:
                                case 26425:
                                case 26427:
                                        String bossRoom = "Armadyl";
                                        boolean leaveRoom = player.getPosition().getY() > 5295;
                                        int index = 0;
                                        Position movePos = new Position(2839, !leaveRoom ? 5296 : 5295, 2);
                                        if(id == 26425) {
                                                bossRoom = "Bandos";
                                                leaveRoom = player.getPosition().getX() > 2863;
                                                index = 1;
                                                movePos = new Position(!leaveRoom ? 2864 : 2863, 5354, 2);
                                        } else if(id == 26427) {
                                                bossRoom = "Saradomin";
                                                leaveRoom = player.getPosition().getX() < 2908;
                                                index = 2;
                                                movePos = new Position(leaveRoom ? 2908 : 2907, 5265);
                                        } else if(id == 26428) {
                                                bossRoom = "Zamorak";
                                                leaveRoom = player.getPosition().getY() <= 5331;
                                                index = 3;
                                                movePos = new Position(2925, leaveRoom ? 5332 : 5331, 2);
                                        }
                                        if(!leaveRoom && (player.getRights() != PlayerRights.ADMINISTRATOR && player.getRights() != PlayerRights.OWNER && player.getRights() != PlayerRights.UBER_DONATOR && player.getRights() != PlayerRights.LEGENDARY_DONATOR && player.getRights() != PlayerRights.EXTREME_DONATOR && player.getRights() != PlayerRights.SUPER_DONATOR && player.getRights() != PlayerRights.MODERATOR && player.getRights() != PlayerRights.SUPPORT && player.getRights() != PlayerRights.DEVELOPER && player.getMinigameAttributes().getGodwarsDungeonAttributes().getKillcount()[index] < 20)) {
                                                player.getPacketSender().sendMessage("You need "+Misc.anOrA(bossRoom)+" "+bossRoom+" killcount of at least 20 to enter this room.");
                                                return;
                                        }
                                        player.moveTo(movePos);
                                        player.getMinigameAttributes().getGodwarsDungeonAttributes().setHasEnteredRoom(leaveRoom ? false : true);
                                        player.getMinigameAttributes().getGodwarsDungeonAttributes().getKillcount()[index] = 0;
                                        player.getPacketSender().sendString(16216+index, "0");
                                        break;
                                case 26289:
                                case 26286:
                                case 26288:
                                case 26287:
                                        if(System.currentTimeMillis() - player.getMinigameAttributes().getGodwarsDungeonAttributes().getAltarDelay() < 600000) {
                                                player.getPacketSender().sendMessage("");
                                                player.getPacketSender().sendMessage("You can only pray at a God's altar once every 10 minutes.");
                                                player.getPacketSender().sendMessage("You must wait another "+(int)((600 - (System.currentTimeMillis() - player.getMinigameAttributes().getGodwarsDungeonAttributes().getAltarDelay()) * 0.001))+" seconds before being able to do this again.");
                                                return;
                                        }
                                        int itemCount = id == 26289 ? Equipment.getItemCount(player, "Bandos", false) : id == 26286 ? Equipment.getItemCount(player, "Zamorak", false) : id == 26288 ? Equipment.getItemCount(player, "Armadyl", false) : id == 26287 ? Equipment.getItemCount(player, "Saradomin", false) : 0;
                                        int toRestore = player.getSkillManager().getMaxLevel(Skill.PRAYER) + (itemCount * 10);
                                        if(player.getSkillManager().getCurrentLevel(Skill.PRAYER) >= toRestore) {
                                                player.getPacketSender().sendMessage("You do not need to recharge your Prayer points at the moment.");
                                                return;
                                        }
                                        player.performAnimation(new Animation(645));
                                        player.getSkillManager().setCurrentLevel(Skill.PRAYER, toRestore);
                                        player.getMinigameAttributes().getGodwarsDungeonAttributes().setAltarDelay(System.currentTimeMillis());
                                        break;
                                case 23093:
                                        if(player.getSkillManager().getCurrentLevel(Skill.AGILITY) < 70) {
                                                player.getPacketSender().sendMessage("You need an Agility level of at least 70 to go through this portal.");
                                                return;
                                        }
                                        if(!player.getClickDelay().elapsed(2000))
                                                return;
                                        int plrHeight = player.getPosition().getZ();
                                        if(plrHeight == 2)
                                                player.moveTo(new Position(2914, 5300, 1));
                                        else if(plrHeight == 1) {
                                                int x = gameObject.getPosition().getX();
                                                int y = gameObject.getPosition().getY();
                                                if(x == 2914 && y == 5300)
                                                        player.moveTo(new Position(2912, 5299, 2));
                                                else if(x == 2920 && y == 5276)
                                                        player.moveTo(new Position(2920, 5274, 0));
                                        } else if(plrHeight == 0)
                                                player.moveTo(new Position(2920, 5276, 1));
                                        player.getClickDelay().reset();
                                        break;
                                case 26439:
                                        if(player.getSkillManager().getMaxLevel(Skill.CONSTITUTION) <= 700) {
                                                player.getPacketSender().sendMessage("You need a Constitution level of at least 70 to swim across.");
                                                return;
                                        }
                                        if(!player.getClickDelay().elapsed(1000))
                                                return;
                                        if(player.isCrossingObstacle())
                                                return;
                                        final String startMessage = "You jump into the icy cold water..";
                                        final String endMessage = "You climb out of the water safely.";
                                        final int jumpGFX = 68;
                                        final int jumpAnimation = 772;
                                        player.setSkillAnimation(773);
                                        player.setCrossingObstacle(true);
                                        player.getUpdateFlag().flag(Flag.APPEARANCE);
                                        player.performAnimation(new Animation(3067));
                                        final boolean goBack2 = player.getPosition().getY() >= 5344;
                                        player.getPacketSender().sendMessage(startMessage); 
                                        player.moveTo(new Position(2885, !goBack2 ? 5335 : 5342, 2));
                                        player.setDirection(goBack2 ? Direction.SOUTH : Direction.NORTH);
                                        player.performGraphic(new Graphic (jumpGFX));
                                        player.performAnimation(new Animation(jumpAnimation));
                                        TaskManager.submit(new Task(1, player, false) {
                                                int ticks = 0;
                                                @Override
                                                public void execute() {
                                                        ticks++;
                                                        player.getMovementQueue().walkStep(0, goBack2 ? -1 : 1);
                                                        if(ticks >= 10)
                                                                stop();
                                                }
                                                @Override
                                                public void stop() {
                                                        player.setSkillAnimation(-1);
                                                        player.setCrossingObstacle(false);
                                                        player.getUpdateFlag().flag(Flag.APPEARANCE);
                                                        player.getPacketSender().sendMessage(endMessage);
                                                        player.moveTo(new Position(2885, player.getPosition().getY() < 5340 ? 5333 : 5345, 2));
                                                        setEventRunning(false);
                                                }
                                        });
                                        player.getClickDelay().reset((System.currentTimeMillis() + 9000));
                                        break;
                                case 26384:
                                        if(player.isCrossingObstacle())
                                                return;
                                        if(!player.getInventory().contains(2347)) {
                                                player.getPacketSender().sendMessage("You need to have a hammer to bang on the door with.");
                                                return;
                                        }
                                        player.setCrossingObstacle(true);
                                        final boolean goBack = player.getPosition().getX() <= 2850;
                                        player.performAnimation(new Animation(377));
                                        TaskManager.submit(new Task(2, player, false) {
                                                @Override
                                                public void execute() {
                                                        player.moveTo(new Position(goBack ? 2851 : 2850, 5333, 2));
                                                        player.setCrossingObstacle(false);
                                                        stop();
                                                }
                                        });
                                        break;
                                case 26303:
                                        if(!player.getClickDelay().elapsed(1200))
                                                return;
                                        if (player.getSkillManager().getCurrentLevel(Skill.RANGED) < 70)
                                                player.getPacketSender().sendMessage("You need a Ranged level of at least 70 to swing across here.");
                                        else if (!player.getInventory().contains(9418)) {
                                                player.getPacketSender().sendMessage("You need a Mithril grapple to swing across here. Explorer Jack might have one.");
                                                return;
                                        } else {
                                                player.performAnimation(new Animation(789));
                                                TaskManager.submit(new Task(2, player, false) {
                                                        @Override
                                                        public void execute() {
                                                                player.getPacketSender().sendMessage("You throw your Mithril grapple over the pillar and move across.");
                                                                player.moveTo(new Position(2871, player.getPosition().getY() <= 5270 ? 5279 : 5269, 2));
                                                                stop();
                                                        }
                                                });
                                                player.getClickDelay().reset();
                                        }
                                        break;
                                case 4493:
                                        if(player.getPosition().getX() >= 3432) {
                                                player.moveTo(new Position(3433, 3538, 1));
                                        }
                                        break;
                                case 4494:
                                        player.moveTo(new Position(3438, 3538, 0));
                                        break;
                                case 4495:
                                        player.moveTo(new Position(3417, 3541, 2));
                                        break;
                                case 4496:
                                        player.moveTo(new Position(3412, 3541, 1));
                                        break;
                                case 2491:
                                        player.setDialogueActionId(48);
                                        DialogueManager.start(player, 87);
                                        break;
                                case 25339:
                                case 25340:
                                        player.moveTo(new Position(1778, 5346, player.getPosition().getZ() == 0 ? 1 : 0));
                                        break;
                                case 10229:
                                case 10230:
                                        boolean up = id == 10229;
                                        player.performAnimation(new Animation(up ? 828 : 827));
                                        player.getPacketSender().sendMessage("You climb "+(up ? "up" : "down")+" the ladder..");
                                        TaskManager.submit(new Task(1, player, false) {
                                                @Override
                                                protected void execute() {
                                                        player.moveTo(up ? new Position(1912, 4367) : new Position(2900, 4449));
                                                        stop();
                                                }
                                        });
                                        break;
                                case 1568:
                                        player.moveTo(new Position(3097, 9868));
                                        break;
                                case 5103: //Brimhaven vines
                                case 5104:
                                case 5105:
                                case 5106:
                                case 5107:
                                        if(!player.getClickDelay().elapsed(4000))
                                                return;
                                        if(player.getSkillManager().getCurrentLevel(Skill.WOODCUTTING) < 30) {
                                                player.getPacketSender().sendMessage("You need a Woodcutting level of at least 30 to do this.");
                                                return;
                                        }
                                        if(WoodcuttingData.getHatchet(player) < 0) {
                                                player.getPacketSender().sendMessage("You do not have a hatchet which you have the required Woodcutting level to use.");
                                                return;
                                        }
                                        final Hatchet axe = Hatchet.forId(WoodcuttingData.getHatchet(player));
                                        player.performAnimation(new Animation(axe.getAnim()));
                                        gameObject.setFace(-1);
                                        TaskManager.submit(new Task(3 + RandomUtility.getRandom(4), player, false) {
                                                @Override
                                                protected void execute() {
                                                        if(player.getMovementQueue().isMoving()) {
                                                                stop();
                                                                return;
                                                        }
                                                        int x = 0;
                                                        int y = 0;
                                                        if(player.getPosition().getX() == 2689 && player.getPosition().getY() == 9564) {
                                                                x = 2;
                                                                y = 0;
                                                        } else if(player.getPosition().getX() == 2691 && player.getPosition().getY() == 9564) {
                                                                x = -2;
                                                                y = 0;
                                                        } else if(player.getPosition().getX() == 2683 && player.getPosition().getY() == 9568) {
                                                                x = 0;
                                                                y = 2;
                                                        } else if(player.getPosition().getX() == 2683 && player.getPosition().getY() == 9570) {
                                                                x = 0;
                                                                y = -2;
                                                        } else if(player.getPosition().getX() == 2674 && player.getPosition().getY() == 9479) {
                                                                x = 2;
                                                                y = 0;
                                                        } else if(player.getPosition().getX() == 2676 && player.getPosition().getY() == 9479) {
                                                                x = -2;
                                                                y = 0;
                                                        } else if(player.getPosition().getX() == 2693 && player.getPosition().getY() == 9482) {
                                                                x = 2;
                                                                y = 0;
                                                        } else if(player.getPosition().getX() == 2672 && player.getPosition().getY() == 9499) {
                                                                x = 2;
                                                                y = 0;
                                                        } else if(player.getPosition().getX() == 2674 && player.getPosition().getY() == 9499) {
                                                                x = -2;
                                                                y = 0;
                                                        }
                                                        CustomObjects.objectRespawnTask(player, new GameObject(-1, gameObject.getPosition().copy()), gameObject, 10);
                                                        player.getPacketSender().sendMessage("You chop down the vines..");
                                                        player.getSkillManager().addExperience(Skill.WOODCUTTING, 45);
                                                        player.performAnimation(new Animation(65535));
                                                        player.getMovementQueue().walkStep(x, y);
                                                        stop();
                                                }
                                        });
                                        player.getClickDelay().reset();
                                        break;
                                case 29942:
                                        if(player.getSkillManager().getCurrentLevel(Skill.SUMMONING) == player.getSkillManager().getMaxLevel(Skill.SUMMONING)) {
                                                player.getPacketSender().sendMessage("You do not need to recharge your Summoning points right now.");
                                                return;
                                        }
                                        player.performGraphic(new Graphic(1517));
                                        player.getSkillManager().setCurrentLevel(Skill.SUMMONING, player.getSkillManager().getMaxLevel(Skill.SUMMONING), true);
                                        player.getPacketSender().sendString(18045, " "+player.getSkillManager().getCurrentLevel(Skill.SUMMONING)+"/"+player.getSkillManager().getMaxLevel(Skill.SUMMONING));
                                        player.getPacketSender().sendMessage("You recharge your Summoning points.");
                                        break;
                                case 57225:
                                        if(!player.getMinigameAttributes().getGodwarsDungeonAttributes().hasEnteredRoom()) {
                                                player.setDialogueActionId(44);
                                                DialogueManager.start(player, 79);
                                        } else {
                                                player.moveTo(new Position(2906, 5204));
                                                player.getMinigameAttributes().getGodwarsDungeonAttributes().setHasEnteredRoom(false);
                                        }
                                        break;
                                case 884:
                                        player.setDialogueActionId(41);
                                        DialogueManager.start(player, 75);
                                        break;
                                case 9294:
                                        if(player.getSkillManager().getCurrentLevel(Skill.AGILITY) < 80) {
                                                player.getPacketSender().sendMessage("You need an Agility level of at least 80 to use this shortcut.");
                                                return;
                                        }
                                        player.performAnimation(new Animation(769));
                                        TaskManager.submit(new Task(1, player, false) {
                                                @Override
                                                protected void execute() {
                                                        player.moveTo(new Position(player.getPosition().getX() >= 2880 ? 2878 : 2880, 9813));       
                                                        stop();
                                                }
                                        });
                                        break;
                                case 9293:
                                        boolean back = player.getPosition().getX() > 2888;
                                        player.moveTo(back ? new Position(2886, 9799) : new Position(2891, 9799));
                                        break;
                                case 2320:
                                        back = player.getPosition().getY() == 9969 || player.getPosition().getY() == 9970;
                                        player.moveTo(back ? new Position(3120, 9963) : new Position(3120, 9969));
                                        break;
                                case 1755:
                                        player.performAnimation(new Animation(828));
                                        player.getPacketSender().sendMessage("You climb the stairs..");
                                        TaskManager.submit(new Task(1, player, false) {
                                                @Override
                                                protected void execute() {
                                                        if(gameObject.getPosition().getX() == 2547 && gameObject.getPosition().getY() == 9951) {
                                                                player.moveTo(new Position(2548, 3551));
                                                        } else if(gameObject.getPosition().getX() == 3005 && gameObject.getPosition().getY() == 10363) {
                                                                player.moveTo(new Position(3005, 3962));
                                                        } else if(gameObject.getPosition().getX() == 3084 && gameObject.getPosition().getY() == 9672) {
                                                                player.moveTo(new Position(3117, 3244));
                                                        } else if(gameObject.getPosition().getX() == 3097 && gameObject.getPosition().getY() == 9867) {
                                                                player.moveTo(new Position(3096, 3468));
                                                        }
                                                        stop();
                                                }
                                        });
                                        break;
                                case 5110:
                                        player.moveTo(new Position(2647, 9557));
                                        player.getPacketSender().sendMessage("You pass the stones..");
                                        break;
                                case 5111:
                                        player.moveTo(new Position(2649, 9562));
                                        player.getPacketSender().sendMessage("You pass the stones..");
                                        break;
                                case 6434:
                                        player.performAnimation(new Animation(827));
                                        player.getPacketSender().sendMessage("You enter the trapdoor..");
                                        TaskManager.submit(new Task(1, player, false) {
                                                @Override
                                                protected void execute() {
                                                        player.moveTo(new Position(3085, 9672));
                                                        stop();
                                                }
                                        });
                                        break;
                                case 19187:
                                case 19175:
                                        Hunter.dismantle(player, gameObject);
                                        break;
                                case 25029:
                                        PuroPuro.goThroughWheat(player, gameObject);
                                        break;
                                case 47976:
                                        Nomad.endFight(player, false);
                                        break;
                                case 2182:
                                        if(!player.getMinigameAttributes().getRecipeForDisasterAttributes().hasFinishedPart(0)) {
                                                player.getPacketSender().sendMessage("You have no business with this chest. Talk to the Gypsy first!");
                                                return;
                                        }
                                        RecipeForDisaster.openRFDShop(player);
                                        break;
                                case 12356:
                                        if(!player.getMinigameAttributes().getRecipeForDisasterAttributes().hasFinishedPart(0)) {
                                                player.getPacketSender().sendMessage("You have no business with this portal. Talk to the Gypsy first!");
                                                return;
                                        }
                                        if(player.getPosition().getZ() > 0) {
                                                RecipeForDisaster.leave(player);
                                        } else {
                                                player.getMinigameAttributes().getRecipeForDisasterAttributes().setPartFinished(1, true);
                                                RecipeForDisaster.enter(player);
                                        }
                                        break;
                                case 9369:
                                        if (player.getPosition().getY() > 5175) {
                                                FightPit.addPlayer(player);
                                        } else {
                                                FightPit.removePlayer(player, "leave room");
                                        }
                                        break;
                                case 9368:
                                        if (player.getPosition().getY() < 5169) {
                                                FightPit.removePlayer(player, "leave game");
                                        }
                                        break;
                                case 357:
                                       
                                        break;
                                case 1:
                                       
                                        break;
                                case 9357:
                                        FightCave.leaveCave(player, false);
                                        break;
                                case 9356:
                                        FightCave.enterCave(player);
                                        break;
                                case 6704:
                                        player.moveTo(new Position(3577, 3282, 0));
                                        break;
                                case 6706:
                                        player.moveTo(new Position(3554, 3283, 0));
                                        break;
                                case 6705:
                                        player.moveTo(new Position(3566, 3275, 0));
                                        break;
                                case 6702:
                                        player.moveTo(new Position(3564, 3289, 0));
                                        break;
                                case 6703:
                                        player.moveTo(new Position(3574, 3298, 0));
                                        break;
                                case 6707:
                                        player.moveTo(new Position(3556, 3298, 0));
                                        break;
                                case 3203:
                                        if(player.getLocation() == Location.DUEL_ARENA && player.getDueling().duelingStatus == 5) {
                                                if(Dueling.checkRule(player, DuelRule.NO_FORFEIT)) {
                                                        player.getPacketSender().sendMessage("Forfeiting has been disabled in this duel.");                       
                                                        return;
                                                }
                                                player.getCombatBuilder().reset(true);
                                                if(player.getDueling().duelingWith > -1) {
                                                        Player duelEnemy = World.getPlayers().get(player.getDueling().duelingWith);
                                                        if(duelEnemy == null)
                                                                return;
                                                        duelEnemy.getCombatBuilder().reset(true);
                                                        duelEnemy.getMovementQueue().reset();
                                                        duelEnemy.getDueling().duelVictory();
                                                }
                                                player.moveTo(new Position(3368 + RandomUtility.getRandom(5), 3267+ RandomUtility.getRandom(3), 0));
                                                player.getDueling().reset();
                                                player.getCombatBuilder().reset(true);
                                                player.restart();
                                        }
                                        break;
                                case 14315:
                                        PestControl.boardBoat(player);
                                        break;
                                case 14314:
                                        if(player.getLocation() == Location.PEST_CONTROL_BOAT) {
                                                player.getLocation().leave(player);
                                        }
                                        break;
                                case 1738:
                                        if(player.getLocation() == Location.LUMBRIDGE && player.getPosition().getZ() == 0) {
                                                player.moveTo(new Position(player.getPosition().getX(), player.getPosition().getY(), 1));
                                        } else {
                                                player.moveTo(new Position(2840, 3539, 2));
                                        }
                                        break;
                                case 15638:
                                        player.moveTo(new Position(2840, 3539, 0));
                                        break;
                                case 15644:
                                case 15641:
                                        switch(player.getPosition().getZ()) {
                                        case 0:
                                                player.moveTo(new Position(2855, player.getPosition().getY() >= 3546 ? 3545 : 3546));
                                                break;
                                        case 2:
                                                if(player.getPosition().getX() == 2846) {
                                                        if(player.getInventory().getAmount(8851) < 70) {
                                                                player.getPacketSender().sendMessage("You need at least 70 tokens to enter this area.");
                                                                return;
                                                        }
                                                        DialogueManager.start(player, WarriorsGuild.warriorsGuildDialogue(player));
                                                        player.moveTo(new Position(2847, player.getPosition().getY(), 2));
                                                        WarriorsGuild.handleTokenRemoval(player);
                                                } else if(player.getPosition().getX() == 2847) {
                                                        WarriorsGuild.resetCyclopsCombat(player);
                                                        player.moveTo(new Position(2846, player.getPosition().getY(), 2));
                                                        player.getMinigameAttributes().getWarriorsGuildAttributes().setEnteredTokenRoom(false);
                                                }
                                                break;
                                        }
                                        break;
                                case 28714:
                                        player.performAnimation(new Animation(828));
                                        player.delayedMoveTo(new Position(3089, 3492), 2);
                                        break;
                                case 1746:
                                        player.performAnimation(new Animation(827));
                                        player.delayedMoveTo(new Position(2209, 5348), 2);
                                        break;
                                case 19191:
                                case 19189:
                                case 19180:
                                case 19184:
                                case 19182:
                                case 19178:
                                        Hunter.lootTrap(player, gameObject);
                                        break;
                                case 13493:
                                        double c = Math.random()*100;
                                        int reward = c >= 70 ? 13001 : c >= 45 ? 4129 : c >= 35 ? 1123 : c >= 25 ? 1145 : c >= 18 ? 1161 : c >= 12 ? 2362 : c >= 5 ? 1199 : 1123;
                                        Stalls.stealFromStall(player, 95, 24800, reward, "You've stolen some money!");
                                        break;
                                case 3192:
                                        player.setDialogueActionId(11);
                                        DialogueManager.start(player, 20);
                                        break;
                                case 28716:
                                        if(!player.busy()) {
                                                player.getSkillManager().updateSkill(Skill.SUMMONING);
                                                player.getPacketSender().sendInterface(63471);
                                        } else
                                                player.getPacketSender().sendMessage("Please finish what you're doing before opening this.");
                                        break;
                                case 6:
                                        DwarfCannon cannon = player.getCannon();
                                        if (cannon == null || cannon.getOwnerIndex() != player.getIndex()) {
                                                player.getPacketSender().sendMessage("This is not your cannon!");
                                        } else {
                                                DwarfMultiCannon.startFiringCannon(player, cannon);
                                        }
                                        break;
                                case 2:
                                        player.moveTo(new Position(player.getPosition().getX() > 2690 ? 2687 : 2694, 3714));
                                        player.getPacketSender().sendMessage("You walk through the entrance..");
                                        break;
                                case 2026:
                                case 2028:
                                case 2029:
                                case 2030:
                                case 2031:
                                        player.setEntityInteraction(gameObject);
                                        Fishing.setupFishing(player, Fishing.forSpot(gameObject.getId(), false));
                                        return;
                                case 12692:
                                case 2783:
                                case 4306:
                                        player.setInteractingObject(gameObject);
                                        EquipmentMaking.handleAnvil(player);
                                        //player.getPacketSender().sendMessage("Temporarily Disabled until fixed.");

                                        break;
                                case 2732:
                                        EnterAmountOfLogsToAdd.openInterface(player);
                                        break;
                                case 409:
                                case 27661:
                                case 2640:
                                case 36972:
                                        player.performAnimation(new Animation(645));
                                        if(player.getSkillManager().getCurrentLevel(Skill.PRAYER) < player.getSkillManager().getMaxLevel(Skill.PRAYER)) {
                                                player.getSkillManager().setCurrentLevel(Skill.PRAYER, player.getSkillManager().getMaxLevel(Skill.PRAYER), true);
                                                player.getPacketSender().sendMessage("You recharge your Prayer points.");
                                        }
                                        break;
                                case 8749:
                       
                                                player.setSpecialPercentage(100);
                                                CombatSpecial.updateBar(player);
                                                player.getPacketSender().sendMessage("Your special attack energy has been restored.");       
                                        player.performGraphic(new Graphic(1302));
                                        break;
                                case 4859:
                                        player.performAnimation(new Animation(645));
                                        if(player.getSkillManager().getCurrentLevel(Skill.PRAYER) < player.getSkillManager().getMaxLevel(Skill.PRAYER)) {
                                                player.getSkillManager().setCurrentLevel(Skill.PRAYER, player.getSkillManager().getMaxLevel(Skill.PRAYER), true);
                                                player.getPacketSender().sendMessage("You recharge your Prayer points.");
                                        }
                                        break;
                                case 411:
                                        if(player.getSkillManager().getMaxLevel(Skill.DEFENCE) < 30) {
                                                player.getPacketSender().sendMessage("You need a Defence level of at least 30 to use this altar.");
                                                return;
                                        }
                                        player.performAnimation(new Animation(645));
                                        if(player.getPrayerbook() == Prayerbook.NORMAL) {
                                                player.getPacketSender().sendMessage("You sense a surge of power flow through your body!");
                                                player.setPrayerbook(Prayerbook.CURSES);
                                        } else {
                                                player.getPacketSender().sendMessage("You sense a surge of purity flow through your body!");
                                                player.setPrayerbook(Prayerbook.NORMAL);
                                        }
                                        player.getPacketSender().sendTabInterface(GameSettings.PRAYER_TAB, player.getPrayerbook().getInterfaceId());
                                        PrayerHandler.deactivateAll(player);
                                        CurseHandler.deactivateAll(player);
                                        break;
                                case 6552:
                                        player.performAnimation(new Animation(645));
                                        player.setSpellbook(player.getSpellbook() == MagicSpellbook.ANCIENT ? MagicSpellbook.NORMAL : MagicSpellbook.ANCIENT);
                                        player.getPacketSender().sendTabInterface(GameSettings.MAGIC_TAB, player.getSpellbook().getInterfaceId()).sendMessage("Your magic spellbook is changed..");
                                        Autocasting.resetAutocast(player, true);
                                        break;
                                case 13179:
                                        if(player.getSkillManager().getMaxLevel(Skill.DEFENCE) < 40) {
                                                player.getPacketSender().sendMessage("You need a Defence level of at least 40 to use this altar.");
                                                return;
                                        }
                                        player.performAnimation(new Animation(645));
                                        player.setSpellbook(player.getSpellbook() == MagicSpellbook.LUNAR ? MagicSpellbook.NORMAL : MagicSpellbook.LUNAR);
                                        player.getPacketSender().sendTabInterface(GameSettings.MAGIC_TAB, player.getSpellbook().getInterfaceId()).sendMessage("Your magic spellbook is changed..");;
                                        Autocasting.resetAutocast(player, true);
                                        break;
                                case 172:
                                        CrystalChest.handleChest(player, gameObject);
                                        break;
                                case 6910:
                                case 4483:
                                case 3193:
                                case 2213:
                                case 11758:
                                case 14367:
                                case 42192:
                                case 75:
                                        player.getBank(player.getCurrentBankTab()).open();
                                        break;
                                }
                        }
                }));
        }

Secondclick(..)
Code:

private static void secondClick(final Player player, Packet packet) {
                final int id = packet.readLEShortA();
                final int y = packet.readLEShort();
                final int x = packet.readUnsignedShortA();
                final Position position = new Position(x, y, player.getPosition().getZ());
                final GameObject gameObject = new GameObject(id, position);
                if(id > 0 && id != 6 && !RegionClipping.objectExists(gameObject)) {
                        //player.getPacketSender().sendMessage("An error occured. Error code: "+id).sendMessage("Please report the error to a staff member.");
                        return;
                }
                player.setPositionToFace(gameObject.getPosition());
                int distanceX = (player.getPosition().getX() - position.getX());
                int distanceY = (player.getPosition().getY() - position.getY());
                if (distanceX < 0)
                        distanceX = -(distanceX);
                if (distanceY < 0)
                        distanceY = -(distanceY);
                int size = distanceX > distanceY ? distanceX : distanceY;
                gameObject.setSize(size);
                player.setInteractingObject(gameObject).setWalkToTask(new WalkToTask(player, position, gameObject.getSize(), new FinalizedMovementTask() {
                        public void execute()
                        {
                                if(MiningData.forRock(gameObject.getId()) != null)
                                {
                                        Prospecting.prospectOre(player, id);
                                        return;
                                }
                                if (player.getFarming().click(player, x, y, 1))
                                        return;
                                switch(gameObject.getId()) {
                               
                                //Ronen
                                case 37985:       
                                        if(player.getSpellbook() == MagicSpellbook.NORMAL)
                                        {
                                                player.setSpellbook(MagicSpellbook.ANCIENT);
                                        }
                                        else if(player.getSpellbook() == MagicSpellbook.ANCIENT)
                                        {
                                                player.setSpellbook(MagicSpellbook.LUNAR);
                                        }
                                        else if(player.getSpellbook() == MagicSpellbook.LUNAR)
                                        {
                                                player.setSpellbook(MagicSpellbook.NORMAL);
                                        }
                                        player.performAnimation(new Animation(645));
                                        Autocasting.resetAutocast(player, true);
                                        player.getPacketSender().sendTabInterface(GameSettings.MAGIC_TAB, player.getSpellbook().getInterfaceId()).sendMessage("Your magic spellbook is changed..");
                                        break;
                               
                                case 884:
                                        player.setDialogueActionId(41);
                                        player.setInputHandling(new DonateToWell());
                                        player.getPacketSender().sendInterfaceRemoval().sendEnterAmountPrompt("How much money would you like to contribute with?");
                                        break;
                                case 21505:
                                case 21507:
                                        player.moveTo(new Position(2328, 3804));
                                        break;
                                case 2646:
                                case 312:
                                        if(!player.getClickDelay().elapsed(1200))
                                                return;
                                        if(player.getInventory().isFull()) {
                                                player.getPacketSender().sendMessage("You don't have enough free inventory space.");
                                                return;
                                        }
                                        String type = gameObject.getId() == 312 ? "Potato" : "Flax";
                                        player.performAnimation(new Animation(827));
                                        player.getInventory().add(gameObject.getId() == 312 ? 1942 : 1779, 1);
                                        player.getPacketSender().sendMessage("You pick some "+type+"..");
                                        gameObject.setPickAmount(gameObject.getPickAmount() + 1);
                                        if(RandomUtility.getRandom(3) == 1 && gameObject.getPickAmount() >= 1 || gameObject.getPickAmount() >= 6) {
                                                player.getPacketSender().sendClientRightClickRemoval();
                                                gameObject.setPickAmount(0);
                                                CustomObjects.globalObjectRespawnTask(new GameObject(-1, gameObject.getPosition()), gameObject, 10);
                                        }
                                        player.getClickDelay().reset();
                                        break;
                                case 2644:
                                        Flax.showSpinInterface(player);
                                        break;
                                case 6:
                                        DwarfCannon cannon = player.getCannon();
                                        if (cannon == null || cannon.getOwnerIndex() != player.getIndex()) {
                                                player.getPacketSender().sendMessage("This is not your cannon!");
                                        } else {
                                                DwarfMultiCannon.pickupCannon(player, cannon, false);
                                        }
                                        break;
                                case 4875:
                                        Stalls.stealFromStall(player, 1, 5100, 18199, "You steal a banana.");
                                        break;
                                case 4874:
                                        Stalls.stealFromStall(player, 30, 6130, 15009, "You steal a golden ring.");
                                        break;
                                case 4876:
                                        Stalls.stealFromStall(player, 60, 7370, 17401, "You steal a damaged hammer.");
                                        break;
                                case 4877:
                                        Stalls.stealFromStall(player, 65, 7990, 1389, "You steal a staff.");
                                        break;
                                case 4878:
                                        Stalls.stealFromStall(player, 80, 9230, 11998, "You steal a scimitar.");
                                        break;
                                case 6189:
                                case 26814:
                                case 11666:
                                        Smelting.openInterface(player);
                                        break;
                                case 2152:
                                        player.performAnimation(new Animation(8502));
                                        player.performGraphic(new Graphic(1308));
                                        player.getSkillManager().setCurrentLevel(Skill.SUMMONING, player.getSkillManager().getMaxLevel(Skill.SUMMONING));
                                        player.getPacketSender().sendMessage("You renew your Summoning points.");
                                        break;
                                }
                        }
                }));
        }

thirdclick(..) ...
Code:

private static void thirdClick(Player player, Packet packet) {}
have a nice day

317 NullExceptionError when loading player save file, help me understand why it happens?

$
0
0
Wanting too implement a thing that handles in-game giveaways, the giveaway items are saved too the character file but when trying too load the character file upon logging in I get an error:

Code:

public class Giveaway {
       
        private Player player;
       
        public Giveaway(Player player) {
                this.player = player;
        }
       
        private Path path = Paths.get(System.getProperty("user.home") + "/Desktop/saves/characters/", player.getUsername() + ".json");
        private File file = path.toFile();
       
        public void giveReward() {
                if (!file.exists()) {
                        System.out.println("File doesn't exist");
                        return;
                }
                try (FileReader fileReader = new FileReader(file)) {
                        JsonParser fileParser = new JsonParser();
                        Gson builder = new GsonBuilder().create();
                        JsonObject reader = (JsonObject) fileParser.parse(fileReader);
                       
                        if (reader.has("giveaway-rewards")) {
                                List<Item> list = new ArrayList<Item>();
                                Item[] rewards = builder.fromJson(reader.get("giveaway-rewards").getAsJsonArray(),
                                                Item[].class);
                                for (Item s : rewards)
                                        list.add(s);
                                player.setGiveawayRewards(list);
                                for(int i = 0; i < list.size(); i++) {
                                        Item item = (Item) list.get(i);
                                        player.giveItem(item.getId(), item.getAmount());
                                        player.sendMessage("@sup@ Congratulations on winning the giveaway, you have received: x" + item.getAmount() + " " + ItemDefinition.forId(item.getId()).getName() + "!");
                                        player.removeGiveawayReward(item);
                                }
                        }
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }

}

Error is on
Code:

private Path path = Paths.get(System.getProperty("user.home") + "/Desktop/saves/characters/", player.getUsername() + ".json");
However when I change too this, it works:

Code:

        private Player player;
       
        public Giveaway(Player player) {
                this.player = player;
        }
       
       
        public void giveReward() {
                Path path = Paths.get(System.getProperty("user.home") + "/Desktop/saves/characters/", player.getUsername() + ".json");
                File file = path.toFile();
                if (!file.exists()) {
                        System.out.println("File doesn't exist");
                        return;
                }
                try (FileReader fileReader = new FileReader(file)) {
                        JsonParser fileParser = new JsonParser();
                        Gson builder = new GsonBuilder().create();
                        JsonObject reader = (JsonObject) fileParser.parse(fileReader);
                       
                        if (reader.has("giveaway-rewards")) {
                                List<Item> list = new ArrayList<Item>();
                                Item[] rewards = builder.fromJson(reader.get("giveaway-rewards").getAsJsonArray(),
                                                Item[].class);
                                for (Item s : rewards)
                                        list.add(s);
                                player.setGiveawayRewards(list);
                                while(!list.isEmpty()) {
                                        for(int i = 0; i < list.size(); i++) {
                                                Item item = (Item) list.get(i);
                                                player.giveItem(item.getId(), item.getAmount());
                                                player.sendMessage("@sup@ Congratulations on winning the giveaway, you have received: x" + item.getAmount() + " " + ItemDefinition.forId(item.getId()).getName() + "!");
                                                player.removeGiveawayReward(item);
                                        }
                                }
                        }
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }

Can anyone explain why moving
Path path = Paths.get(System.getProperty("user.home") + "/Desktop/saves/characters/", player.getUsername() + ".json");
File file = path.toFile();
inside the method fixed the error?

Scu bannws Palidino

$
0
0
Scu Banned me for retaliating for him shit talking my programming so much I have mutliple people sending me screenshots. He didn't like this, he banned me from the fucking discord chat too. Oh, it involved plenty more shit talking first. Who's the admin try to keep a RSPS community alive? Not me.

Looking for Osrs or 317 loading osrs data package

$
0
0
Hey guys. I have been working on a project with someone but we figured that it would be better to start of with a stable base and build from that on. So we are looking into buying a source/client.

We are looking for :
- 317 loading rs2 with some osrs content and which has latest osrs data in cache.
- Content like hydra, raids 1 and 2 is optional but prefered
- Bank placeholders and presets are a must
- Client should use between 150-400mb of ram.
- Resizable and fullscreen has to work on mac and windows.
- it’s not just some downloaded leaked base

If you have anything which is complete to the previous terms please contact me on discord: Mr Bobo#8525 (if you can’t find me, add niels#8525). If you can’t add those 2, reply here or pm me your discord id via PM.

317 NPC drops with Ice Barrage

$
0
0
Hey guys,

Something that I am struggling to do on a Ruse Base is with Ice Barrage or actually any Spells that hit inMulti
Right now, I've got an area where there are Chickens that are easy to 1 hit as they've only got 1 hp, but the thing is only the Chicken that I click on when casting the spell will drop loot such as bones.
Every other chicken that dies from the Area of Effect from a Barrage spell doesn't drop anything.

What I've done so far is just played around with CombatAncientSpell.java where in finishCast as it mentions hitting the NPCs in multi.
This is the code that I am working with, it's pretty much in every Ruse base.

Code:

Iterator<? extends Character> it = null;
                if (cast.isPlayer() && castOn.isPlayer()) {
                    it = ((Player) cast).getLocalPlayers().iterator();
                } else if (cast.isPlayer() && castOn.isNpc()) {
                    it = ((Player) cast).getLocalNpcs().iterator();
                } else if (cast.isNpc() && castOn.isNpc()) {
                    it = World.getNpcs().iterator();
                } else if (cast.isNpc() && castOn.isPlayer()) {
                    it = World.getPlayers().iterator();
                }

                for (Iterator<? extends Character> $it = it; $it.hasNext();) {
                    Character next = $it.next();

                    if (next == null) {
                        continue;
                    }
                   
                    if(next.isNpc()) {
                            NPC n = (NPC)next;
                            if(!n.getDefinition().isAttackable() || n.isSummoningNpc()) {
                                    continue;
                            }
                    } else {
                            Player p = (Player)next;
                            if(p.getLocation() != Location.WILDERNESS || !Location.inMulti(p)) {
                                    continue;
                            }
                    }
                   

                    if (next.getPosition().isWithinDistance(castOn.getPosition(),
                        spellRadius()) && !next.equals(cast) && !next.equals(castOn) && next.getConstitution() > 0 && next.getConstitution() > 0) {
                        cast.getCurrentlyCasting().endGraphic().ifPresent(next::performGraphic);
                        int calc = Misc.random(damage);
                        next.dealDamage(new Hit(calc, Hitmask.RED, CombatIcon.MAGIC));
                        next.getCombatBuilder().addDamage(cast, calc);
                       
                       
                       
                        spellEffect(cast, next, calc);
                    }
                }

Any pointers on what I should be doing, or looking for?
I've just concluded that the inMulti damage isn't considered the players which is why it doesn't drop anything.

ANY Arteropk Devious pk

$
0
0
Hey if anyone has the source and client to Devious pk or Arteropk please let me know ive been looking for ever to find someone with access to it and I really enjoyed playing the server and would love to work on it my self and play once again if anyone has it please message me on discord newby#3318

Buying Downtown Mafia account

$
0
0
I am wanting to buy a Downtown mafia account will trade runescape 3 gold and or account for it let me know what u got..

will give u more info on account if u would be interested..

Usertitle request

$
0
0
Code:

<span style="background: url(https://i.imgur.com/Q5arH.gif);color: #ffffff;font-weight:bold;text-shadow: 0px 0px 10px #ffffff;"><img src="https://i.imgur.com/h58PsRs.png" alt="Fluxious Founder" style="width:16px;height:16px;">Founder of Fluxious</span>

Asteria Website Design

$
0
0

Pretty much my first time doing a full website design so...
Viewing all 56156 articles
Browse latest View live


Latest Images