Jump to content
Existing user? Sign In

Sign In



Sign Up
Search In
  • More options...
Find results that contain...
Find results in...

Search the Community

Showing results for tags 'slayer'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • RuneSuite Official
    • News & Announcements
    • Knowledge Base
    • Community Voting Polls
  • RSPS Advertise
    • RuneScape private servers
    • RSPS Youtuber Advertisement
  • RuneSuite Community
    • Introductions
    • General Discussion
  • RuneSuite RSPS Market
  • Runescape Private Server Development ( RSPS )
    • HQ RSPS Downloads
    • Rune Archive
    • RSPS WEB Downloads
    • RSPS Tools Downloads
    • RSPS Models
    • RSPS Show-off
    • RSPS Requests
    • RSPS Help
    • RSPS Tutorials
    • RSPS Configuration
  • RuneSuite Downloads: Other
    • Discord Downloads
  • Sponsored
    • Top RSPS Hosting 2024!
  • 2nd sponored
  • Tech World's AntiVirus
  • Tech World's Tech
  • Meme Dreams's Random Fucking Memes
  • trex's memes and misc

Posting Records Settings

  • Records
  • marketplace_category_2

Blogs

  • 1
  • aaaaaa
  • What is a RuneScape Private Server?
  • trex's memes
  • trex's rsps

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Location


RSPS JD

Between and

Facebook


Twitter


Youtube


Homepage


Skype


Discord

