Jump to content

Search the Community

Showing results for tags 'curses'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • 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

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Found 29 results

  1. Hi guys, im having an issue with the ancient curses in relation to quick prayers, its not a massive issue but it is puzzling me. To inform everyone, the curses work 100% correctly normally, however when selecting quick prayers, there should be a tick after its been selected and i cant get it to tick. (Even though it doesn't tick, the prayer you click does work, but its just annoying as you don't know which prayers are selected.) I am guessing its something to do with access masks, or configs but that is a dark area for me as i don't know how to get hold of them. The current configs for the quick prayers are here: if (p.QuickPrayer == false) { p.getActionSender().sendBConfig(168,6); p.getActionSender().sendBConfig(181,1); p.getActionSender().sendAccessMask(2, 271, 7, 0, 27); QuickPrayerConfig(p); p.QuickPrayer = true; } Sorry for being confusing. Here is a picture to explain what i mean. [IMG]http://i.imgur.com/LqgYpTN.png[/IMG] And this is what i want it too do [IMG]http://i.imgur.com/LfySgEt.png[/IMG] Again to clear up, ancient curses are working fine, its just there not ticking.
  2. I can't active Deflect summoning with protect from melee at the same time or ranged or mage.. I think this is the code public void Deflect(int damage, int i, int attackStyle) { boolean deflectPlayer = (attackStyle == 0 && PlayerHandler.players[i].curseActive[9]) || (attackStyle == 1 && PlayerHandler.players[i].curseActive[8]) || (attackStyle == 2 && PlayerHandler.players[i].curseActive[7]); int[] gfx = {2230, 2229, 2228, 2228}; if (damage > 0 && deflectPlayer) { int deflect = (damage < 10) ? 1 : (int)(damage / 10); c.getCombat().appendHit(c, deflect, 0, 3, false, 0); c.gfx0(gfx[attackStyle]); c.startAnimation(12573); } }
  3. wasolsdpker

    PI curses

    Anyone help ? I can't have summoning pray on with deflect mage, or range or melee... [img]http://i.gyazo.com/22f1368bc77f3fb2b22475f6cb4c9714.gif[/img]
  4. ok, so. when i switch from normal prayers, to curses, it still shows the normal curses on the bottom.. The server is Goudont [IMG]http://i.imgur.com/IVfP5Sg.png[/img] [IMG]http://i.imgur.com/Dd6DoGo.png[/img]
  5. So my source is a bit different in its class system. It is separated into many sub classes. So i need to add a chaos alter in order to switch the prayers from regular to curses and back. I have the case implemented into my action handler and I seem to be getting these two errors. Here is the code. Only 2 errors Fixed Code: [CODE] case 411: if (c.getFields().getPrayerBook() == PrayerBook.NORMAL) { c.getFields().setPrayerBook(PrayerBook.CURSES); c.setSidebarInterface(5, PrayerBook.CURSES.getInterfaceId()); c.getCombat.resetPrayers(); c.sendMessage("Prayers Switched to Curses"); } else if (c.getFields().getPrayerBook() == PrayerBook.CURSES) { c.setSidebarInterface(5, PrayerBook.NORMAL.getInterfaceId()); c.getFields().setPrayerBook(PrayerBook.NORMAL); c.getPA().resetCurse(); c.sendMessage("Back to regular prayers"); } break; [/CODE] Errors: [CODE] src\org\pandemonium\game\entity\ActionHandler.java:78: error: cannot find symbol c.getCombat.resetPrayers(); ^ symbol: variable getCombat location: variable c of type Player src\org\pandemonium\game\entity\ActionHandler.java:83: error: cannot find symbol c.getPA().resetCurse(); ^ symbol: method resetCurse() location: class PlayerAssistant 2 errors Press any key to continue . . . [/CODE] So i looked at a few other previous other sources and it works because the resetCurse and resetPrayer are in PlayerAssistant and CombatAssistant. Mine are located here and i don't know how to call them in actionhandler nor can I transfer them to PA or CA. I can import those classes but I still don't know how. CombatPrayer.Java [CODE] package org.pandemonium.game.content.combat.prayer; import org.pandemonium.game.GameConstants; import org.pandemonium.game.entity.player.Player; /** * Handles combat prayers */ public class CombatPrayer extends PrayerData { public static void handlePrayerDrain(Player p) { p.usingPrayer = false; double toRemove = 0.0; for (int j = 0; j < prayerData.length; j++) { if (p.prayerActive[j]) { toRemove += prayerData[j] / 20; p.usingPrayer = true; } } for (int j = 0; j < PrayerData.curseData.length; j++) { if (p.curseActive[j]) { toRemove += PrayerData.curseData[j] / 20; p.usingPrayer = true; } } if (toRemove > 0) toRemove /= (1 + (0.035 * p.playerBonus[11])); p.prayerPoint -= toRemove; if (p.prayerPoint <= 0) { p.prayerPoint = 1.0 + p.prayerPoint; reducePrayerLevel(p); } } public static void reducePrayerLevel(Player p) { if (p.playerLevel[5] - 1 > 0) { p.playerLevel[5] -= 1; } else { p.sendMessage("You have run out of prayer points!"); p.playerLevel[5] = 0; Curses.resetCurse(p); resetPrayers(p); p.prayerId = -1; } p.getPA().refreshSkill(5); } public static void resetGlow(Player p, RegularPrayers pray) { p.getPA().sendFrame36(pray.getGlowId(), 0); p.prayerActive[pray.ordinal()] = false; } [COLOR="#FF0000"] public static void resetPrayers(Player p) { for (RegularPrayers r : RegularPrayers.values()) { p.prayerActive[r.ordinal()] = false; p.getPA().sendFrame36(r.getGlowId(), 0); } p.headIcon = -1; p.getPA().requestUpdates(); }[/COLOR] public static boolean CombatPrayers(RegularPrayers pray) { if (pray == RegularPrayers.RAPID_RESTORE || pray == RegularPrayers.RAPID_HEAL || pray == RegularPrayers.PROTECT_ITEM || pray == RegularPrayers.RETRIBUTION || pray == RegularPrayers.REDEMPTION || pray == RegularPrayers.SMITE) return true; return false; } public static void resetOtherPrayers(Player p, RegularPrayers pray) { switch (pray) { case THICK_SKIN: resetGlow(p, RegularPrayers.ROCK_SKIN); resetGlow(p, RegularPrayers.STEEL_SKIN); resetGlow(p, RegularPrayers.CHIVALRY); resetGlow(p, RegularPrayers.PIETY); break; case BURST_OF_STRENGTH: resetGlow(p, RegularPrayers.SUPERHUMAN_STRENGTH); resetGlow(p, RegularPrayers.ULTIMATE_STRENGTH); resetGlow(p, RegularPrayers.CHIVALRY); resetGlow(p, RegularPrayers.PIETY); break; case CLARITY_OF_THOUGHT: resetGlow(p, RegularPrayers.IMPROVED_REFLEXES); resetGlow(p, RegularPrayers.INCREDIBLE_REFLEXES); resetGlow(p, RegularPrayers.CHIVALRY); resetGlow(p, RegularPrayers.PIETY); break; case SHARP_EYE: resetGlow(p, RegularPrayers.HAWK_EYE); resetGlow(p, RegularPrayers.EAGLE_EYE); resetGlow(p, RegularPrayers.CHIVALRY); resetGlow(p, RegularPrayers.PIETY); break; case MYSTIC_WILL: resetGlow(p, RegularPrayers.MYSTIC_LORE); resetGlow(p, RegularPrayers.MYSTIC_MIGHT); resetGlow(p, RegularPrayers.CHIVALRY); resetGlow(p, RegularPrayers.PIETY); break; case ROCK_SKIN: resetGlow(p, RegularPrayers.THICK_SKIN); resetGlow(p, RegularPrayers.STEEL_SKIN); resetGlow(p, RegularPrayers.CHIVALRY); resetGlow(p, RegularPrayers.PIETY); break; case SUPERHUMAN_STRENGTH: resetGlow(p, RegularPrayers.BURST_OF_STRENGTH); resetGlow(p, RegularPrayers.ULTIMATE_STRENGTH); resetGlow(p, RegularPrayers.CHIVALRY); resetGlow(p, RegularPrayers.PIETY); break; case IMPROVED_REFLEXES: resetGlow(p, RegularPrayers.CLARITY_OF_THOUGHT); resetGlow(p, RegularPrayers.INCREDIBLE_REFLEXES); resetGlow(p, RegularPrayers.CHIVALRY); resetGlow(p, RegularPrayers.PIETY); break; case HAWK_EYE: resetGlow(p, RegularPrayers.SHARP_EYE); resetGlow(p, RegularPrayers.EAGLE_EYE); resetGlow(p, RegularPrayers.CHIVALRY); resetGlow(p, RegularPrayers.PIETY); break; case MYSTIC_LORE: resetGlow(p, RegularPrayers.MYSTIC_WILL); resetGlow(p, RegularPrayers.MYSTIC_MIGHT); resetGlow(p, RegularPrayers.CHIVALRY); resetGlow(p, RegularPrayers.PIETY); break; case ULTIMATE_STRENGTH: resetGlow(p, RegularPrayers.BURST_OF_STRENGTH); resetGlow(p, RegularPrayers.SUPERHUMAN_STRENGTH); resetGlow(p, RegularPrayers.CHIVALRY); resetGlow(p, RegularPrayers.PIETY); break; case INCREDIBLE_REFLEXES: resetGlow(p, RegularPrayers.CLARITY_OF_THOUGHT); resetGlow(p, RegularPrayers.IMPROVED_REFLEXES); resetGlow(p, RegularPrayers.CHIVALRY); resetGlow(p, RegularPrayers.PIETY); break; case EAGLE_EYE: resetGlow(p, RegularPrayers.SHARP_EYE); resetGlow(p, RegularPrayers.HAWK_EYE); resetGlow(p, RegularPrayers.CHIVALRY); resetGlow(p, RegularPrayers.PIETY); break; case MYSTIC_MIGHT: resetGlow(p, RegularPrayers.MYSTIC_WILL); resetGlow(p, RegularPrayers.MYSTIC_LORE); resetGlow(p, RegularPrayers.CHIVALRY); resetGlow(p, RegularPrayers.PIETY); break; case PROTECT_FROM_MAGIC: case PROTECT_FROM_MISSILES: case PROTECT_FROM_MELEE: case RETRIBUTION: case REDEMPTION: case SMITE: for (RegularPrayers r : RegularPrayers.values()) if (r.getHeadIcon() > -1 && r != pray) resetGlow(p, r); break; case CHIVALRY: case PIETY: for (RegularPrayers r : RegularPrayers.values()) if (!CombatPrayers(r) && r != pray) resetGlow(p, r); break; default: break; } } public static void activatePrayer(Player p, int buttonId) { RegularPrayers r = RegularPrayers.forButton(buttonId); int i = r.ordinal(); if (p.isDead || p.getConstitution() <= 0) return; if (p.playerRights == 5) p.sendMessage("Pray Name: " + r.getPrayerName()); if (p.playerLevel[5] <= 0 && GameConstants.PRAYER_POINTS_REQUIRED) { p.getPA().sendFrame36(r.getGlowId(), 0); p.sendMessage("You have run out of prayer points!"); return; } if (p.getPA().getLevelForXP(p.playerXP[5]) < r.getLevelReq() && GameConstants.PRAYER_LEVEL_REQUIRED) { p.getPA().sendFrame36(r.getGlowId(), 0); p.getDH().sendStatement( "You need a @[email protected] level of " + r.getLevelReq() + " to use " + r.getPrayerName() + "."); return; } boolean headIcon = false; switch (r) { case THICK_SKIN: case BURST_OF_STRENGTH: case CLARITY_OF_THOUGHT: case SHARP_EYE: case MYSTIC_WILL: case ROCK_SKIN: case SUPERHUMAN_STRENGTH: case IMPROVED_REFLEXES: case HAWK_EYE: case MYSTIC_LORE: case STEEL_SKIN: case ULTIMATE_STRENGTH: case INCREDIBLE_REFLEXES: case EAGLE_EYE: case MYSTIC_MIGHT: case CHIVALRY: case PIETY: resetOtherPrayers(p, r); break; case PROTECT_FROM_MAGIC: case PROTECT_FROM_MISSILES: case PROTECT_FROM_MELEE: if (System.currentTimeMillis() - p.stopPrayerDelay < 5000) { p.sendMessage("You have been injured and can't use this prayer!"); p.getPA().sendFrame36(r.getGlowId(), 0); return; } headIcon = true; break; case RETRIBUTION: case REDEMPTION: case SMITE: headIcon = true; resetOtherPrayers(p, r); break; default: break; } if (!headIcon) { if (p.prayerActive[i] == false) { p.prayerActive[i] = true; p.getPA().sendFrame36(r.getGlowId(), 1); } else { p.prayerActive[i] = false; p.getPA().sendFrame36(r.getGlowId(), 0); } } else { if (p.prayerActive[i] == false) { p.prayerActive[i] = true; p.getPA().sendFrame36(r.getGlowId(), 1); p.headIcon = r.getHeadIcon(); p.getPA().requestUpdates(); } else { p.prayerActive[i] = false; p.getPA().sendFrame36(r.getGlowId(), 0); p.headIcon = -1; p.getPA().requestUpdates(); } } } } [/CODE] Curses.java [CODE] package org.pandemonium.game.content.combat.prayer; import org.pandemonium.game.GameConstants; import org.pandemonium.game.content.PrayerBook; import org.pandemonium.game.content.combat.util.ProjectileHandler; import org.pandemonium.game.entity.Animation; import org.pandemonium.game.entity.Entity; import org.pandemonium.game.entity.Entity.AttackTypes; import org.pandemonium.game.entity.Graphic; import org.pandemonium.game.entity.player.Player; import org.pandemonium.utility.Misc; public class Curses extends PrayerData { [COLOR="#FF0000"]public static void resetCurse(Player p) { for (CursedPrayers c : CursedPrayers.values()) { p.curseActive[c.ordinal()] = false; p.getPA().sendFrame36(c.getGlowId(), 0); } p.headIcon = -1; p.getPA().requestUpdates(); }[/COLOR] public static void resetGlow(Player p, CursedPrayers curse) { p.getPA().sendFrame36(curse.getGlowId(), 0); p.curseActive[curse.ordinal()] = false; } public static boolean CombatPrayers(CursedPrayers curse) { if (curse == CursedPrayers.PROTECT_ITEM || curse == CursedPrayers.BERSERKER || curse == CursedPrayers.WRATH || curse == CursedPrayers.SOULSPLIT) return false; return true; } public static void resetOtherPrayers(Player p, CursedPrayers curses) { switch (curses) { case SAP_WARRIOR: resetGlow(p, CursedPrayers.LEECH_ATTACK); resetGlow(p, CursedPrayers.LEECH_DEFENCE); resetGlow(p, CursedPrayers.LEECH_STRENGTH); resetGlow(p, CursedPrayers.TURMOIL); break; case SAP_MAGE: resetGlow(p, CursedPrayers.LEECH_MAGIC); resetGlow(p, CursedPrayers.TURMOIL); break; case SAP_RANGER: resetGlow(p, CursedPrayers.LEECH_RANGED); resetGlow(p, CursedPrayers.TURMOIL); break; case SAP_SPIRIT: resetGlow(p, CursedPrayers.LEECH_SPECIAL_ATTACK); resetGlow(p, CursedPrayers.TURMOIL); break; case DEFLECT_SUMMONING: case DEFLECT_MAGIC: case DEFLECT_MISSILES: case DEFLECT_MELEE: case WRATH: case SOULSPLIT: for (CursedPrayers c : CursedPrayers.values()) if (c.getHeadIcon() > -1 && c != curses) resetGlow(p, c); break; case LEECH_ATTACK: resetGlow(p, CursedPrayers.SAP_WARRIOR); resetGlow(p, CursedPrayers.TURMOIL); break; case LEECH_MAGIC: resetGlow(p, CursedPrayers.SAP_MAGE); resetGlow(p, CursedPrayers.TURMOIL); break; case LEECH_RANGED: resetGlow(p, CursedPrayers.SAP_RANGER); resetGlow(p, CursedPrayers.TURMOIL); break; case LEECH_DEFENCE: resetGlow(p, CursedPrayers.SAP_WARRIOR); resetGlow(p, CursedPrayers.TURMOIL); break; case LEECH_STRENGTH: resetGlow(p, CursedPrayers.SAP_WARRIOR); resetGlow(p, CursedPrayers.TURMOIL); break; case LEECH_SPECIAL_ATTACK: resetGlow(p, CursedPrayers.SAP_SPIRIT); resetGlow(p, CursedPrayers.TURMOIL); break; case TURMOIL: resetGlow(p, CursedPrayers.SAP_WARRIOR); resetGlow(p, CursedPrayers.SAP_MAGE); resetGlow(p, CursedPrayers.SAP_RANGER); resetGlow(p, CursedPrayers.SAP_SPIRIT); resetGlow(p, CursedPrayers.LEECH_ATTACK); resetGlow(p, CursedPrayers.LEECH_MAGIC); resetGlow(p, CursedPrayers.LEECH_RANGED); resetGlow(p, CursedPrayers.LEECH_DEFENCE); resetGlow(p, CursedPrayers.LEECH_STRENGTH); resetGlow(p, CursedPrayers.LEECH_SPECIAL_ATTACK); break; default: break; } } public static void activateCurse(Player p, int buttonId) { CursedPrayers curses = CursedPrayers.forButton(buttonId); if (p.playerRights == 5) p.sendMessage("[Debug] Curse Id: " + curses.getPrayerName()); if (p.inRFD) { p.sendMessage("You can't use prayer on this minigame."); return; } if (p.playerLevel[1] < 28) { p.getPA().sendFrame36(curses.getGlowId(), 0); p.getDH().sendStatement( "You need a @[email protected] level of 28 to use " + curses.getPrayerName() + "."); return; } if (p.getFields().getPrayerBook() != PrayerBook.CURSES) { resetCurse(p); p.sendMessage("You are not on the right prayer book to activate this curse."); return; } if (p.getConstitution() <= 0) { p.getPA().sendFrame36(curses.getGlowId(), 0); p.sendMessage("You can't activate this curse when you are dead."); return; } if (p.playerLevel[5] <= 0 && GameConstants.PRAYER_POINTS_REQUIRED) { p.getPA().sendFrame36(curses.getGlowId(), 0); p.sendMessage("You have run out of Prayer points!"); p.sendMessage("You can recharge at an altar."); return; } if (p.getPA().getLevelForXP(p.playerXP[5]) <= curses.getLevelReq() && GameConstants.PRAYER_LEVEL_REQUIRED) { p.getPA().sendFrame36(curses.getGlowId(), 0); p.getDH().sendStatement( "You need a @[email protected] level of " + curses.getLevelReq() + " to use " + curses.getPrayerName() + "."); return; } boolean headIcon = false; int i = curses.ordinal(); switch (curses) { case PROTECT_ITEM: p.performAnimation(new Animation(12567)); p.performGraphic(new Graphic(2213)); p.lastProtItem = System.currentTimeMillis(); break; case BERSERKER: p.performAnimation(new Animation(12589)); p.performGraphic(new Graphic(2266)); break; case DEFLECT_SUMMONING: case DEFLECT_MAGIC: case DEFLECT_MISSILES: case DEFLECT_MELEE: if (System.currentTimeMillis() - p.stopPrayerDelay < 5000) { p.sendMessage("You have been injured and can't use this prayer!"); p.getPA().sendFrame36(curses.getGlowId(), 0); return; } headIcon = true; if (p.curseActive[curses.ordinal()] == false) resetOtherPrayers(p, curses); break; case SAP_WARRIOR: case LEECH_ATTACK: case SAP_RANGER: case LEECH_RANGED: case SAP_MAGE: case LEECH_MAGIC: case SAP_SPIRIT: case LEECH_SPECIAL_ATTACK: case LEECH_DEFENCE: case LEECH_STRENGTH: if (p.curseActive[curses.ordinal()] == false) resetOtherPrayers(p, curses); break; case WRATH: case SOULSPLIT: headIcon = true; if (p.curseActive[curses.ordinal()] == false) resetOtherPrayers(p, curses); break; case TURMOIL: p.performAnimation(new Animation(12565)); p.performGraphic(new Graphic(2226)); if (p.curseActive[curses.ordinal()] == false) resetOtherPrayers(p, curses); break; default: break; } if (!headIcon) { if (p.curseActive[i] == false) { p.curseActive[i] = true; p.getPA().sendFrame36(curses.getGlowId(), 1); } else { p.curseActive[i] = false; p.getPA().sendFrame36(curses.getGlowId(), 0); } } else { if (p.curseActive[i] == false) { p.curseActive[i] = true; p.getPA().sendFrame36(curses.getGlowId(), 1); p.headIcon = curses.getHeadIcon(); p.getPA().requestUpdates(); } else { p.curseActive[i] = false; p.getPA().sendFrame36(curses.getGlowId(), 0); p.headIcon = -1; p.getPA().requestUpdates(); } } } public static void applyCurses(Entity attacker, Entity target, int damage) { if (attacker.isPlayer()) { Player p = (Player) attacker; if (p.curseActive[1] || p.curseActive[2] || p.curseActive[3] || p.curseActive[10] || p.curseActive[11] || p.curseActive[12] || p.curseActive[13] || p.curseActive[14] || p.curseActive[16]) applyLeeches(p, target); if (p.curseActive[18]) handleSoulSplit(attacker, target, damage); } if (damage > 0) if (target.isPlayer()) if (((Player) target).curseActive[7] && attacker.getAttackType() == AttackTypes.MAGIC) handleDeflectPrayers(attacker, target, damage, 0); else if (((Player) target).curseActive[8] && attacker.getAttackType() == AttackTypes.RANGED) handleDeflectPrayers(attacker, target, damage, 1); else if (((Player) target).curseActive[9] && attacker.getAttackType() == AttackTypes.MELEE) handleDeflectPrayers(attacker, target, damage, 2); } public static int[] deflectData = { 2228, 2229, 2230 }; public static void handleDeflectPrayers(Entity attacker, Entity target, int damage, int i) { if (attacker.getConstitution() <= 0) return; if (target == null) return; if (!((Player) target).curseActive[i + 7]) return; int deflectDamage = (int) (damage * 0.05) + 1; target.performGraphic(new Graphic(deflectData[i])); target.performAnimation(new Animation(12573)); attacker.setDoubleHit(deflectDamage, 0, 3); } public static void applyLeeches(Player attacker, Entity target) { if (target == null) return; int[] projectileGfx = { 2252, 2236, 2240, 2242, 2248 }; int[] targetGfx = { 2253, 2238, 2242, 2246, 2250 }; String[] curseName = { "attack", "ranged", "magic", "defense", "strength" }; for (int i = 0; i < 17; i++) { if (i >= 10 && i < 15) { if (attacker.curseActive[i]) { int failed = Misc.random(8); int id = i - 10; if (failed == 8) { double targetEffect = target.prayerEffects[id]; double attackerEffect = attacker.prayerEffects[id]; if (targetEffect > 0.75 && attackerEffect < 1.1) { if (targetEffect - 0.1 < 0.75) target.prayerEffects[id] = 0.75; else target.prayerEffects[id] -= 0.1; if (attackerEffect + 0.05 > 1.1) attacker.prayerEffects[id] = 1.1; else attacker.prayerEffects[id] += 0.05; } if (target.isPlayer()) ((Player) target).sendMessage("Your " + curseName[id] + " has been leeched by " + attacker.playerName.toLowerCase() + "."); ProjectileHandler.curseProjectile(attacker, target, projectileGfx[id]); attacker.sendMessage("Your curse leechs the enemy's " + curseName[id] + "."); target.performGraphic(new Graphic(targetGfx[id])); attacker.performAnimation(new Animation(12575)); } } } } if (attacker.curseActive[16]) { int failed = Misc.random(10); if (failed == 10) { if (target.isPlayer()) { Player t = (Player) target; if (t.specAmount > 1.0) { if (attacker.specAmount <= 9.0) { attacker.specAmount += 1.0; t.specAmount -= 1.0; t.sendMessage("Your special attack has been leeched by " + attacker.playerName.toLowerCase() + "."); } } } ProjectileHandler.curseProjectile(attacker, target, 2256); target.performGraphic(new Graphic(2258)); attacker.performAnimation(new Animation(12575)); } } if (attacker.curseActive[1]) { int failed = Misc.random(8); if (failed == 8) { if (target.prayerEffects[0] > 0.8 && target.prayerEffects[0] - 0.1 > 0.8) target.prayerEffects[0] -= 0.1; if (target.prayerEffects[3] > 0.8 && target.prayerEffects[3] - 0.1 > 0.8) target.prayerEffects[3] -= 0.1; if (target.prayerEffects[4] > 0.8 && target.prayerEffects[4] - 0.1 > 0.8) target.prayerEffects[4] -= 0.1; if (target.isPlayer()) ((Player) target) .sendMessage("Your attack has been drained by " + attacker.playerName.toLowerCase() + "."); } attacker.performGraphic(new Graphic(2214)); ProjectileHandler.curseProjectile(attacker, target, 2215); attacker.sendMessage("Your curse drains the enemy's attack."); target.performGraphic(new Graphic(2234)); attacker.performAnimation(new Animation(12569)); } if (attacker.curseActive[2]) { int failed = Misc.random(8); if (failed == 8) { if (target.prayerEffects[1] > 0.8 && target.prayerEffects[1] - 0.1 > 0.8) target.prayerEffects[1] -= 0.1; if (target.isPlayer()) ((Player) target) .sendMessage("Your ranged has been drained by " + Misc.optimizeText(attacker.playerName) .toLowerCase() + "."); attacker.sendMessage("Your curse drains the enemy's ranged."); attacker.performGraphic(new Graphic(2217)); ProjectileHandler.curseProjectile(attacker, target, 2218); target.performGraphic(new Graphic(2235)); attacker.performAnimation(new Animation(12569)); } } if (attacker.curseActive[3]) { int failed = Misc.random(8); if (failed == 8) { if (target.prayerEffects[2] > 0.8 && target.prayerEffects[2] - 0.1 > 0.8) target.prayerEffects[2] -= 0.1; if (target.isPlayer()) ((Player) target) .sendMessage("Your magic has been drained by " + Misc.optimizeText(attacker.playerName) .toLowerCase() + "."); attacker.sendMessage("Your curse drains the enemy's magic."); attacker.performGraphic(new Graphic(2220)); ProjectileHandler.curseProjectile(attacker, target, 2221); target.performGraphic(new Graphic(2239)); attacker.performAnimation(new Animation(12569)); } } } public static void handleSoulSplit(Entity attacker, Entity target, int damage) { Player a = (Player) attacker; int form = damage / 4; if (form <= 0 || target == null || target.getConstitution() <= 0) return; if (attacker.getConstitution() + form >= attacker.getMaxConstitution()) attacker.setConstitution(attacker.getMaxConstitution()); else attacker.setConstitution(attacker.getConstitution() + form); if (target.isPlayer()) if (target.getPrayer() - form > 0) target.setPrayer(target.getPrayer() - form); else target.setPrayer(0); target.performGraphic(new Graphic(2264)); a.getPA().refreshSkill(3); ProjectileHandler.soulsplitProjectile(attacker, target); } public static void applyWrath(Player attacker, Entity target) { int wrathDamage = (attacker.playerLevel[5] / 100) * 26; if (target == null) return; if (attacker.inDuelArena() || target.inDuelArena()) return; attacker.performGraphic(new Graphic(2259)); attacker.performAnimation(new Animation(12583)); target.performGraphic(new Graphic(2260)); target.setSingleHit(wrathDamage, 0, 3); } } [/CODE]
  6. First off go to Player.java Add [CODE]/* Curse Prayers */ public int leechEnergyDelay, soulSplitDelay, leechAttackDelay, attackMultiplier, rangedMultiplier, leechRangedDelay, leechDefenceDelay, defenceMultiplier, leechMagicDelay, magicMultiplier, leechStrengthDelay, strengthMultiplier, leechSpecialDelay; public final int[] CURSE_DRAIN_RATE = { 500,500,500,500,500, 500,500,500,500,500, 500,500,500,500,500, 500,500,500,500,500 }; public final int[] CURSE_LEVEL_REQUIRED = { 50,50,52,54,56, 59,62,65,68,71, 74,76,78,80,82, 84,86,89,92,95 }; public final int[] CURSE = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 }; public final String[] CURSE_NAME = { "Protect Item", "Sap Warrior", "Sap Ranger", "Sap Mage", "Sap Spirit", "Berserker", "Deflect Summoning", "Deflect Magic","Deflect Missiles", "Deflect Melee", "Leech Attack", "Leech Ranged", "Leech Magic", "Leech Defence", "Leech Strength", "Leech Energy", "Leech Special Attack", "Wrath", "Soul Split", "Turmoil" }; public final int[] CURSE_GLOW = { 610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629 }; public final int[] CURSE_HEAD_ICONS = { -1,-1,-1,-1,-1,-1,12,10,11,9,-1,-1,-1,-1,-1,-1,-1,16,17,-1 }; public boolean[] curseActive = { false,false,false,false,false, false,false,false,false,false, false,false,false,false,false, false,false,false,false,false }; /*End of curse prayers*/ [/CODE] Then go to Combatassistant.java and find the code [CODE]c.spellId = 0;[/CODE] And under it you will see something like this [CODE] if (!c.autocasting) c.npcIndex = 0; }[/CODE] Then i want to to add under that ^^ This [CODE] if (Misc.random(15) == 0) { npcleechAttack(0); } if (Misc.random(15) == 0) { npcleechDefence(0); } if (Misc.random(15) == 0) { npcleechStrength(0); } if (Misc.random(20) == 0) { npcleechSpecial(0); } if (Misc.random(15) == 0) { npcleechRanged(0); } if (Misc.random(15) == 0) { npcleechMagic(0); } if (c.soulSplitDelay <= 0) { applynpcSoulSplit(i, 1); }[/CODE] Then search for [CODE]o.frozenBy = c.playerId;[/CODE] You should see a code like this [CODE] if (!c.autocasting && c.spellId <= 0) c.playerIndex = 0; }[/CODE] Under that add [CODE] applyLeeches(i); if (c.soulSplitDelay <= 1) { applySoulSplit(i, 1);//Maded by zant!! }[/CODE] Then search for [CODE]Server.playerHandler.players[i].updateRequired = true;[/CODE] You should see a code like this [CODE] applySmite(i, damage); if (damage2 != -1) applySmite(i, damage2);[/CODE] Replace that with this [CODE] applySmite(i, damage); if (c.soulSplitDelay <= 1) { applySoulSplit(i, damage);//makes it like smite } if (damage2 != -1) applySmite(i, damage2);[/CODE] Then search for this [CODE]applySmite(i, damage);[/CODE] and replace it with this [CODE] applySmite(i, damage); if (c.soulSplitDelay <= 1) { applySoulSplit(i, damage);//Thank zant }[/CODE] and again search for [CODE]applySmite(i, damage1); switch(damageMask) {[/CODE] Replace with [CODE] applySmite(i, damage1); if (c.soulSplitDelay <= 1) { applySoulSplit(i, damage1);//Maded by zant } switch(damageMask) {[/CODE] Then find [CODE]public void applySmite(int index, int damage) {[/CODE] Should see something like this [CODE] public void applySmite(int index, int damage) { if (!c.prayerActive[23]) return; if (damage <= 0) return; if (Server.playerHandler.players[index] != null) { Client c2 = (Client)Server.playerHandler.players[index]; c2.playerLevel[5] -= (int)(damage/4); if (c2.playerLevel[5] <= 0) { c2.playerLevel[5] = 0; c2.getCombat().resetPrayers(); } c2.getPA().refreshSkill(5); } }[/CODE] Under that add [CODE]/*Zant Curses*/ public void applynpcSoulSplit(int index, int damage) { if (!c.curseActive[18]) return; if (c.oldNpcIndex > 0) { if (NPCHandler.npcs[c.oldNpcIndex] != null) { if (damage == 0) { c.sendMessage("test"); return; } if (c.curseActive[18] && !c.prayerActive[23] && (c.playerLevel[3] <= 99)) { int heal = 2; if (c.playerLevel[3] + heal >= c.getPA().getLevelForXP(c.playerXP[3])) { c.playerLevel[3] = c.getPA().getLevelForXP(c.playerXP[3]); } else { c.playerLevel[3] += heal; } c.getPA().refreshSkill(3); } final int pX = c.getX(); final int pY = c.getY(); final int nX = NPCHandler.npcs[c.oldNpcIndex].getX(); final int nY = NPCHandler.npcs[c.oldNpcIndex].getY(); final int offX = (pY - nY) * -1; final int offY = (pX - nX) * -1; c.getPA().createPlayersProjectile2(pX, pY, offX, offY, 50, 50, 2263, 9, 9, c.oldNpcIndex + 1, 24, 0); c.soulSplitDelay = 4; EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer s) { if (c.soulSplitDelay > 0) { c.soulSplitDelay--; } if (c.soulSplitDelay == 3) { NPCHandler.npcs[c.oldNpcIndex].gfx0(2264); // 1738 } if (c.soulSplitDelay == 2) { int offX2 = (nY - pY)* -1; int offY2 = (nX - pX)* -1; c.getPA().createPlayersProjectile(nX, nY, offX2, offY2, 50, 45, 2263, 31, 31, - c.playerId - 1, 0); } if (c.soulSplitDelay == 0) { s.stop(); } } }, 500); } } } public void applySoulSplit(int index, int damage) { if (!c.curseActive[18]) return; if (Server.playerHandler.players[index] != null) { final Client c2 = (Client)Server.playerHandler.players[index]; final int pX = c.getX(); final int pY = c.getY(); final int oX = c2.getX(); final int oY = c2.getY(); int offX = (pY - oY)* -1; int offY = (pX - oX)* -1; if (c.curseActive[18] && !c.prayerActive[23] && (c.playerLevel[3] <= 99)) { int heal = 2; if (c2.playerLevel[5] <= 0) { c2.playerLevel[5] = 0; c2.getCombat().resetPrayers(); } if (c.playerLevel[3] + heal >= c.getPA().getLevelForXP(c.playerXP[3])) { c.playerLevel[3] = c.getPA().getLevelForXP(c.playerXP[3]); } else { c.playerLevel[3] += heal; c2.playerLevel[5] -= 1; } c.getPA().refreshSkill(3); c2.getPA().refreshSkill(5); } c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 45, 2263, 31, 31, - c.oldPlayerIndex - 1, 0); c.soulSplitDelay = 4; EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer s) { if (c.soulSplitDelay > 0) { c.soulSplitDelay--; } if (c.soulSplitDelay == 3) { c2.gfx0(2264); } if (c.soulSplitDelay == 2) { int offX2 = (oY - pY)* -1; int offY2 = (oX - pX)* -1; c.getPA().createPlayersProjectile(oX, oY, offX2, offY2, 50, 45, 2263, 31, 31, - c.playerId - 1, 0); } if (c.soulSplitDelay == 0) { s.stop(); } } }, 500); } } public void deflectDamage(int damage) { int damage2 = 0; if (damage < 10) damage2 = 0; else damage2 = damage/10; c.dealDamage(damage2); } public void applyLeeches(int index) { if (Misc.random(20) == 0) { leechAttack(index); } if (Misc.random(20) == 0) { leechDefence(index); } if (Misc.random(20) == 0) { leechStrength(index); } if (Misc.random(20) == 0) { leechSpecial(index); } if (Misc.random(20) == 0) { leechRanged(index); } if (Misc.random(20) == 0) { leechMagic(index); } if (Misc.random(20) == 0) { leechEnergy(index); } } public void applynpcLeeches(int index) { if (Misc.random(20) == 0) { npcleechAttack(index); } if (Misc.random(20) == 0) { npcleechDefence(index); } if (Misc.random(20) == 0) { npcleechStrength(index); } if (Misc.random(20) == 0) { npcleechSpecial(index); } if (Misc.random(20) == 0) { npcleechRanged(index); } if (Misc.random(20) == 0) { npcleechMagic(index); } if (Misc.random(20) == 0) { npcleechEnergy(index); } } public void leechAttack(int index) { if (!c.curseActive[10]) return; if (Server.playerHandler.players[index] != null) { final Client c2 = (Client)Server.playerHandler.players[index]; final int pX = c.getX(); final int pY = c.getY(); final int oX = c2.getX(); final int oY = c2.getY(); int offX = (pY - oY)* -1; int offY = (pX - oX)* -1; c.sendMessage("You leech your opponent's attack."); c.startAnimation(12575); c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 45, 2231, 43, 31, - c.oldPlayerIndex - 1, 1); c.leechAttackDelay = 2; EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer s) { if (c.leechAttackDelay > 0) { c.leechAttackDelay--; } if (c.leechAttackDelay == 1) { c2.gfx0(2232); if (c.attackMultiplier < 1.10) { c.attackMultiplier += 0.01; } if (c2.attackMultiplier > 0.80) { c2.attackMultiplier -= 0.01; } } if (c.leechAttackDelay == 0) { s.stop(); } } }, 500); } } public void leechRanged(int index) { if (!c.curseActive[11]) return; if (Server.playerHandler.players[index] != null) { final Client c2 = (Client)Server.playerHandler.players[index]; final int pX = c.getX(); final int pY = c.getY(); final int oX = c2.getX(); final int oY = c2.getY(); int offX = (pY - oY)* -1; int offY = (pX - oX)* -1; c.sendMessage("You leech your opponent's range."); c.startAnimation(12575); c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 45, 2236, 43, 31, - c.oldPlayerIndex - 1, 0); c.leechRangedDelay = 2; EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer s) { if (c.leechRangedDelay > 0) { c.leechRangedDelay--; } if (c.leechRangedDelay == 1) { c2.gfx0(2238); if (c.rangedMultiplier < 1.10) { c.rangedMultiplier += 0.01; } if (c2.rangedMultiplier > 0.80) { c2.rangedMultiplier -= 0.01; } } if (c.leechRangedDelay == 0) { s.stop(); } } }, 500); } } public void leechMagic(int index) { if (!c.curseActive[12]) return; if (Server.playerHandler.players[index] != null) { final Client c2 = (Client)Server.playerHandler.players[index]; final int pX = c.getX(); final int pY = c.getY(); final int oX = c2.getX(); final int oY = c2.getY(); int offX = (pY - oY)* -1; int offY = (pX - oX)* -1; c.sendMessage("You leech your opponent's magic."); c.startAnimation(12575); c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 45, 2240, 43, 31, - c.oldPlayerIndex - 1, 2); c.leechMagicDelay = 2; EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer s) { if (c.leechMagicDelay > 0) { c.leechMagicDelay--; } if (c.leechMagicDelay == 1) { c2.gfx0(2242); if (c.magicMultiplier < 1.10) { c.magicMultiplier += 0.01; } if (c2.magicMultiplier > 0.80) { c2.magicMultiplier -= 0.01; } } if (c.leechMagicDelay == 0) { s.stop(); } } }, 500); } } public void leechDefence(int index) { if (!c.curseActive[13]) return; if (Server.playerHandler.players[index] != null) { final Client c2 = (Client)Server.playerHandler.players[index]; final int pX = c.getX(); final int pY = c.getY(); final int oX = c2.getX(); final int oY = c2.getY(); int offX = (pY - oY)* -1; int offY = (pX - oX)* -1; c.sendMessage("You leech your opponent's defence."); c.startAnimation(12575); c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 45, 2244, 43, 31, - c.oldPlayerIndex - 1, 3); c.leechDefenceDelay = 2; EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer s) { if (c.leechDefenceDelay > 0) { c.leechDefenceDelay--; } if (c.leechDefenceDelay == 1) { c2.gfx0(2246); if (c.defenceMultiplier < 1.10) { c.defenceMultiplier += 0.01; } if (c2.defenceMultiplier > 0.80) { c2.defenceMultiplier -= 0.01; } } if (c.leechDefenceDelay == 0) { s.stop(); } } }, 500); } } public void leechStrength(int index) { if (!c.curseActive[14]) return; if (Server.playerHandler.players[index] != null) { final Client c2 = (Client)Server.playerHandler.players[index]; final int pX = c.getX(); final int pY = c.getY(); final int oX = c2.getX(); final int oY = c2.getY(); int offX = (pY - oY)* -1; int offY = (pX - oX)* -1; c.sendMessage("You leech your opponent's strength."); c.startAnimation(12575); c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 45, 2248, 43, 31, - c.oldPlayerIndex - 1, 4); c.leechStrengthDelay = 2; EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer s) { if (c.leechStrengthDelay > 0) { c.leechStrengthDelay--; } if (c.leechStrengthDelay == 1) { c2.gfx0(2250); if (c.strengthMultiplier < 1.10) { c.strengthMultiplier += 0.01; } if (c2.strengthMultiplier > 0.80) { c2.strengthMultiplier -= 0.01; } } if (c.leechStrengthDelay == 0) { s.stop(); } } }, 500); } } public void leechEnergy(int index) { if (!c.curseActive[15]) return; if (Server.playerHandler.players[index] != null) { final Client c2 = (Client)Server.playerHandler.players[index]; final int pX = c.getX(); final int pY = c.getY(); final int oX = c2.getX(); final int oY = c2.getY(); int offX = (pY - oY)* -1; int offY = (pX - oX)* -1; c.sendMessage("You leech your opponent's run energy."); c.startAnimation(12575); c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 45, 2252, 43, 31, - c.oldPlayerIndex - 1, 5); c.leechEnergyDelay = 2; EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer s) { if (c.leechEnergyDelay > 0) { c.leechEnergyDelay--; } if (c.leechEnergyDelay == 1) { c2.gfx0(2254); } if (c.leechEnergyDelay == 0) { s.stop(); } } }, 500); } } public void leechSpecial(int index) { if (!c.curseActive[16]) return; if (Server.playerHandler.players[index] != null) { final Client c2 = (Client)Server.playerHandler.players[index]; final int pX = c.getX(); final int pY = c.getY(); final int oX = c2.getX(); final int oY = c2.getY(); int offX = (pY - oY)* -1; int offY = (pX - oX)* -1; c.sendMessage("You leech your opponent's special attack."); c.startAnimation(12575); c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 45, 2256, 43, 31, - c.oldPlayerIndex - 1, 6); c.leechSpecialDelay = 2; EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer s) { if (c.leechSpecialDelay > 0) { c.leechSpecialDelay--; } if (c.leechSpecialDelay == 1) { c2.gfx0(2258); if (c.specAmount >= 10) return; if (c2.specAmount <= 0) return; c.specAmount += 1; c2.specAmount -= 1; c2.sendMessage("Your special attack has been drained."); } if (c.leechSpecialDelay == 0) { s.stop(); } } }, 500); } } public void npcleechAttack(int index) { if (!c.curseActive[10]) return; if (c.oldNpcIndex > 0) { if (NPCHandler.npcs[c.oldNpcIndex] != null) { final int pX = c.getX(); final int pY = c.getY(); final int nX = NPCHandler.npcs[c.oldNpcIndex].getX(); final int nY = NPCHandler.npcs[c.oldNpcIndex].getY(); final int offX = (pY - nY) * -1; final int offY = (pX - nX) * -1; c.sendMessage("You leech your opponent's attack."); c.startAnimation(12575); c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 45, 2231, 43, 31, - c.oldNpcIndex - 1, 1); c.leechAttackDelay = 2; EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer s) { if (c.leechAttackDelay > 0) { c.leechAttackDelay--; } if (c.leechAttackDelay == 1) { NPCHandler.npcs[c.oldNpcIndex].gfx0(2232); if (c.attackMultiplier < 1.10) { c.attackMultiplier += 0.01; } } if (c.leechAttackDelay == 0) { s.stop(); } } }, 500); } } } public void npcleechRanged(int index) { if (!c.curseActive[11]) return; if (c.oldNpcIndex > 0) { if (NPCHandler.npcs[c.oldNpcIndex] != null) { final int pX = c.getX(); final int pY = c.getY(); final int nX = NPCHandler.npcs[c.oldNpcIndex].getX(); final int nY = NPCHandler.npcs[c.oldNpcIndex].getY(); final int offX = (pY - nY) * -1; final int offY = (pX - nX) * -1; c.sendMessage("You leech your opponent's range."); c.startAnimation(12575); c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 45, 2236, 43, 31, - c.oldNpcIndex - 1, 0); c.leechRangedDelay = 2; EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer s) { if (c.leechRangedDelay > 0) { c.leechRangedDelay--; } if (c.leechRangedDelay == 1) { NPCHandler.npcs[c.oldNpcIndex].gfx0(2238); if (c.rangedMultiplier < 1.10) { c.rangedMultiplier += 0.01; } } if (c.leechRangedDelay == 0) { s.stop(); } } }, 500); } } } public void npcleechMagic(int index) { if (!c.curseActive[12]) return; if (c.oldNpcIndex > 0) { if (NPCHandler.npcs[c.oldNpcIndex] != null) { final int pX = c.getX(); final int pY = c.getY(); final int nX = NPCHandler.npcs[c.oldNpcIndex].getX(); final int nY = NPCHandler.npcs[c.oldNpcIndex].getY(); final int offX = (pY - nY) * -1; final int offY = (pX - nX) * -1; c.sendMessage("You leech your opponent's magic."); c.startAnimation(12575); c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 45, 2240, 43, 31, - c.oldNpcIndex - 1, 2); c.leechMagicDelay = 2; EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer s) { if (c.leechMagicDelay > 0) { c.leechMagicDelay--; } if (c.leechMagicDelay == 1) { NPCHandler.npcs[c.oldNpcIndex].gfx0(2242); if (c.magicMultiplier < 1.10) { c.magicMultiplier += 0.01; } } if (c.leechMagicDelay == 0) { s.stop(); } } }, 500); } } } public void npcleechDefence(int index) { if (!c.curseActive[13]) return; if (c.oldNpcIndex > 0) { if (NPCHandler.npcs[c.oldNpcIndex] != null) { final int pX = c.getX(); final int pY = c.getY(); final int nX = NPCHandler.npcs[c.oldNpcIndex].getX(); final int nY = NPCHandler.npcs[c.oldNpcIndex].getY(); final int offX = (pY - nY) * -1; final int offY = (pX - nX) * -1; c.sendMessage("You leech your opponent's defence."); c.startAnimation(12575); c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 45, 2244, 43, 31, - c.oldNpcIndex - 1, 3); c.leechDefenceDelay = 2; EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer s) { if (c.leechDefenceDelay > 0) { c.leechDefenceDelay--; } if (c.leechDefenceDelay == 1) { NPCHandler.npcs[c.oldNpcIndex].gfx0(2246); if (c.defenceMultiplier < 1.10) { c.defenceMultiplier += 0.01; } } if (c.leechDefenceDelay == 0) { s.stop(); } } }, 500); } } } public void npcleechStrength(int index) { if (!c.curseActive[14]) return; if (c.oldNpcIndex > 0) { if (NPCHandler.npcs[c.oldNpcIndex] != null) { final int pX = c.getX(); final int pY = c.getY(); final int nX = NPCHandler.npcs[c.oldNpcIndex].getX(); final int nY = NPCHandler.npcs[c.oldNpcIndex].getY(); final int offX = (pY - nY) * -1; final int offY = (pX - nX) * -1; c.sendMessage("You leech your opponent's strength."); c.startAnimation(12575); c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 45, 2248, 43, 31, - c.oldNpcIndex - 1, 4); c.leechStrengthDelay = 2; EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer s) { if (c.leechStrengthDelay > 0) { c.leechStrengthDelay--; } if (c.leechStrengthDelay == 1) { NPCHandler.npcs[c.oldNpcIndex].gfx0(2250); if (c.strengthMultiplier < 1.10) { c.strengthMultiplier += 0.01; } } if (c.leechStrengthDelay == 0) { s.stop(); } } }, 500); } } } public void npcleechEnergy(int index) { if (!c.curseActive[15]) return; if (c.oldNpcIndex > 0) { if (NPCHandler.npcs[c.oldNpcIndex] != null) { final int pX = c.getX(); final int pY = c.getY(); final int nX = NPCHandler.npcs[c.oldNpcIndex].getX(); final int nY = NPCHandler.npcs[c.oldNpcIndex].getY(); final int offX = (pY - nY) * -1; final int offY = (pX - nX) * -1; c.sendMessage("You leech your opponent's run energy."); c.startAnimation(12575); c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 45, 2252, 43, 31, - c.oldNpcIndex - 1, 5); c.leechEnergyDelay = 2; EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer s) { if (c.leechEnergyDelay > 0) { c.leechEnergyDelay--; } if (c.leechEnergyDelay == 1) { NPCHandler.npcs[c.oldNpcIndex].gfx0(2254); } if (c.leechEnergyDelay == 0) { s.stop(); } } }, 500); } } } public void npcleechSpecial(int index) { if (!c.curseActive[16]) return; if (c.oldNpcIndex > 0) { if (NPCHandler.npcs[c.oldNpcIndex] != null) { final int pX = c.getX(); final int pY = c.getY(); final int nX = NPCHandler.npcs[c.oldNpcIndex].getX(); final int nY = NPCHandler.npcs[c.oldNpcIndex].getY(); final int offX = (pY - nY) * -1; final int offY = (pX - nX) * -1; c.sendMessage("You leech your opponent's special attack."); c.startAnimation(12575); c.getPA().createPlayersProjectile(pX, pY, offX, offY, 50, 45, 2256, 43, 31, - c.oldNpcIndex - 1, 6); c.leechSpecialDelay = 2; EventManager.getSingleton().addEvent(new Event() { public void execute(EventContainer s) { if (c.leechSpecialDelay > 0) { c.leechSpecialDelay--; } if (c.leechSpecialDelay == 1) { NPCHandler.npcs[c.oldNpcIndex].gfx0(2258); if (c.specAmount >= 10) return; c.specAmount += 1; } if (c.leechSpecialDelay == 0) { s.stop(); } } }, 500); } } }[/CODE] Then save Then go to clickingButton.java OK guys titas said he maded the clickingbutton part but i don't remember If you allready have curses replace the button id with these [CODE] /**Prayers**/ case 87231: // thick skin c.getCurse().activateCurse(0); return; case 87233: // burst of str c.getCurse().activateCurse(1); break; case 87235: // charity of thought c.getCurse().activateCurse(2); break; case 87237: // range c.getCurse().activateCurse(3); break; case 87239: // mage c.getCurse().activateCurse(4); break; case 87241: // rockskin c.getCurse().activateCurse(5); break; case 87243: // super human c.getCurse().activateCurse(6); break; case 87245: //defmage if(c.curseActive[7]) { c.curseActive[7] = false; c.getPA().sendFrame36(88, 0); c.headIcon = -1; c.getPA().requestUpdates(); } else { c.getCurse().activateCurse(7); c.getPA().sendFrame36(90, 0); //defmellee c.getPA().sendFrame36(89, 0);//defrang c.getPA().sendFrame36(97, 0);//soulsplit c.getPA().sendFrame36(96, 0);//warth c.getPA().sendFrame36(88, 1);//deflmag } break; case 87247: //defrng if(c.curseActive[8]) { c.getPA().sendFrame36(89, 0); c.curseActive[8] = false; c.headIcon = -1; c.getPA().requestUpdates(); } else { c.getCurse().activateCurse(8); c.getPA().sendFrame36(90, 0); //defmellee c.getPA().sendFrame36(89, 1);//defrang c.getPA().sendFrame36(88, 0);//deflmag c.getPA().sendFrame36(97, 0);//soulsplit c.getPA().sendFrame36(96, 0);//warth } break; case 87249://defmel if(c.curseActive[9]) { c.getPA().sendFrame36(90, 0); c.curseActive[9] = false; c.headIcon = -1; c.getPA().requestUpdates(); } else { c.getCurse().activateCurse(9); c.getPA().sendFrame36(90, 1); //defmellee c.getPA().sendFrame36(89, 0);//defrang c.getPA().sendFrame36(88, 0);//deflmag c.getPA().sendFrame36(97, 0);//soulsplit c.getPA().sendFrame36(96, 0);//warth } break; case 87251: // leeech attack if(c.curseActive[10]) { c.getPA().sendFrame36(91, 0); //str c.curseActive[10] = false; } else { c.getCurse().activateCurse(10); c.curseActive[19] = false; c.getPA().sendFrame36(91, 1); //attack leech c.getPA().sendFrame36(105, 0);// turmoil } break; case 87253: // leech range if(c.curseActive[11]) { c.getPA().sendFrame36(103, 0); //str c.curseActive[11] = false; } else { c.getCurse().activateCurse(11); c.curseActive[19] = false; c.getPA().sendFrame36(105, 0);// turmoil c.getPA().sendFrame36(103, 1); //range } break; case 87255: // leech magic if(c.curseActive[12]) { c.getPA().sendFrame36(104, 0); //str c.curseActive[12] = false; } else { c.getCurse().activateCurse(12); c.curseActive[19] = false; c.getPA().sendFrame36(105, 0);// turmoil c.getPA().sendFrame36(104, 1); //mage } break; case 88001: // leech def if(c.curseActive[13]) { c.getPA().sendFrame36(92, 0); //str c.curseActive[13] = false; } else { c.getCurse().activateCurse(13); c.curseActive[19] = false; c.getPA().sendFrame36(105, 0);// turmoil c.getPA().sendFrame36(92, 1); //def } break; case 88003: // leech str if(c.curseActive[14]) { c.getPA().sendFrame36(93, 0); //str c.curseActive[14] = false; } else { c.getCurse().activateCurse(14); c.curseActive[19] = false; c.getPA().sendFrame36(105, 0);// turmoil c.getPA().sendFrame36(93, 1); //str } break; /* .getCurse().activateCurse(15); c.sendMessage("Doesn't work yet"); return; */ case 88007: // protect from magic if(c.curseActive[16]) { c.getPA().sendFrame36(95, 0); //str c.curseActive[16] = false; } else { c.getCurse().activateCurse(16); c.curseActive[19] = false; c.getPA().sendFrame36(105, 0);// turmoil c.getPA().sendFrame36(95, 1); //def } return; case 88009: // protect from range if(c.curseActive[17]) { c.getPA().sendFrame36(96, 0); c.curseActive[17] = false; c.headIcon = -1; c.getPA().requestUpdates(); } else { c.getCurse().activateCurse(17); c.getPA().sendFrame36(90, 0); //defmellee c.getPA().sendFrame36(89, 0);//defrang c.getPA().sendFrame36(88, 0);//deflmag c.getPA().sendFrame36(97, 0);//soulsplit c.getPA().sendFrame36(96, 1);//warth } break; case 88011: // protect from melee if(c.curseActive[18]) { c.getPA().sendFrame36(97, 0); c.curseActive[18] = false; c.headIcon = -1; c.getPA().requestUpdates(); } else { c.getCurse().activateCurse(18); c.getPA().sendFrame36(90, 0); //defmellee c.getPA().sendFrame36(89, 0);//defrang c.getPA().sendFrame36(88, 0);//deflmag c.getPA().sendFrame36(97, 1);//soulsplit c.getPA().sendFrame36(96, 0);//warth } break; case 88013: // 44 range if(c.curseActive[19]) { c.getPA().sendFrame36(105, 0); //str c.curseActive[19] = false; } else { c.getCurse().activateCurse(19); c.curseActive[10] = false; c.curseActive[11] = false; c.curseActive[12] = false; c.curseActive[13] = false; c.curseActive[14] = false; c.getPA().sendFrame36(91, 0); //attack leech c.getPA().sendFrame36(105, 1);// turmoil c.getPA().sendFrame36(93, 0); //str c.getPA().sendFrame36(92, 0); //def c.getPA().sendFrame36(104, 0); //mage c.getPA().sendFrame36(103, 0); //range c.getPA().sendFrame36(95, 0);//spec c.getPA().sendFrame36(96, 0);//run } break; /**End of curse prayers**/[/CODE] Then go to curses.java in players folder if you have if not just make one and replace it with this [CODE]package server.model.players; import server.Config; import server.Server; import server.util.Misc; import server.model.players.*; public class Curse { private Client c; public Curse(Client c) { this.c = c; } public void resetCurse() { for(int p = 0; p < c.curseActive.length; p++) { c.curseActive[p] = false; c.getPA().sendFrame36(c.CURSE_GLOW[p], 0); } c.headIcon = -1; c.getPA().requestUpdates(); } public void strCurse(int i) { for (int j = 0; j < str.length; j++) { if (str[j] != i) { c.curseActive[str[j]] = false; c.getPA().sendFrame36(c.CURSE_GLOW[str[j]], 0); } } } public void atkCurse(int i) { for (int j = 0; j < atk.length; j++) { if (atk[j] != i) { c.curseActive[atk[j]] = false; c.getPA().sendFrame36(c.CURSE_GLOW[atk[j]], 0); } } } public void defCurse(int i) { for (int j = 0; j < def.length; j++) { if (def[j] != i) { c.curseActive[def[j]] = false; c.getPA().sendFrame36(c.CURSE_GLOW[def[j]], 0); } } } public void rngCurse(int i) { for (int j = 0; j < rng.length; j++) { if (rng[j] != i) { c.curseActive[rng[j]] = false; c.getPA().sendFrame36(c.CURSE_GLOW[rng[j]], 0); } } } public void mgeCurse(int i) { for (int j = 0; j < mge.length; j++) { if (mge[j] != i) { c.curseActive[mge[j]] = false; c.getPA().sendFrame36(c.CURSE_GLOW[mge[j]], 0); } } } public void sprtCurse(int i) { for (int j = 0; j < sprt.length; j++) { if (sprt[j] != i) { c.curseActive[sprt[j]] = false; c.getPA().sendFrame36(c.CURSE_GLOW[sprt[j]], 0); } } } public int[] def = {13, 19}; public int[] str = {14, 19}; public int[] atk = {1, 10, 19}; public int[] rng = {2, 11, 19}; public int[] mge = {3, 12, 19}; public int[] sprt = {4, 16};//spirit public void activateCurse(int i) { if(c.duelRule[7]) { resetCurse(); c.sendMessage("Prayer has been disabled in this duel!"); return; } if (c.playerLevel[1] < 30) { c.getPA().sendFrame36(c.CURSE_GLOW[i], 0); c.sendMessage("You need 30 Defence to use this prayer."); return; } //0 = pItem//1 = sapWar//2 = sapRng//3 = sapMge//4 = sapSprt //5 = berserk//6 = defSum//7 = defMge//8 = defRng//9 = defMel //10 = leechAtk//11 = leechRng//12 = leechMge//13 = leechDef//14 = leechStr //15 = leechEnrgy//16 = leechSpec//17 = wrath//18 = soul//19 = turmoil if(c.playerLevel[5] > 0 || !Config.PRAYER_POINTS_REQUIRED) { if(c.getPA().getLevelForXP(c.playerXP[5]) >= c.CURSE_LEVEL_REQUIRED[i] || !Config.PRAYER_LEVEL_REQUIRED) { boolean headIcon = false; switch(i) { case 0://pItem if(c.prayerActive[10] == false) { c.prayerActive[10] = true; c.lastProtItem = System.currentTimeMillis(); c.startAnimation(12567); c.gfx0(2213); } else { c.prayerActive[10] = false; } break; case 1: case 10: if (c.curseActive[i] == false) { atkCurse(i); // } break; case 2: case 11: if (c.curseActive[i] == false) { rngCurse(i); // } break; case 3: case 12: if (c.curseActive[i] == false) { mgeCurse(i); // } break; case 4: case 16: if (c.curseActive[i] == false) { sprtCurse(i); // } break; case 5: //if(!c.zerkOn) { //c.zerkOn = true; c.startAnimation(12589); c.gfx0(2266); c.sendMessage("You somehow feel your boosted stats will last longer."); // } else { // c.zerkOn = false; // } break; case 13: if (c.curseActive[i] == false) { defCurse(i); // } break; case 14: if (c.curseActive[i] == false) { strCurse(i); // } break; case 6: case 7: case 8: case 9: if(System.currentTimeMillis() - c.stopPrayerDelay < 5000) { c.sendMessage("You have been injured and can't use this prayer!"); c.getPA().sendFrame36(c.CURSE_GLOW[7], 0); c.getPA().sendFrame36(c.CURSE_GLOW[8], 0); c.getPA().sendFrame36(c.CURSE_GLOW[9], 0); return; } if (i == 7) c.protMageDelay = System.currentTimeMillis(); else if (i == 8) c.protRangeDelay = System.currentTimeMillis(); else if (i == 9) c.protMeleeDelay = System.currentTimeMillis(); case 17: case 18: headIcon = true; for(int p = 6; p < 19; p++) { if(i != p && p != 10 && p != 11 && p != 10 && p != 12 && p != 13 && p != 14 && p != 15 && p != 16) { c.curseActive[p] = false; c.getPA().sendFrame36(c.CURSE_GLOW[p], 0); } } break; case 19: if (c.curseActive[i] == false) { c.startAnimation(12565); c.gfx0(2226); strCurse(i); atkCurse(i); defCurse(i); mgeCurse(i); rngCurse(i); } break; } if(!headIcon) { if(c.curseActive[i] == false) { c.curseActive[i] = true; c.getPA().sendFrame36(c.CURSE_GLOW[i], 1); } else { c.curseActive[i] = false; c.getPA().sendFrame36(c.CURSE_GLOW[i], 0); } } else { if(c.curseActive[i] == false) { c.curseActive[i] = true; c.getPA().sendFrame36(c.CURSE_GLOW[i], 1); c.headIcon = c.CURSE_HEAD_ICONS[i]; c.getPA().requestUpdates(); } else { c.curseActive[i] = false; c.getPA().sendFrame36(c.CURSE_GLOW[i], 0); c.headIcon = -1; c.getPA().requestUpdates(); } } } else { c.getPA().sendFrame36(c.CURSE_GLOW[i],0); c.getPA().sendFrame126("You need a @[email protected] level of "+c.CURSE_LEVEL_REQUIRED[i]+" to use "+c.CURSE_NAME[i]+".", 357); c.getPA().sendFrame126("Click here to continue", 358); c.getPA().sendFrame164(356); } } else { resetCurse(); strCurse(i); atkCurse(i); defCurse(i); mgeCurse(i); rngCurse(i); c.sendMessage("You have run out of Prayer points!"); } } } [/CODE] [SPOILER="Pictures"][IMG]http://realtingpk.com/gif/npcss.gif[/IMG] [/SPOILER] This tuts is only for rune-server and runelocus no other places are aloud to be posted Credits 90% Zant 10% titas for the clicking button witch not sure he maded but idk Please if you use give me and titas credits we would love that :)
  7. [FONT=Microsoft Sans Serif][SIZE=4]Hey everyone today I'm in need of some help, I'm having a problem on the curse prayers when i turn soulsplit on it doesn't show the soul-split symbol above your heard nor does it work with deflect melee. If you're confused please message me so I can send you the video of my problem on youtube, I can't post on here because I don't have 2 posts. My youtube channel is "BackOffHD" so you could also see my video on there if you typed this in after the youtube stuff type "/user/""backoffhd" without the quotes.[/SIZE][/FONT]
  8. [CENTER][B][SIZE=6][COLOR="#FF0000"]Ultrascape 317 Private Server![/COLOR][/SIZE][/B] [URL="http://ultrascaped.webs.com"][IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/banner_zpsfcf3400e.png[/IMG][/URL] You can join us @ [URL="http://ultrascaped.webs.com"]Ultrascape[/URL] Or you can simply download instantly @ [URL="http://ultrascaped.webs.com/client.jar"]Download[/URL] Play on our webclient! @ [URL="http://ultrascaped.webs.com/webclient"]Webclient[/URL] [COLOR="#00FFFF"][SIZE=5]Staff List[/SIZE] Owner - Berat61 Owner - Pvp Desire Forum Moderator - open spot Moderator - open spot Moderator - open spot[/COLOR] [SIZE=5][COLOR="#008000"]Features[/COLOR][/SIZE] [COLOR="#008000"]- We have gear like korasi, primal, ancient, torva, virtus, spiritshields and much more! - We have Trading Sticks for easy trading (1b each) due to 2147m limit! - We have bosses like Nomad, AoD, Tormented, kbd, corporal beast, kalphite queen, giant mole and much more! - We have almost 100% working skills and 100% working special attacks! - We have a bunch of normal and skill shops in-game! - Good drop and EXP rate and a trading area. - Donators, Super Donators and Extreme Donators get exclusive shops and/or bosses! - Drop party's and events after increasing amount of members! - We have staff that is nice and understands you! - Webclient, jarred client and zip client. - We've got a ranking board IN-GAME and working ranging guild! - We have mini-games like Pest-Control(50% working) and bosses. - We have a forum, images and members on our site and ofcourse we will soon use a 24/7 VPS![/COLOR] [SIZE=4][COLOR="#800080"]Watch this video for a short introduction![/COLOR][/SIZE] [video=youtube;GBxtQVJj7Cs]http://www.youtube.com/watch?v=GBxtQVJj7Cs[/video] [COLOR="#008000"][SIZE=4]Here are some in-game pictures of bosses and mini-game![/SIZE][/COLOR] [COLOR="#008000"][SIZE=4]Inventory and in-game toggles![/SIZE][/COLOR] [IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/inventory_zpsfe2ccba2.png[/IMG][IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/toggle_zps889a3615.png[/IMG] [COLOR="#008000"][SIZE=4]Funpk![/SIZE][/COLOR] [IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/funpk_zps67f8aaba.png[/IMG] [COLOR="#008000"][SIZE=4]Giant mole![/SIZE][/COLOR] [IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/giantmole_zpsa1fac490.png[/IMG] [COLOR="#008000"][SIZE=4]Kalphite queen[/SIZE][/COLOR] [IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/kh_zpsa49709c8.png[/IMG] [COLOR="#008000"][SIZE=4]Special attack[/SIZE][/COLOR] [IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/gwars_zps6da5d969.png[/IMG] [COLOR="#008000"][SIZE=4]Bandos Boss[/SIZE][/COLOR] [IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/gwarsboss_zpsd1dbc24a.png[/IMG] [COLOR="#008000"][SIZE=4]Leaderboard's[/SIZE][/COLOR] [IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/scoreboard_zps6a65a854.png[/IMG] [COLOR="#008000"][SIZE=4]Pack yak storage working![/SIZE][/COLOR] [IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/Pak-yak_zps4822c4ea.png[/IMG] [COLOR="#40E0D0"][SIZE=3]Updates![/SIZE] - Custom unique lay-outs added. - Fully working funpk added. - Fast ((multi)pk) commands added - Trading zone added! - VPS Announced and will be added soon. - Leaderboards added @ home! [/COLOR] [SIZE=6][COLOR="#FF0000"]Come and be a part of our community![/COLOR][/SIZE] [SIZE=4][URL="http://ultrascaped.webs.com"]Ultrascape Website[/URL][/SIZE] [/CENTER]
  9. [CENTER][B][SIZE=6][COLOR="#FF0000"]Ultrascape 317 Private Server![/COLOR][/SIZE][/B] [URL="http://ultrascaped.webs.com"][IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/banner_zpsfcf3400e.png[/IMG][/URL] You can join us @ [URL="http://ultrascaped.webs.com"]Ultrascape[/URL] Or you can simply download instantly @ [URL="http://ultrascaped.webs.com/client.jar"]Download[/URL] Play on our webclient! @ [URL="http://ultrascaped.webs.com/webclient"]Webclient[/URL] [COLOR="#00FFFF"][SIZE=5]Staff List[/SIZE] Owner - Berat61 Owner - Pvp Desire Forum Moderator - open spot Moderator - open spot Moderator - open spot[/COLOR] [SIZE=5][COLOR="#008000"]Features[/COLOR][/SIZE] [COLOR="#008000"]- We have gear like korasi, primal, ancient, torva, virtus, spiritshields and much more! - We have Trading Sticks for easy trading (1b each) due to 2147m limit! - We have bosses like Nomad, AoD, Tormented, kbd, corporal beast, kalphite queen, giant mole and much more! - We have almost 100% working skills and 100% working special attacks! - We have a bunch of normal and skill shops in-game! - Good drop and EXP rate and a trading area. - Donators, Super Donators and Extreme Donators get exclusive shops and/or bosses! - Drop party's and events after increasing amount of members! - We have staff that is nice and understands you! - Webclient, jarred client and zip client. - We've got a ranking board IN-GAME and working ranging guild! - We have mini-games like Pest-Control(50% working) and bosses. - We have a forum, images and members on our site and ofcourse we will soon use a 24/7 VPS![/COLOR] [SIZE=4][COLOR="#800080"]Watch this video for a short introduction![/COLOR][/SIZE] [video=youtube;GBxtQVJj7Cs]http://www.youtube.com/watch?v=GBxtQVJj7Cs[/video] [COLOR="#008000"][SIZE=4]Here are some in-game pictures of bosses and mini-game![/SIZE][/COLOR] [COLOR="#008000"][SIZE=4]Inventory and in-game toggles![/SIZE][/COLOR] [IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/inventory_zpsfe2ccba2.png[/IMG][IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/toggle_zps889a3615.png[/IMG] [COLOR="#008000"][SIZE=4]Funpk![/SIZE][/COLOR] [IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/funpk_zps67f8aaba.png[/IMG] [COLOR="#008000"][SIZE=4]Giant mole![/SIZE][/COLOR] [IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/giantmole_zpsa1fac490.png[/IMG] [COLOR="#008000"][SIZE=4]Kalphite queen[/SIZE][/COLOR] [IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/kh_zpsa49709c8.png[/IMG] [COLOR="#008000"][SIZE=4]Special attack[/SIZE][/COLOR] [IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/gwars_zps6da5d969.png[/IMG] [COLOR="#008000"][SIZE=4]Bandos Boss[/SIZE][/COLOR] [IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/gwarsboss_zpsd1dbc24a.png[/IMG] [COLOR="#008000"][SIZE=4]Leaderboard's[/SIZE][/COLOR] [IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/scoreboard_zps6a65a854.png[/IMG] [COLOR="#008000"][SIZE=4]Pack yak storage working![/SIZE][/COLOR] [IMG]http://i1289.photobucket.com/albums/b517/Ultra-scape/Pak-yak_zps4822c4ea.png[/IMG] [COLOR="#40E0D0"][SIZE=3]Updates![/SIZE] - Fully working funpk added. - Fast ((multi)pk) commands added - Trading zone added! - VPS Announced and will be added soon. - Leaderboards added @ home! [/COLOR] [SIZE=6][COLOR="#FF0000"]Come and be a part of our community![/COLOR][/SIZE] [SIZE=4][URL="http://ultrascaped.webs.com"]Ultrascape Website[/URL][/SIZE] [/CENTER]
  10. Hi. I'm having trouble finding tuts on adding ancietn curses to my 317 server. Base: PI, Overloadx I currently have turmoil inmy normal prayer tab but i want to be able to switch to ancient curses tba with all prayers by clicking on an item like prayer altar..... Please post a Guide/Tut on howto add curses. Thanks.
  11. As the title says its enough.. How i can fix drop? If i drop like a rune scimitar it don't show on the ground the item will just be deleted... How i can fix prayer curses.. ( the new prayers ) I have them already but they don't work 100%... i want let it work 100% can someone help me with that 2.. giving like 15mil rsgp.
  12. Hello, I've been searching curses tutorial for 317 delta source but i can't seem to find it so i thought i would ask you guys to help me find it.
  13. autoqwertypo

    Curses Prayer

    Heres My Problem: [ATTACH=CONFIG]4573[/ATTACH] Can anyone fix? My Prayer.java: [QUOTE]package org.dementhium.content.skills; import org.dementhium.event.Event; import org.dementhium.event.Tickable; import org.dementhium.model.Item; import org.dementhium.model.World; import org.dementhium.model.combat.Combat.FightType; import org.dementhium.model.player.Player; import org.dementhium.model.player.Skills; import org.dementhium.net.ActionSender; import org.dementhium.util.Misc; public class Prayer { /** * @author Canownueasy */ public static enum Bone { NORMAL(new Item(526), 4.5), BIG_BONES(new Item(532), 15), DRAGON_BONES(new Item(536), 72), BABYDRAGON_BONES(new Item(534), 30), BAT_BONES(new Item(530), 5.3), WOLF_BONES(new Item(2859), 4.5); private final double xp; private final Item item; public Item getItem() { return item; } public int getXP() { return (int) (xp * 450); } Bone(Item item, double xp) { this.item = item; this.xp = xp; } public void bury(final Player player) { if (!player.getInventory().contains(item.getId())) { return; } if ((System.currentTimeMillis() - player.lastAction) < 1200) { return; } player.lastAction = System.currentTimeMillis(); player.animate(827); World.getWorld().submit(new Tickable(1) { @Override public void execute() { player.getInventory().deleteItem(item); player.sendMessage("You bury the bones..."); if(!player.getExpLocked()) player.getSkills().addXp(Skills.PRAYER, getXP()); this.stop(); } }); } } public static boolean bury(Player player, Item bone) { for (Bone b : Bone.values()) { if (b.getItem().getId() == bone.getId()) { b.bury(player); return true; } } return false; } public static final int THICK_SKIN = 0, BURST_OF_STRENGTH = 1, CLARITY_OF_THOUGHT = 2, SHARP_EYE = 3, MYSTIC_WILL = 4, ROCK_SKIN = 5, SUPERHUMAN_STRENGTH = 6, IMPROVED_REFLEXES = 7, RAPID_RESTORE = 8, RAPID_HEAL = 9, PROTECT_ITEM = 10, HAWK_EYE = 11, MYSTIC_LORE = 12, STEEL_SKIN = 13, ULTIMATE_STRENGTH = 14, INCREDIBLE_REFLEXES = 15, PROTECT_FROM_MAGIC = 16, PROTECT_FROM_MISSILES = 17, PROTECT_FROM_MELEE = 18, EAGLE_EYE = 19, MYSTIC_MIGHT = 20, RETRIBUTION = 21, REDEMPTION = 22, SMITE = 23, CHIVALRY = 24, PIETY = 25; public static final int CURSE_PROTECT_ITEM = 0, SAP_WARRIOR = 1, SAP_RANGER = 2, SAP_MAGE = 3, SAP_SPIRIT = 4, BERSERKER = 5, DEFLECT_SUMMONING = 6, DEFLECT_MAGIC = 7, DEFLECT_MISSILES = 8, DEFLECT_MELEE = 9, LEECH_ATTACK = 10, LEECH_RANGE = 11, LEECH_MAGIC = 12, LEECH_DEFENCE = 13, LEECH_STRENGTH = 14, LEECH_ENERGY = 15, LEECH_SPECIAL_ATTACK = 16, WRATH = 17, SOUL_SPLIT = 18, TURMOIL = 19; private final Player player; private boolean[][] onPrayers; private boolean usingQuickPrayer; private boolean[][] quickPrayers = { new boolean[30], new boolean[20] }; public boolean ancientcurses; private boolean drainingprayer; private boolean quickPrayersOn; private Turmoil turmoil; public Prayer(Player player) { this.player = player; boolean[][] onPrayers = { new boolean[30], new boolean[20] }; this.onPrayers = onPrayers; } public boolean[][] getQuickPrayers() { return quickPrayers; } public boolean usingCorrispondingPrayer(FightType style) { int book = ancientcurses ? 1 : 0; switch (book) { case 0: switch(style) { case MELEE: return onPrayers[0][PROTECT_FROM_MELEE]; case RANGE: return onPrayers[0][PROTECT_FROM_MISSILES]; case MAGIC: return onPrayers[0][PROTECT_FROM_MAGIC]; } case 1: switch (style) { case MELEE: return onPrayers[1][DEFLECT_MELEE]; case RANGE: return onPrayers[1][DEFLECT_MISSILES]; case MAGIC: return onPrayers[1][DEFLECT_MAGIC]; } default: return false; } } public boolean usingPrayer(int book, int prayerId) { return this.onPrayers[book][prayerId]; } public boolean needsProtectAgainstDamage() { return this.onPrayers[0][PROTECT_FROM_MELEE] || this.onPrayers[0][PROTECT_FROM_MISSILES] || this.onPrayers[0][PROTECT_FROM_MAGIC]; } private final static int[][] prayerLvls = { // normal prayer book { 1, 4, 7, 8, 9, 10, 13, 16, 19, 22, 25, 26, 27, 28, 31, 34, 35, 37, 40, 43, 44, 45, 46, 49, 52, 60, 65, 70, 74, 77 }, // ancient prayer book { 50, 50, 52, 54, 56, 59, 62, 65, 68, 71, 74, 76, 78, 80, 82, 84, 86, 89, 92, 95 } }; private final static int[][][] closePrayers = { { // normal prayer book { 0, 5, 13 }, // Skin prayers 0 { 1, 6, 14 }, // Strength prayers 1 { 2, 7, 15 }, // Attack prayers 2 { 3, 11, 20, 28 }, // Range prayers 3 { 4, 12, 21, 29 }, // Magic prayers 4 { 8, 9, 26 }, // Restore prayers 5 { 10 }, // Protect item prayers 6 { 17, 18, 19 }, // Protect prayers 7 { 16 }, // Other protect prayers 8 { 22, 23, 24 }, // Other special prayers 9 { 25, 27 }, // Other prayers 10 }, { // ancient prayer book { 0 }, // Protect item prayers 0 { 1, 2, 3, 4 }, // sap prayers 1 { 5 }, // other prayers 2 { 7, 8, 9, 17, 18 }, // protect prayers 3 { 6 }, // other protect prayers 4 { 10, 11, 12, 13, 14, 15, 16 }, // leech prayers 5 { 19 }, // other prayers } }; public void startDrain() { if (drainingprayer) return; this.drainingprayer = true; final int drainrate = this.getDrainRate(); World.getWorld().submit(new Event(drainrate) { @Override public void execute() { if (player == null || !player.isOnline()) { stop(); return; } if (!checkPrayer() || player.isDead()) { closeAllPrayers(); drainingprayer = false; stop(); return; } int newrate = getDrainRate(); if (newrate == -1) { drainingprayer = false; stop(); return; } if (newrate != drainrate) { drainingprayer = false; stop(); if (hasPrayersOn()) player.getSkills().drainPray(1); if (!checkPrayer()) { closeAllPrayers(); drainingprayer = false; return; } startDrain(); return; } if (!checkPrayer()) { closeAllPrayers(); drainingprayer = false; stop(); return; } player.getSkills().drainPray(1); } }); } public int getDrainRate() { int rate = 0; int index = 0; int numberofprays = 0; for (boolean prayer : this.onPrayers[this.getPrayerBook()]) { if (prayer) { rate += drainRate(index); numberofprays++; } index++; } int bonushere = 0; if (rate == 0) return -1; rate = (int) (rate * (0.0035 * bonushere + 1) * 1000) / numberofprays - ((numberofprays - 1) * 600); return rate; } private static int drainRate(int Prayer) {// I got this perfected switch (Prayer) { case 0: case 1: case 2: case 3: case 4: case 22: return 12; case 5: case 6: case 7: case 11: case 12: case 23: return 6; case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20: case 21: return 3; case 8: return 26; case 9: case 10: case 26: return 18; case 24: return 2; case 25: case 27: case 28: default: return 1; } } public int getHeadIcon() { int value = -1; if (this.usingPrayer(0, 16)) value += 8; if (this.usingPrayer(0, 17)) value += 3; else if (this.usingPrayer(0, 18)) value += 2; else if (this.usingPrayer(0, 19)) value += 1; else if (this.usingPrayer(0, 22)) value += 4; else if (this.usingPrayer(0, 23)) value += 6; else if (this.usingPrayer(0, 24)) value += 5; else if (this.usingPrayer(1, 6)) { value += 16; if (this.usingPrayer(1, 8)) value += 2; else if (this.usingPrayer(1, 7)) value += 3; else if (this.usingPrayer(1, 9)) value += 1; } else if (this.usingPrayer(1, 7)) value += 14; else if (this.usingPrayer(1, 8)) value += 15; else if (this.usingPrayer(1, 9)) value += 13; else if (this.usingPrayer(1, 17)) value += 20; else if (this.usingPrayer(1, 18)) value += 21; return value; } public void switchSettingQuickPrayer() { if (!this.usingQuickPrayer) { ActionSender.sendBConfig(player, 181, 1); ActionSender.sendBConfig(player, 168, 6); ActionSender.sendAMask(player, 0, 28, 271, 42, 0, 2); this.usingQuickPrayer = true; } else { ActionSender.sendBConfig(player, 181, 0); ActionSender.sendBConfig(player, 149, 6); this.usingQuickPrayer = false; } this.recalculatePrayer(); } public void switchQuickPrayers() { if (!checkPrayer()) return; if (this.quickPrayersOn) { this.closeAllPrayers(); ActionSender.sendBConfig(player, 182, 0); this.quickPrayersOn = false; } else { ActionSender.sendBConfig(player, 182, 1); int index = 0; for (boolean prayer : this.quickPrayers[this.getPrayerBook()]) { if (prayer) this.usePrayer(index); index++; } this.recalculatePrayer(); this.quickPrayersOn = true; } } public void switchPrayer(int prayerId, boolean b) { if (!checkPrayer()) return; this.usePrayer(prayerId); this.recalculatePrayer(); } public void closeAllPrayers() { boolean[][] onPrayers = { new boolean[30], new boolean[20] }; this.onPrayers = onPrayers; ActionSender.sendBConfig(player, 182, 0); ActionSender.sendConfig(player, ancientcurses ? 1582 : 1395, 0); recalculatePrayer(); player.getMask().setApperanceUpdate(true); } private boolean hasPrayersOn() { for (boolean prayer : this.onPrayers[this.getPrayerBook()]) if (prayer == true) return true; return false; } private boolean checkPrayer() { if (this.player.getSkills().getLevel(5) == 0) { ActionSender.sendChatMessage(player, (byte) 0, "You have ran out of prayer points."); return false; } return true; } private boolean usePrayer(int prayerId) { if (prayerId < 0 || prayerId >= prayerLvls[this.getPrayerBook()].length) return false; if (player.getSkills().getLevelForXp(5) < prayerLvls[this.getPrayerBook()][prayerId]) { player.sendMessage("You need a level of "+ prayerLvls[this.getPrayerBook()][prayerId] + " prayer to activate this."); return false; } if (!usingQuickPrayer) { if (onPrayers[this.getPrayerBook()][prayerId]) { if(prayerId == Prayer.TURMOIL) { if(turmoil != null) { turmoil = null; } } onPrayers[this.getPrayerBook()][prayerId] = false; player.getMask().setApperanceUpdate(true); return true; } } else { if (quickPrayers[this.getPrayerBook()][prayerId]) { quickPrayers[this.getPrayerBook()][prayerId] = false; return true; } } if (getPrayerBook() == 0) { switch (prayerId) { case 0: case 5: case 13: this.closePrayers(closePrayers[this.getPrayerBook()][0], closePrayers[this.getPrayerBook()][3], closePrayers[this.getPrayerBook()][4], closePrayers[this.getPrayerBook()][10]); break; case 1: case 6: case 14: this.closePrayers(closePrayers[this.getPrayerBook()][1], closePrayers[this.getPrayerBook()][3], closePrayers[this.getPrayerBook()][4], closePrayers[this.getPrayerBook()][10]); break; case 2: case 7: case 15: this.closePrayers(closePrayers[this.getPrayerBook()][2], closePrayers[this.getPrayerBook()][3], closePrayers[this.getPrayerBook()][4], closePrayers[this.getPrayerBook()][10]); break; case 3: case 11: case 20: case 28: this.closePrayers(closePrayers[this.getPrayerBook()][0], closePrayers[this.getPrayerBook()][1], closePrayers[this.getPrayerBook()][2], closePrayers[this.getPrayerBook()][3], closePrayers[this.getPrayerBook()][4], closePrayers[this.getPrayerBook()][10]); break; case 4: case 12: case 21: case 29: this.closePrayers(closePrayers[this.getPrayerBook()][0], closePrayers[this.getPrayerBook()][1], closePrayers[this.getPrayerBook()][2], closePrayers[this.getPrayerBook()][3], closePrayers[this.getPrayerBook()][4], closePrayers[this.getPrayerBook()][10]); break; case 8: case 9: case 26: this.closePrayers(closePrayers[this.getPrayerBook()][5]); break; case 10: this.closePrayers(closePrayers[this.getPrayerBook()][6]); break; case 17: case 18: case 19: this.closePrayers(closePrayers[this.getPrayerBook()][7], closePrayers[this.getPrayerBook()][9]); this.player.getMask().setApperanceUpdate(true); break; case 16: this.closePrayers(closePrayers[this.getPrayerBook()][8], closePrayers[this.getPrayerBook()][9]); this.player.getMask().setApperanceUpdate(true); break; case 22: case 23: case 24: this.closePrayers(closePrayers[this.getPrayerBook()][7], closePrayers[this.getPrayerBook()][8], closePrayers[this.getPrayerBook()][9]); this.player.getMask().setApperanceUpdate(true); break; case 25: case 27: this.closePrayers(closePrayers[this.getPrayerBook()][0], closePrayers[this.getPrayerBook()][1], closePrayers[this.getPrayerBook()][2], closePrayers[this.getPrayerBook()][3], closePrayers[this.getPrayerBook()][4], closePrayers[this.getPrayerBook()][10]); break; default: return false; } switch (prayerId) { case 0: player.animate(12567); player.graphics(2213); this.closePrayers(closePrayers[this.getPrayerBook()][0]); break; case 1: case 2: case 3: case 4: this.closePrayers(closePrayers[this.getPrayerBook()][5], closePrayers[this.getPrayerBook()][6]); break; case 5: player.animate(12589); player.graphics(2266); closePrayers(closePrayers[getPrayerBook()][2]); break; case 7: case 8: case 9: case 17: case 18: closePrayers(closePrayers[getPrayerBook()][3]); player.getMask().setApperanceUpdate(true); break; case 6: closePrayers(closePrayers[getPrayerBook()][4]); player.getMask().setApperanceUpdate(true); break; case 10: case 11: case 12: case 13: case 14: case 15: case 16: closePrayers(closePrayers[this.getPrayerBook()][1], closePrayers[this.getPrayerBook()][6]); break; case 19: //turmoil player.animate(12565); player.graphics(2226); closePrayers(closePrayers[this.getPrayerBook()][5], closePrayers[this.getPrayerBook()][6]); player.getMask().setApperanceUpdate(true); turmoil = new Turmoil(); break; default: return false; } } if (!usingQuickPrayer) { onPrayers[getPrayerBook()][prayerId] = true; startDrain(); } else { quickPrayers[getPrayerBook()][prayerId] = true; } return true; } private void closePrayers(int[]... prayers) { for (int[] prayer : prayers) for (int prayerId : prayer) if (usingQuickPrayer) this.quickPrayers[this.getPrayerBook()][prayerId] = false; else this.onPrayers[this.getPrayerBook()][prayerId] = false; } private final static int[] prayerSlotValues = { 1, 2, 4, 262144, 524288, 8, 16, 32, 64, 128, 256, 1048576, 2097152, 512, 1024, 2048, 16777216, 4096, 8192, 16384, 4194304, 8388608, 32768, 65536, 131072, 33554432, 134217728, 67108864, 536870912, 268435456 }; private void recalculatePrayer() { int value = 0; int index = 0; for (boolean prayer : (!usingQuickPrayer ? onPrayers[getPrayerBook()] : quickPrayers[getPrayerBook()])) { if (prayer) value += ancientcurses ? Math.pow(2, index) : prayerSlotValues[index]; index++; } ActionSender.sendConfig(player, ancientcurses ? (usingQuickPrayer ? 1587 : 1582) : (usingQuickPrayer ? 1397 : 1395), value); } public int getPrayerBook() { return ancientcurses == false ? 0 : 1; } public boolean isAncientCurses() { return this.ancientcurses; } public boolean setAncientCurses(boolean bool) { closeAllPrayers(); return this.ancientcurses = bool; } public boolean setAncientBook(boolean bool) { return this.ancientcurses = bool; } public void switchPrayBook(boolean book) { this.ancientcurses = book; ActionSender.sendConfig(player, 1584, book ? 1 : 0); ActionSender.sendAMask(player, 0, 27, 271, 6, 0, 2); this.drainingprayer = false; closeAllPrayers(); } public void setQuickPrayers() { ActionSender.sendBConfig(player, 181, 0); ActionSender.sendBConfig(player, 149, 6); this.player.getPrayer().usingQuickPrayer = false; } public void tick() { if(turmoil != null) { if(player.getCombatState().getVictim() != null) { turmoil.delay++; } if(turmoil.delay >= 20) { turmoil.attackBoost += 0.01; turmoil.defenceBoost += 0.01; turmoil.strengthBoost += 0.01; if(turmoil.strengthBoost >= 0.10) { turmoil.strengthBoost = 0.10; } if(turmoil.attackBoost >= 0.15) { turmoil.attackBoost = 0.15; } if(turmoil.defenceBoost >= 0.15) { turmoil.defenceBoost = 0.15; } turmoil.delay = 0; turmoil.updateStrings(); } } } public Turmoil getTurmoil() { return turmoil; } public class Turmoil { private double attackBoost = 0.0, defenceBoost = 0.0, strengthBoost = 0.0; private int delay; public double getAttackBoost() { return attackBoost; } public double getDefenceBoost() { return defenceBoost; } public double getStrengthBoost() { return strengthBoost; } public void updateStrings() { ActionSender.sendString(player, 271, 34, Misc.percentage(0.23 + attackBoost) + "%"); ActionSender.sendString(player, 271, 33, Misc.percentage(0.15 + strengthBoost) + "%"); ActionSender.sendString(player, 271, 32, Misc.percentage(0.15 + defenceBoost) + "%"); } } } [/QUOTE]
  14. On my PI you can select 7! different curses prayers at the same time.. how do i fix this?
  15. On my PI you can select 7! different prayers at the same time.. how do i fix this?
  16. [CENTER][COLOR="Red"][SIZE="7"][IMG]http://i41.tinypic.com/5zm6f6.png[/IMG] [/SIZE][/COLOR] Status: [COLOR="Green"][U][B]Online![/B][/U][/COLOR] [COLOR="Blue"][SIZE="3"]TurmoilX Features! 100% Overloads Dungeoneering Summoning Curses Dicing Korasi Spec Dragon Claw Spirit Shield effects Loyalty titles[/SIZE][/COLOR] [B][COLOR="Blue"] [IMG]http://i44.tinypic.com/20t2hpu.jpg[/IMG] [/COLOR] [COLOR="White"] PKP Shop [IMG]http://i44.tinypic.com/21cfgi1.png[/IMG] [/COLOR] [COLOR="Red"]Curses [IMG]http://i42.tinypic.com/dw9h1y.png[/IMG] Dicing [IMG]http://i39.tinypic.com/2zxy3xj.png[/IMG][/COLOR] [COLOR="Green"]Overload [IMG]http://i40.tinypic.com/2mq8gup.png[/IMG] [/COLOR] Loyalty Titles [IMG]http://i39.tinypic.com/358ckxx.jpg[/IMG] [COLOR="Purple"]Train: [IMG]http://i1197.photobucket.com/albums/aa431/Selied/train.png[/IMG] Minigames: [IMG]http://i1197.photobucket.com/albums/aa431/Selied/minigame-2.png[/IMG] [/COLOR] [COLOR="DeepSkyBlue"]Bosses: [IMG]http://i1197.photobucket.com/albums/aa431/Selied/bosses-1.png[/IMG] [U]Client:[/U] [url]http://uppit.com/41maelnnzmp1/TurmoilX.rar[/url] [/COLOR] [COLOR="Cyan"][U]Cache:[/U] [url=http://www.mediafire.com/download.php?l2e5anbf4s08h4b]TurmoilXv1.rar[/url][/COLOR] [COLOR="DarkOrange"][U]Extract the cache into your C: drive[/U] [U]Forums:[/U] TurmX.freeforums.org I'll make the thread look fancy tomorrow :D[/CENTER][/COLOR][/B]
  17. i have the icons, anims and gfx all i need is a little help i found a guide but i get errors when i try it, i'm tired of asking for help myself only if i knew what the errors meant
  18. Hi, When ever I type ::curses or curses in the console. This error always happens [img]http://screenshots.imtiax.net/imtiax/vlixrz.png[/img] The Prayers don't change. But If I go into the DATABASE and chnage the value of ancient curses to 1. I get the curses. It's just that the command isn't updating the DB. [QUOTE]if (command[0].equals("curses")) { player.getPrayer().setAnctientCurses( Boolean.parseBoolean(command[1])); ActionSender.sendConfig(player, 1584, player.getPrayer() .isAncientCurses() ? 1 : 0); }[/QUOTE] That is the command.
  19. I was wondering how i would add ancient curses to project edu 562 source All help is appreciated! The imports and so on are different to RS2HD and i cant find a tutorial Example [CODE] package edu.model; import edu.content.SkullUpdateEvent;[/CODE] If anybody could help That would be amazing.
  20. Composite

    Curses Command?

    I have the curses command for admins but not players. Could someone tell me the command? Can someone no why my masks arent working? The equip id r right :P i no how to do it. But why does only one work? Like i do green mask it works. But if i try more than one only the first one works? Why?
  21. when is turned on will be killed by npc you don't die there a fix for it because gain first some hp then later you die too it
  22. Need help on adding a method (NON COMMAND) to Switch to curses. I have curses allready implemented into server and client My curses.java [code] package server.model.players; import server.Config; import server.Server; import server.util.Misc; import server.model.players.*; public class Curse { private Client c; public Curse(Client c) { this.c = c; } public void resetCurse() { for(int p = 0; p < c.curseActive.length; p++) { c.curseActive[p] = false; c.getPA().sendFrame36(c.CURSE_GLOW[p], 0); } c.headIcon = -1; c.getPA().requestUpdates(); } public void saps(int i) { for (int j = 0; j < saps.length; j++) { if (saps[j] != i) { c.curseActive[saps[j]] = false; c.getPA().sendFrame36(c.CURSE_GLOW[saps[j]], 0); } } } public void leeches(int i) { for (int j = 0; j < leeches.length; j++) { if (leeches[j] != i) { c.curseActive[leeches[j]] = false; c.getPA().sendFrame36(c.CURSE_GLOW[leeches[j]], 0); } } } public void turmoil(int i) { for (int j = 0; j < turmoil.length; j++) { if (turmoil[j] != i) { c.curseActive[turmoil[j]] = false; c.getPA().sendFrame36(c.CURSE_GLOW[turmoil[j]], 0); } } } public int[] saps = {1, 2, 3, 4}; public int[] leeches = {10, 11, 12, 13, 14, 15, 16}; public int[] turmoil = ****}; public void activateCurse(int i) { if(c.duelRule[7]) { resetCurse(); c.sendMessage("Prayer has been disabled in this duel!"); return; } if (c.playerLevel[1] < 28) { c.getPA().sendFrame36(c.CURSE_GLOW[i], 0); c.sendMessage("You need 28 Defence to use this prayer."); return; } //0 = pItem//1 = sapWar//2 = sapRng//3 = sapMge//4 = sapSprt //5 = berserk//6 = defSum//7 = defMge//8 = defRng//9 = defMel //10 = leechAtk//11 = leechRng//12 = leechMge//13 = leechDef//14 = leechStr //15 = leechEnrgy//16 = leechSpec//17 = wrath//18 = soul//19 = turmoil //gfx for deflects 2227,2228,2229,2230 if(c.playerLevel[5] > 0 || !Config.PRAYER_POINTS_REQUIRED) { if(c.getPA().getLevelForXP(c.playerXP[5]) >= c.CURSE_LEVEL_REQUIRED[i] || !Config.PRAYER_LEVEL_REQUIRED) { boolean headIcon = false; switch(i) { case 0://pItem if (c.curseActive[i] == false) { c.lastProtItem = System.currentTimeMillis(); //c.startAnimation(12567); //c.gfx0(2213); c.protectItem = true; } else { c.protectItem = false; } break; case 5://berserker if (c.curseActive[i] == false) { //c.zerkOn = true; c.sendMessage("You feel your potions will last longer."); c.gfx0(332); //c.startAnimation(12552); } break; case 1://sap warrior case 2://sap range case 3://sap magic case 4://sap special if (c.curseActive[i] == false) { leeches(i); //c.sendMessage("If any leeches were on, they are now off.");//checks turmoil(i); //c.sendMessage("If any turmoil was on, it is now off.");//checks } break; case 10://leech attack case 11://leech range case 12://leech magic case 13://leech defence case 14://leech strength case 15://leech energy case 16://leech special if (c.curseActive[i] == false) { saps(i); //c.sendMessage("If any saps were on, they are now off.");//checks turmoil(i); //c.sendMessage("If any turmoil was on, it is now off.");//checks } break; case 6://deflect summoning case 7://deflect melee case 8://deflect magic case 9://deflect range if(System.currentTimeMillis() - c.stopPrayerDelay < 5000) { c.sendMessage("You have been injured and can't use this prayer!"); c.getPA().sendFrame36(c.CURSE_GLOW[7], 0); c.getPA().sendFrame36(c.CURSE_GLOW[8], 0); c.getPA().sendFrame36(c.CURSE_GLOW[9], 0); return; } if (i == 7) c.protMageDelay = System.currentTimeMillis(); if (i == 8) c.protRangeDelay = System.currentTimeMillis(); if (i == 9) c.protMeleeDelay = System.currentTimeMillis(); case 17://wrath case 18://soul split headIcon = true; for(int p = 6; p < 19; p++) { if(i != p && p != 10 && p != 11 && p != 10 && p != 12 && p != 13 && p != 14 && p != 15 && p != 16) { c.curseActive[p] = false; c.getPA().sendFrame36(c.CURSE_GLOW[p], 0); } } break; case 19://Turmoil - DONE if (c.curseActive[i] == false) { //c.startAnimation(12565); //c.gfx0(2226); saps(i); //c.sendMessage("If any saps were on, they are now off.");//checks leeches(i); //c.sendMessage("If any leeches were on, they are now off.");//checks } break; } if(!headIcon) { if(c.curseActive[i] == false) { c.curseActive[i] = true; c.getPA().sendFrame36(c.CURSE_GLOW[i], 1); } else { c.curseActive[i] = false; c.getPA().sendFrame36(c.CURSE_GLOW[i], 0); } } else { if(c.curseActive[i] == false) { c.curseActive[i] = true; c.getPA().sendFrame36(c.CURSE_GLOW[i], 1); c.headIcon = c.CURSE_HEAD_ICONS[i]; c.getPA().requestUpdates(); } else { c.curseActive[i] = false; c.getPA().sendFrame36(c.CURSE_GLOW[i], 0); c.headIcon = -1; c.getPA().requestUpdates(); } } } else { c.getPA().sendFrame36(c.CURSE_GLOW[i],0); c.getPA().sendFrame126("You need a @[email protected] level of "+c.CURSE_LEVEL_REQUIRED[i]+" to use "+c.CURSE_NAME[i]+".", 357); c.getPA().sendFrame126("Click here to continue", 358); c.getPA().sendFrame164(356); } } else { c.getCurse().resetCurse(); for(int p = 0; p < c.curseActive.length; p++) { c.curseActive[p] = false; c.getPA().sendFrame36(c.CURSE_GLOW[p], 0); } c.headIcon = -1; c.getPA().requestUpdates(); c.sendMessage("You have run out of prayer points!"); } } } [/code]
  23. Kimmen

    ::Curses error

    When i try to do ::curses this come up : Malformed command or error: 1. Some know how to fix it??
  24. -New prayers -Korasi + spec -All chaotic weapons added -Server almost never offline -Duping is fixed 99.9% Site: [url=http://dead-zone.forummotion.com/]Dead-Zone.tk[/url] Webclient: [url=http://dead-zone.forummotion.com/h2-webclient]Click Here![/url] Download client: [url=http://dead-zone.forummotion.com/h10-download-redirect]Click Here![/url] [IMG]http://i1106.photobucket.com/albums/h370/Vovik3/curses.png[/IMG] [IMG]http://i1106.photobucket.com/albums/h370/Vovik3/weapons.png[/IMG] [IMG]http://i1106.photobucket.com/albums/h370/Vovik3/customs.png[/IMG] [IMG]http://i1106.photobucket.com/albums/h370/Vovik3/godwars.png[/IMG] [IMG]http://i1106.photobucket.com/albums/h370/Vovik3/demons.png[/IMG] [IMG]http://i1106.photobucket.com/albums/h370/Vovik3/client.png[/IMG]
×