Jump to content
Sign in to follow this  
bl00dz

[562] Fixed x10 hits!

Recommended Posts

This will fix magic and ranged! Note: It only fixes the hits and not the GFX.
This fix is all in the playervsnpc.java.
Take your playervsnpc.java and replace the whole thing with this.
[CODE]package com.rs2hd.content.skills.combat;

import com.rs2hd.event.Event;
import com.rs2hd.model.Equipment;
import com.rs2hd.content.Following;
import com.rs2hd.event.*;
import com.rs2hd.model.*;
import com.rs2hd.model.NPC;
import com.rs2hd.model.Player;
import com.rs2hd.model.Skills;
import com.rs2hd.GameEngine;
import com.rs2hd.model.World;
import com.rs2hd.tickable.Tickable;
import com.rs2hd.util.Misc;
import com.rs2hd.content.Combat;
import com.rs2hd.content.skills.prayer.CursesEffectsHandlerNpc;
/**
* @author Dragonkk 99% Bl00dz 1% for fixed x10 hits
*
*/
public class PlayerVsNpc {

private transient Player p;
public int autoCast;
public int autoCastAncient;
public boolean autoCasting;
private int projectile = -1;
private int req;
private int gfx2;
private int damage;
private int anim;
private int gfx;
private boolean usingAncient;
private int magicIndex;
boolean usingBarrage = false;
boolean freeze = false;
boolean barrage = false;
int freezeDelay = 0;

public void setPlayer(Player p) {
this.p = p;
}

public void Attack(NPC n) {
if(p == null || n == null) {
System.out.println("p/n = null");
return;
}
if(p.isDead() || n.isDead()) {
p.resetAttack();
return;
}
if(p.AttackingNpc == false) {
return;
}
Equipment e = p.getEquipment();
if(n.getId() == 3375) {
if(e.get(Equipment.SLOT_WEAPON) == null) {
p.getActionSender().sendMessage("You need a rubber chicken to attack this");
n.Attacking = false;
p.resetAttack();
return;
}
if(e.get(Equipment.SLOT_WEAPON).getId() != 4566) {
p.getActionSender().sendMessage("You need a rubber chicken to attack this");
n.Attacking = false;
p.resetAttack();
return;
}

}
if(n.getId() == 10101) {
p.getActionSender().sendMessage("You cant attack this npcs anymore!");
n.Attacking = false;
p.resetAttack();
return;
}
if(n.getId() == 10000) {
p.getActionSender().sendMessage("You cant attack this npcs anymore!");
n.Attacking = false;
p.resetAttack();
return;
}
if(n.getId() == 10602) {
p.getActionSender().sendMessage("You cant attack this npcs anymore!");
n.Attacking = false;
p.resetAttack();
return;
}
if(n.getId() == 10457) {
p.getActionSender().sendMessage("You cant attack this npcs anymore!");
n.Attacking = false;
p.resetAttack();
return;
}
if (p.THICKSKIN == true && p.PrayerTime == 0) {
n.hit(Misc.random(25));
p.PrayerTime = 15;
n.graphics(1935);
return;
}
if(p.getSkills().getLevel(Skills.SLAYER) < p.getSlayer().getRequiredLevel(n.getId())) {
p.getActionSender().sendMessage("You need a level of " + p.getSlayer().getRequiredLevel(n.getId()) + " slayer to attack this monster!");
p.resetAttack();
return;
}
n.pid = p.getIndex();
n.giveDrop = p.getIndex();
n.Attacking = true;
if(autoCasting == true) {
MagicAttack(p, n);
} else if (usingRange(p)) {
RangeAttack(p, n);
} else {
MeleeAttack(p, n);
}
}
public boolean FullDharokEquipped() {
try {
if(p.getEquipment().get(0).getDefinition().getId() == 4716 && p.getEquipment().get(4).getDefinition().getId() == 4720 && p.getEquipment().get(7).getDefinition().getId() == 4722 && p.getEquipment().get(3).getDefinition().getId() == 4718) {
return true;
}
return false;
} catch (Exception e) {
return false;
}
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
public void MagicAttack(final Player p, final NPC n) {
try {
if (p.LeechAttack == true) {
CursesEffectsHandlerNpc.handleLeechAttack(p, n);
p.leechDelay = System.currentTimeMillis() + Misc.random(100000);
}
if (p.LeechRange == true) {
CursesEffectsHandlerNpc.handleLeechRanged(p, n);
p.leechDelay = System.currentTimeMillis() + Misc.random(100000);
}
if (p.LeechMagic == true) {
CursesEffectsHandlerNpc.handleLeechMagic(p, n);
p.leechDelay = System.currentTimeMillis() + Misc.random(100000);
}
if (p.LeechDefence == true) {
CursesEffectsHandlerNpc.handleLeechDefence(p, n);
p.leechDelay = System.currentTimeMillis() + Misc.random(100000);
}
if (p.LeechStrength == true) {
CursesEffectsHandlerNpc.handleLeechStrength(p, n);
p.leechDelay = System.currentTimeMillis() + Misc.random(100000);
}
if (p.SpecialAttackLeech == true) {
CursesEffectsHandlerNpc.handleSpecLeech(p, n);
p.leechDelay = System.currentTimeMillis() + Misc.random(100000);
}
if (p.SapWarrior == true) {
CursesEffectsHandlerNpc.SapWarrior(p, n);
}
if (p.SapRanger == true) {
CursesEffectsHandlerNpc.SapRanger(p, n);
}
if (p.SapSpirit == true) {
CursesEffectsHandlerNpc.SapSpirit(p, n);
}
if (p.SapMage == true) {
CursesEffectsHandlerNpc.SapMage(p, n);
}
if (p.DeflectRange == true) {
CursesEffectsHandlerNpc.DeflectRange(p, n);
}
if (p.DeflectMelee == true) {
CursesEffectsHandlerNpc.DeflectMelee(p, n);
}
if (p.DeflectMagic == true) {
CursesEffectsHandlerNpc.DeflectMagic(p, n);
}
if (p.Soulsplit == true && damage >= 1) {
CursesEffectsHandlerNpc.handleSoulSplit(p, n, damage);
}
if(autoCasting == true) {
switch(p.magicType) {
case 192:
switch(autoCast) {
case 25://Wind strike
if(!p.getInventory().contains(556, 1)|| !p.getInventory().contains(558, 1)) {
p.sm("You need the correct runes to cast this spell"); p.resetAttack();
return;
} else {
if (p.MageTime == 0 && p.getInventory().contains(556, 1) && p.getInventory().contains(558, 1)) {
p.getInventory().deleteItem(556, 1);
p.getInventory().deleteItem(558, 1);
gfx = 90;
anim = 1162;
projectile = 91;
damage = 2;
gfx2 = 92;
req = 0;
p.MageTime = 5;
usingAncient = false;
}
}
break;
case 28: //Water strike
if(!p.getInventory().contains(556, 1)|| !p.getInventory().contains(558, 1)|| !p.getInventory().contains(555, 1)) {
p.sm("You need the correct runes to cast this spell");
p.resetAttack();
return;
} else {
if (p.MageTime == 0 && p.getInventory().contains(556, 1) && p.getInventory().contains(558, 1) && p.getInventory().contains(555, 1)) {
p.getInventory().deleteItem(556, 1);
p.getInventory().deleteItem(554, 1);
p.getInventory().deleteItem(555, 1);
gfx = 93;
anim = 1162;
projectile = 94;
damage = 4;
gfx2 = 95;
req = 5;
p.MageTime = 5;
usingAncient = false;
}
}
break;
case 30: //Earth strike
if(!p.getInventory().contains(556, 1)|| !p.getInventory().contains(558, 1)|| !p.getInventory().contains(557, 1)) {
p.sm("You need the correct runes to cast this spell"); p.resetAttack();
return;
} else {
if (p.MageTime == 0 && p.getInventory().contains(556, 1) && p.getInventory().contains(558, 1) && p.getInventory().contains(557, 1)) {
p.getInventory().deleteItem(556, 1);
p.getInventory().deleteItem(558, 1);
p.getInventory().deleteItem(557, 1);
gfx = 96;
anim = 1162;
projectile = 97;
damage = 6;
gfx2 = 98;
req = 9;
p.MageTime = 5;
usingAncient = false;
}
}
break;
case 32: //Fire strike
if(!p.getInventory().contains(556, 2)|| !p.getInventory().contains(554, 3)|| !p.getInventory().contains(557, 1)) {
p.sm("You need the correct runes to cast this spell"); p.resetAttack();
return;
} else {
if (p.MageTime == 0 && p.getInventory().contains(556, 2) && p.getInventory().contains(554, 3) && p.getInventory().contains(557, 1)) {
p.getInventory().deleteItem(556, 2);
p.getInventory().deleteItem(554, 3);
p.getInventory().deleteItem(557, 1);
gfx = 99;
anim = 1162;
projectile = 100;
damage = 8;
gfx2 = 101;
req = 13;
p.MageTime = 5;
usingAncient = false;
}
}
break;
case 34: //Wind bolt
if(!p.getInventory().contains(556, 2)|| !p.getInventory().contains(562, 1)) {
p.sm("You need the correct runes to cast this spell"); p.resetAttack();
return;
} else {
if (p.MageTime == 0 && p.getInventory().contains(556, 2) && p.getInventory().contains(562, 1)) {
p.getInventory().deleteItem(556, 2);
p.getInventory().deleteItem(562, 1);
gfx = 117;
anim = 1162;
projectile = 118;
damage = 9;
gfx2 = 119;
req = 17;
p.MageTime = 5;
usingAncient = false;
}
}
break;
case 39: //Water bolt
if(!p.getInventory().contains(556, 2)|| !p.getInventory().contains(562, 1)|| !p.getInventory().contains(666, 2)) {
p.sm("You need the correct runes to cast this spell"); p.resetAttack();
return;
} else {
if (p.MageTime == 0 && p.getInventory().contains(556, 2) && p.getInventory().contains(562, 1) && p.getInventory().contains(555, 2)) {
p.getInventory().deleteItem(556, 2);
p.getInventory().deleteItem(562, 1);
p.getInventory().deleteItem(555, 2);
gfx = 120;
anim = 1162;
projectile = 121;
damage = 10;
gfx2 = 122;
req = 23;
usingAncient = false;
p.MageTime = 5;
}
}
break;
case 42: //Earth bolt
if(!p.getInventory().contains(556, 2)|| !p.getInventory().contains(562, 1)|| !p.getInventory().contains(557, 3)) {
p.sm("You need the correct runes to cast this spell"); p.resetAttack();
return;
} else {
if (p.MageTime == 0 && p.getInventory().contains(556, 2) && p.getInventory().contains(562, 1) && p.getInventory().contains(557, 3)) {
p.getInventory().deleteItem(556, 2);
p.getInventory().deleteItem(562, 1);
p.getInventory().deleteItem(557, 3);
gfx = 123;
anim = 1162;
projectile = 124;
damage = 11;
gfx2 = 125;
req = 29;
usingAncient = false;
p.MageTime = 5;
}
}
break;
case 45: //Fire bolt
if(!p.getInventory().contains(556, 3)|| !p.getInventory().contains(562, 1)|| !p.getInventory().contains(554, 3)) {
p.sm("You need the correct runes to cast this spell"); p.resetAttack();
return;
} else {
if (p.MageTime == 0 && p.getInventory().contains(556, 3) && p.getInventory().contains(562, 1) && p.getInventory().contains(554, 3)) {
p.getInventory().deleteItem(556, 3);
p.getInventory().deleteItem(562, 1);
p.getInventory().deleteItem(554, 3);
gfx = 126;
anim = 1162;
projectile = 127;
damage = 12;
gfx2 = 128;
req = 35;
usingAncient = false;
p.MageTime = 5;
}
}
break;
case 49: //Wind blast
if(!p.getInventory().contains(556, 3)|| !p.getInventory().contains(560, 1)) {
p.sm("You need the correct runes to cast this spell"); p.resetAttack();
return;
} else {
if (p.MageTime == 0 && p.getInventory().contains(556, 3) && p.getInventory().contains(560, 1)) {
p.getInventory().deleteItem(556, 3);
p.getInventory().deleteItem(560, 1);
gfx = 132;
anim = 1162;
projectile = 133;
damage = 13;
gfx2 = 134;
req = 41;
usingAncient = false;
p.MageTime = 5;
}
}
break;
case 52: //Water blast
if(!p.getInventory().contains(556, 3)|| !p.getInventory().contains(560, 1)|| !p.getInventory().contains(555, 3)) {
p.sm("You need the correct runes to cast this spell"); p.resetAttack();
return;
} else {
if (p.MageTime == 0 && p.getInventory().contains(556, 3) && p.getInventory().contains(560, 1) && p.getInventory().contains(555, 3)) {
p.getInventory().deleteItem(556, 3);
p.getInventory().deleteItem(560, 1);
p.getInventory().deleteItem(555, 3);
gfx = 135;
anim = 1162;
projectile = 136;
damage = 14;
gfx2 = 137;
req = 47;
usingAncient = false;
p.MageTime = 5;
}
}
break;
case 58: //Earth blast
if(!p.getInventory().contains(556, 3)|| !p.getInventory().contains(560, 1)|| !p.getInventory().contains(557, 3)) {
p.sm("You need the correct runes to cast this spell"); p.resetAttack();
return;
} else {
if (p.MageTime == 0 && p.getInventory().contains(556, 3) && p.getInventory().contains(560, 1) && p.getInventory().contains(557, 3)) {
p.getInventory().deleteItem(556, 3);
p.getInventory().deleteItem(560, 1);
p.getInventory().deleteItem(557, 3);
gfx = 138;
anim = 1162;
projectile = 139;
damage = 15;
gfx2 = 140;
req = 53;
usingAncient = false;
p.MageTime = 5;
}
}
break;
case 63: //Fire blast
if(!p.getInventory().contains(556, 4)|| !p.getInventory().contains(560, 1)|| !p.getInventory().contains(554, 5)) {
p.sm("You need the correct runes to cast this spell"); p.resetAttack();
return;
} else {
if (p.MageTime == 0 && p.getInventory().contains(556, 4) && p.getInventory().contains(560, 1) && p.getInventory().contains(554, 5)) {
p.getInventory().deleteItem(556, 4);
p.getInventory().deleteItem(560, 1);
p.getInventory().deleteItem(554, 5);
gfx = 129;
anim = 1162;
projectile = 130;
damage = 16;
gfx2 = 131;
req = 59;
usingAncient = false;
p.MageTime = 5;
}
}
break;
case 70: //Wind wave
if(!p.getInventory().contains(556, 5)|| !p.getInventory().contains(565, 1)) {
p.sm("You need the correct runes to cast this spell"); p.resetAttack();
return;
} else {
if (p.MageTime == 0 && p.getInventory().contains(556, 5) && p.getInventory().contains(565, 1)) {
p.getInventory().deleteItem(556, 5);
p.getInventory().deleteItem(560, 1);
gfx = 158;
anim = 1162;
projectile = 159;
damage = 17;
gfx2 = 160;
req = 62;
usingAncient = false;
p.MageTime = 5;
}
}
break;
case 73: //Water wave
if(!p.getInventory().contains(556, 5)|| !p.getInventory().contains(565, 1)|| !p.getInventory().contains(555, 7)) {
p.sm("You need the correct runes to cast this spell"); p.resetAttack();
return;
} else {
if (p.MageTime == 0 && p.getInventory().contains(556, 5) && p.getInventory().contains(562, 1) && p.getInventory().contains(557, 7)) {
p.getInventory().deleteItem(556, 5);
p.getInventory().deleteItem(560, 1);
p.getInventory().deleteItem(555, 7);
gfx = 161;
anim = 1162;
projectile = 162;
damage = 18;
gfx2 = 163;
req = 65;
usingAncient = false;
p.MageTime = 5;
}
}
break;
case 77: //Earth Wave
if(!p.getInventory().contains(556, 5)|| !p.getInventory().contains(565, 1)|| !p.getInventory().contains(557, 7)) {
p.sm("You need the correct runes to cast this spell"); p.resetAttack();
return;
} else {
if (p.MageTime == 0 && p.getInventory().contains(556, 5) && p.getInventory().contains(565, 1) && p.getInventory().contains(557, 7)) {
p.getInventory().deleteItem(556, 5);
p.getInventory().deleteItem(560, 1);
p.getInventory().deleteItem(557, 7);
gfx = 164;
anim = 1162;
projectile = 165;
damage = 19;
gfx2 = 166;
req = 70;
usingAncient = false;
p.MageTime = 5;
}
}
break;
case 80: //FireWave
if(!p.getInventory().contains(556, 5)|| !p.getInventory().contains(565, 1)|| !p.getInventory().contains(554, 7)) {
p.sm("You need the correct runes to cast this spell"); p.resetAttack();
return;
} else {
if (p.MageTime == 0 && p.getInventory().contains(556, 5) && p.getInventory().contains(565, 1) && p.getInventory().contains(554, 7)) {
p.getInventory().deleteItem(556, 5);
p.getInventory().deleteItem(560, 1);
p.getInventory().deleteItem(554, 7);
gfx = 155;
anim = 1162;
projectile = 156;
damage = 20;
gfx2 = 157;
req = 75;
usingAncient = false;
p.MageTime =5;
}
}
}
break;
case 193:
projectile = -1;
gfx = -1;
usingAncient = true;
switch (autoCastAncient) {
case 23: //Ice barrage
if(p.getSkills().getLevel(6) < 94) {
p.sm("You need 94 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getInventory().contains(560, 4) && p.getInventory().contains(565,2) && p.getInventory().contains(555,6))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 93) {
gfx = 368;
anim = 1979;
damage = 30;
gfx2 = 369;
req = 94;
freeze = true;
usingBarrage = true;
freezeDelay = 20;
p.getInventory().deleteItem(560, 4);
p.getInventory().deleteItem(566, 3);
p.getInventory().deleteItem(555, 6);
}
break;
case 35: //Shadow barrage
if(p.getSkills().getLevel(6) < 88) {
p.sm("You need 88 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getInventory().contains(560, 4) && p.getInventory().contains(566,3) && p.getInventory().contains(565,2) && p.getInventory().contains(556,1))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 97) {
//gfx = 368;
anim = 1978;
damage = 28;
gfx2 = 383;
req = 88;
p.getInventory().deleteItem(560, 4);
p.getInventory().deleteItem(566, 3);
p.getInventory().deleteItem(565, 2);
p.getInventory().deleteItem(556, 1);
}
break;
case 31: //Smoke barrage
if(p.getSkills().getLevel(6) < 86) {
p.sm("You need 86 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getInventory().contains(560, 4) && p.getInventory().contains(554,4) && p.getInventory().contains(565,2) && p.getInventory().contains(556,1))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 95) {
//gfx = 368;
anim = 1979;
damage = 27;
gfx2 = 391;
req = 86;
p.getInventory().deleteItem(560, 4);
p.getInventory().deleteItem(554, 4);
p.getInventory().deleteItem(565, 2);
p.getInventory().deleteItem(556, 1);
}
break;
case 21: //Ice blitz
if(p.getSkills().getLevel(6) < 82) {
p.sm("You need 82 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getInventory().contains(560, 2) && p.getInventory().contains(565,2) && p.getInventory().contains(555,3))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 81) {
//gfx = 368;
anim = 1978;
damage = 26;
gfx2 = 367;
req = 82;
freeze = true;
freezeDelay = 15;
p.getInventory().deleteItem(560, 2);
p.getInventory().deleteItem(565, 2);
p.getInventory().deleteItem(555, 3);
}
break;
case 25: //Blood Blitz
if(p.getSkills().getLevel(6) < 92) {
p.sm("You need 92 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getInventory().contains(560, 2) && p.getInventory().contains(565,2))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 91) {
//gfx = 368;
anim = 1978;
damage = 25;
gfx2 = 375;
req = 80;
p.getInventory().deleteItem(560, 2);
p.getInventory().deleteItem(565, 2);
}
break;
case 33: //Shadow blitz
if(p.getSkills().getLevel(6) < 76) {
p.sm("You need 76 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getInventory().contains(560, 2) && p.getInventory().contains(565,2) && p.getInventory().contains(556,2) && p.getInventory().contains(566,2))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 75) {
//gfx = 368;
anim = 1978;
damage = 24;
gfx2 = 381;
req = 76;
p.getInventory().deleteItem(560, 2);
p.getInventory().deleteItem(565, 2);
p.getInventory().deleteItem(556, 2);
p.getInventory().deleteItem(566, 2);
}
break;
case 29: //Smoke blitz
if(p.getSkills().getLevel(6) < 74) {
p.sm("You need 74 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getInventory().contains(560, 2) && p.getInventory().contains(565,2) && p.getInventory().contains(554,2) && p.getInventory().contains(565,2))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 73) {
//gfx = 368;
anim = 1978;
damage = 23;
gfx2 = 387;
req = 74;
p.getInventory().deleteItem(560, 2);
p.getInventory().deleteItem(565, 2);
p.getInventory().deleteItem(554, 2);
p.getInventory().deleteItem(556, 2);
}
break;
case 22: //Ice burst
if(p.getSkills().getLevel(6) < 70) {
p.sm("You need 70 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getInventory().contains(562, 4) && p.getInventory().contains(560,2) && p.getInventory().contains(555,4))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 69) {
// gfx = 368;
anim = 1979;
damage = 22;
gfx2 = 363;
req = 70;
freeze = true;
freezeDelay = 10;
p.getInventory().deleteItem(562, 4);
p.getInventory().deleteItem(560, 2);
p.getInventory().deleteItem(555, 4);
}
break;
case 26: //Blood Burst
if(p.getSkills().getLevel(6) < 68) {
p.sm("You need 68 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getInventory().contains(560, 2) && p.getInventory().contains(565,4) && p.getInventory().contains(562,4))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 67) {
// gfx = 368;
anim = 1979;
damage = 21;
gfx2 = 376;
req = 68;
p.getInventory().deleteItem(560, 2);
p.getInventory().deleteItem(565, 4);
p.getInventory().deleteItem(562, 4);
}
break;
case 34: //Shadow Burst
if(p.getSkills().getLevel(6) < 64) {
p.sm("You need 64 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getInventory().contains(562, 4) && p.getInventory().contains(560,2) && p.getInventory().contains(556,1) && p.getInventory().contains(566,2))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 63) {
//gfx = 368;
anim = 1978;
damage = 17;
gfx2 = 382;
req = 64;
p.getInventory().deleteItem(562, 4);
p.getInventory().deleteItem(560, 2);
p.getInventory().deleteItem(556, 1);
p.getInventory().deleteItem(566, 2);
}
break;
case 30: //Smoke Burst
if(p.getSkills().getLevel(6) < 62) {
p.sm("You need 62 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getInventory().contains(562, 4) && p.getInventory().contains(560,2) && p.getInventory().contains(554,2) && p.getInventory().contains(556,2))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 61) {
//gfx = 368;
anim = 1979;
damage = 17;
gfx2 = 389;
req = 62;
p.getInventory().deleteItem(562, 4);
p.getInventory().deleteItem(560, 2);
p.getInventory().deleteItem(554, 2);
p.getInventory().deleteItem(556, 2);
}
break;
case 20: //Ice rush
if(p.getSkills().getLevel(6) < 58) {
p.sm("You need 58 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getInventory().contains(562, 2) && p.getInventory().contains(560,2) && p.getInventory().contains(555,2))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 57) {
//gfx = 368;
anim = 1978;
damage = 16;
gfx2 = 361;
req = 58;
freeze = true;
freezeDelay = 5;
p.getInventory().deleteItem(562, 2);
p.getInventory().deleteItem(560, 2);
p.getInventory().deleteItem(555, 2);
}
break;
case 24: //Blood Rush
if(p.getSkills().getLevel(6) < 56) {
p.sm("You need 56 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getInventory().contains(562, 2) && p.getInventory().contains(560,2) && p.getInventory().contains(565,1))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 55) {
//gfx = 368;
anim = 1978;
damage = 15;
gfx2 = 361;
req = 56;
p.getInventory().deleteItem(562, 2);
p.getInventory().deleteItem(560, 2);
p.getInventory().deleteItem(565, 1);
}
break;
case 32: //Shadow Rush
if(p.getSkills().getLevel(6) < 52) {
p.sm("You need 52 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getInventory().contains(562, 2) && p.getInventory().contains(560,1) && p.getInventory().contains(556,1) && p.getInventory().contains(566,1))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 51) {
//gfx = 368;
anim = 1978;
damage = 14;
gfx2 = 379;
req = 52;
p.getInventory().deleteItem(562, 2);
p.getInventory().deleteItem(560, 2);
p.getInventory().deleteItem(556, 1);
p.getInventory().deleteItem(566, 1);
}
break;
case 28: //Smoke Rush
if(p.getSkills().getLevel(6) < 52) {
p.sm("You need 52 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getInventory().contains(562, 2) && p.getInventory().contains(560,1) && p.getInventory().contains(554,1) && p.getInventory().contains(556,1))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 51) {
// gfx = 368;
anim = 1978;
damage = 13;
gfx2 = 385;
req = 50;
p.getInventory().deleteItem(562, 2);
p.getInventory().deleteItem(560, 2);
p.getInventory().deleteItem(554, 1);
p.getInventory().deleteItem(556, 1);
}
break;
case 39:// miasmic barrage
if(p.getSkills().getLevel(6) < 97) {
p.sm("You need 97 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getEquipment().get(3).getDefinition().getId() == 13867 && p.getInventory().contains(565, 4) && p.getInventory().contains(557,4) && p.getInventory().contains(566,2))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 96) {
gfx = 1853;
anim = 10518;
damage = 35;
gfx2 = 1854;
req = 97;
p.getInventory().deleteItem(565, 4);
p.getInventory().deleteItem(557, 4);
p.getInventory().deleteItem(566, 4);
}
break;
case 37://miasmic blitz
if(p.getSkills().getLevel(6) < 85) {
p.sm("You need 85 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getEquipment().get(3).getDefinition().getId() == 13867 && p.getInventory().contains(565, 2) && p.getInventory().contains(557,3) && p.getInventory().contains(566,3))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 84) {
//gfx = 368;
anim = 10524;
damage = 30;
gfx2 = 1850;
req = 52;
p.getInventory().deleteItem(565, 2);
p.getInventory().deleteItem(557, 3);
p.getInventory().deleteItem(566, 3);
}
break;
case 38://miasmic burst
if(p.getSkills().getLevel(6) < 73) {
p.sm("You need 73 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getEquipment().get(3).getDefinition().getId() == 13867 && p.getInventory().contains(562, 4) && p.getInventory().contains(557,2) && p.getInventory().contains(566,2))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 72) {
//gfx = 368;
anim = 10516;
damage = 25;
gfx2 = 1848;
req = 52;
p.getInventory().deleteItem(562, 4);
p.getInventory().deleteItem(557, 2);
p.getInventory().deleteItem(566, 2);
}
break;
case 36://miasmic rush
if(p.getSkills().getLevel(6) < 73) {
p.sm("You need 73 magic to cast this spell");
p.resetAttack();
n.resetAttack();
return;
}
if (!(p.getEquipment().get(3).getDefinition().getId() == 13867 && p.getInventory().contains(562, 2) && p.getInventory().contains(557,1) && p.getInventory().contains(566,1))) {
p.getActionSender().sendMessage("You do not have the runes needed for this spell.");
p.resetAttack();
n.resetAttack();
return;
}
if(p.getSkills().getLevel(6) > 72) {
gfx = 1845;
anim = 10513;
damage = 18;
gfx2 = 1846;
req = 61;
p.getInventory().deleteItem(565, 2);
p.getInventory().deleteItem(557, 1);
p.getInventory().deleteItem(566, 1);
}
break;
}
break;
}
}
if ( p.getSkills().getLevelForXp(6) <= req) {
p.sm("You need level " + req+ " magic to use this spell.");
p.pvn().autoCasting = false;
p.getWalkingQueue().reset();// fixed
} else if(Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), n.getLocation().getX(), n.getLocation().getY()) <= 8) {
p.getWalkingQueue().reset();
}
/*if(usingBarrage == true) {// && p.combatDelay == 0
for (final NPC npc : World.getWorld().getNpcs()) {
if (Misc.getDistance(n.getLocation().getX(), n.getLocation().getY(), p.getLocation().getX(), p.getLocation().getY()) <= 2) {
continue;
}
if (npc == null || npc.isDead()) {
return;
}
final int magichit = Misc.random(damage)*10;
p.getInventory().deleteItem(560, 4);
p.getInventory().deleteItem(566, 3);
p.getInventory().deleteItem(555, 6);
p.turnTo(n);
//p.combatDelay =+ 5;
p.getWalkingQueue().reset();
p.graphics(gfx, (100 << 16));
p.animate(anim);
World.getWorld().registerEvent(new Event(getMagicDelay()) {
public void execute() {
npc.hit(p, magichit);
p.getSkills().addXp(6, magichit * 650);
npc.graphics(gfx2);
this.stop();
}
});
}
}*/
if(p.combatDelay == 0) {
final int magichit = Misc.random(damage)*10;
p.turnTo(n);
p.combatDelay =+ 5;
p.getWalkingQueue().reset();
p.graphics(gfx, (100 << 16));
p.animate(anim);
World.getWorld().getProjectileManager().fire(p.getLocation(), n.getLocation(), 50, 70, projectile, 43, 31, n);
World.getWorld().registerEvent(new Event(getMagicDelay()) {
public void execute() {
n.hit(p, magichit);
p.getSkills().addXp(6, magichit * 650);
n.graphics(gfx2);
this.stop();
}
});
}
} catch(Exception e) {
}
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
public void RangeAttack(final Player p, final NPC p2) {
try {
if(Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) <= 8) {
p.getWalkingQueue().reset();
}
if (p.LeechAttack == true) {
CursesEffectsHandlerNpc.handleLeechAttack(p, p2);
p.leechDelay = System.currentTimeMillis() + Misc.random(100000);
}
if (p.LeechRange == true) {
CursesEffectsHandlerNpc.handleLeechRanged(p, p2);
p.leechDelay = System.currentTimeMillis() + Misc.random(100000);
}
if (p.LeechMagic == true) {
CursesEffectsHandlerNpc.handleLeechMagic(p, p2);
p.leechDelay = System.currentTimeMillis() + Misc.random(100000);
}
if (p.LeechDefence == true) {
CursesEffectsHandlerNpc.handleLeechDefence(p, p2);
p.leechDelay = System.currentTimeMillis() + Misc.random(100000);
}
if (p.LeechStrength == true) {
CursesEffectsHandlerNpc.handleLeechStrength(p, p2);
p.leechDelay = System.currentTimeMillis() + Misc.random(100000);
}
if (p.SpecialAttackLeech == true) {
CursesEffectsHandlerNpc.handleSpecLeech(p, p2);
p.leechDelay = System.currentTimeMillis() + Misc.random(100000);
}
if (p.SapWarrior == true) {
CursesEffectsHandlerNpc.SapWarrior(p, p2);
}
if (p.SapRanger == true) {
CursesEffectsHandlerNpc.SapRanger(p, p2);
}
if (p.SapSpirit == true) {
CursesEffectsHandlerNpc.SapSpirit(p, p2);
}
if (p.DeflectRange == true) {
CursesEffectsHandlerNpc.DeflectRange(p, p2);
}
if (p.DeflectMelee == true) {
CursesEffectsHandlerNpc.DeflectMelee(p, p2);
}
if (p.DeflectMagic == true) {
CursesEffectsHandlerNpc.DeflectMagic(p, p2);
}
if(p.combatDelay == 0 && p.cantPk == false) {
if(!p.getEquipment().hasAmmo()) {
p.sm("You dont have any ammo in your backpack.");
return;
}
p2.pid = p.getIndex();
p2.Attacking = true;
p.combatDelay += PkDefinitions.getCombatDelay(p);
if(p.getEquipment().isWieldingHandCannon()) {
if(p.usingSpecial) {
p.usingSpecial = false;
p.specialAmount -= p.getSpecialAmount();
if (p.specialAmount < p.getSpecialAmount()) {
p.usingSpecial = false;
p.getActionSender().sendMessage("You do not have enough special energy.");
return;
}
p.usingSpecial = false;
p.specialAmount -= p.getSpecialAmount();
p.animate(12174, 0);
p.graphics(2138, 0);
World.getWorld().getProjectileManager().fire(p.getLocation(), p2.getLocation(), 0, 70, 2143, 43, 31, p2);
World.getWorld().registerEvent(new Event(getMagicDelay()) {
public void execute() {
p2.hit(Misc.random(p.NPCMaxHitRange()*10));
BossesDef(p, p2 , (int) (p.NPCMaxHitRange() * 1.50), 0);
p2.animate(p2.getDefenceAnimation());
this.stop();
}
});
} else {
p.animate(PkDefinitions.getCombatAnim(p));
p.graphics(2138, 0);
World.getWorld().getProjectileManager().fire(p.getLocation(), p2.getLocation(), 0, 70, 2143, 43, 31, p2);
World.getWorld().registerEvent(new Event(getMagicDelay()) {
public void execute() {
p2.hit(p, Misc.random(p.NPCMaxHitRange()*10));
BossesDef(p, p2 , (int) (p.NPCMaxHitRange()*10), 0);
p2.animate(p2.getDefenceAnimation());
this.stop();
}
});
}
} else if(p.getEquipment().isWieldingDbow()) {
if(p.usingSpecial) {
if (p.specialAmount < p.getSpecialAmount()) {
p.usingSpecial = false;
p.getActionSender().sendMessage("You do not have enough special energy.");
return;
}
p.usingSpecial = false;
p.specialAmount -= p.getSpecialAmount();
p.animate(PkDefinitions.getCombatAnim(p));
p.graphics(getDbowDrawback(), (100 << 16));
World.getWorld().getProjectileManager().fire(p.getLocation(), p2.getLocation(), 50, 70, getDbowSpec(), 430, 310, p2);
World.getWorld().registerEvent(new Event(100) {
public void execute() {
World.getWorld().getProjectileManager().fire(p.getLocation(), p2.getLocation(), 50, 70, getDbowSpec(), 430, 310, p2);
this.stop();
}
});
World.getWorld().registerEvent(new Event(getMagicDelay()) {
public void execute() {
BossesDef(p, p2 , (int) (p.NPCMaxHitRange() * 10), 0);
p2.hit(p, Misc.random(p.NPCMaxHitRange() * 10));
this.stop();
}
});
World.getWorld().registerEvent(new Event(getMagicDelay()) {
public void execute() {
BossesDef(p, p2 , (int) (p.NPCMaxHitRange() * 10), 0);
p2.hit(p, Misc.random(p.NPCMaxHitRange() * 10));
p2.animate(p2.getDefenceAnimation());
this.stop();
}
});
} else {
p.animate(PkDefinitions.getCombatAnim(p));
p.graphics(getDbowDrawback(), (100 << 16));
World.getWorld().getProjectileManager().fire(p.getLocation(), p2.getLocation(), 50, 70, p.getEquipment().getProjectileId(), 430, 310, p2);
World.getWorld().registerEvent(new Event(100) {
public void execute() {
World.getWorld().getProjectileManager().fire(p.getLocation(), p2.getLocation(), 50, 70, p.getEquipment().getProjectileId(), 430, 310, p2);
this.stop();
}
});
World.getWorld().registerEvent(new Event(getMagicDelay()) {
public void execute() {
BossesDef(p, p2 , (int) (p.NPCMaxHitRange()*10), 0);
p2.hit(p, Misc.random(p.NPCMaxHitRange())*10);
p2.animate(p2.getDefenceAnimation());
this.stop();
}
});
World.getWorld().registerEvent(new Event(getMagicDelay()) {
public void execute() {
BossesDef(p, p2 , (int) (p.NPCMaxHitRange()*10), 0);
p2.hit(p, Misc.random(p.NPCMaxHitRange())*10);
this.stop();
}
});
}
} else if(p.getEquipment().isWieldingCBow()) {
p.animate(PkDefinitions.getCombatAnim(p));
World.getWorld().getProjectileManager().fire(p.getLocation(), p2.getLocation(), 50, 70, p.getEquipment().getProjectileId(), 430, 310, p2);
World.getWorld().registerEvent(new Event(getMagicDelay()) {
public void execute() {
if(Misc.random(10) == 1) {
EnchantSpec(p, p2, p.NPCMaxHitRange()*10);
p2.animate(p2.getDefenceAnimation());
this.stop();
} else {
p2.hit(p, p.NPCMaxHitRange());
BossesDef(p, p2 , (int) (p.NPCMaxHitRange()*10), 0);
p2.animate(p2.getDefenceAnimation());
this.stop();
}
}
});
} else if(p.usingSpecial) {
} else {
if(p.getEquipment().get(3).getDefinition().getId() == 15241) {
p.sm("You need to be wearing handcannon ammo to fire this weapon.");
return;
}
p.animate(PkDefinitions.getCombatAnim(p));
World.getWorld().getProjectileManager().fire(p.getLocation(), p2.getLocation(), 50, 70, p.getEquipment().getProjectileId(), 43, 31, p2);
World.getWorld().registerEvent(new Event(getMagicDelay()) {
public void execute() {
p2.hit(p, Misc.random(p.NPCMaxHitRange())*10);
BossesDef(p, p2 , (int) (p.NPCMaxHitRange()*10), 0);
this.stop();
}
});
}
}
} catch(Exception e) {
}
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
public void EnchantSpec(Player p, NPC n, int rangeDamage) {
try {
switch(p.getEquipment().get(13).getDefinition().getId()) {
case 9242:
rangeDamage = rangeDamage + Misc.random((n.getHp()/5)*10);
if (rangeDamage >= 100)
rangeDamage = 100;
p.hit(Misc.random(p.getHp())/10);
n.graphics(754);
p.getActionSender().SendSound(2912,100,0);
break;

case 9244:
rangeDamage = rangeDamage + Misc.random(25)*10;
n.graphics(756);
p.getActionSender().SendSound(2915,100,0);
break;

case 9245:
rangeDamage = Misc.random((int) (rangeDamage * 1.25)*10);
p.heal(rangeDamage);
n.graphics(753);
p.getActionSender().SendSound(2917,100,0);
break;

case 9237:
n.pid = -1;
n.Attacking = false;
n.graphics(755);
p.getActionSender().SendSound(2914,100,0);
}
BossesDef(p, n , rangeDamage, 1);
n.hit(p, rangeDamage);
} catch(Exception e) {
}
}
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
public void MeleeAttack(final Player p, final NPC n) {
int distance = 1;
if (n.getId() == 8133 || (n.getId() >= 1158 && n.getId() <= 1160) || n.getId() == 6260 || n.getId() == 6222) {
distance = 4;
}
if (n.getId() == 8350 || n.getId() == 8351 || n.getId() == 8352) {
distance = 4;
}
if(Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), n.getLocation().getX(), n.getLocation().getY()) <= distance) {
if(p.combatDelay == 0) {
n.pid = p.getIndex();
n.Attacking = true;
final int meleeDamage = Misc.random(p.NPCMaxHitMelee()*10);
final int meleeDamage2 = Misc.random(p.NPCMaxHitMelee()*10);
BossesDef(p, n , meleeDamage, 0);
p.turnTo(n);
n.turnTo(p);
p.combatDelay = PkDefinitions.getCombatDelay(p);
if(!p.usingSpecial) {
World.getWorld().submit(new Tickable(1) {
@Override
public void execute() {
n.hit(p, meleeDamage);
n.animate(n.getDefenceAnimation());
this.stop();
}
});
p.animate(PkDefinitions.getCombatAnim(p));
}
if (p.LeechAttack == true) {
CursesEffectsHandlerNpc.handleLeechAttack(p, n);
p.leechDelay = System.currentTimeMillis() + Misc.random(100000);
}
if (p.LeechRange == true) {
CursesEffectsHandlerNpc.handleLeechRanged(p, n);
p.leechDelay = System.currentTimeMillis() + Misc.random(100000);
}
if (p.LeechMagic == true) {
CursesEffectsHandlerNpc.handleLeechMagic(p, n);
p.leechDelay = System.currentTimeMillis() + Misc.random(100000);
}
if (p.LeechDefence == true) {
CursesEffectsHandlerNpc.handleLeechDefence(p, n);
p.leechDelay = System.currentTimeMillis() + Misc.random(100000);
}
if (p.LeechStrength == true) {
CursesEffectsHandlerNpc.handleLeechStrength(p, n);
p.leechDelay = System.currentTimeMillis() + Misc.random(100000);
}
if (p.SpecialAttackLeech == true) {
CursesEffectsHandlerNpc.handleSpecLeech(p, n);
p.leechDelay = System.currentTimeMillis() + Misc.random(100000);
}
if (p.Soulsplit == true && meleeDamage >= 1) {
CursesEffectsHandlerNpc.handleSoulSplit(p, n, meleeDamage);
}
if (p.SapWarrior == true) {
CursesEffectsHandlerNpc.SapWarrior(p, n);
}
if (p.SapRanger == true) {
CursesEffectsHandlerNpc.SapRanger(p, n);
}
if (p.SapSpirit == true) {
CursesEffectsHandlerNpc.SapSpirit(p, n);
}
if (p.SapMage == true) {
CursesEffectsHandlerNpc.SapMage(p, n);
}
if (p.DeflectRange == true) {
CursesEffectsHandlerNpc.DeflectRange(p, n);
}
if (p.DeflectMelee == true) {
CursesEffectsHandlerNpc.DeflectMelee(p, n);
}
if (p.DeflectMagic == true) {
CursesEffectsHandlerNpc.DeflectMagic(p, n);
}
if(p.usingSpecial) {
p.usingSpecial = false;
if (p.specialAmount >= p.getSpecialAmount()) {
p.specialAmount -= p.getSpecialAmount();
switch(p.getEquipment().get(3).getDefinition().getId()) {
case 14484:
p.graphics(1950, 0);
p.animate(10961, 0);
int dclaw1 = meleeDamage/2;int dclaw2 = meleeDamage/3;int dclaw3 = meleeDamage/3;
if (meleeDamage == 0) {
dclaw1 = Misc.random(p.MaxHitMelee());
dclaw2 = dclaw1/2;
dclaw3 = dclaw1/3;
}
if (meleeDamage == 0 && dclaw1 == 0) {
dclaw2 = Misc.random(p.MaxHitMelee());
dclaw3= dclaw2/3;
}
if (meleeDamage == 0 && dclaw1 == 0 && dclaw2 == 0) {
dclaw3 = Misc.random(p.MaxHitMelee());
}
n.hit(p, meleeDamage);
n.hit(p, dclaw1);
n.hit(p, dclaw2);
n.hit(p, dclaw3);
break;
case 14486:
p.graphics(1950, 0);
p.animate(10961, 0);
int dclaw5 = meleeDamage/6;int dclaw6 = meleeDamage/8;int dclaw7 = meleeDamage/8;
if (meleeDamage == 0) {
dclaw1 = Misc.random(p.MaxHitMelee());
dclaw2 = dclaw5/6;
dclaw3 = dclaw7/8;
}
if (meleeDamage == 0 && dclaw5 == 0) {
dclaw6 = Misc.random(p.MaxHitMelee());
dclaw7= dclaw6/6;
}
if (meleeDamage == 0 && dclaw5 == 0 && dclaw6 == 0) {
dclaw3 = Misc.random(p.MaxHitMelee());
}
n.hit(p, meleeDamage);
n.hit(p, dclaw5);
n.hit(p, dclaw6);
n.hit(p, dclaw7);
break;
case 13899:
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, (int) (meleeDamage * 1.10));
this.stop();
}
});
p.animate(10502, 0);
break;
case 4747:
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, (int) (meleeDamage * 1.10));
this.stop();
}
});
p.animate(10502, 0);
break;
case 13902:
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, (int) (meleeDamage * 1.25));
this.stop();
}
});
p.graphics(1840, 0);
p.animate(10505, 0);
break;
case 19780:
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, (int) (meleeDamage * 1.75));
this.stop();
}
});
p.graphics(1729, 0);
p.animate(14788, 0);
break;
case 15259:
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, meleeDamage);
this.stop();
}
});
p.animate(12031, 0);
p.graphics(2144, 100);
break;
case 4151:
case 13444:
case 15441:
case 15442:
case 15443:
case 15444:
n.graphics(2108, 0);
p.animate(11971, 0);
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, meleeDamage);
BossesDef(p, n , meleeDamage, 0);
this.stop();
}
});
break;