Found 1 result

  1. Hey guys.. Had the need to re-write SlayerTasks.java for someone, figured I'd share it. It includes a kill requirement - if your server doesn't have that, just set the KC requirement to 0 or properly remove it if you know what you're doing package com.arlania.world.content.skill.impl.slayer; import com.arlania.model.Position; import com.arlania.model.Skill; import com.arlania.model.definitions.NpcDefinition; import com.arlania.util.Misc; import com.arlania.world.entity.impl.player.Player; import lombok.Getter; import java.util.ArrayList; import java.util.List; /** * @author Flub * https://discord.com/users/496606216047558667 */ public enum SlayerTasks { NO_TASK(null, -1, null, -1, null, 0), /** * Easy tasks */ NPC(SlayerMaster.VANNAKA, 1234, "Desc", 2100, new Position(3298, 2799, 0), 0), /** * Medium tasks */ NPC_2(SlayerMaster.DURADEL, 1234, "Desc", 6600, new Position(2724, 9821), 10), /** * Hard tasks */ NPC_3(SlayerMaster.KURADEL, 1234, "Desc", 16000, new Position(1761, 5329, 1), 1000), /** * Elite */ NPC_4(SlayerMaster.SUMONA, 1234, "Desc", 40000, new Position(3226, 2844), 2500), /** * Extreme - Bravek */ NPC_5(SlayerMaster.BRAVEK, 1234, "Desc", 100000, new Position(3176, 3029), 6500); public static List<SlayerTasks> EASY_TASKS = new ArrayList<>(); public static List<SlayerTasks> MEDIUM_TASKS = new ArrayList<>(); public static List<SlayerTasks> HARD_TASKS = new ArrayList<>(); public static List<SlayerTasks> ELITE_TASKS = new ArrayList<>(); public static List<SlayerTasks> EXTREME_TASKS = new ArrayList<>(); @Getter private SlayerMaster taskMaster; @Getter private int npcId; @Getter private String npcLocation; @Getter private int XP; @Getter private Position taskPosition; @Getter private int kcReq; SlayerTasks(SlayerMaster taskMaster, int npcId, String npcLocation, int XP, Position taskPosition, int kcReq) { this.taskMaster = taskMaster; this.npcId = npcId; this.npcLocation = npcLocation; this.XP = XP; this.taskPosition = taskPosition; this.kcReq = kcReq; } public static SlayerTasks forId(int id) { for (SlayerTasks tasks : SlayerTasks.values()) { if (tasks.ordinal() == id) { return tasks; } } return null; } /** * Add into your server start up code. * It fills the sets with up-to-date * task information. */ public static void fillSetsOnStartup() { int counter = 0; for (SlayerTasks task : SlayerTasks.values()) { counter++; if (task.getTaskMaster() == SlayerMaster.VANNAKA) EASY_TASKS.add(task); else if (task.getTaskMaster() == SlayerMaster.DURADEL) MEDIUM_TASKS.add(task); else if (task.getTaskMaster() == SlayerMaster.KURADEL) HARD_TASKS.add(task); else if (task.getTaskMaster() == SlayerMaster.SUMONA) ELITE_TASKS.add(task); else if (task.getTaskMaster() == SlayerMaster.BRAVEK) EXTREME_TASKS.add(task); System.out.println("Successfully added " + counter + " Slayer tasks"); } } private static boolean meetsTaskKC(Player player, SlayerTasks selectedTask) { return selectedTask != null && selectedTask.kcReq <= player.getNpcKillCount(selectedTask.getNpcId()); } private static boolean easyTaskAvailable(Player player) { int easyTasks = EASY_TASKS.size(); for (SlayerTasks easyTask : EASY_TASKS) { if (!meetsTaskKC(player, easyTask)) { easyTasks--; } } return easyTasks >= 1; } private static boolean medTaskAvailable(Player player) { int mediumTasks = MEDIUM_TASKS.size(); for (SlayerTasks mediumTask : MEDIUM_TASKS) { if (!meetsTaskKC(player, mediumTask)) { mediumTasks--; } } return mediumTasks >= 1; } private static boolean hardTaskAvailable(Player player) { int hardTasks = HARD_TASKS.size(); for (SlayerTasks hardTask : HARD_TASKS) { if (!meetsTaskKC(player, hardTask)) { hardTasks--; } } return hardTasks >= 1; } private static boolean eliteTaskAvailable(Player player) { int eliteTasks = ELITE_TASKS.size(); for (SlayerTasks eliteTask : ELITE_TASKS) { if (!meetsTaskKC(player, eliteTask)) { eliteTasks--; } } return eliteTasks >= 1; } private static boolean extremeTaskAvailable(Player player) { int extremeTasks = EXTREME_TASKS.size(); for (SlayerTasks extremeTask : EXTREME_TASKS) { if (!meetsTaskKC(player, extremeTask)) { extremeTasks--; } } return extremeTasks >= 1; } private static boolean repeatTask(Player player, SlayerTasks chosenTask) { return chosenTask != null && chosenTask.npcId == player.getSlayer().getLastTask().getNpcId(); } private static boolean meetsSlayerReq(Player player, SlayerTasks chosenTask) { return chosenTask.npcId > 0 && NpcDefinition.forId(chosenTask.getNpcId()).getSlayerLevel() <= player.getSkillManager().getMaxLevel(Skill.SLAYER); } private static boolean shouldGiveTask(Player player) { boolean giveTask = false; SlayerMaster currentSlayerMaster = player.getSlayer().getSlayerMaster(); switch (currentSlayerMaster) { case VANNAKA: if (easyTaskAvailable(player)) giveTask = true; else player.getPacketSender().sendMessage("No easy tasks available"); break; case DURADEL: if (medTaskAvailable(player)) giveTask = true; else player.getPacketSender().sendMessage("No medium tasks available"); break; case KURADEL: if (hardTaskAvailable(player)) giveTask = true; else player.getPacketSender().sendMessage("No hard tasks available"); break; case SUMONA: if (eliteTaskAvailable(player)) giveTask = true; else player.getPacketSender().sendMessage("No elite tasks available"); break; case BRAVEK: if (extremeTaskAvailable(player)) giveTask = true; else player.getPacketSender().sendMessage("No extreme tasks available"); break; } return giveTask; } public static int amountToKill(Player player) { int amount = Misc.random(15, 30); SlayerMaster currentSlayerMaster = player.getSlayer().getSlayerMaster(); switch (currentSlayerMaster) { case VANNAKA: amount += Misc.random(5, 10); break; case DURADEL: amount += Misc.random(5, 25); break; case KURADEL: amount += Misc.random(5, 60); break; case SUMONA: amount += Misc.random(5, 100); break; case BRAVEK: amount += Misc.random(10, 160); break; } return amount; } public static SlayerTasks getTask(Player player) { SlayerTasks selectedTask = null; SlayerMaster currentSlayerMaster = player.getSlayer().getSlayerMaster(); if (shouldGiveTask(player)) while ((!meetsTaskKC(player, selectedTask) || !meetsSlayerReq(player, selectedTask) || repeatTask(player, selectedTask))) { switch (currentSlayerMaster) { case VANNAKA: selectedTask = (SlayerTasks) Misc.randomFromList(EASY_TASKS); break; case DURADEL: selectedTask = (SlayerTasks) Misc.randomFromList(MEDIUM_TASKS); break; case KURADEL: selectedTask = (SlayerTasks) Misc.randomFromList(HARD_TASKS); break; case SUMONA: selectedTask = (SlayerTasks) Misc.randomFromList(ELITE_TASKS); break; case BRAVEK: selectedTask = (SlayerTasks) Misc.randomFromList(EXTREME_TASKS); break; } System.out.println("SELECTED TASK = " + selectedTask.name()); } return selectedTask; } @Override public String toString() { return Misc.ucFirst(name().toLowerCase().replaceAll("_", " ")); } } Adapted Slayer.java assignTask() Method to use the new data.. This is lazy work since I just changed where it gets the info from public void assignTask() { player.getPacketSender().sendRichPresenceState("Doing Slayer " + duoPartner + "!"); player.getPacketSender().sendSmallImageKey("slayer"); player.getPacketSender().sendRichPresenceSmallPictureText("Lvl: " + player.getSkillManager().getCurrentLevel(Skill.SLAYER)); boolean hasTask = getSlayerTask() != SlayerTasks.NO_TASK && player.getSlayer().getLastTask() != getSlayerTask(); if(hasTask) { player.getPacketSender().sendInterfaceRemoval(); return; } SlayerTasks chosenTask = SlayerTasks.getTask(player); player.getPacketSender().sendInterfaceRemoval(); this.amountToSlay = SlayerTasks.amountToKill(player); this.slayerTask = chosenTask; DialogueManager.start(player, SlayerDialogues.receivedTask(player, getSlayerMaster(), getSlayerTask())); PlayerPanel.refreshPanel(player); }

Contact

ltlimes

RSPS Partners

RedemptionRSPS

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

oldschoolrsps Runewild RedemptionRSPS

Disclaimer

Runesuite is not affiliated with runescape, jagex, rune-server and runelocus in any way & exists solely for educational purposes.

×
×
  • Create New...