|
Currently in Matrix, there's only 1 Slayer Master for players to train on, so I decided to 'finish' what was started.. Currently there are a few bugs...
Bugs:
1. Assigns a task "ghost" for example, a player goes off and kills a 'ghost' and doesn't receive XP or his task amount doesn't lower.
^ A lot of NPCs don't have this problem, it's only a 'few'.
2. Some players, once they have reached 0 monsters left to kill, it wouldn't end the task.. I haven't experienced this problem though.
There might be a few more bugs, that's just what I know .
I guess you can call my code sloppy, but it atleast gets the job done.
What does this Slayer have?
Slayer Masters:
Turadel
Maz (Canifis Slayer Master)
Chaeldar (Fairy Slayer Master)
Duradel
Kuradel
// Missing Vannaka
Slayer Points:
- This slayer system keeps track of your tasks, and slayer points, after a certain amount of tasks, you are given more slayer points, like in RS.
- The better the slayer master, the more points you receive per each task.
Slayer Reward Interface:
- Cancels a task
- Permantly removing a slayer task, I almost got it to work, I just couldn't get the string of the NPC to add onto the Interface..
Assigning tasks.
- If your slayer level is lower than the slayer task that you are given, it will keep reassigning you a slayer task until you are able to do it.
Welp.. Here you go
SlayerTasks.java
SlayerTask.javaCode:package com.rs.game.player.actions.slayer; public enum SlayerTasks { /** * TURAEL TASKS */ BANSHEES("Banshees", TaskSet.TURAEL, 15, 20, 40, "Banshee"), CAVEBUGS("Cave Bugs", TaskSet.TURAEL, 1, 20, 40, "Cave bug"), CHICKENS("Chickens", TaskSet.TURAEL, 1, 20, 40, "Chicken"), BEARS("Bears", TaskSet.TURAEL, 1, 20, 40, "Grizzly bear cub", "Grizzly bear"), COWS("Cows", TaskSet.TURAEL, 1, 20, 40, "Cow calf", "Cow"), GOBLINS("Goblins", TaskSet.TURAEL, 1, 20, 40, "Goblin", "Cave goblin guard"), ICEFIENDS("Icefiends", TaskSet.TURAEL, 1, 10, 20, "Icefiend"), MINOTAURS("Minotaurs", TaskSet.TURAEL, 1, 20, 40, "Minotaur"), ZOMBIES("Zombies", TaskSet.TURAEL, 1, 20, 40, "Zombie", "Armoured zombie"), CRAWLING_HANDS("Crawling hand", TaskSet.TURAEL, 5, 1, 1,"Zombie hand", "Skeletal hand"), STS("Ghosts", TaskSet.TURAEL, 1, 20, 40, "Ghost"), BATS("Bats", TaskSet.TURAEL, 1, 20, 40, "Bat","Giant bat"), DWARF("Dwarves", TaskSet.TURAEL, 1, 20, 40, "Dwarf", "Drunken dwarf"), SCORPIONS("Scorpions", TaskSet.TURAEL, 1, 20, 40, "Scorpion", "King scorpion"), SKELETON("Skeletons", TaskSet.TURAEL, 1, 20, 40, "Skeleton"), TROLLS("Trolls", TaskSet.TURAEL, 1, 20, 40, "Mountain trolls", "Ice trolls", "River trolls", "Sea trolls"), WOLVES("Wolves", TaskSet.TURAEL, 1, 20, 40, "Ice wolf", "Wolf", "Big wolf"), BIRDS("Birds", TaskSet.TURAEL, 1, 20, 40, "Chicken", "Duck", "Terrorbird"), /* * Mazchina / Achtryn Tasks */ BANSHEES2("Banshees", TaskSet.MAZ, 15, 20, 40, "Banshee"), BATS2("Bats", TaskSet.MAZ, 1, 20, 40, "Bat","Giant bat"), CAVECRAWLER("Cave Crawlers", TaskSet.MAZ, 1, 20, 40, "Cave crawler"), COCKATRICE("Cockatrices", TaskSet.MAZ, 1, 20, 40, "Cockatrice"), FC("Flesh Crawlers", TaskSet.MAZ, 1, 20, 40, "Flesh Crawler"), Ghoul("Ghouls", TaskSet.MAZ, 1, 20, 40, "Ghoul"), Ghost("Ghosts", TaskSet.MAZ, 1, 20, 40, "Ghost"), Grots("Grotworms", TaskSet.TURAEL, 1, 20, 40, "Young grotworm", "Mature grotworm"), Hill("Hill Giants", TaskSet.MAZ, 1, 20, 40, "Hill giant"), Ghosts("Hobgoblins", TaskSet.MAZ, 1, 20, 40, "hobgoblin"), IceW("Ice warriors", TaskSet.MAZ, 1, 20, 40, "Ice warrior"), Kalphite("Kalphites", TaskSet.MAZ, 1, 20, 40, "Kalphite queen", "Kalphite larva", "Kalphite worker", "Kalphite soldier", "Kalphite guardian"), Pyrefiend("Pyrefiends", TaskSet.MAZ, 30, 20, 40, "Pyrefiend"), Skeleton2("Skeletons", TaskSet.MAZ, 1, 20, 40, "Skeleton"), Zombie2("Zombies", TaskSet.MAZ, 1, 20, 40, "Zombie", "Armoured zombie"), /* * Chaeldar Tasks */ ABBYSPEC("Aberrant spectres", TaskSet.CHAELDAR, 60, 20, 40, "Aberrant spectres"), BANSHEES3("Banshees", TaskSet.CHAELDAR, 15, 20, 40, "Banshee"), Basilisks("Basilisks", TaskSet.CHAELDAR, 40, 20, 40, "Basilisk"), BloodVelds("Bloodvelds", TaskSet.CHAELDAR, 50, 20, 40, "Bloodveld"), Blue_Dragon("Blue Dragons", TaskSet.CHAELDAR, 1, 20, 40, "Blue dragon"), Bronze_Dragon("Bronze Dragons", TaskSet.CHAELDAR, 11, 20, 40, "Bronze dragon"), CC("Cave Crawlers", TaskSet.CHAELDAR, 10, 20, 40, "Cave crawler"), CH("Crawling Hands", TaskSet.CHAELDAR, 5, 20, 40, "Crawling hand", "Zombie hand", "Skeletal hand"), Dags("Dagganoths", TaskSet.CHAELDAR, 1, 20, 40, "Dagannoth", "Dagannoth guardian", "Dagannoth spawn", "Dagannoth Prime", "Dagannoth Supreme", "Dagannoth Rex"), FG("Fire giants", TaskSet.CHAELDAR, 1, 20, 40, "Fire giant"), FUNG("Fungal Mages", TaskSet.CHAELDAR, 1, 20, 40, "Fungal mage", "Fungal magi"), Garg("Gargoyles", TaskSet.CHAELDAR, 75, 20, 40, "Gargoyle"), Grots2("Grotworms", TaskSet.CHAELDAR, 1, 20, 40, "Young grotworm", "Mature grotworm"), JS("Jungle Strykewyrms", TaskSet.CHAELDAR, 73, 20, 40, "Jungle strykewyrm"), IMages("Infernal mages", TaskSet.CHAELDAR, 45, 20, 40, "Infernal mage"), JELLY("Jellies", TaskSet.CHAELDAR, 52, 20, 40, "Jelly"), Kalphite2("Kalphites", TaskSet.CHAELDAR, 1, 20, 40, "Kalphite queen", "Kalphite larva", "Kalphite worker", "Kalphite soldier", "Kalphite guardian"), LDemon("Lesser Demons", TaskSet.CHAELDAR, 1, 20, 40, "Lesser demon"), Turoth("Turoths", TaskSet.CHAELDAR, 55, 20, 40, "Turoth"), /* * Duradel Tasks */ ABBYSPEC2("Aberrant spectres", TaskSet.DURADEL, 60, 20, 40, "Aberrant spectres"), ABYDEMON("Abyssal demons", TaskSet.DURADEL, 85, 20, 40, "Ayssal demon"), BDemon("Black demons", TaskSet.DURADEL, 1, 20, 40, "Black demon"), BDragon("Black dragons", TaskSet.DURADEL, 1, 20, 40, "Black dragon"), BVElds("Bloodvelds", TaskSet.DURADEL, 50, 20, 40, "Bloodveld"), Dags2("Dagganoths", TaskSet.DURADEL, 1, 20, 40, "Dagannoth", "Dagannoth guardian", "Dagannoth spawn", "Dagannoth Prime", "Dagannoth Supreme", "Dagannoth Rex"), DBeast("Dark beasts", TaskSet.DURADEL, 90, 20, 40, "Dark beast"), DStryke("Desert strykewyrms", TaskSet.DURADEL, 77, 20, 40, "Desert strykewyrms"), DDevil("Dust devil", TaskSet.DURADEL, 65, 20, 40, "Dust devil"), FGiant("Fire giants", TaskSet.DURADEL, 1, 20, 40, "Fire giant"), FUNG2("Fungal Mages", TaskSet.DURADEL, 1, 20, 40, "Fungal mage", "Fungal magi"), GCreatures("Ganodermic beasts", TaskSet.DURADEL, 95, 20, 40, "Ganodermic beast"), garg2("Gargoyles", TaskSet.DURADEL, 75, 20, 40, "Gargoyle"), GDEmons("Greater demons", TaskSet.DURADEL, 1, 20, 40, "Greater demon"), Grif("Grifalopines", TaskSet.DURADEL, 88, 20, 40, "Grifalopine"), Grif2("Grifaloroo", TaskSet.DURADEL, 82, 20, 40, "Grifaloroo"), Grots3("Grotworms", TaskSet.DURADEL, 1, 20, 40, "Young grotworm", "Mature grotworm"), HH("Hellhounds", TaskSet.DURADEL, 1, 20, 40, "Hellhound"), IStryke("Ice strykewyrm", TaskSet.DURADEL, 93, 20, 40, "Ice strykewyrm"), IDrag("Iron dragons", TaskSet.DURADEL, 1, 20, 40, "Iron dragon"), MDragon("Mithril dragons", TaskSet.DURADEL, 1, 20, 40, "Mithril dragon"), MJadinkos("Mutated jadinkos", TaskSet.DURADEL, 80, 20, 40, "Mutated jadinko baby", "Mutated jadinko guard", "Mutated jadinko male"), Nech("Nechryaels", TaskSet.DURADEL, 80, 20, 40, "Nechryael"), SWyvern("Skeletal Wyverns", TaskSet.DURADEL, 72, 20, 40, "Skeletal Wyvern"), SMage("Spiritual Mages", TaskSet.DURADEL, 83, 20, 40, "Spiritual mage"), SDragon("Steel Dragons", TaskSet.DURADEL, 1, 20, 40, "Steel dragon"), WFiends("Waterfiends", TaskSet.DURADEL, 1, 20, 40, "Waterfiend"), /* * Kuradel */ ABBYSPEC3("Aberrant spectres", TaskSet.KURADEL, 60, 20, 40, "Aberrant spectres"), ABYDEMON2("Abyssal demons", TaskSet.KURADEL, 85, 20, 40, "Ayssal demon"), BDemon2("Black demons", TaskSet.KURADEL, 1, 20, 40, "Black demon"), BDragon2("Black dragons", TaskSet.KURADEL, 1, 20, 40, "Black dragon"), Blue_Dragon2("Blue Dragons", TaskSet.KURADEL, 1, 20, 40, "Blue dragon"), BVElds2("Bloodvelds", TaskSet.KURADEL, 50, 20, 40, "Bloodveld"), Dags3("Dagganoths", TaskSet.KURADEL, 1, 20, 40, "Dagannoth", "Dagannoth guardian", "Dagannoth spawn", "Dagannoth Prime", "Dagannoth Supreme", "Dagannoth Rex"), DBeast2("Dark beasts", TaskSet.KURADEL, 90, 20, 40, "Dark beast"), DStryke2("Desert strykewyrms", TaskSet.KURADEL, 77, 20, 40, "Desert strykewyrms"), DDevil2("Dust devil", TaskSet.KURADEL, 65, 20, 40, "Dust devil"), FGiant2("Fire giants", TaskSet.KURADEL, 1, 20, 40, "Fire giant"), GCreatures2("Ganodermic beasts", TaskSet.KURADEL, 95, 20, 40, "Ganodermic beast"), garg3("Gargoyles", TaskSet.KURADEL, 75, 20, 40, "Gargoyle"), GDEmons2("Greater demons", TaskSet.KURADEL, 1, 20, 40, "Greater demon"), Grif4("Grifalopines", TaskSet.KURADEL, 88, 20, 40, "Grifalopine"), Grif3("Grifaloroo", TaskSet.KURADEL, 82, 20, 40, "Grifaloroo"), Grots4("Grotworms", TaskSet.KURADEL, 1, 20, 40, "Young grotworm", "Mature grotworm"), HH2("Hellhounds", TaskSet.KURADEL, 1, 20, 40, "Hellhound"), IStryke3("Ice strykewyrm", TaskSet.KURADEL, 93, 20, 40, "Ice strykewyrm"), IDrag2("Iron dragons", TaskSet.KURADEL, 1, 20, 40, "Iron dragon"), LRC("Living rock creatures", TaskSet.KURADEL, 1, 20, 40, "Living rock protector", "Living rock striker", "Living rock patriarch"), MDragon2("Mithril dragons", TaskSet.KURADEL, 1, 20, 40, "Mithril dragon"), MJadinkos2("Mutated jadinkos", TaskSet.KURADEL, 80, 20, 40, "Mutated jadinko baby", "Mutated jadinko guard", "Mutated jadinko male"), Nech2("Nechryaels", TaskSet.KURADEL, 80, 20, 40, "Nechryael"), SWyvern2("Skeletal Wyverns", TaskSet.KURADEL, 72, 20, 40, "Skeletal Wyvern"), SMage2("Spiritual Mages", TaskSet.KURADEL, 83, 20, 40, "Spiritual mage"), SDragon2("Steel Dragons", TaskSet.KURADEL, 1, 20, 40, "Steel dragon"), WFiends2("Waterfiends", TaskSet.KURADEL, 1, 20, 40, "Waterfiend"); private SlayerTasks(String simpleName, TaskSet type, int level, int min, int max, String... monsters) { this.type = type; this.slayable = monsters; this.simpleName = simpleName; this.level = level; this.min = min; this.max = max; } /** * A simple name for the task */ public String simpleName; /** * The task set */ public TaskSet type; /** * The monsters that will effect this task */ public String[] slayable; /** * The minimum amount of monsters the player may be assigned to kill */ public int min; /** * The maximum amount of monsters the player may be assigned to kill */ public int max; /* * Slayer level for monsters */ public int level; public int getLevel() { return level; } }
Slayer.javaCode:package com.rs.game.player.actions.slayer; import java.io.Serializable; import com.rs.game.npc.NPC; import com.rs.game.player.Player; import com.rs.game.player.Skills; public class SlayerTask implements Serializable { /** * */ private static final long serialVersionUID = -7184740247844324413L; /** * The players current assigned task */ private SlayerTasks currentTask; /* * Player level for slayer task */ private SlayerTasks level; /** * The monsters left. */ private int monstersLeft = -1; /** * Slayer Level for Task */ public SlayerTasks getLevel() { return level; } public void setLevel(SlayerTasks lvl) { level = lvl; } /** * The slayer task * * @return */ public SlayerTasks getTask() { return currentTask; } /** * The monsters left to kill */ public int getTaskMonstersLeft() { return monstersLeft; } /** * Sets the player current task * * @param task */ public void setTask(SlayerTasks task) { currentTask = task; } /** * Sets monsters left to kill * * @param i */ public void setMonstersLeft(int i) { monstersLeft = i; } /** * Called on npc death if part of task. */ public void onMonsterDeath(Player player, NPC n) { player.getSkills().addXp(Skills.SLAYER, n.getCombatDefinitions().getHitpoints() * 10); monstersLeft--; int[] checkpoints = new int[]{1, 2, 3, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50}; for (int i : checkpoints) { if (monstersLeft == i) { player.getPackets().sendGameMessage( "You're doing great, Only " + monstersLeft + " " + getTask().simpleName + " left to slay."); player.hasTask = true; } } if (monstersLeft < 1) { player.setSlayerTaskAmount(player.getSlayerTaskAmount() + 1); int[] get50Points = new int[]{10, 20, 30, 40, 60, 70, 80, 90, 110, 120, 130, 140, 150, 160, 170, 180, 190, 210, 220, 230, 240, 260, 270, 280, 290, 310, 320, 330, 340, 350, 360, 370, 380, 390, 410, 420, 430, 440, 460, 470, 480, 490}; int[] get100Points = new int[]{50, 150, 250, 350, 450, 550}; int[] get500Points = new int[]{100, 200, 300, 400, 500, 600}; int[] get10Points = new int[]{10, 20, 30, 40, 60, 70, 80, 90, 110, 120, 130, 140, 150, 160, 170, 180, 190, 210, 220, 230, 240, 260, 270, 280, 290, 310, 320, 330, 340, 350, 360, 370, 380, 390, 410, 420, 430, 440, 460, 470, 480, 490, 50, 150, 250, 350, 450, 550, 100, 200, 300, 400, 500, 600}; for (int ii : get50Points) { if (player.getSlayerTaskAmount() == ii) { if (player.getSlayerMaster() == 1) { player.setSlayerPoints(player.getSlayerPoints() + 3); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 3 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } else if (player.getSlayerMaster() == 2) { player.setSlayerPoints(player.getSlayerPoints() + 5); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 5 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } else if (player.getSlayerMaster() == 3) { player.setSlayerPoints(player.getSlayerPoints() + 38); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 38 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } else if (player.getSlayerMaster() == 4) { player.setSlayerPoints(player.getSlayerPoints() + 60); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 60 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } else if (player.getSlayerMaster() == 5) { player.setSlayerPoints(player.getSlayerPoints() + 125); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 125 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } } } for (int iii : get100Points) { if (player.getSlayerTaskAmount() == iii) { if (player.getSlayerMaster() == 1) { player.setSlayerPoints(player.getSlayerPoints() + 5); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 5 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } else if (player.getSlayerMaster() == 2) { player.setSlayerPoints(player.getSlayerPoints() + 10); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 10 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } else if (player.getSlayerMaster() == 3) { player.setSlayerPoints(player.getSlayerPoints() + 75); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 75 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } else if (player.getSlayerMaster() == 4) { player.setSlayerPoints(player.getSlayerPoints() + 125); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 125 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } else if (player.getSlayerMaster() == 5) { player.setSlayerPoints(player.getSlayerPoints() + 250); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 250 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } } } for (int iiii : get500Points) { if (player.getSlayerTaskAmount() == iiii) { if (player.getSlayerMaster() == 1) { player.setSlayerPoints(player.getSlayerPoints() + 10); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 10 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } else if (player.getSlayerMaster() == 2) { player.setSlayerPoints(player.getSlayerPoints() + 15); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 15 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } else if (player.getSlayerMaster() == 3) { player.setSlayerPoints(player.getSlayerPoints() + 150); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 150 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } else if (player.getSlayerMaster() == 4) { player.setSlayerPoints(player.getSlayerPoints() + 250); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 250 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } else if (player.getSlayerMaster() == 5) { player.setSlayerPoints(player.getSlayerPoints() + 500); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 500 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } } } for (int iiiii : get10Points) { if (player.getSlayerTaskAmount() != iiiii && player.hasTask == true) { if (player.getSlayerMaster() == 1) { player.setSlayerPoints(player.getSlayerPoints() + 1); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 1 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } else if (player.getSlayerMaster() == 2) { player.setSlayerPoints(player.getSlayerPoints() + 2); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 2 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } else if (player.getSlayerMaster() == 3) { player.setSlayerPoints(player.getSlayerPoints() + 10); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 10 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } else if (player.getSlayerMaster() == 4) { player.setSlayerPoints(player.getSlayerPoints() + 15); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 15 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } else if (player.getSlayerMaster() == 5) { player.setSlayerPoints(player.getSlayerPoints() + 18); player.getPackets().sendGameMessage("You have completed " + player.slayerTaskAmount + " Slayer Tasks in a row and receive 18 Slayer Points!"); player.getPackets().sendGameMessage("You have finished your slayer task, talk to a slayer master for a new one."); player.hasTask = false; } } } } } }
TaskSet.javaCode:package com.rs.game.player.actions.slayer; import java.util.ArrayList; import java.util.Collections; import java.util.List; import com.rs.game.player.Player; import com.rs.utils.Utils; public class Slayer { Player player; public static void handlePointsInterface(final Player p, int interfaceId, int buttonId) { int currentPoints = p.getSlayerPoints(); switch (interfaceId) { case 161: switch (buttonId) { case 14: // "Learn" button. p.getPackets().sendGameMessage("Available soon."); break; case 15: // "Buy" button. p.getPackets().sendGameMessage("Available soon."); break; case 26: // Cancel Slayer Task. case 23: if (currentPoints < 15) { p.getPackets().sendGameMessage("You need atleast 15 Slayer points to cancel your Slayer task."); break; } if (p.hasTask == false) { p.getPackets().sendGameMessage("You are not currently assigned a Slayer task."); break; } p.setSlayerPoints(currentPoints - 15); showInterface(p); p.getPackets().sendGameMessage("You have cancelled your slayer task."); p.hasTask = false; break; case 24: // Permanently remove current task. p.getPackets().sendGameMessage("Currently Under Development."); break; } break; } } public static void showInterface(Player p) { p.getPackets().sendIComponentText(161, 19, " " + p.getSlayerPoints()); p.getPackets().sendIComponentText(161, 23, "Cancel your current assignment."); p.getPackets().sendIComponentText(161, 24, "Permentatly block current assignment."); p.getPackets().sendIComponentText(161, 26, "15 Points"); p.getPackets().sendIComponentText(161, 27, "50 Points"); p.getInterfaceManager().sendInterface(161); } /** * 0 = Hello 1 = Option * * OTHER 2 = For your first task I'm assigning you to 3 = You still have a * task 4 = Great your doing great, Your new task is */ public static String assignTask(Player player, SlayerMaster master) { player.hasTask = true; SlayerTask tasks = player.slayerTask; checkLevel(player, master); return tasks.getTaskMonstersLeft() + " " + tasks.getTask().simpleName; } public static void checkLevel(Player player, SlayerMaster master) { SlayerTask tasks = player.slayerTask; List<SlayerTasks> possibleTasks = new ArrayList<SlayerTasks>(); for (SlayerTasks task : SlayerTasks.values()) { if (task.type == master.type) { possibleTasks.add(task); } } if (possibleTasks.isEmpty()) { return; } for (int i = 0; i < 10; i++) { SlayerTasks task = possibleTasks.get(i); Collections.shuffle(possibleTasks); if (player.getSkills().getLevel(18) < task.level) { player.getPackets().sendGameMessage("Too low of a slayer level..."); Collections.shuffle(possibleTasks); } else { tasks.setTask(task); player.setSlayerMaster(master.masterID); tasks.setMonstersLeft(Utils.random(tasks.getTask().min, tasks.getTask().max)); } } } }
Player.javaCode:package com.rs.game.player.actions.slayer; public enum TaskSet { TURAEL, // Level 1 Slayer & 3 combat. MAZ, // level 20 combat level 1 slayer CHAELDAR, //Level 70 Combat level 1 slayer DURADEL, //Level 50 Slayer, Level 100 combat KURADEL; //Level 75 Slayer, Level 115 Combat }
Kuradel.javaCode://slayer public boolean hasTask = false; public int slayerTaskAmount = 0; public int slayerPoints = 0; public void setSlayerTaskAmount(int amount) { this.slayerTaskAmount = amount; } public int getSlayerTaskAmount() { return slayerTaskAmount; } public void setSlayerPoints(int points) { this.slayerPoints = points; } public int getSlayerPoints() { return slayerPoints; } public int master; public int getSlayerMaster() { return master; } public void setSlayerMaster(int masta) { this.master = masta; } public void defaultSettings() { removedSlayerTasks = new String[5]; for (int i = 0; i < removedSlayerTasks.length; i++) { removedSlayerTasks[i] = "-"; } } public static String[] removedSlayerTasks; public void setRemovedSlayerTask(int index, String monster) { this.removedSlayerTasks[index] = monster; } public String[] getRemovedSlayerTasks() { return removedSlayerTasks; } public void setRemovedSlayerTask(String[] tasks) { removedSlayerTasks = tasks; }
Duradel.javaCode:package com.rs.game.player.dialogues; import com.rs.cache.loaders.NPCDefinitions; import com.rs.game.player.actions.slayer.Slayer; import com.rs.game.player.actions.slayer.SlayerMaster; public class Kuradel extends Dialogue { /** * Starts the dialogue */ public Kuradel() { } @Override public void start() { npcId = 9085; sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(npcId).name, "Hello, brave warrior. What would you like?"}, (byte) 1, npcId, 9827); } /** * Runs the dialogue */ @Override public void run(int interfaceId, int componentId) { if (stage == -1) { stage = 0; sendOptionsDialogue("What would you like to say?", "I would like a slayer task.", "What is my current slayer task?", "Can I cancel my curren task?"); } else if (stage == 0) { if (componentId == OPTION_1) { if (player.getSkills().getCombatLevel() >= 110 && player.getSkills().getLevel(18) >= 75) { if (player.hasTask == false) { Slayer.assignTask(player, SlayerMaster.KURADEL); sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(9085).name, "Your slayer task is to kill " + player.slayerTask.getTaskMonstersLeft() + " " + player.slayerTask.getTask().simpleName}, (byte) 1, 9085, 9827); } else { sendEntityDialogue((short) 243, new String[]{NPCDefinitions.getNPCDefinitions(9085).name, "You already have a slayer task! ", "You need to kill " + player.slayerTask.getTaskMonstersLeft() + " " + player.slayerTask.getTask().simpleName}, (byte) 1, 9085, 9827); } } else if (player.getSkills().getCombatLevel() < 110 && player.getSkills().getLevel(18) < 75){ sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(npcId).name, "Sorry, you need atleast level 110 combat and 75 Slayer to use me."}, (byte) 1, npcId, 9827); } else if (player.getSkills().getCombatLevel() >= 110 && player.getSkills().getLevel(18) < 75) { sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(npcId).name, "Sorry, you need atleast 75 Slayer to use me."}, (byte) 1, npcId, 9827); } else if (player.getSkills().getCombatLevel() < 110 && player.getSkills().getLevel(18) >= 75) { sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(npcId).name, "Sorry, you need atleast 110 combat to use me."}, (byte) 1, npcId, 9827); } } else if (componentId == OPTION_2) { if (player.hasTask == true) { sendEntityDialogue((short) 242, new String[]{NPCDefinitions.getNPCDefinitions(9085).name, "You have a short memory, don't you?", "You need to kill " + player.slayerTask.getTaskMonstersLeft() + " " + player.slayerTask.getTask().simpleName}, (byte) 1, 9085, 9827); } else { sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(9085).name, "Foolish warrior. You don't have a slayer task!"}, (byte) 1, 9085, 9827); } stage = -1; } else if (componentId == OPTION_3) { Slayer.showInterface(player); end(); } else { end(); } } } @Override public void finish() { } /** * Declares the npc ID */ private int npcId; }
Maz.javaCode:package com.rs.game.player.dialogues; import com.rs.cache.loaders.NPCDefinitions; import com.rs.game.player.actions.slayer.Slayer; import com.rs.game.player.actions.slayer.SlayerMaster; public class Duradel extends Dialogue { /** * Starts the dialogue */ public Duradel() { } @Override public void start() { npcId = ((Integer) parameters[0]).intValue(); sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(npcId).name, "Hello, brave warrior. What would you like?"}, (byte) 1, npcId, 9827); } /** * Runs the dialogue */ @Override public void run(int interfaceId, int componentId) { if (stage == -1) { stage = 0; sendOptionsDialogue("What would you like to say?", "I would like a slayer task.", "What is my current slayer task?", "Can I cancel my curren task?"); } else if (stage == 0) { if (componentId == OPTION_1) { if (player.getSkills().getCombatLevel() >= 100 && player.getSkills().getLevel(18) >= 50) { if (player.hasTask == false) { Slayer.assignTask(player, SlayerMaster.DURADEL); sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(8275).name, "Your slayer task is to kill " + player.slayerTask.getTaskMonstersLeft() + " " + player.slayerTask.getTask().simpleName}, (byte) 1, 8275, 9827); } else { sendEntityDialogue((short) 243, new String[]{NPCDefinitions.getNPCDefinitions(8275).name, "You already have a slayer task! ", "You need to kill " + player.slayerTask.getTaskMonstersLeft() + " " + player.slayerTask.getTask().simpleName}, (byte) 1, 8275, 9827); } } else if (player.getSkills().getCombatLevel() < 100 && player.getSkills().getLevel(18) < 50){ sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(npcId).name, "Sorry, you need atleast level 100 combat and 50 Slayer to use me."}, (byte) 1, npcId, 9827); } else if (player.getSkills().getCombatLevel() >= 100 && player.getSkills().getLevel(18) < 50) { sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(npcId).name, "Sorry, you need atleast 50 Slayer to use me."}, (byte) 1, npcId, 9827); } else if (player.getSkills().getCombatLevel() < 100 && player.getSkills().getLevel(18) >= 50) { sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(npcId).name, "Sorry, you need atleast 100 combat to use me."}, (byte) 1, npcId, 9827); } } else if (componentId == OPTION_2) { if (player.hasTask == true) { sendEntityDialogue((short) 242, new String[]{NPCDefinitions.getNPCDefinitions(8275).name, "You have a short memory, don't you?", "You need to kill " + player.slayerTask.getTaskMonstersLeft() + " " + player.slayerTask.getTask().simpleName}, (byte) 1, 8275, 9827); } else { sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(8275).name, "Foolish warrior. You don't have a slayer task!"}, (byte) 1, 8275, 9827); } stage = -1; } else if (componentId == OPTION_3) { Slayer.showInterface(player); end(); } else { end(); } } } @Override public void finish() { } /** * Declares the npc ID */ private int npcId; }
Chaeldar.javaCode:package com.rs.game.player.dialogues; import com.rs.cache.loaders.NPCDefinitions; import com.rs.game.player.actions.slayer.Slayer; import com.rs.game.player.actions.slayer.SlayerMaster; public class Maz extends Dialogue { /** * Starts the dialogue */ public Maz() { } @Override public void start() { npcId = ((Integer) parameters[0]).intValue(); sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(npcId).name, "Hello, brave warrior. What would you like?"}, (byte) 1, npcId, 9827); } /** * Runs the dialogue */ @Override public void run(int interfaceId, int componentId) { if (stage == -1) { stage = 0; sendOptionsDialogue("What would you like to say?", "I would like a slayer task.", "What is my current slayer task?", "Can I cancel my curren task?"); } else if (stage == 0) { if (componentId == OPTION_1) { if (player.getSkills().getCombatLevel() >= 20) { if (player.hasTask == false) { Slayer.assignTask(player, SlayerMaster.TURAEL); sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(8274).name, "Your slayer task is to kill " + player.slayerTask.getTaskMonstersLeft() + " " + player.slayerTask.getTask().simpleName}, (byte) 1, 8274, 9827); } else { sendEntityDialogue((short) 243, new String[]{NPCDefinitions.getNPCDefinitions(8274).name, "You already have a slayer task! ", "You need to kill " + player.slayerTask.getTaskMonstersLeft() + " " + player.slayerTask.getTask().simpleName}, (byte) 1, 8274, 9827); } } else { sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(npcId).name, "Sorry, you need atleast level 20 combat to use me."}, (byte) 1, npcId, 9827); } } else if (componentId == OPTION_2) { if (player.hasTask == true) { sendEntityDialogue((short) 242, new String[]{NPCDefinitions.getNPCDefinitions(8274).name, "You have a short memory, don't you?", "You need to kill " + player.slayerTask.getTaskMonstersLeft() + " " + player.slayerTask.getTask().simpleName}, (byte) 1, 8274, 9827); } else { sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(8274).name, "Foolish warrior. You don't have a slayer task!"}, (byte) 1, 8274, 9827); } stage = -1; } else if (componentId == OPTION_3) { Slayer.showInterface(player); end(); } else { end(); } } } @Override public void finish() { } /** * Declares the npc ID */ private int npcId; }
Turael.javaCode:package com.rs.game.player.dialogues; import com.rs.cache.loaders.NPCDefinitions; import com.rs.game.player.actions.slayer.Slayer; import com.rs.game.player.actions.slayer.SlayerMaster; public class Chaeldar extends Dialogue { /** * Starts the dialogue */ public Chaeldar() { } @Override public void start() { npcId = ((Integer) parameters[0]).intValue(); sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(npcId).name, "Hello, brave warrior. What would you like?"}, (byte) 1, npcId, 9827); } /** * Runs the dialogue */ @Override public void run(int interfaceId, int componentId) { if (stage == -1) { stage = 0; sendOptionsDialogue("What would you like to say?", "I would like a slayer task.", "What is my current slayer task?", "Can I cancel my curren task?"); } else if (stage == 0) { if (componentId == OPTION_1) { if (player.getSkills().getCombatLevel() >= 70) { if (player.hasTask == false) { Slayer.assignTask(player, SlayerMaster.CHAELDAR); sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(1598).name, "Your slayer task is to kill " + player.slayerTask.getTaskMonstersLeft() + " " + player.slayerTask.getTask().simpleName}, (byte) 1, 1598, 9827); } else { sendEntityDialogue((short) 243, new String[]{NPCDefinitions.getNPCDefinitions(1598).name, "You already have a slayer task! ", "You need to kill " + player.slayerTask.getTaskMonstersLeft() + " " + player.slayerTask.getTask().simpleName}, (byte) 1, 1598, 9827); } } else { sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(npcId).name, "Sorry, you need atleast level 20 combat to use me."}, (byte) 1, npcId, 9827); } } else if (componentId == OPTION_2) { if (player.hasTask == true) { sendEntityDialogue((short) 242, new String[]{NPCDefinitions.getNPCDefinitions(1598).name, "You have a short memory, don't you?", "You need to kill " + player.slayerTask.getTaskMonstersLeft() + " " + player.slayerTask.getTask().simpleName}, (byte) 1, 1598, 9827); } else { sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(1598).name, "Foolish warrior. You don't have a slayer task!"}, (byte) 1, 1598, 9827); } stage = -1; } else if (componentId == OPTION_3) { Slayer.showInterface(player); end(); } else { end(); } } } @Override public void finish() { } /** * Declares the npc ID */ private int npcId; }
DialogueHandler.javaCode:package com.rs.game.player.dialogues; import com.rs.cache.loaders.NPCDefinitions; import com.rs.game.player.actions.slayer.Slayer; import com.rs.game.player.actions.slayer.SlayerMaster; public class Turael extends Dialogue { /** * Starts the dialogue */ public Turael() { } @Override public void start() { npcId = ((Integer) parameters[0]).intValue(); sendEntityDialogue((short) 241,new String[]{NPCDefinitions.getNPCDefinitions(npcId).name,"Hello, brave warrior. What would you like?"},(byte) 1, npcId, 9827); } /** * Runs the dialogue */ @Override public void run(int interfaceId, int componentId) { if (stage == -1) { stage = 0; sendOptionsDialogue("What would you like to say?","I would like a slayer task.","What is my current slayer task?", "Can I cancel my curren task?"); } else if (stage == 0) { if (componentId == OPTION_1) { if (player.hasTask == false) { Slayer.assignTask(player, SlayerMaster.TURAEL); sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(8273).name,"Your slayer task is to kill "+ player.slayerTask.getTaskMonstersLeft()+ " "+ player.slayerTask.getTask().simpleName}, (byte) 1, 8273, 9827); } else { sendEntityDialogue((short) 243,new String[]{NPCDefinitions.getNPCDefinitions(8273).name,"You already have a slayer task! ","You need to kill "+ player.slayerTask.getTaskMonstersLeft()+ " "+ player.slayerTask.getTask().simpleName},(byte) 1, 8273, 9827); } } else if (componentId == OPTION_2) { if (player.hasTask == true) { sendEntityDialogue((short) 242, new String[]{NPCDefinitions.getNPCDefinitions(8273).name,"You have a short memory, don't you?","You need to kill "+ player.slayerTask.getTaskMonstersLeft() + " "+ player.slayerTask.getTask().simpleName}, (byte) 1, 8273, 9827); } else { sendEntityDialogue((short) 241, new String[]{NPCDefinitions.getNPCDefinitions(8273).name,"Foolish warrior. You don't have a slayer task!"},(byte) 1, 8273, 9827); } stage = -1; } else if (componentId == OPTION_3) { Slayer.showInterface(player); end(); } else { end(); } } } @Override public void finish() { } /** * Declares the npc ID */ private int npcId; }
NPCHandler.javaCode:handledDialogues.put("Turael", (Class<Dialogue>) Class.forName(Turael.class.getCanonicalName())); handledDialogues.put("Maz", (Class<Dialogue>) Class.forName(Maz.class.getCanonicalName())); handledDialogues.put("Duradel", (Class<Dialogue>) Class.forName(Duradel.class.getCanonicalName())); handledDialogues.put("Kuradel", (Class<Dialogue>) Class.forName(Kuradel.class.getCanonicalName())); handledDialogues.put("Chaeldar", (Class<Dialogue>) Class.forName(Chaeldar.class.getCanonicalName()));
SlayerMaster.javaCode:else if (npc.getId() == 8273) player.getDialogueManager().startDialogue("Turael", npc.getId(), null); else if (npc.getId() == 8274) player.getDialogueManager().startDialogue("Maz", npc.getId(), null); else if (npc.getId() == 9085) player.getDialogueManager().startDialogue("Kuradel", npc.getId(), null); else if (npc.getId() == 8275) player.getDialogueManager().startDialogue("Duradel", npc.getId(), null); else if (npc.getId() == 1598) player.getDialogueManager().startDialogue("Chaeldar", npc.getId(), null);
When creating the slayer point system, I was thinking of a way to get what slayer master the player is currently using, so I decided to assign a number to each slayer master in the enum, this was an easy way to get the slayer masters... It may not be the best way to do it, but it worksCode:package com.rs.game.player.actions.slayer; import java.util.HashMap; import java.util.Map; public enum SlayerMaster { TURAEL(TaskSet.TURAEL, 8273, 3, 1, 1), MAZ(TaskSet.MAZ, 8274, 20, 1, 2), CHAELDAR(TaskSet.CHAELDAR, 1598, 70, 1, 3), DURADEL(TaskSet.DURADEL, 8275, 100, 50, 4), KURADEL(TaskSet.KURADEL, 9085, 115, 75, 5); /** * The slayer master map Integer is the npc id */ public static final Map<Integer, SlayerMaster> SLAYER_MASTERS = new HashMap<Integer, SlayerMaster>(); /** * Grab a slayer master by id * * @param id * @return */ public static SlayerMaster getMaster(int id) { return SLAYER_MASTERS.get(id); } /** * Populate the mapping. */ static { for (SlayerMaster master : SlayerMaster.values()) { SLAYER_MASTERS.put(master.npcId, master); } } private SlayerMaster(TaskSet type, int npcId, int requiredCombatLevel, int requiredSlayerLevel, int slayerMasterID) { this.type = type; this.npcId = npcId; this.requiredCombatLevel = requiredCombatLevel; this.reqSlayerLevel = requiredSlayerLevel; this.masterID = slayerMasterID; } /** * The NPC id of the slayer master */ public int npcId; /** * The task set that the slayer master assigns */ public TaskSet type; /** * The combat level required to get tasks from this slayer master */ public int requiredCombatLevel; /* * The slayer level required */ public int reqSlayerLevel; /* * Used for point system */ public int masterID; }
You all can take it from here, fix up my work, make it into your own, I don't really care, I'm just contributing to the community, hate,flame, judge my work, I don't care, just enjoy!
Last edited by 562 Retard; 01-31-2013 at 09:03 PM. Reason: Forgot a file :)
awesome,
thanks for the contribution
Awesome, gj bro
Nice work, I won't use all of this as i'm nearly done Slayer, but I'll surely use some of it!
EDIT: Taken you're SlayerTask.Java
At first when I only saw the Enum I was going to troll the fuck out of you but as I continued I realized you did a pre good job. Nice contribution.
Thanks for contributing, not gonna use.
Missing a variable in Player.java, causes 40 errors.
It was basically the only variable missing a comment, may i ask what its for?Code:private static final long serialVersionUID = -7184740247844324413L;
Could you post your "masterID" method?Code:player.setSlayerMaster(master.masterID);
Not bad.
« Previous Thread | Next Thread » |
Thread Information |
Users Browsing this ThreadThere are currently 1 users browsing this thread. (0 members and 1 guests) |
Tags for this Thread |