case 21371:
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, meleeDamage);
this.stop();
}
});
p.animate(2654, 0);
n.graphics(2707, 100);
break;
case 1215:
case 10581:
n.graphics(252, (100 << 16));
p.animate(1062, 0);
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, (int) (meleeDamage * 1.10));
n.hit(p, (int) (meleeDamage2 * 1.10));
BossesDef(p, n , (int) (meleeDamage * 1.10), 0);
BossesDef(p, n , (int) (meleeDamage2 * 1.10), 0);
this.stop();
}
});
p.getActionSender().SendSound(2537,100,0);
break;
case 5698:
n.graphics(252, (100 << 16));
p.animate(1062, 0);
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, (int) (meleeDamage * 1.10));
n.hit(p, (int) (meleeDamage2 * 1.10));
BossesDef(p, n , (int) (meleeDamage * 1.10), 0);
BossesDef(p, n , (int) (meleeDamage2 * 1.10), 0);
this.stop();
}
});
p.getActionSender().SendSound(2537,100,0);
break;
case 11730:
p.graphics(1224, 0);
p.animate(7072, 0);
n.graphics(1194, 0);
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, meleeDamage);
n.hit(p, meleeDamage2);
BossesDef(p, n , meleeDamage2, 0);
this.stop();
}
});
p.getActionSender().SendSound(3853,100,0);
break;
case 11694:
p.graphics(2113, 0);
p.animate(11989, 0);
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, (int) (meleeDamage * 1.15));
BossesDef(p, n , (int) (meleeDamage * 1.15), 0);
this.stop();
}
});
p.getActionSender().SendSound(3865,100, 0);
break;
case 11716:
p.graphics(1225, 0);
p.animate(7001, 0);
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, (int) (meleeDamage * 1.10));
BossesDef(p, n, (int) (meleeDamage * 1.10), 0);
this.stop();
}
});
break;
case 13450:
p.graphics(1222, 0);
p.animate(7074, 0);
final int hit13450 = (int) (meleeDamage * 1.65);
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, hit13450);
BossesDef(p, n, (int) (meleeDamage * 1.65), 0);
this.stop();
}
});
p.getActionSender().SendSound(3865,100, 0);
break;
case 10887:
p.graphics(1027, 0);
p.animate(5870, 0);
final int hit10887 = (int) (meleeDamage * 1.05);
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, hit10887);
BossesDef(p, n, (int) (meleeDamage * 1.05), 0);
this.stop();
}
});
break;
case 11696:
p.graphics(1223, 0);
p.animate(7073, 0);
final int hit11696 = (int) (meleeDamage * 1.10);
World.getWorld().submit(new Tickable(1) {
public void execute() {
BossesDef(p, n, (int) (meleeDamage * 1.10), 0);
n.hit(p, hit11696);
this.stop();
}
});
p.getActionSender().SendSound(3834,100,0);
break;
case 11698:
p.graphics(1220, 0);
p.animate(7071, 0);
p.heal(meleeDamage/2);
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, meleeDamage);
BossesDef(p, n, meleeDamage, 0);
this.stop();
}
});
p.getActionSender().SendSound(3857,100,0);
break;
case 11700:
p.graphics(2110, 0);
p.animate(7070, 0);
n.graphics(2111, 0);
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, meleeDamage);
BossesDef(p, n, meleeDamage, 0);
this.stop();
}
});
p.getActionSender().SendSound(3857,100,0);
break;
case 13117: // invalius flail thing
final int lflail1 = meleeDamage/5;
final int lflail2 = meleeDamage/8;
p.graphics(1930, 0);
n.graphics(1931, 0);
p.animate(1658, 0);
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, lflail1);
n.hit(p, lflail2);
this.stop();
}
});
break;
case 13451://lent bgs
p.graphics(1223, 0);
p.animate(7073, 0);
final int hit13451 = (int) (meleeDamage * 1.15);
World.getWorld().submit(new Tickable(1) {
public void execute() {
BossesDef(p, n, (int) (meleeDamage * 1.15),
0);
n.hit(p, hit13451);
this.stop();
}
});
p.getActionSender().SendSound(3834,100,0);
break;
case 13452://lent sgs
p.graphics(1220, 0);
p.animate(7071, 0);
p.heal(meleeDamage);
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, meleeDamage);
BossesDef(p, n, meleeDamage, 0);
this.stop();
}
});
p.getActionSender().SendSound(3857,100,0);
break;
case 13453://lent zgs
p.graphics(2110, 0);
p.animate(7070, 0);
n.graphics(2111, 0);
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, meleeDamage);
BossesDef(p, n , meleeDamage, 0);
this.stop();
}
});
p.getActionSender().SendSound(3857,100,0);
break;
case 1305:
p.graphics(2117, 0);
p.animate(12031, 0);
final int hit1305 = (int) (meleeDamage * 1.20);
World.getWorld().submit(new Tickable(1) {
public void execute() {
BossesDef(p, n, (int) (meleeDamage * 1.20),
0);
n.hit(p, hit1305);
this.stop();
}
});
p.getActionSender().SendSound(2529,100,0);
break;
case 4587:
p.graphics(2118, 0);
p.animate(12005, 0);
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, meleeDamage);
BossesDef(p, n, meleeDamage, 0);
this.stop();
}
});
p.getActionSender().SendSound(2540,100,0);
break;
case 3204:
p.graphics(282, 50);
n.graphics(254, 100);
p.animate(1665, 0);
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, meleeDamage);
n.hit(p, meleeDamage2);
BossesDef(p, n, meleeDamage, 0);
BossesDef(p, n, meleeDamage2, 0);
this.stop();
}
});
break;
case 1434:
p.graphics(251, 50);
p.animate(1060, 0);
World.getWorld().submit(new Tickable(1) {
public void execute() {
int hit1434 = (int) (meleeDamage * 1.25);
BossesDef(p, n, (int) (meleeDamage * 1.25),
0);
n.hit(p, hit1434);
this.stop();
}
});
p.getActionSender().SendSound(2541,100,0);
break;
case 7158:
p.graphics(559, 0);
p.animate(3157, 0);
World.getWorld().submit(new Tickable(1) {
public void execute() {
n.hit(p, meleeDamage);
BossesDef(p, n, meleeDamage, 0);
this.stop();
}
});
break;
default:
n.hit(p, meleeDamage);
BossesDef(p, n , meleeDamage, 0);
p.animate(PkDefinitions.getCombatAnim(p));
p.getActionSender().sendMessage("This weapon has no special Attack, if you still see special bar please relogin.");
}
}else{p.getActionSender().sendMessage("You do not have enough special energy.");}
}
}
}
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
public int getMagicDelay() {
NPC p2 = World.getWorld().getNpcs().get(magicIndex);
if (p == null || p2 == null)
return 1300;
if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 1)
return 700;
if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 2)
return 700;
if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 3)
return 900;
if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 4)
return 1050;
if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 5)
return 1050;
if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 6)
return 1050;
if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 7)
return 1050;
if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 8)
return 1050;
if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 9)
return 1045;
if (Misc.getDistance(p.getLocation().getX(), p.getLocation().getY(), p2.getLocation().getX(), p2.getLocation().getY()) == 10)
return 1045;
return 1;
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
public boolean usingRange(Player p) {
if(p.getEquipment().get(3) == null) {
return false;
}
switch(p.getEquipment().get(3).getDefinition().getId()) {
case 14684:
case 4212:
case 4214:
case 4734:
case 11235:
case 15701:
case 15702:
case 15703:
case 15704:
case 9185:
case 18357:
case 861:
case 868:
case 867:
case 866:
case 865:
case 863:
case 14121:
case 15241:
case 10034:
case 11230:
case 841:
case 843:
case 845:
case 847:
case 849:
case 851:
case 17295:
case 853:
case 855:
case 857:
case 859:
return true;
case 0:
return false;
case -1:
return false;
default:
return false;
}
}
public boolean LightEquipped(Player p) {
try {
if(p.getEquipment().get(3).getDefinition().getId() == 6746 || p.getEquipment().get(3).getDefinition().getId() == 6745){
return true;
}
return false;
} catch (Exception e) {
return false;
}
}

