Jump to content
Existing user? Sign In

Sign In



Sign Up

Server sided slayer bot snippet


AllGeniusHost

Recommended Posts

package com.deathwish.world.entity.impl.player.bot.type;


import com.deathwish.model.Animation;
import com.deathwish.model.Flag;
import com.deathwish.model.Item;
import com.deathwish.model.Skill;
import com.deathwish.model.container.impl.Equipment;
import com.deathwish.model.definitions.WeaponAnimations;
import com.deathwish.model.definitions.WeaponInterfaces;
import com.deathwish.util.Misc;
import com.deathwish.world.content.BonusManager;
import com.deathwish.world.content.clan.ClanChatManager;
import com.deathwish.world.content.combat.CombatFactory;
import com.deathwish.world.content.combat.weapon.FightType;
import com.deathwish.world.content.skill.SkillManager;
import com.deathwish.world.content.skill.impl.slayer.SlayerMaster;
import com.deathwish.world.content.transportation.TeleportHandler;
import com.deathwish.world.content.transportation.TeleportType;
import com.deathwish.world.entity.impl.npc.NPC;

public class SlayerBot extends com.deathwish.world.entity.impl.player.bot.Bot {
    
    private NPC target;
    
    public SlayerBot(String username, String password) {
        super(username, password);
    }
    
    
    
    @Override
    public void onLogin() {
        setTotalPlayTime(1000_000);
        setPlayerLocked(false);
        setHidePlayer(false);
        getSlayer().doubleSlayerXP = true;
        int[][] data = {
                {Equipment.FEET_SLOT,  12708},
                {Equipment.HANDS_SLOT, 7462}
                
        };
        for(int i = 0; i < data.length; i++) {
            this.getEquipment().set(data[i][0], new Item(data[i][1]));
        }
        int index = Misc.exclusiveRandom(4);
        switch(index) {
        case 0:
            this.getEquipment().set(Equipment.HEAD_SLOT, new Item(10828));
            this.getEquipment().set(Equipment.CAPE_SLOT, new Item(4373));
            this.getEquipment().set(Equipment.AMULET_SLOT, new Item(1712));
            this.getEquipment().set(Equipment.BODY_SLOT, new Item(10564));
            this.getEquipment().set(Equipment.LEG_SLOT, new Item(4087));
            this.getEquipment().set(Equipment.WEAPON_SLOT, new Item(4151));
            this.getEquipment().set(Equipment.SHIELD_SLOT, new Item(6524));
            this.getEquipment().set(Equipment.RING_SLOT, new Item(2572));
            setFightType(FightType.WHIP_LASH);
            break;
        case 1:
            this.getEquipment().set(Equipment.HEAD_SLOT, new Item(3749));
            this.getEquipment().set(Equipment.CAPE_SLOT, new Item(4373));
            this.getEquipment().set(Equipment.AMULET_SLOT, new Item(1712));
            this.getEquipment().set(Equipment.BODY_SLOT, new Item(2503));
            this.getEquipment().set(Equipment.LEG_SLOT, new Item(2497));
            this.getEquipment().set(Equipment.AMMUNITION_SLOT, new Item(9245, 2000000000));
            this.getEquipment().set(Equipment.WEAPON_SLOT, new Item(9185));
            this.getEquipment().set(Equipment.SHIELD_SLOT, new Item(6524));
            this.getEquipment().set(Equipment.RING_SLOT, new Item(2572));
            this.setFightType(FightType.CROSSBOW_RAPID);
            break;
        case 2:
            this.getEquipment().set(Equipment.HEAD_SLOT, new Item(1163));
            this.getEquipment().set(Equipment.CAPE_SLOT, new Item(4373));
            this.getEquipment().set(Equipment.AMULET_SLOT, new Item(6585));
            this.getEquipment().set(Equipment.BODY_SLOT, new Item(1127));
            this.getEquipment().set(Equipment.LEG_SLOT, new Item(1079));
            this.getEquipment().set(Equipment.WEAPON_SLOT, new Item(4151));
            this.getEquipment().set(Equipment.SHIELD_SLOT, new Item(13262));
            this.getEquipment().set(Equipment.RING_SLOT, new Item(2570));
            setFightType(FightType.WHIP_LASH);
            break;
        case 3:
            this.getEquipment().set(Equipment.HEAD_SLOT, new Item(13263));
            this.getEquipment().set(Equipment.CAPE_SLOT, new Item(4373));
            this.getEquipment().set(Equipment.AMULET_SLOT, new Item(1725));
            this.getEquipment().set(Equipment.BODY_SLOT, new Item(10551));
            this.getEquipment().set(Equipment.LEG_SLOT, new Item(11726));
            this.getEquipment().set(Equipment.WEAPON_SLOT, new Item(11730));
            this.getEquipment().set(Equipment.RING_SLOT, new Item(2570));
            setFightType(FightType.TWOHANDEDSWORD_SLASH);
            break;
        }
        WeaponAnimations.update(this);
        WeaponInterfaces.assign(this, this.getEquipment().get(Equipment.WEAPON_SLOT));
        this.getUpdateFlag().flag(Flag.APPEARANCE);
        this.getEquipment().refreshItems();
        BonusManager.update(this);
        
        int stat = Misc.getRandom(24);
        int[][] stats = new int[][]{
            {Skill.ATTACK.ordinal(), 75 +(Misc.getRandom(stat))},
            {Skill.DEFENCE.ordinal(), 75 +(Misc.getRandom(stat))},
            {Skill.STRENGTH.ordinal(), 75  +(Misc.getRandom(stat))},
            {Skill.CONSTITUTION.ordinal(), 400 +(Misc.getRandom(470))},
            {Skill.RANGED.ordinal(), 75 +(Misc.getRandom(stat))},
            {Skill.PRAYER.ordinal(), 10 +(Misc.getRandom(77))},
            {Skill.MAGIC.ordinal(), 75 +(Misc.getRandom(stat))},
            {Skill.SLAYER.ordinal(), 1  +(Misc.getRandom(98))},
        };
        for(int i = 0; i < stats.length; i++) {
            Skill skill = Skill.forId(stats[i][0]);
            int level = stats[i][1];
            this.getSkillManager().setCurrentLevel(skill, level).setMaxLevel(skill, level).setExperience(skill, SkillManager.getExperienceForLevel(level));
        };

        // Voer hier je gewenste acties uit na de switch-case en if-voorwaarde
        newTask();
    }
    
