Open ItemAssitant.java find is2handed and Under
Add this
Code:
case 22550:
case 22547:
Open Player.Java and find
Code:
public final int[] BOWS = { 19481, 19478, 12788, 9185, 11785, 21012, 839, 845, 847, 851, 855, 859, 841, 843, 849,
853, 857, 12424, 861, 4212, 4214, 4215, 12765, 12766, 12767, 12768, 11235, 4216, 4217, 4218, 4219, 4220,
4221, 4222, 4223, 4734, 6724, 20997, 11749 };
Replace it with the following
Code:
public final int[] BOWS = { 19481, 19478, 12788, 9185, 11785, 21012, 839, 845, 847, 851, 855, 859, 841, 843, 849,
853, 857, 12424, 861, 4212, 4214, 4215, 12765, 12766, 12767, 12768, 11235, 4216, 4217, 4218, 4219, 4220,
4221, 4222, 4223, 4734, 6724, 20997, 22550, 11749 };
Add this code on a new line under Public final int[] BOWS
Code:
public final int[] CRAWS_BOW = { 22550 };
Replace Public final int[] NO_ARROW_DROP with
Code:
public final int[] NO_ARROW_DROP = { 11959, 10033, 10034, 4212, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221,
4222, 4223, 4734, 4934, 4935, 4936, 4937, 22550 };
Open CombatAssitant.java and under
Code:
public boolean usingCrystalBow() {
return c.playerEquipment[c.playerWeapon] >= 4212 && c.playerEquipment[c.playerWeapon] <= 4223 || c.playerEquipment[c.playerWeapon] == 11749;
}
Paste the following
Code:
public boolean usingCrawsBow() {
return c.playerEquipment[c.playerWeapon] == 22550;
}
Open RangeData.java and search for public static int getRangeStr. Add this
Then search for getRangeStartGFX and add this
Search for getRangeProjectileGFX and paste the following
Open attackPlayer.java and find
Code:
if (c.lastWeaponUsed >= 4212 || c.lastWeaponUsed <= 4223 || c.lastWeaponUsed == 17749 || Item.getItemName(c.playerEquipment[3]).contains("crystal bow")) {
dropArrows = false;
}
Replace that with
Code:
if (c.lastWeaponUsed >= 4212 || c.lastWeaponUsed <= 4223 || c.lastWeaponUsed == 22550 || c.lastWeaponUsed == 17749 || Item.getItemName(c.playerEquipment[3]).contains("crystal bow")) {
dropArrows = false;
}
Find.
Code:
if (c.getItems().isWearingAnyItem(4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 11749) && c.playerEquipment[c.playerArrows] > -1) {
c.sendMessage("You cannot use any arrows with this bow.");
c.getCombat().resetPlayerAttack();
return;
}
Add ,22550 at the end of the list or replace with
Code:
if (c.getItems().isWearingAnyItem(4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 11749, 22550) && c.playerEquipment[c.playerArrows] > -1) {
c.sendMessage("You cannot use any arrows with this bow.");
c.getCombat().resetPlayerAttack();
return;
}
Find the following
Code:
if (!c.usingBallista && !c.usingCross && !c.usingArrows && c.usingBow && c.playerEquipment[c.playerWeapon] != 11749 && (c.playerEquipment[c.playerWeapon] < 4212 || c.playerEquipment[c.playerWeapon] > 4223) && !c.usingMagic) {
c.sendMessage("You have run out of arrows!");
c.stopMovement();
c.getCombat().resetPlayerAttack();
return;
}
if (!c.getCombat().correctBowAndArrows() && Config.CORRECT_ARROWS && c.usingBow && !c.getCombat().usingCrystalBow() && c.playerEquipment[c.playerWeapon] != 4734
&& c.playerEquipment[c.playerWeapon] != 9185 && c.playerEquipment[c.playerWeapon] != 11785 && c.playerEquipment[c.playerWeapon] != 21012 && !c.usingMagic && !c.getItems().isWearingItem(12926) && c.playerEquipment[c.playerWeapon] != 19478 && c.playerEquipment[c.playerWeapon] != 19481) {
c.sendMessage("You can't use " + ItemAssistant.getItemName(c.playerEquipment[c.playerArrows]).toLowerCase() + "'s with a "
+ ItemAssistant.getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase() + ".");
c.stopMovement();
c.getCombat().resetPlayerAttack();
return;
}
Replace all of that with the code below
Code:
if (!c.usingBallista && !c.usingCross && !c.usingArrows && c.usingBow && c.playerEquipment[c.playerWeapon] != 11749 && c.playerEquipment[c.playerWeapon] != 22550 && (c.playerEquipment[c.playerWeapon] < 4212 || c.playerEquipment[c.playerWeapon] > 4223) && !c.usingMagic) {
c.sendMessage("You have run out of arrows!");
c.stopMovement();
c.getCombat().resetPlayerAttack();
return;
}
if (!c.getCombat().correctBowAndArrows() && Config.CORRECT_ARROWS && c.usingBow && !c.getCombat().usingCrystalBow() && c.playerEquipment[c.playerWeapon] != 22550 && c.playerEquipment[c.playerWeapon] != 4734
&& c.playerEquipment[c.playerWeapon] != 9185 && c.playerEquipment[c.playerWeapon] != 11785 && c.playerEquipment[c.playerWeapon] != 21012 && !c.usingMagic && !c.getItems().isWearingItem(12926) && c.playerEquipment[c.playerWeapon] != 19478 && c.playerEquipment[c.playerWeapon] != 19481) {
c.sendMessage("You can't use " + ItemAssistant.getItemName(c.playerEquipment[c.playerArrows]).toLowerCase() + "'s with a "
+ ItemAssistant.getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase() + ".");
c.stopMovement();
c.getCombat().resetPlayerAttack();
return;
}
Find
Code:
if (c.playerEquipment[c.playerWeapon] >= 4212 && c.playerEquipment[c.playerWeapon] <= 4223) {
c.rangeItemUsed = c.playerEquipment[c.playerWeapon];
c.crystalBowArrowCount++;
Above that add
Code:
if (c.playerEquipment[c.playerWeapon] == 22550) {
c.rangeItemUsed = c.playerEquipment[c.playerWeapon];
}
Once you are done there open up AttackNpc.java and search for the following
Code:
case RANGE:
if (c.dbowSpec) {
c.dbowSpec = false;
}
boolean dropArrows = true;
if (c.lastWeaponUsed >= 4212 || c.lastWeaponUsed <= 4223 || c.lastWeaponUsed == 11749 || Item.getItemName(c.playerEquipment[3]).contains("crystal bow")) {
dropArrows = false;
}
Replace that with this bad boy below
Code:
if (c.lastWeaponUsed >= 4212 || c.lastWeaponUsed <= 4223 || c.lastWeaponUsed == 22550 || c.lastWeaponUsed == 11749 || Item.getItemName(c.playerEquipment[3]).contains("crystal bow")) {
dropArrows = false;
}
Search for & find the follow code
Code:
if (c.usingMagic) {
c.usingCross = false;
c.usingBallista = false;
}
switch (c.playerEquipment[c.playerWeapon]) {
Within the switch statement place this
Code:
case 22550:
c.setCrawCharge(c.getCrawCharge() - 1);
if (c.getCrawCharge() <= 0) {
c.setCrawCharge(0);
c.sendMessage("@pur@Your Bow has run out of charges");
c.getItems().deleteItem(22550, 1, c.playerWeapon);
c.getItems().wearItem(22547, 1, c.playerWeapon);
//c.getItems().addItemUnderAnyCircumstance(22547, 1);
}
break;
Search for
Code:
if (!c.usingBallista && !c.usingCross && !c.usingArrows && c.usingBow && c.playerEquipment[c.playerWeapon] != 11749 && (c.playerEquipment[c.playerWeapon] < 4212 || c.playerEquipment[c.playerWeapon] > 4223)) {
c.sendMessage("You have run out of arrows!");
c.stopMovement();
c.npcIndex = 0;
return;
}
and replace it with the following
Code:
if (!c.usingBallista && !c.usingCross && !c.usingArrows && c.usingBow && c.playerEquipment[c.playerWeapon] != 22550 && c.playerEquipment[c.playerWeapon] != 11749 && (c.playerEquipment[c.playerWeapon] < 4212 || c.playerEquipment[c.playerWeapon] > 4223)) {
c.sendMessage("You have run out of arrows!");
c.stopMovement();
c.npcIndex = 0;
return;
}
A few lines below that you will find
Code:
if (!c.getCombat().correctBowAndArrows() && Config.CORRECT_ARROWS &&
Replace the whole method with the following
Code:
if (!c.getCombat().correctBowAndArrows() && Config.CORRECT_ARROWS && c.usingBow && !c.getCombat().usingCrystalBow() && !c.getCombat().usingCrawsBow() && c.playerEquipment[c.playerWeapon] != 22550 && c.playerEquipment[c.playerWeapon] != 9185
&& c.playerEquipment[c.playerWeapon] != 4734 && c.playerEquipment[c.playerWeapon] != 11785 && c.playerEquipment[c.playerWeapon] != 21012 && c.playerEquipment[c.playerWeapon] != 12926 && c.playerEquipment[c.playerWeapon] != 19478 && c.playerEquipment[c.playerWeapon] != 19481) {
c.sendMessage("You can't use " + ItemAssistant.getItemName(c.playerEquipment[c.playerArrows]).toLowerCase() + "'s with a "
+ ItemAssistant.getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase() + ".");
c.stopMovement();
c.npcIndex = 0;
return;
}
Search for..
Code:
} else if (c.playerEquipment[c.playerWeapon] == 12926) {
c.getCombat().fireProjectileNpc(0);
}
Above that paste this. Save & Close.
Code:
} else if (c.playerEquipment[c.playerWeapon] == 22550) {
c.rangeItemUsed = c.playerEquipment[c.playerWeapon];
c.lastArrowUsed = 0;
c.getCombat().fireProjectileNpc(0);
Go to ClickNPC.java search for
Code:
if (c.playerEquipment[c.playerWeapon] >= 4214 && c.playerEquipment[c.playerWeapon] <= 4223)
usingBow = true;
Under that paste the following
Code:
if (c.playerEquipment[c.playerWeapon] == 22550)
usingBow = true;
Search for
Code:
if (!usingCross && !usingArrows && usingBow && c.playerEquipment[c.playerWeapon] != 11749 && c.playerEquipment[c.playerWeapon] < 4212
&& c.playerEquipment[c.playerWeapon] > 4223 && !usingCross) {
c.sendMessage("You have run out of arrows!");
break;
}
Under that you'll find
Code:
if (!c.getCombat().correctBowAndArrows() && Config.CORRECT_ARROWS && usingBow
&& !c.getCombat().usingCrystalBow() && c.playerEquipment[c.playerWeapon] != 11749 && c.playerEquipment[c.playerWeapon] != 4734
&& c.playerEquipment[c.playerWeapon] != 9185 && c.playerEquipment[c.playerWeapon] != 11785
&& c.playerEquipment[c.playerWeapon] != 21012 && c.playerEquipment[c.playerWeapon] != 19481
&& c.playerEquipment[c.playerWeapon] != 19478) {
c.sendMessage("You can't use "
+ ItemAssistant.getItemName(c.playerEquipment[c.playerArrows]).toLowerCase() + "'s with a "
+ ItemAssistant.getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase() + ".");
c.stopMovement();
c.getCombat().resetPlayerAttack();
return;
}
Replace that whole thing with this
Code:
if (!c.getCombat().correctBowAndArrows() && Config.CORRECT_ARROWS && usingBow
&& !c.getCombat().usingCrystalBow() && c.playerEquipment[c.playerWeapon] != 22550 && c.playerEquipment[c.playerWeapon] != 11749 && c.playerEquipment[c.playerWeapon] != 4734
&& c.playerEquipment[c.playerWeapon] != 9185 && c.playerEquipment[c.playerWeapon] != 11785
&& c.playerEquipment[c.playerWeapon] != 21012 && c.playerEquipment[c.playerWeapon] != 19481
&& c.playerEquipment[c.playerWeapon] != 19478) {
c.sendMessage("You can't use "
+ ItemAssistant.getItemName(c.playerEquipment[c.playerArrows]).toLowerCase() + "'s with a "
+ ItemAssistant.getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase() + ".");
c.stopMovement();
c.getCombat().resetPlayerAttack();
return;
}