public void BossesDef(final Player p, final NPC n , int Damage, int AttType) {
p.addHitExp(p, Damage);
switch (n.getId()) {
case 8324:
case 8325:
case 8326:
case 8327:
if (n.NPCCharges > 0) {
n.NPCDamage[AttType] += Damage;
if (n.NPCDamage[0] >= 15) {
n.NPCDamage[0] = 0;
n.setId(8325);
}
if (n.NPCDamage[1] >= 15) {
n.NPCDamage[1] = 0;
n.setId(8326);
}
if (n.NPCDamage[2] >= 15) {
n.NPCDamage[2] = 0;
n.setId(8327);
}
}
break;
case 8350:
case 8351:
case 8352:
n.NPCDamage[AttType] += Damage;
if (n.NPCDamage[0] >= 31) {
n.NPCDamage[0] = 0;
n.setId(8352);
}
if (n.NPCDamage[1] >= 31) {
n.NPCDamage[1] = 0;
n.setId(8351);
}
if (n.NPCDamage[2] >= 31) {
n.NPCDamage[2] = 0;
n.setId(8350);
}
if (n.UsingThis == false) {
n.graphics(1885);
if (LightEquipped(p) && Misc.random(2) == 1) {
n.UsingThis = true;
p.sm("The demon is temporarily weakened by your weapon.");
World.getWorld().registerEvent(new Event(30000) {
public void execute() {
if (!n.isDead()) {
p.sm("The Tormented demon regains its strength against your weapon.");
}
n.UsingThis = false;
this.stop();
}
});
}
}
break;
}
}
public int getDbowDrawback() {
switch(p.getEquipment().get(13).getDefinition().getId()) {
case 11212:
return 1110;
case 892:
return 1109;
case 890:
return 1108;
case 888:
return 1107;
case 886:
return 1106;
case 884:
return 1105;
case 882:
return 1104;
default:
return 1114;
}
}