    private void newTask() {
        int slayLevel = getSkillManager().getMaxLevel(Skill.SLAYER);

        switch (slayLevel) {
            case 1:
                getSlayer().setSlayerMaster(SlayerMaster.VANNAKA);
                break;
            default:
                if (slayLevel < 15) {
                    getSlayer().setSlayerMaster(SlayerMaster.CHAELDAR);
                }
                if (slayLevel < 50) {
                    getSlayer().setSlayerMaster(SlayerMaster.DURADEL);
                }
                if (slayLevel < 80) {
                    getSlayer().setSlayerMaster(SlayerMaster.KURADEL);
                }
                if (slayLevel < 92) {
                    getSlayer().setSlayerMaster(SlayerMaster.SUMONA);
                }
                break;
        }
        this.getSlayer().assignTask();
        this.getPacketSender().sendInterfaceRemoval();
        TeleportHandler.teleportPlayer(this, this.getSlayer().getSlayerTask().getTaskPosition(), TeleportType.RING_TELE);
        ClanChatManager.sendMessage(this, "New Slayer Task: " + this.getSlayer().getSlayerTask() + " Amount: " + this.getSlayer().getAmountToSlay());
        this.heal(200);
    }

    @Override
    public void onProcess() {
        if(this.getPosition() != this.getSlayer().getSlayerTask().getTaskPosition()) {
            BotGearClass.getRandomSet();
        }
        if(this.getSkillManager().getCurrentLevel(Skill.CONSTITUTION) <= 500) {
            heal(750);
            performAnimation(new Animation(401));
            if(target != null ) {
            this.getCombatBuilder().attack(target);
            return;
        }
    }    
        if(this.getSlayer().getAmountToSlay() == 0) {
            newTask();
            if(target != null ) {
            this.getCombatBuilder().attack(target);
            return;
        }
    }
        
        if(!getCombatBuilder().isAttacking() && !getCombatBuilder().isBeingAttacked()) {
                for(NPC n : getLocalNpcs()) {
                    if(n == null) {
                        continue;
                    }
                    if(n.getDefinition().getId() == this.getSlayer().getSlayerTask().getNpcId()) {
                        if(!n.getCombatBuilder().isBeingAttacked() && !n.getCombatBuilder().isAttacking()) {
                            if(CombatFactory.checkHook(this, n)) {
                            getCombatBuilder().attack(n);
                            //System.out.println(this.getSlayer().getAmountToSlay()  + " " + this.getSlayer().getSlayerTask() +" for player "+ this.getUsername());
                            target = n;
                            break;
                            }
                        }
                    }
                }
            }
        }
    }


 

Link to comment
Share on other sites

  • 2 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Contact

[email protected]

astra.security

What is a RSPS?

A RSPS, also known as RuneScape private server, is an online game based on RuneScape, and controlled by independent individuals.

Popular RSPS Servers

Runewild Ikov RedemptionRSPS

Disclaimer

Runesuite is not affiliated with runescape, jagex in any way & exists solely for educational purposes.

×
×
  • Create New...