Jump to content

Search the Community

Showing results for tags 'fully'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


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

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start



Found 17 results

  1. [COLOR="#0000CD"][SIZE=4]Ever since I saw the HaxUnit hackers get their hands on the Rotten Potato in real Runescape, I've been dying to make my own, with commands and all. And yes, I am fully aware that this is beyond easy to code. However, this being my first "Show-Off" thread, I decided I'd start off small and work my way up. Before I show the pictures, I'd like to thank any and all developers of Matrix718 for the base of this item, prior to me adding onto it. [SIZE=4]Matrix718 is responsible for 100% of the Punishment tab shown[/SIZE]. Since starting my server, I've simply tweaked the commands within it to give more safety to server developers, added in logs in case I ever need to investigate an abuse, etc. I won't be showing the "Commands" option of the potato, or specific Macro Events locations for the safety and well-being of my server.[/SIZE][/COLOR] [SIZE=6][COLOR="#FF0000"]Punishment Panel:[/COLOR][/SIZE] [IMG]http://i.imgur.com/y4jULK0.jpg[/IMG] [IMG]http://i.imgur.com/D6fqjT2.jpg[/IMG] [IMG]http://i.imgur.com/dy81tjm.jpg[/IMG] [SIZE=6][COLOR="#FF0000"]Control Panel:[/COLOR][/SIZE] [IMG]http://i.imgur.com/45jXvi9.jpg[/IMG] [IMG]http://i.imgur.com/fxXnU6y.jpg[/IMG] [IMG]http://i.imgur.com/7dpSPGx.jpg[/IMG] [IMG]http://i.imgur.com/PpMhqbW.jpg[/IMG] [IMG]http://i.imgur.com/EThsZn5.jpg[/IMG] [COLOR="#008080"][SIZE=4]Thoughts/Comments/Constructive Criticism?[/SIZE][/COLOR]
  2. [CENTER][B]Sup bois, I have fixed up Project Annihilation release. [/B] [B]Downlad (459 deob + server + cache all-in-one): [/B] [url]https://mega.co.nz/#!e9Y0WKiT!532CLM89cwZijZd_xlfjAN1-vvfsZBZ8NLMVjK-VSTg[/url] Enjoy, this is pretty decent release. [B]Media[/B] [img]http://i35.tinypic.com/5k0i8i.png[/img] [img]http://i34.tinypic.com/25j8o61.png[/img] [img]http://i37.tinypic.com/kq58y.png[/img] [img]http://i46.tinypic.com/24zdvz7.jpg[/img] [img]http://i46.tinypic.com/vqkvpw.jpg[/img] [img]http://i35.tinypic.com/dq0qab.png[/img] [img]http://i36.tinypic.com/348riuo.png[/img] [img]http://i35.tinypic.com/33trwrb.png[/img] [img]http://i34.tinypic.com/91cxhs.png[/img] [img]http://i47.tinypic.com/34q9t1l.png[/img] [img]http://i50.tinypic.com/2ugot5e.png[/img] [img]http://i48.tinypic.com/11r6q2g.png[/img] [img]http://i46.tinypic.com/2923fap.png[/img] [B]Credits to all who have worked on it at some point:[/B] Mikkel Ryan Brian Tommi Ecstasy[/CENTER]
  3. Removed. No permission from the author to release on Runelocus.
  4. I have created like 10 total quests with this and it works 100% and i have supported state saving which is easy just request help i you need it. A server successfully using this system : [url]http://www.runelocus.com/forums/showthread.php?94065-Asgarnia-Official-Release-Exclusive-on-Runelocus[/url] Step 1 : Create a new package, call it 'quest' and you should probably make it extend either a 'model' or 'content' base folder. Inside the newly created package, create a new Java interface : Quest [CODE] /** * * [MENTION=52317]auth[/MENTION]or Joshua Barry * */ public interface Quest { /** * Determines if the player has the requirements to complete this quest. * * [MENTION=75098]Para[/MENTION]m player The player attempting the quest. * [MENTION=184045]return[/MENTION] {@code true} if the player can complete the quest. */ public abstract boolean hasRequirements(Player player); /** * Determine what happens when the questing player dies. * * [MENTION=75098]Para[/MENTION]m player The player who has died. * [MENTION=184045]return[/MENTION] {@code true} if the player has died. */ public abstract boolean deathListener(Player player); /** * Determines what happens when the questing player kills another entity. * * [MENTION=75098]Para[/MENTION]m player The player who has killed the victim entity. * [MENTION=184045]return[/MENTION] */ public abstract boolean defeatListener(Player player); /** * Determines whether a player has clicked a specific button or not, and * what the outcome will be. * * [MENTION=75098]Para[/MENTION]m player * [MENTION=184045]return[/MENTION] */ public abstract boolean dialougeListener(Player player); /** * Start the quest. */ public abstract void start(Player player); /** * End the quest. */ public abstract void end(Player player); /** * Give the player the reward items. */ public abstract void giveRewards(Player player); /** * The list of rewards the player will receive upon quest completion. * * [MENTION=184045]return[/MENTION] */ public abstract Item[] getRewards(); /** * Gets the quest attribute name. * * [MENTION=184045]return[/MENTION] */ public abstract String getAttributeName(); /** * Gets the quest name. * * [MENTION=184045]return[/MENTION] */ public abstract String getQuestName(); /** * Gets the amount of quest points to award the player. * * [MENTION=184045]return[/MENTION] */ public abstract short getQuestPointAward(); /** * Gets the amount of experience gained. * * [MENTION=184045]return[/MENTION] */ public abstract double[][] getExperienceAward(); /** * Displayed on reward interface. * * [MENTION=184045]return[/MENTION] */ public abstract String getAdditionalMessage(); /** * Gets the value of the final quest. * * [MENTION=184045]return[/MENTION] */ public abstract short getFinalStage(); /** * Gets the quest button id. * * [MENTION=184045]return[/MENTION] */ public abstract short getQuestButton(); } [/CODE] Next, a Java class called QuestEntry [CODE] import java.util.Map.Entry; /** * A convenience class for simplifying quest retrieval from the quest database. * * [MENTION=52317]auth[/MENTION]or Joshua Barry * */ public class QuestEntry implements Entry<String, Integer> { /** * The name of this quest. */ private final String name; /** * The button id of the quest. The one found on the quest tab. */ private final int button; public QuestEntry(String name, int button) { this.name = name; this.button = button; } [MENTION=15855]Over[/MENTION]ride public String getKey() { return name; } [MENTION=15855]Over[/MENTION]ride public Integer getValue() { return button; } [MENTION=15855]Over[/MENTION]ride public Integer setValue(Integer value) { return button; } } [/CODE] Now this is an EXAMPLE of my QuestRepository which I have left [B][COLOR=#FF0000]unmodified[/COLOR][/B] to show how to add quests to the repository. [CODE] import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import com.asgarniars.rs2.content.quest.impl.CooksAssistant; import com.asgarniars.rs2.content.quest.impl.DoricsQuest; import com.asgarniars.rs2.content.quest.impl.DruidicRitual; import com.asgarniars.rs2.content.quest.impl.RuneMysteries; import com.asgarniars.rs2.content.quest.impl.SheepShearer; import com.asgarniars.rs2.content.quest.impl.TheRestlessGhost; import com.asgarniars.rs2.content.quest.impl.WaterfallQuest; import com.asgarniars.rs2.content.quest.impl.WitchsPotion; import com.asgarniars.rs2.model.players.Player; /** * * author Joshua Barry <Sneakyhearts> * */ public class QuestRepository { /** * The amount of quests available in revision #317 */ public static final int AMOUNT_OF_QUESTS = 103; /** * The mapping holding all quest data. */ public static final Map<QuestEntry, Quest> QUEST_DATABASE = new HashMap<QuestEntry, Quest>(); /** * p.s. static initializers are ugly */ static { QUEST_DATABASE.put(new QuestEntry("SheepShearer", 7344), new SheepShearer()); QUEST_DATABASE.put(new QuestEntry("RuneMysteries", 7335), new RuneMysteries()); QUEST_DATABASE.put(new QuestEntry("DoricsQuest", 7336), new DoricsQuest()); QUEST_DATABASE.put(new QuestEntry("TheRestlessGhost", 7337), new TheRestlessGhost()); QUEST_DATABASE.put(new QuestEntry("DruidicRitual", 7355), new DruidicRitual()); QUEST_DATABASE.put(new QuestEntry("WitchsPotion", 7348), new WitchsPotion()); QUEST_DATABASE.put(new QuestEntry("WaterfallQuest", 7350), new WaterfallQuest()); QUEST_DATABASE.put(new QuestEntry("CooksAssistant", 1), new CooksAssistant()); } /** * Grabs a quest from the mapping with the given button index. * * [MENTION=75098]Para[/MENTION]m button The quest button id. * [MENTION=184045]return[/MENTION] The {@code Quest} which id matches the id given, or {@code null} * if the quest didn't exist. */ public static Quest get(int button) { Set<QuestEntry> entries = QUEST_DATABASE.keySet(); for (Iterator<QuestEntry> it$ = entries.iterator(); it$.hasNext();) { QuestEntry entry = it$.next(); if (entry.getValue() == button) { return QUEST_DATABASE.get(entry); } } return null; } /** * Grab a quest from the mapping with the given name. * * [MENTION=75098]Para[/MENTION]m name The quest's name. * [MENTION=184045]return[/MENTION] The {@code Quest} whose name matches the one provided, or * {@code null} if the quest with the given name couldn't be found. */ public static Quest get(String name) { Set<QuestEntry> entries = QUEST_DATABASE.keySet(); for (Iterator<QuestEntry> it$ = entries.iterator(); it$.hasNext();) { QuestEntry entry = it$.next(); if (entry.getKey().equalsIgnoreCase(name)) { return QUEST_DATABASE.get(entry); } } return null; } /** * Handles the quest side bar interfaces and name * * [MENTION=75098]Para[/MENTION]m player The player. */ public static void handle(Player player) { for (Quest quest : QUEST_DATABASE.values()) { if (player.getQuestStorage().hasStarted(quest)) { player.getActionSender().changeInterfaceComponentColor(quest.getQuestButton(), 0x33FF66); } if (player.getQuestStorage().hasFinished(quest)) { player.getActionSender().changeInterfaceComponentColor(quest.getQuestButton(), 0x3366); } player.getActionSender().sendString(quest.getQuestName(), quest.getQuestButton()); } } } [/CODE] Another class called QuestStorage [CODE] import java.util.HashMap; import java.util.Map; /** * Quest storage, a repository to hold the state's and access to quests. * * [MENTION=52317]auth[/MENTION]or Joshua Barry * */ public class QuestStorage { /** * The current quest states. */ private final Map<Quest, Integer> states = new HashMap<Quest, Integer>(); /** * Gets the quest state. * * [MENTION=75098]Para[/MENTION]m questId The quest id to check. * [MENTION=184045]return[/MENTION] The quest state (0 at default). */ public int getState(int questId) { return states.get(QuestRepository.get(questId)); } /** * Gets the quest state by quest. * * [MENTION=75098]Para[/MENTION]m quest The quest to check. * [MENTION=184045]return[/MENTION] The quest state (0 at default). */ public int getState(Quest quest) { return states.get(quest); } /** * Checks if the player has finished a certain quest. * * [MENTION=75098]Para[/MENTION]m quest The quest id. * [MENTION=184045]return[/MENTION] {@code True} if so, {@code false} if not. */ public boolean hasFinished(Quest quest) { if (states.containsKey(quest)) { return quest != null && quest.getFinalStage() <= states.get(quest); } return false; } /** * Checks if the player has started a certain quest. * * [MENTION=75098]Para[/MENTION]m quest The quest's id. * [MENTION=184045]return[/MENTION] {@code true} if the player has started the quest, {@code false} * if not. */ public boolean hasStarted(Quest quest) { if (states.containsKey(quest)) { return states.get(quest) > 0 && states.get(quest) < quest.getFinalStage(); } return false; } /** * * [MENTION=75098]Para[/MENTION]m questId The quest to set the stage for. * [MENTION=75098]Para[/MENTION]m state the state to set. */ public void setState(Quest quest, int state) { states.put(quest, state); } } [/CODE] Step 2: create another package which extends 'quest' and call it 'impl' (implementation's) now you create your abstract base class : QuestStructure [CODE] package com.asgarniars.rs2.content.quest.impl; import com.asgarniars.rs2.content.dialogue.Dialogue; import com.asgarniars.rs2.content.dialogue.StatementDialogue; import com.asgarniars.rs2.content.dialogue.StatementType; import com.asgarniars.rs2.content.quest.Quest; import com.asgarniars.rs2.content.quest.QuestRepository; import com.asgarniars.rs2.content.skills.Skill; import com.asgarniars.rs2.model.items.Item; import com.asgarniars.rs2.model.items.ItemManager; import com.asgarniars.rs2.model.players.Player; /** * The foundation of a quest upon which all other quests should stand. * * [MENTION=52317]auth[/MENTION]or Joshua Barry * */ public abstract class QuestStructure implements Quest { [MENTION=15855]Over[/MENTION]ride public void start(Player player) { if (!this.hasRequirements(player)) { Dialogue dialogue = new StatementDialogue(StatementType.NORMAL, new String[] { "You do not meet the requirements for this quest." }); player.open(dialogue); return; } player.getQuestStorage().setState(this, 1); QuestRepository.handle(player); player.setAttribute(getAttributeName(), (byte) -1); } [MENTION=15855]Over[/MENTION]ride public void end(Player player) { player.setQuestPoints(player.getQuestPoints() + getQuestPointAward()); giveRewards(player); QuestRepository.handle(player); player.getActionSender().sendMessage("Congratulations! Quest complete!"); player.removeAttribute(getAttributeName()); player.removeAttribute("currentQuest"); } [MENTION=15855]Over[/MENTION]ride public void giveRewards(Player player) { StringBuilder rewardNames = new StringBuilder(); if (getRewards() != null) for (Item item : getRewards()) { if (player.getInventory().hasRoomFor(item)) { player.getInventory().addItem(item); rewardNames.append(ItemManager.getInstance().getItemName(item.getId()).concat("\\n")); } } StringBuilder experienceGains = new StringBuilder(); for (int x = 0; x < this.getExperienceAward().length; x++) { short skill = (short) getExperienceAward()[x][0]; double exp = getExperienceAward()[x][1]; experienceGains.append((int) exp + " " + Skill.getSkillName(skill) + " XP.\\n"); player.getSkill().addExperience(skill, exp); } StringBuilder additionalMessage = new StringBuilder(); if (getAdditionalMessage() != null) additionalMessage.append(getAdditionalMessage().concat("\\n")); player.getActionSender().sendString(getQuestPointAward() + " Quest Points\\n".concat(experienceGains.toString().concat(additionalMessage.toString())).concat(rewardNames.toString()), 4444); player.getActionSender().sendString("You have completed the " + getQuestName() + " Quest!", 301); player.getActionSender().sendConfig(101, player.getQuestPoints()); player.getActionSender().sendInterface(297); } } [/CODE] COMPLETE!!! now to see an example of a quest I created (all object interactions, dialogues are coded into other areas of server as per usual) [CODE] package com.asgarniars.rs2.content.quest.impl; import com.asgarniars.rs2.content.skills.Skill; import com.asgarniars.rs2.model.items.Item; import com.asgarniars.rs2.model.players.Player; /** * * [MENTION=52317]auth[/MENTION]or Joshua Barry * */ public class DruidicRitual extends QuestStructure { [MENTION=15855]Over[/MENTION]ride public boolean hasRequirements(Player player) { return player.isLoggedIn(); } [MENTION=15855]Over[/MENTION]ride public boolean deathListener(Player player) { return false; } [MENTION=15855]Over[/MENTION]ride public boolean defeatListener(Player player) { return false; } [MENTION=15855]Over[/MENTION]ride public boolean dialougeListener(Player player) { if (player.getQuestStorage().hasFinished(this)) end(player); return true; } [MENTION=15855]Over[/MENTION]ride public Item[] getRewards() { return null; } [MENTION=15855]Over[/MENTION]ride public String getAttributeName() { return "DruidicRitual"; } [MENTION=15855]Over[/MENTION]ride public String getQuestName() { return "Druidic Ritual"; } [MENTION=15855]Over[/MENTION]ride public short getQuestPointAward() { return 4; } [MENTION=15855]Over[/MENTION]ride public double[][] getExperienceAward() { return new double[][] { { Skill.HERBLORE, 250 } }; } [MENTION=15855]Over[/MENTION]ride public String getAdditionalMessage() { return "Access to the Herblore skill"; } [MENTION=15855]Over[/MENTION]ride public short getFinalStage() { return 4; } [MENTION=15855]Over[/MENTION]ride public short getQuestButton() { return 7355; } } [/CODE] [CENTER] [IMG]http://i.imgur.com/6KZL7Kf.png[/IMG] [IMG]http://i.imgur.com/uo0jwzN.png[/IMG] [IMG]http://i.imgur.com/zWddSwq.png[/IMG] [/CENTER]
  5. Example: [CODE]npc_id: 1 npc_name: Man npc_description: One of RuneScape's many citizens. npc_boundary_dimension: 1 npc_animations: npc_animation_stand: 808 npc_animation_forward_walk: 819 npc_animation_backward_walk: 820 npc_animation_left_walk: 821 npc_animation_right_walk: 822 npc_actions: npc_action_0: Talk-to npc_action_1: Attack npc_action_2: Pickpocket npc_action_3: null npc_action_4: null npc_original_model_colors: npc_original_model_color_0: 25238 npc_original_model_color_1: 8741 npc_modified_model_colors: npc_modified_model_color_0: 10508 npc_modified_model_color_1: 10508 npc_dialogue_models: npc_dialogue_model_0: 53 npc_models: npc_model_0: 215 npc_model_1: 246 npc_model_2: 292 npc_model_3: 151 npc_model_4: 176 npc_model_5: 254 npc_model_6: 181 npc_drawn_on_minimap: true npc_combat_level: 2 npc_scale_xz: 128 npc_scale_y: 128 npc_visibile: false npc_light_modifier: 0 npc_shadow_modifier: 0 npc_head_icon: -1 npc_degrees_to_turn: 32 npc_varbit_child: -1 npc_config_child: -1 npc_right_clickable: true[/CODE] Download (was too large to put on pastebin): [URL=""]npc_dump.txt[/URL]
  6. Please guys i need your help, Al skills fully work after some fixing except for fishing , if i fish on a spot @ skilling island the fish spot turns around to me but I don't start fishing If someone could help me i would really appreciate that , if u need any codes / files tell me I will post them.
  7. 1 - full farming. 2 - full smithing 3 - full slayer. 4 - full world event system. 5 - all random events. 6 - full crafting with tanning bowstringing and flax picking and turing it into bowsting along with anything else that needs to be ran through the wheel with an interface.
  8. I'm releasing my PheroxScape today, so please do not leach it. I fully wrote the combat system from scratch and it is flawless. Clipping animations and many other things are fixed. This would be a really good server base to use. [B]Download[/B] - [url]http://www.mediafire.com/?zqce2vfv6985p75[/url] [IMG]http://i.imgur.com/f0xNd.png[/IMG] [IMG]http://i.imgur.com/NTU5I.png[/IMG]
  9. [COLOR="Lime"]What are you adding? Fully 63 Wave Fight Caves like runescape[/COLOR] Lets start First make a new class named Location:server/model/minigames/thzaar/FightCaves.java [CODE]package server.game.minigames.tzhaar; import server.Server; import server.game.npcs.NPCHandler; import server.game.players.Client; public class FightCaves { public static final int TZ_KIH = 2627, TZ_KEK_SPAWN = 2738, TZ_KEK = 2630, TOK_XIL = 2631, YT_MEJKOT = 2741, KET_ZEK = 2743, TZTOK_JAD = 2745; /** * Holds the data for the 63 waves fight cave. */ private final int[][] WAVES = {{TZ_KIH}, {TZ_KIH,TZ_KIH}, {TZ_KEK}, {TZ_KEK,TZ_KIH}, {TZ_KEK,TZ_KIH,TZ_KIH}, {TZ_KEK,TZ_KEK}, {TOK_XIL}, {TOK_XIL,TZ_KIH}, {TOK_XIL,TZ_KIH,TZ_KIH}, {TOK_XIL,TZ_KEK}, {TOK_XIL,TZ_KEK,TZ_KIH}, {TOK_XIL,TZ_KEK,TZ_KIH,TZ_KIH}, {TOK_XIL,TZ_KEK,TZ_KEK}, {TOK_XIL,TOK_XIL}, {YT_MEJKOT}, {YT_MEJKOT,TZ_KIH}, {YT_MEJKOT,TZ_KIH,TZ_KIH}, {YT_MEJKOT,TZ_KEK}, {YT_MEJKOT,TZ_KEK,TZ_KIH}, {YT_MEJKOT,TZ_KEK,TZ_KIH,TZ_KIH}, {YT_MEJKOT,TZ_KEK,TZ_KEK}, {YT_MEJKOT,TOK_XIL}, {YT_MEJKOT,TOK_XIL,TZ_KIH}, {YT_MEJKOT,TOK_XIL,TZ_KIH,TZ_KIH}, {YT_MEJKOT,TOK_XIL,TZ_KEK}, {YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KIH}, {YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KIH,TZ_KIH}, {YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KEK}, {YT_MEJKOT,TOK_XIL,TOK_XIL}, {YT_MEJKOT,YT_MEJKOT}, {KET_ZEK}, {KET_ZEK,TZ_KIH}, {KET_ZEK,TZ_KIH,TZ_KIH}, {KET_ZEK,TZ_KEK}, {KET_ZEK,TZ_KEK,TZ_KIH}, {KET_ZEK,TZ_KEK,TZ_KIH,TZ_KIH}, {KET_ZEK,TZ_KEK,TZ_KEK}, {KET_ZEK,TOK_XIL}, {KET_ZEK,TOK_XIL,TZ_KIH}, {KET_ZEK,TOK_XIL,TZ_KIH,TZ_KIH}, {KET_ZEK,TOK_XIL,TZ_KEK}, {KET_ZEK,TOK_XIL,TZ_KEK,TZ_KIH}, {KET_ZEK,TOK_XIL,TZ_KEK,TZ_KIH,TZ_KIH}, {KET_ZEK,TOK_XIL,TZ_KEK,TZ_KEK}, {KET_ZEK,TOK_XIL,TOK_XIL}, {KET_ZEK,YT_MEJKOT}, {KET_ZEK,YT_MEJKOT,TZ_KIH}, {KET_ZEK,YT_MEJKOT,TZ_KIH,TZ_KIH}, {KET_ZEK,YT_MEJKOT,TZ_KEK}, {KET_ZEK,YT_MEJKOT,TZ_KEK,TZ_KIH}, {KET_ZEK,YT_MEJKOT,TZ_KEK,TZ_KIH,TZ_KIH}, {KET_ZEK,YT_MEJKOT,TZ_KEK,TZ_KEK}, {KET_ZEK,YT_MEJKOT,TOK_XIL}, {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KIH}, {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KIH,TZ_KIH}, {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK}, {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KIH}, {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KIH,TZ_KIH}, {KET_ZEK,YT_MEJKOT,TOK_XIL,TZ_KEK,TZ_KEK}, {KET_ZEK,YT_MEJKOT,TOK_XIL,TOK_XIL}, {KET_ZEK,YT_MEJKOT,YT_MEJKOT}, {KET_ZEK,KET_ZEK}, {TZTOK_JAD}}; private final static int[][] COORDINATES = {{2403, 5094}, {2390, 5096}, {2392, 5077}, {2408, 5080}, {2413, 5108}, {2381, 5106}, {2379, 5072}, {2420, 5082}}; /** * Handles spawning the next fightcave wave. * [MENTION=75098]Para[/MENTION]m c * The player. */ public void spawnNextWave(Client c) { if (c != null) { if (c.waveId >= WAVES.length) { c.waveId = 0; return; } if (c.waveId < 0){ return; } int npcAmount = WAVES[c.waveId].length; for (int j = 0; j < npcAmount; j++) { int npc = WAVES[c.waveId][j]; int X = COORDINATES[j][0]; int Y = COORDINATES[j][1]; int H = c.heightLevel; int hp = getHp(npc); int max = getMax(npc); int atk = getAtk(npc); int def = getDef(npc); Server.npcHandler.spawnNpc(c, npc, X, Y, H, 0, hp, max, atk, def, true, false); } c.tzhaarToKill = npcAmount; c.tzhaarKilled = 0; } } /** * Handles the correct tz-kih effect; prayer * is drained by the formula: drain = damage + 1 * [MENTION=75098]Para[/MENTION]m c * The player * [MENTION=75098]Para[/MENTION]m i * The npcId * [MENTION=75098]Para[/MENTION]m damage * What the npchit */ public static void tzKihEffect(Client c,int i, int damage) { if(NPCHandler.npcs[i].npcType == TZ_KIH) { if(c != null) { if(c.playerLevel[5] > 0) { c.playerLevel[5] -= 1 + damage; c.getPA().refreshSkill(5); } } } } public static void tzKekEffect(Client c, int i) { if(NPCHandler.npcs[i].npcType == TZ_KEK) { int x = NPCHandler.npcs[i].absX + 2; int y = NPCHandler.npcs[i].absY + 2; int x1 = NPCHandler.npcs[i].absX - 2; int y1 = NPCHandler.npcs[i].absY - 2; int hp = getHp(TZ_KEK_SPAWN); int max = getMax(TZ_KEK_SPAWN); int atk = getAtk(TZ_KEK_SPAWN); int def = getDef(TZ_KEK_SPAWN); if(c != null) { if(c.tzKekTimer == 0) { if(NPCHandler.npcs[i].isDead) { Server.npcHandler.spawnNpc(c, TZ_KEK_SPAWN, x, y, c.heightLevel, 0, hp, max, atk, def, true, false); Server.npcHandler.spawnNpc(c, TZ_KEK_SPAWN, x1, y1, c.heightLevel, 0, hp, max, atk, def, true, false); } } } } } public static int getHp(int npc) { switch (npc) { case TZ_KIH: case TZ_KEK_SPAWN: return 10; case TZ_KEK: return 20; case TOK_XIL: return 40; case YT_MEJKOT: return 80; case KET_ZEK: return 150; case TZTOK_JAD: return 250; } return 100; } public static int getMax(int npc) { switch (npc) { case TZ_KIH: case TZ_KEK_SPAWN: return 4; case TZ_KEK: return 7; case TOK_XIL: return 13; case YT_MEJKOT: return 28; case KET_ZEK: return 54; case TZTOK_JAD: return 97; } return 5; } public static int getAtk(int npc) { switch (npc) { case TZ_KIH: case TZ_KEK_SPAWN: return 30; case TZ_KEK: return 50; case TOK_XIL: return 100; case YT_MEJKOT: return 150; case KET_ZEK: return 450; case TZTOK_JAD: return 650; } return 100; } public static int getDef(int npc) { switch (npc) { case TZ_KIH: case TZ_KEK_SPAWN: return 30; case TZ_KEK: return 50; case TOK_XIL: return 100; case YT_MEJKOT: return 150; case KET_ZEK: return 300; case TZTOK_JAD: return 500; } return 100; } }[/CODE] Next go to NPCHandler look for something [B]private void killedBarrow(int i) {[/B] add this under the last } u see: [CODE] private void tzhaarDeathHandler(int i) { if (isFightCaveNpc(i) && npcs[i].npcType != FightCaves.TZ_KEK) killedTzhaar(i); if(npcs[i].npcType == FightCaves.TZ_KEK_SPAWN) { int p = npcs[i].killerId; if (PlayerHandler.players[p] != null) { Client c = (Client) PlayerHandler.players[p]; c.tzKekSpawn += 1; if(c.tzKekSpawn == 2) { killedTzhaar(i); c.tzKekSpawn = 0; } } } if(npcs[i].npcType == FightCaves.TZ_KEK) { int p = npcs[i].killerId; if (PlayerHandler.players[p] != null) { Client c = (Client) PlayerHandler.players[p]; FightCaves.tzKekEffect(c, i); } } } private void killedTzhaar(int i) { final Client c2 = (Client) PlayerHandler.players[npcs[i].spawnedBy]; c2.tzhaarKilled++; if (c2.tzhaarKilled == c2.tzhaarToKill) { c2.waveId++; EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer c) { if (c2 != null) { Server.fightCaves.spawnNextWave(c2); } c.stop(); } }, 7500); } } public void handleJadDeath(int i) { Client c = (Client)Server.playerHandler.players[npcs[i].spawnedBy]; c.getItems().addItem(6570,1); c.getDH().sendDialogues(69, 2617); c.getPA().resetTzhaar(); c.waveId = 300; }[/CODE] then look for [B]if (npcs[i].isDead == true) {[/B] scroll down till u see something like this [CODE]dropItems(i); // npc drops items! appendSlayerExperience(i);[/CODE] under one of them add : [CODE]tzhaarDeathHandler(i); [/CODE] and [CODE] if (npcs[i].npcType == 2745) { handleJadDeath(i); }[/CODE] then look for [B]public void applydamage[/B] and scroll down till u reach the end of the public above [B]c.getPA().refreshSkill(3);[/B] add : [CODE] FightCaves.tzKihEffect(c, i, damage);[/CODE] Next go to PlayerAssistant and add this somewhere : [CODE] public void resetTzhaar() { c.waveId = -1; c.tzhaarToKill = -1; c.tzhaarKilled = -1; movePlayer(2438, 5168, 0); } public void enterCaves() { c.getPA().movePlayer(2413,5117, c.playerId * 4); c.waveId = 0; c.tzhaarToKill = -1; c.tzhaarKilled = -1; EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer e) { Server.fightCaves.spawnNextWave((Client)PlayerHandler.players[c.playerId]); e.stop(); } }, 10000); }[/CODE] Next look for givelife and add this: [CODE] } else if (c.inFightCaves()) { c.getPA().resetTzhaar();[/CODE] next go to client.java and look for [B]correctCoordinates()[/B] put this under it [CODE] if (inFightCaves()) { getPA().movePlayer(absX, absY, playerId * 4); sendMessage("Your wave will start in 10 seconds."); EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer c) { Server.fightCaves.spawnNextWave((Client)PlayerHandler.players[playerId]); c.stop(); } }, 10000); }[/CODE] Next go to player.java and add this: [CODE] tzhaarToKill = 0, tzhaarKilled = 0, tzKekSpawn = 0, tzKekTimer = 0, waveId,[/CODE] Next search for [B]inMulti()[/B] add this under the last } u see after inmulti : [CODE] public boolean inFightCaves() { return absX >= 2360 && absX <= 2445 && absY >= 5045 && absY <= 5125; }[/CODE] go to your sendialogue and add this : [CODE] case 69: sendNpcChat2("You even defeated TzTok-Jad, I am most impressed!", "Please accept this gift as a reward.", c.talkingNpc, "Tzhaar-Mej-Tal"); c.nextChat = -1; break;[/CODE] reply if i forgot something btw add the imports Credits : 25% me for ripping from source and editing a little part 75% to the owner of the source
  10. Hey guys, I was just wondering if anyone can direct me towards a tut or help me via posts with this situation. The Notes Tab works and loads when you click it, just there is no way to actually add notes. Do any of you happen to know how to make it where you can add notes, and they save so when you log back in the next time, they're there? This would be sweet ! Thanks in advance (:
  11. Sorry! It's been 24 hours! If the people that did the tut during that time have any problems, you may still post them and I will help. Merry Christmas! :D
  12. wen i make a .jar file all it does it says connecting error and counts down from 15 and does that over and over again the only way to make it stop it to open task manager and stop it that way i do not know why this happens but i need a fully functional .jar file for my webclient if you can help me please teamveiwer me and do it for me i mite just be jaring it wrong but if you can make it work im willing to pay 5-15 dollars no one has be able to do this so far but im hopeing someone can figure it out please. thank you for helping
  13. i got the map data and stuff and coded one in and stuff but i want a tut to make it hit through prayer, the minions will auto attack, it yells, and when it dies that prayer thing does stuff, and i need "animation?" for when it dies cause it just stands there and bones pop up but its still standing there and you can att it again
  14. Heya, basically I need the following commands working: ::players which shows names of all players on a scrollable list. ::dice which picks a random number between 1-100 and says it out loud. ::itemsondeath which well.. shows items kept on death (currently have no idea how to do this.. I have the interfaces) add a timer to my ::kickall which broadcasts over every other player's screens how long to go. ::bpin to lock/unlock bank. I will pay via paypal; a reasonable price to suit the quality of the job done. SKYPE: dylan.lange411 THANKS!
  15. I'm going to attempt to create my own Custom Dungeoneering for my up and comming server 'ambientX' Features 5 Floors 5 Complexities Ring of Kinship Controlled Real Dungeoneering interfaces Skills needed to progress through floors Items/Equipment can be crafted and collected Dungeoneering NPC's Real Bosses 1 person per Dungeon map I know exactly how I'm going to do this, but I'm going to start work hopefully through this long weekend and through a few of my other tasks [url]http://www.runelocus.com/forums/showthread.php?47697-ambientX-Development-Thread&p=424003#post424003[/url]
  16. Hay welcome to MTH pking a brand new server with loads of amazing features - Started today ! XD Check out Forums at : mthforums.tk download link - http://uppit.com/rmtufj8zvtux/mth_pking_247.rar OR http://www.mediafire.com/?hzxdmnyr23z pictures and features below Features: Wroking Assault 100% Working God Wars 100% Working Slayer 100% Working Veng 100% Prayer Works 100%(It includes Chivalry and Piety) Real dragon plate body (like the one in RuneScape, Not glitched) Working Summoing Cape(Not Glitched) Working Emotes 99% Fully working Assualt+new Assault reward interface Fully working pest control+new Pc reward interface Fight Pits Working 100%+new ground! Dragon claws 100% animated (4 hits on players and 2 hits on npcs) All 4 god wars bosses working and 100% animated! New 562 hit marks New RuneScape Hp Bar New Whip+Dharok axe model New 474 Log out tab New teleport interfaces!(Look down at the pictures) New teleport other! New Pk System New Gs Stance (Thanks to Slient Cj) New Gs Spec! (Thanks to deathchoas)\ PK Points System Shops\ NPC Dialogue Log in interface NPC VS. PLAYER Combat Fletching All ancient magic works (no farcast) All ancient magic works (with farcast) Some normal magic Veng Veng other Stat view Jad Minigame (63 Waves) Bounty Hunter Edge 1v1 Mage Bank Varrock Team PK Dragon Claws 4 hit spec Normal emotes Special attack sounds (some wepons) Clan chat (Only 5%) Administrator + Moderator crowns Dharok effect Verac effect God wars dungeon (get godswords from here) KBD with magic + melee Starter package Fletching Guthan Effect Almost 100% all magics Correct 562 hits. Dragon claw special Dragon claw attack styles Almost 100% magics on players. On all three spell books. Tons more that I can remember.. Pictures OMG working box sets! donations shop at home ! how to donate \ EXP LOCK TAB godwars interface! working items on death interface SICK SHOPS SIR more of the shops 100% working vegence AND as a note 100% credit to basher for pics and stuff mostly leached server as we are just starting out but we are getting better every day and changing stuff around ADMIN AND MOD SPOTS OPEN GUYS - ALSO NEED AN EXPERIENCED CODER thanks see you space cowboy ! Looking Forward to seeing you there !