public int getDbowSpec() {
switch(p.getEquipment().get(13).getDefinition().getId()) {
case 11212:
return 1099;
default:
return 1102;
}
}
/*public int getMaxHit(Player p) {
int base = damage;
double strengthMultiplier = (baseBonus * 0.00175) + 0.1;
int maxHit = (int) Math.floor(combatStrength * strengthMultiplier * 1.05);
if(FullDharokEquipped()) {
maxHit += (int)((p.getSkills().getLevelForXp(3) - p.getSkills().getLevel(3))/2.2);
}
}*/
}[/CODE]
Happy leeching,
Bl00dz

Share this post


Link to post
Share on other sites
[quote name='titandino']Ewwwww! I dun like those formulas in there![/QUOTE]
Whats wrong with them?

Share this post


Link to post
Share on other sites
Even if you don't like them they still work out.

Share this post


Link to post
Share on other sites
[quote name='bl00dz']Even if you don't like them they still work out.[/QUOTE]
Just cause it works out doesn't make it "right".
Nevertheless, good job.

Share this post


Link to post
Share on other sites
[quote name='SkrilleX']Just cause it works out doesn't make it "right".
Nevertheless, good job.[/QUOTE] Thank you:)

Share this post


Link to post
Share on other sites
I don't understand. What was wrong with them?

Share this post


Link to post
Share on other sites
[quote name='iRepo']I don't understand. What was wrong with them?[/QUOTE]
No Idea... Ask titandino what he thinks makes them wrong.

Share this post


Link to post
Share on other sites
Titan speak up... There is totally nothing wrong with the code. Try it out yourself.

Share this post


Link to post
Share on other sites
Titan is right. The formules for combat are horrible at 562.

Ot: Nicejob but u can better say what to change cuz some people dont want to copy a whole file.

Share this post


Link to post
Share on other sites
Sign in to follow this  

×