Range/Specials/Clean up

- Added correct range distance for all range weapons
- Fixed whip special attack when using on npcs
- Removed some warnings
- Refactored combat some
- Fixed a few typos
- Deleted some dead code
- Fixed bug where you could kill players with auto retaliate outside of the wilderness if you were already fighting them when they ran out

Closes #146
Closes #352

Also from a previous patch
Closes #329
This commit is contained in:
Mr Extremez
2020-02-10 00:40:21 -06:00
parent 2bef5158c4
commit 5ab79b1128
21 changed files with 1413 additions and 1943 deletions
@@ -5,7 +5,7 @@ public class GameConstants {
public final static boolean SERVER_DEBUG = false;
public final static String SERVER_NAME = "2006rebotted", SERVER_VERSION = "Server Stage v " + GameConstants.TEST_VERSION + ".";
public final static double TEST_VERSION = 2.00;
public final static double TEST_VERSION = 2.1;
public static int BANK_SIZE = 352;
public final static int ITEM_LIMIT = 15000, MAXITEM_AMOUNT = Integer.MAX_VALUE, CLIENT_VERSION = 999999,
WORLD = 1, IPS_ALLOWED = 250, CONNECTION_DELAY = 100,
File diff suppressed because it is too large Load Diff
@@ -93,10 +93,7 @@ public class Specials {
public static HashMap<Integer, specialAttack> specialAttack = new HashMap<Integer, specialAttack>();
@SuppressWarnings("unused")
public static specialAttack getWeapon(int weapon) {
return specialAttack.get(weapon);
}
static {
for (specialAttack SA : specialAttack.values()) {
@@ -105,9 +102,9 @@ public class Specials {
}
}
public void activateSpecial(int weapon, Client o, int i) {
public void activateSpecial(int weapon, Client other, int i) {
int equippedWeapon = player.playerEquipment[player.playerWeapon];
if (NpcHandler.npcs[i] == null && player.npcIndex > 0 || PlayerHandler.players[player.playerIndex] == null && player.playerIndex > 0) {
if ((NpcHandler.npcs[i] == null && player.npcIndex > 0) || (PlayerHandler.players[player.playerIndex] == null && player.playerIndex > 0)) {
return;
}
player.doubleHit = false;
@@ -129,8 +126,7 @@ public class Specials {
if (NpcHandler.npcs[player.npcIndex] == null && player.npcIndex > 0) {
return;
}
if (PlayerHandler.players[player.playerIndex] == null
&& player.playerIndex > 0) {
if (PlayerHandler.players[player.playerIndex] == null && player.playerIndex > 0) {
return;
}
if (equippedWeapon == SA.getWeapon()) {
@@ -218,8 +214,10 @@ public class Specials {
player.hitDelay = player.getCombatAssistant().getHitDelay();
player.doubleHit = SA.getDoubleHit();
} else {
if (o != null) {
o.gfx0(SA.getGfx1());
if (other != null) {
other.gfx0(SA.getGfx1());
} else if (NpcHandler.npcs[player.npcIndex] != null) {
NpcHandler.npcs[i].gfx0(SA.getGfx1());
}
player.startAnimation(SA.getAnim());
player.specDamage = SA.getSpecDamage();
@@ -1,7 +1,6 @@
package com.rebotted.game.content.combat.npcs;
import com.rebotted.GameConstants;
import com.rebotted.game.content.combat.CombatAssistant;
import com.rebotted.game.content.combat.CombatConstants;
import com.rebotted.game.content.combat.melee.MeleeData;
import com.rebotted.game.content.minigames.FightCaves;
@@ -97,30 +96,31 @@ public class NpcCombat {
public static void attackPlayer(Player c, int i) {
if (NpcHandler.npcs[i] != null) {
if (NpcHandler.npcs[i].isDead) {
if (NpcHandler.npcs[i].absY == 3228 && c.absY == 3227
|| NpcHandler.npcs[i].absY == 3224 && c.absY == 3225
|| NpcHandler.npcs[i].absY == 3226 && c.absY == 3227
|| c.inDraynorBuilding() && (NpcHandler.npcs[i].npcType == 172 || NpcHandler.npcs[i].npcType == 174)
|| NpcHandler.npcs[i].inLesserNpc()
|| !c.npcCanAttack
|| NpcHandler.npcs[i].isDead) {
return;
}
if (c.npcCanAttack == false) {
if (NpcHandler.npcs[i].npcType == 1532
|| NpcHandler.npcs[i].npcType == 1534
|| NpcHandler.npcs[i].npcType == 6145
|| NpcHandler.npcs[i].npcType == 6144
|| NpcHandler.npcs[i].npcType == 6143
|| NpcHandler.npcs[i].npcType == 6142
|| NpcHandler.npcs[i].npcType == 752) {
return;
}
if (NpcHandler.npcs[i].inLesserNpc()) {
if (NpcHandler.npcs[i].npcType == 1401 && c.isInTut() || c.tutorialProgress < 36) {
return;
}
if (c.inDraynorBuilding()) {
if (NpcHandler.npcs[i].npcType == 172 || NpcHandler.npcs[i].npcType == 174) {
return;
}
}
if (NpcHandler.npcs[i].absY == 3228 && c.absY == 3227) {
if (NpcHandler.npcs[i].npcType == 9 && c.absX == 3180 && c.absY > 3433 && c.absY < 3447) {
return;
}
if (NpcHandler.npcs[i].absY == 3224 && c.absY == 3225) {
return;
}
if (NpcHandler.npcs[i].absY == 3226 && c.absY == 3227) {
return;
}
if (NpcHandler.npcs[i].absY == 3228 && c.absY == 3227) {
if (NpcHandler.npcs[i].npcType == 374 && c.absY == 3372 && c.absX > 2522 && c.absX < 2532) {
return;
}
if (NpcHandler.npcs[i].npcType > 2462 && NpcHandler.npcs[i].npcType < 2468) {
@@ -138,33 +138,11 @@ public class NpcCombat {
NpcHandler.npcs[i].forceChat("Bwaaaaaaauk bwuk bwuk");
}
}
if (NpcHandler.npcs[i].npcType == 1532
|| NpcHandler.npcs[i].npcType == 1534
|| NpcHandler.npcs[i].npcType == 6145
|| NpcHandler.npcs[i].npcType == 6144
|| NpcHandler.npcs[i].npcType == 6143
|| NpcHandler.npcs[i].npcType == 6142
|| NpcHandler.npcs[i].npcType == 752) {
return;
}
if (NpcHandler.npcs[i].npcType == 1401 && c.isInTut()
|| c.tutorialProgress < 36) {
return;
}
if (NpcHandler.npcs[i].npcType == 9 && c.absX == 3180
&& c.absY > 3433 && c.absY < 3447) {
return;
}
if (NpcHandler.npcs[i].npcType == 374 && c.absY == 3372 && c.absX > 2522 && c.absX < 2532) {
return;
}
if (!NpcHandler.npcs[i].inMulti() && NpcHandler.npcs[i].underAttackBy > 0 && NpcHandler.npcs[i].underAttackBy != c.playerId) {
NpcHandler.npcs[i].killerId = 0;
return;
}
if (!NpcHandler.npcs[i].inMulti()
&& (c.underAttackBy > 0 || c.underAttackBy2 > 0
&& c.underAttackBy2 != i)) {
if (!NpcHandler.npcs[i].inMulti() && (c.underAttackBy > 0 || c.underAttackBy2 > 0 && c.underAttackBy2 != i)) {
NpcHandler.npcs[i].killerId = 0;
return;
}
@@ -210,19 +188,13 @@ public class NpcCombat {
return;
}
if (NpcHandler.npcs[i].projectileId > 0) {
int nX = NpcHandler.npcs[i].getX()
+ NpcHandler.offset(i);
int nY = NpcHandler.npcs[i].getY()
+ NpcHandler.offset(i);
int nX = NpcHandler.npcs[i].getX() + NpcHandler.offset(i);
int nY = NpcHandler.npcs[i].getY() + NpcHandler.offset(i);
int pX = c.getX();
int pY = c.getY();
int offX = (nY - pY) * -1;
int offY = (nX - pX) * -1;
c.getPlayerAssistant().createPlayersProjectile(nX, nY,
offX, offY, 50,
NpcHandler.getProjectileSpeed(i),
NpcHandler.npcs[i].projectileId, 43, 31,
-c.getId() - 1, 65);
c.getPlayerAssistant().createPlayersProjectile(nX, nY, offX, offY, 50, NpcHandler.getProjectileSpeed(i), NpcHandler.npcs[i].projectileId, 43, 31, -c.getId() - 1, 65);
}
int random = Misc.random(10);
if (NpcHandler.npcs[i].npcType == 222 && (NpcHandler.npcs[i].killerId > 0 && NpcHandler.npcs[i].underAttack) && !NpcHandler.npcs[i].isDead && (NpcHandler.npcs[i].HP < NpcHandler.npcs[i].MaxHP + 1)) {
@@ -671,7 +643,7 @@ public class NpcCombat {
}
}
if (damage > 0) {
CombatAssistant.applyRecoilNPC(c, damage, i);
c.getCombatAssistant().applyRecoilNPC(c, damage, i);
}
if (c.playerLevel[3] - damage < 0) {
damage = c.playerLevel[3];
@@ -16,10 +16,6 @@ public class RangeData {
868, 869, 806, 807, 808, 809, 810, 811, 825, 826, 827, 828, 829,
830, 800, 801, 802, 803, 804, 805, 6522 };
public static boolean usingDbow(Player c) {
return c.playerEquipment[c.playerWeapon] == 11235;
}
public static boolean usingCrystalBow(Player c) {
return c.playerEquipment[c.playerWeapon] >= 4212
&& c.playerEquipment[c.playerWeapon] <= 4223;
@@ -53,34 +49,63 @@ public class RangeData {
}
return false;
}
public static boolean usingDart(Player player) {
switch (player.playerEquipment[player.playerWeapon]) {
case 806:
case 807:
case 808:
case 809:
case 810:
case 811:
return true;
}
return false;
}
public static boolean usingLongbow(Player player) {
if (usingCrystalBow(player)) {
return true;
}
switch (player.playerEquipment[player.playerWeapon]) {
case 839:
case 845:
case 847:
case 851:
case 855:
case 859:
return true;
}
return false;
}
public static int correctBowAndArrows(Player c) {
if (usingBolts(c)) {
return -1;
}
switch (c.playerEquipment[c.playerWeapon]) {
case 839:
case 839://longbow
case 841:
return 882;
case 843:
case 845:
case 845://longbow
return 884;
case 847:
case 847://longbow
case 849:
return 886;
case 851:
case 851://longbow
case 853:
return 888;
case 855:
case 855://longbow
case 857:
return 890;
case 859:
case 859://longbow
case 861:
if (c.playerEquipment[c.playerArrows] == 892) {
return 892;
@@ -88,14 +113,12 @@ public class RangeData {
return 4172;
}
//karils
case 4734:
case 4935:
case 4936:
case 4937:
return 4740;
case 11235:
return 11212;
}
return -1;
}
@@ -49,7 +49,7 @@ public class SkillHandler {
} else if (player.playerIsFletching) {// fletching
player.playerIsFletching = false;
} else if (player.playerIsCooking) {// cooking
Cooking.resetCooking(player);
Cooking.setCooking(player, false);
} else if (player.isSmithing) {// smithing
player.isSmithing = false;
} else if (isSkilling[12]) {// crafting
@@ -67,7 +67,7 @@ public class SkillHandler {
} else if (player.isPotCrafting) {// pot crafting
player.isPotCrafting = false;
} else if (player.playerIsCooking) {// cooking
Cooking.resetCooking(player);
Cooking.setCooking(player, false);
} else if (player.playerSkilling[13]) {// smelting
Smelting.resetSmelting(player);
}
@@ -82,7 +82,7 @@ public class SkillHandler {
} else if (player.playerIsFletching) {// fletching
player.playerIsFletching = false;
} else if (player.playerIsCooking) {// cooking
Cooking.resetCooking(player);
Cooking.setCooking(player, false);
} else if (player.isSmithing) {// smithing
player.isSmithing = false;
} else if (isSkilling[12]) {// crafting
@@ -14,18 +14,17 @@ import com.rebotted.util.Misc;
public class Cooking extends SkillHandler {
private static SecureRandom cookingRandom = new SecureRandom(); // The
// random
// factor
private static SecureRandom cookingRandom = new SecureRandom(); // The random factor
private static enum CookingItems {
//raw, cooked, burnt, levelreq, exp, stopburn, stopburn w/gloves, name
SHRIMP(317, 315, 7954, 1, 30, 34, 30, "shrimp"), SARDINE(327, 325, 369,
1, 40, 38, 38, "sardine"), HERRING(345, 347, 357, 5, 50, 41,
41, "herring"), TROUT(335, 333, 343, 15, 70, 50, 50, "trout"), TUNA(
359, 361, 367, 30, 100, 64, 63, "tuna"), ANCHOVIES(321, 319,
323, 5, 45, 34, 34, "anchovies"), RAW_BEEF(2132, 2142, 2146, 1,
30, 33, 33, "raw beef"),
SHRIMP(317, 315, 7954, 1, 30, 34, 30, "shrimp"),
SARDINE(327, 325, 369, 1, 40, 38, 38, "sardine"),
HERRING(345, 347, 357, 5, 50, 41, 41, "herring"),
TROUT(335, 333, 343, 15, 70, 50, 50, "trout"),
TUNA(359, 361, 367, 30, 100, 64, 63, "tuna"),
ANCHOVIES(321, 319, 323, 5, 45, 34, 34, "anchovies"),
RAW_BEEF(2132, 2142, 2146, 1, 30, 33, 33, "raw beef"),
RAW_RAT(2134, 2142, 2146, 1, 30, 33, 33, "raw rat meat"),
BURNT_MEAT(2142, 2146, 2146, 1, 1, 100, 100, "cooked meat"),
RAW_CHICKEN(2138, 2140, 2144, 1, 30, 33, 33, "raw chicken"),
@@ -33,23 +32,20 @@ public class Cooking extends SkillHandler {
MACKERAL(353, 355, 357, 10, 60, 45, 45, "mackeral"),
SALMON(331, 329, 343, 25, 90, 58, 55, "salmon"),
UNCOOKED_BERRY_PIE(2321, 2325, 2329, 10, 78, 50, 50, "uncooked pie"),
PIKE(
349, 351, 343, 20, 80, 59, 59, "pike"), KARAMBWAN(3142, 3144,
3146, 1, 80, 20, 20, "karambwan"), LOBSTER(377, 379, 381, 40,
120, 74, 68, "lobster"), SWORDFISH(371, 373, 375, 50, 140, 86,
81, "swordfish"), MONKFISH(7944, 7946, 7948, 62, 150, 92, 90,
"monkfish"), SHARK(383, 385, 387, 76, 210, 100, 94, "shark"), MANTA_RAY(
389, 391, 393, 91, 169, 100, 100, "manta ray"),
PIKE(349, 351, 343, 20, 80, 59, 59, "pike"),
KARAMBWAN(3142, 3144, 3146, 1, 80, 20, 20, "karambwan"),
LOBSTER(377, 379, 381, 40, 120, 74, 68, "lobster"),
SWORDFISH(371, 373, 375, 50, 140, 86, 81, "swordfish"),
MONKFISH(7944, 7946, 7948, 62, 150, 92, 90, "monkfish"),
SHARK(383, 385, 387, 76, 210, 100, 94, "shark"),
MANTA_RAY(389, 391, 393, 91, 169, 100, 100, "manta ray"),
SEAWEED(401, 1781, 1781, 1, 1, 1, 1, "sea weed"),
CURRY(2009, 2011, 2013, 60, 280, 74, 74, "curry");
int rawItem, cookedItem, burntItem, levelReq, xp, stopBurn,
stopBurnGloves;
int rawItem, cookedItem, burntItem, levelReq, xp, stopBurn, stopBurnGloves;
String name;
private CookingItems(int rawItem, int cookedItem, int burntItem,
int levelReq, int xp, int stopBurn, int stopBurnGloves,
String name) {
private CookingItems(int rawItem, int cookedItem, int burntItem, int levelReq, int xp, int stopBurn, int stopBurnGloves, String name) {
this.rawItem = rawItem;
this.cookedItem = cookedItem;
this.burntItem = burntItem;
@@ -102,86 +98,61 @@ public class Cooking extends SkillHandler {
}
public static void makeBreadOptions(Player c, int item) {
if (c.getItemAssistant().playerHasItem(1929)
&& c.getItemAssistant().playerHasItem(1933)
&& item == c.breadID) {
if (c.getItemAssistant().playerHasItem(1929) && c.getItemAssistant().playerHasItem(1933) && item == c.breadID) {
c.getItemAssistant().deleteItem(1929, 1);
c.getItemAssistant().deleteItem(1933, 1);
c.getItemAssistant().addItem(1925, 1);
c.getItemAssistant().addItem(1931, 1);
c.getItemAssistant().addItem(item, 1);
c.getPacketSender().sendMessage(
"You make the water and flour to make some "
+ ItemAssistant.getItemName(item) + ".");
c.getPacketSender().sendMessage("You mix the water and flour to make some " + ItemAssistant.getItemName(item) + ".");
}
c.getPacketSender().closeAllWindows();
}
public static void pastryCreation(Player c, int itemID1, int itemID2,
int giveItem, String message) {
if (c.getItemAssistant().playerHasItem(itemID1)
&& c.getItemAssistant().playerHasItem(itemID2)) {
public static void pastryCreation(Player c, int itemID1, int itemID2, int giveItem, String message) {
if (c.getItemAssistant().playerHasItem(itemID1) && c.getItemAssistant().playerHasItem(itemID2)) {
c.getItemAssistant().deleteItem(itemID1, 1);
c.getItemAssistant().deleteItem(itemID2, 1);
c.getItemAssistant().addItem(giveItem, 1);
if (message.equalsIgnoreCase("")) {
c.getPacketSender().sendMessage(
"You mix the two ingredients and get an "
+ ItemAssistant.getItemName(giveItem) + ".");
c.getPacketSender().sendMessage("You mix the two ingredients and get an " + ItemAssistant.getItemName(giveItem) + ".");
} else {
c.getPacketSender().sendMessage(message);
}
}
}
public static void cookingAddon(Player c, int itemID1, int itemID2,
int giveItem, int requiredLevel, int expGained) {
public static void cookingAddon(Player c, int itemID1, int itemID2, int giveItem, int requiredLevel, int expGained) {
if (c.playerLevel[7] >= requiredLevel) {
if (c.getItemAssistant().playerHasItem(itemID1)
&& c.getItemAssistant().playerHasItem(itemID2)) {
if (c.getItemAssistant().playerHasItem(itemID1) && c.getItemAssistant().playerHasItem(itemID2)) {
c.getItemAssistant().deleteItem(itemID1, 1);
c.getItemAssistant().deleteItem(itemID2, 1);
c.getItemAssistant().addItem(giveItem, 1);
c.getPlayerAssistant().addSkillXP(expGained, 7);
c.getPacketSender().sendMessage(
"You create a " + ItemAssistant.getItemName(giveItem)
+ ".");
c.getPacketSender().sendMessage("You create a " + ItemAssistant.getItemName(giveItem) + ".");
}
} else {
c.getPacketSender().sendMessage(
"You don't have the required level to make an "
+ ItemAssistant.getItemName(giveItem));
c.getPacketSender().sendMessage("You don't have the required level to make an " + ItemAssistant.getItemName(giveItem));
}
}
private static void setCooking(Player player) {
player.playerIsCooking = true;
player.stopPlayerSkill = true;
public static void setCooking(Player player, boolean isCooking) {
player.playerIsCooking = isCooking;
player.stopPlayerSkill = isCooking;
}
public static void resetCooking(Player player) {
player.playerIsCooking = false;
player.stopPlayerSkill = false;
}
private static void viewCookInterface(Player c, int item) {
c.getPacketSender().sendChatInterface(1743);
c.getPacketSender().sendFrame246(13716, view190 ? 190 : 170, item);
c.getPacketSender().sendFrame126(getLine(c) + "" + ItemAssistant.getItemName(item) + "", 13717);
}
public static String getLine(Player c) {
return c.below459 ? "\\n\\n\\n\\n" : "\\n\\n\\n\\n\\n";
}
public static boolean startCooking(Player c, int itemId, int objectId) {
CookingItems item = forId(itemId);
if (item != null) {
if (c.playerLevel[c.playerCooking] < item.getLevelReq()) {
c.getPacketSender().closeAllWindows();
c.getDialogueHandler().sendStatement(
"You need a Cooking level of " + item.getLevelReq()
+ " to cook this.");
c.getDialogueHandler().sendStatement("You need a Cooking level of " + item.getLevelReq() + " to cook this.");
c.nextChat = 0;
return false;
}
@@ -190,8 +161,7 @@ public class Cooking extends SkillHandler {
return false;
}
if (!COOKING) {
c.getPacketSender().sendMessage(
"This skill is currently disabled.");
c.getPacketSender().sendMessage("This skill is currently disabled.");
return false;
}
// save the id of the item and object for the cooking interface.
@@ -203,8 +173,7 @@ public class Cooking extends SkillHandler {
return false;
}
private static boolean getSuccess(Player c, int burnBonus, int levelReq,
int stopBurn) {
private static boolean getSuccess(Player c, int burnBonus, int levelReq, int stopBurn) {
if (c.playerLevel[c.playerCooking] >= stopBurn) {
return true;
}
@@ -224,7 +193,7 @@ public class Cooking extends SkillHandler {
CycleEventHandler.getSingleton().stopEvents(player, "cookingEvent".hashCode());
final CookingItems item = forId(itemId);
if (item != null) {
setCooking(player);
setCooking(player, true);
RandomEventHandler.addRandom(player);
player.getPacketSender().closeAllWindows();
player.doAmount = amount;
@@ -238,16 +207,13 @@ public class Cooking extends SkillHandler {
@Override
public void execute(CycleEventContainer container) {
if (!player.playerIsCooking) {
resetCooking(player);
setCooking(player, false);
container.stop();
return;
}
if (!player.getItemAssistant().playerHasItem(item.getRawItem(),
1)) {
player.getPacketSender().sendMessage(
"You have run out of " + item.getName()
+ " to cook.");
resetCooking(player);
if (!player.getItemAssistant().playerHasItem(item.getRawItem(), 1)) {
player.getPacketSender().sendMessage("You have run out of " + item.getName() + " to cook.");
setCooking(player, false);
container.stop();
return;
}
@@ -260,15 +226,11 @@ public class Cooking extends SkillHandler {
player.getItemAssistant().deleteItem(item.getRawItem(),
player.getItemAssistant().getItemSlot(itemId), 1);
if (!burn) {
player.getPacketSender().sendMessage(
"You successfully cook the "
+ item.getName().toLowerCase() + ".");
player.getPacketSender().sendMessage("You successfully cook the " + item.getName().toLowerCase() + ".");
if (GameConstants.SOUND) {
player.getPacketSender().sendSound(
SoundList.COOK_ITEM, 100, 0);
player.getPacketSender().sendSound(SoundList.COOK_ITEM, 100, 0);
}
player.getPlayerAssistant().addSkillXP(item.getXp(),
player.playerCooking);
player.getPlayerAssistant().addSkillXP(item.getXp(), player.playerCooking);
player.getItemAssistant().addItem(item.getCookedItem(), 1);
} else {
player.getPacketSender().sendMessage(
@@ -294,7 +256,7 @@ public class Cooking extends SkillHandler {
player.startAnimation(objectId == 2732 ? 897 : 896);
}
} else if (player.doAmount == 0) {
resetCooking(player);
setCooking(player, false);
container.stop();
}
}
@@ -21,7 +21,7 @@ public class Firemaking {
c.startAnimation(65535);
SkillHandler.lastSkillingAction = System.currentTimeMillis();
c.isFiremaking = false;
Cooking.resetCooking(c);
Cooking.setCooking(c, false);
logLit = false;
}
@@ -145,7 +145,7 @@ public class Firemaking {
@Override
public void execute(CycleEventContainer container) {
if (c.playerIsCooking) {
Cooking.resetCooking(c);
Cooking.setCooking(c, false);
}
GameEngine.objectHandler.createAnObject(c, -1, x, y);
GameEngine.itemHandler.createGroundItem(c, 592, x, y, 1, c.getId());
@@ -6,8 +6,6 @@ import com.rebotted.event.CycleEventHandler;
import com.rebotted.game.items.ItemAssistant;
import com.rebotted.game.players.Player;
import java.lang.reflect.Array;
/**
* Cleaned by Andrew
* @author Andrew (Mr Extremez)
@@ -15,7 +13,7 @@ import java.lang.reflect.Array;
public class Smithing {
private int addItem, XP, removeItem, removeAmount, makeTimes;
private int addItem, xpRecieved, removeItem, removeAmount, makeTimes;
public void readInput(int levelReq, String type, Player player, int amountToMake) {
if (ItemAssistant.getItemName(Integer.parseInt(type)).contains("Bronze")) {
@@ -43,139 +41,139 @@ public class Smithing {
return;
}
if (type.equalsIgnoreCase("1351") && levelReq >= 1) {
XP = 13;
xpRecieved = 13;
addItem = 1351;
removeItem = 2349;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equalsIgnoreCase("1205") && levelReq >= 1 && player.tutorialProgress > 20) {
XP = 13;
xpRecieved = 13;
addItem = 1205;
removeItem = 2349;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equalsIgnoreCase("1205") && levelReq >= 1 && player.tutorialProgress == 20) {
XP = 13;
xpRecieved = 13;
addItem = 1205;
removeItem = 2349;
removeAmount = 1;
makeTimes = amountToMake;
player.getDialogueHandler().sendDialogues(3066, -1);
} else if (type.equals("1422") && levelReq >= 2) {
XP = 13;
xpRecieved = 13;
addItem = 1422;
removeItem = 2349;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1139") && levelReq >= 3) {
XP = 13;
xpRecieved = 13;
addItem = 1139;
removeItem = 2349;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("819") && levelReq >= 4) {
XP = 13;
xpRecieved = 13;
addItem = 819;
removeItem = 2349;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1277") && levelReq >= 4) {
XP = 13;
xpRecieved = 13;
addItem = 1277;
removeItem = 2349;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("4819") && levelReq >= 4) {
XP = 13;
xpRecieved = 13;
addItem = 4819;
removeItem = 2349;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("39") && levelReq >= 5) {
XP = 13;
xpRecieved = 13;
addItem = 39;
removeItem = 2349;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1321") && levelReq >= 5) {
XP = 25;
xpRecieved = 25;
addItem = 1321;
removeItem = 2349;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1291") && levelReq >= 6) {
XP = 25;
xpRecieved = 25;
addItem = 1291;
removeItem = 2349;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("864") && levelReq >= 7) {
XP = 25;
xpRecieved = 25;
addItem = 864;
removeItem = 2349;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1155") && levelReq >= 7) {
XP = 25;
xpRecieved = 25;
addItem = 1155;
removeItem = 2349;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1173") && levelReq >= 8) {
XP = 25;
xpRecieved = 25;
addItem = 1173;
removeItem = 2349;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("3095") && levelReq >= 8) { // claws
XP = 25;
xpRecieved = 25;
addItem = 3095;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1337") && levelReq >= 9) {
XP = 38;
xpRecieved = 38;
addItem = 1337;
removeItem = 2349;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1375") && levelReq >= 10) {
XP = 38;
xpRecieved = 38;
addItem = 1375;
removeItem = 2349;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1103") && levelReq >= 11) {
XP = 38;
xpRecieved = 38;
addItem = 1103;
removeItem = 2349;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1189") && levelReq >= 12) {
XP = 38;
xpRecieved = 38;
addItem = 1189;
removeItem = 2349;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1307") && levelReq >= 14) {
XP = 38;
xpRecieved = 38;
addItem = 1307;
removeItem = 2349;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1075") && levelReq >= 16) {
XP = 38;
xpRecieved = 38;
addItem = 1075;
removeItem = 2349;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1087") && levelReq >= 16) {
XP = 38;
xpRecieved = 38;
addItem = 1087;
removeItem = 2349;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1117") && levelReq >= 18) {
XP = 63;
xpRecieved = 63;
addItem = 1117;
removeItem = 2349;
removeAmount = 5;
@@ -184,123 +182,123 @@ public class Smithing {
player.getPacketSender().sendMessage("You need " + levelReq + " smithing to do this!");
return;
}
smithItem(player, addItem, removeItem, removeAmount, makeTimes, XP);
smithItem(player, addItem, removeItem, removeAmount, makeTimes, xpRecieved);
}
private void checkIron(Player c, int levelReq, int amountToMake, String type) {
removeItem = 2351;
if (type.equalsIgnoreCase("1349") && levelReq >= 16) { // Axe
XP = 25;
xpRecieved = 25;
addItem = 1349;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equalsIgnoreCase("1203") && levelReq >= 15) { // Dagger
XP = 25;
xpRecieved = 25;
addItem = 1203;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1420") && levelReq >= 17) { // Mace
XP = 25;
xpRecieved = 25;
addItem = 1420;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1137") && levelReq >= 18) { // Med helm
XP = 25;
xpRecieved = 25;
addItem = 1137;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("820") && levelReq >= 19) { // Dart tips
XP = 25;
xpRecieved = 25;
addItem = 820;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1279") && levelReq >= 19) { // Sword (s)
XP = 25;
xpRecieved = 25;
addItem = 1279;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("4820") && levelReq >= 19) { // Nails
XP = 25;
xpRecieved = 25;
addItem = 4820;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("40") && levelReq >= 20) { // Arrow tips
XP = 25;
xpRecieved = 25;
addItem = 40;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1323") && levelReq >= 20) {// Scim
XP = 50;
xpRecieved = 50;
addItem = 1323;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1293") && levelReq >= 21) { // Longsword
XP = 50;
xpRecieved = 50;
addItem = 1293;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("863") && levelReq >= 22) { // Knives
XP = 25;
xpRecieved = 25;
addItem = 863;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1153") && levelReq >= 22) { // Full Helm
XP = 50;
xpRecieved = 50;
addItem = 1153;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1175") && levelReq >= 23) { // Square shield
XP = 50;
xpRecieved = 50;
addItem = 1175;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1335") && levelReq >= 24) { // Warhammer
XP = 38;
xpRecieved = 38;
addItem = 1335;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1363") && levelReq >= 25) { // Battle axe
XP = 75;
xpRecieved = 75;
addItem = 1363;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1101") && levelReq >= 26) { // Chain
XP = 75;
xpRecieved = 75;
addItem = 1101;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("4540") && levelReq >= 26) { // lantern
XP = 25;
xpRecieved = 25;
addItem = 4540;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1191") && levelReq >= 27) { // Kite
XP = 75;
xpRecieved = 75;
addItem = 1191;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("3096") && levelReq >= 28) { // claws
XP = 50;
xpRecieved = 50;
addItem = 3096;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1309") && levelReq >= 29) { // 2h Sword
XP = 75;
xpRecieved = 75;
addItem = 1309;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1067") && levelReq >= 31) { // Platelegs
XP = 75;
xpRecieved = 75;
addItem = 1067;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1081") && levelReq >= 31) { // PlateSkirt
XP = 75;
xpRecieved = 75;
addItem = 1081;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1115") && levelReq >= 33) { // Platebody
XP = 125;
xpRecieved = 125;
addItem = 1115;
removeAmount = 5;
makeTimes = amountToMake;
@@ -309,129 +307,129 @@ public class Smithing {
return;
}
smithItem(c, addItem, removeItem, removeAmount, makeTimes, XP);
smithItem(c, addItem, removeItem, removeAmount, makeTimes, xpRecieved);
}
private void checkSteel(Player c, int levelReq, int amountToMake, String type) {
removeItem = 2353;
if (type.equalsIgnoreCase("1353") && levelReq >= 31) { // Axe
XP = 38;
xpRecieved = 38;
addItem = 1353;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("2") && levelReq >= 35) { // Cannonball
XP = 26;
xpRecieved = 26;
addItem = 2;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equalsIgnoreCase("1207") && levelReq >= 30) { // Dagger
XP = 50;
xpRecieved = 50;
addItem = 1207;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1424") && levelReq >= 32) { // Mace
XP = 50;
xpRecieved = 50;
addItem = 1424;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1141") && levelReq >= 33) { // Med helm
XP = 50;
xpRecieved = 50;
addItem = 1141;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("821") && levelReq >= 34) { // Dart tips
XP = 50;
xpRecieved = 50;
addItem = 821;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1281") && levelReq >= 34) { // Sword (s)
XP = 50;
xpRecieved = 50;
addItem = 1281;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1539") && levelReq >= 34) { // Nails
XP = 50;
xpRecieved = 50;
addItem = 1539;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("41") && levelReq >= 35) { // Arrow tips
XP = 50;
xpRecieved = 50;
addItem = 41;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1325") && levelReq >= 35) {// Scim
XP = 75;
xpRecieved = 75;
addItem = 1325;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("2370") && levelReq >= 36) {// Studs
XP = 37;
xpRecieved = 37;
addItem = 2370;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1295") && levelReq >= 36) { // Longsword
XP = 75;
xpRecieved = 75;
addItem = 1295;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("865") && levelReq >= 37) { // Knives
XP = 50;
xpRecieved = 50;
addItem = 865;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1157") && levelReq >= 37) { // Full Helm
XP = 75;
xpRecieved = 75;
addItem = 1157;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1177") && levelReq >= 38) { // Square shield
XP = 75;
xpRecieved = 75;
addItem = 1177;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1339") && levelReq >= 39) { // Warhammer
XP = 113;
xpRecieved = 113;
addItem = 1339;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1365") && levelReq >= 40) { // Battle axe
XP = 113;
xpRecieved = 113;
addItem = 1365;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1105") && levelReq >= 41) { // Chain
XP = 113;
xpRecieved = 113;
addItem = 1105;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1193") && levelReq >= 42) { // Kite
XP = 113;
xpRecieved = 113;
addItem = 1193;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("3097") && levelReq >= 43) { // claws
XP = 75;
xpRecieved = 75;
addItem = 3097;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1311") && levelReq >= 44) { // 2h Sword
XP = 113;
xpRecieved = 113;
addItem = 1311;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1069") && levelReq >= 46) { // Platelegs
XP = 113;
xpRecieved = 113;
addItem = 1069;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1083") && levelReq >= 46) { // PlateSkirt
XP = 113;
xpRecieved = 113;
addItem = 1083;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1119") && levelReq >= 48) { // Platebody
XP = 188;
xpRecieved = 188;
addItem = 1119;
removeAmount = 5;
makeTimes = amountToMake;
@@ -440,118 +438,118 @@ public class Smithing {
"You need " + levelReq + " smithing to do this!");
return;
}
smithItem(c, addItem, removeItem, removeAmount, makeTimes, XP);
smithItem(c, addItem, removeItem, removeAmount, makeTimes, xpRecieved);
}
private void checkMith(Player c, int levelReq, int amountToMake, String type) {
removeItem = 2359;
if (type.equalsIgnoreCase("1355") && levelReq >= 51) { // Axe
XP = 50;
xpRecieved = 50;
addItem = 1355;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equalsIgnoreCase("1209") && levelReq >= 50) { // Dagger
XP = 50;
xpRecieved = 50;
addItem = 1209;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1428") && levelReq >= 52) { // Mace
XP = 50;
xpRecieved = 50;
addItem = 1428;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1143") && levelReq >= 53) {// Med helm
XP = 50;
xpRecieved = 50;
addItem = 1143;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("822") && levelReq >= 54) { // Dart tips
XP = 50;
xpRecieved = 50;
addItem = 822;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1285") && levelReq >= 54) { // Sword (s)
XP = 50;
xpRecieved = 50;
addItem = 1285;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("4822") && levelReq >= 54) { // Nails
XP = 50;
xpRecieved = 50;
addItem = 4822;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("42") && levelReq >= 55) { // Arrow tips
XP = 50;
xpRecieved = 50;
addItem = 42;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1329") && levelReq >= 55) {// Scim
XP = 100;
xpRecieved = 100;
addItem = 1329;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1299") && levelReq >= 56) { // Longsword
XP = 100;
xpRecieved = 100;
addItem = 1299;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("866") && levelReq >= 57) { // Knives
XP = 50;
xpRecieved = 50;
addItem = 866;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1159") && levelReq >= 57) { // Full Helm
XP = 100;
xpRecieved = 100;
addItem = 1159;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1181") && levelReq >= 58) { // Square shield
XP = 100;
xpRecieved = 100;
addItem = 1181;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1343") && levelReq >= 59) { // Warhammer
XP = 150;
xpRecieved = 150;
addItem = 1343;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1369") && levelReq >= 60) { // Battle axe
XP = 150;
xpRecieved = 150;
addItem = 1369;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1109") && levelReq >= 61) { // Chain
XP = 150;
xpRecieved = 150;
addItem = 1109;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1197") && levelReq >= 62) { // Kite
XP = 150;
xpRecieved = 150;
addItem = 1197;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("3099") && levelReq >= 63) { // claws
XP = 100;
xpRecieved = 100;
addItem = 3099;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1315") && levelReq >= 64) { // 2h Sword
XP = 150;
xpRecieved = 150;
addItem = 1315;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1071") && levelReq >= 66) { // Platelegs
XP = 150;
xpRecieved = 150;
addItem = 1071;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1085") && levelReq >= 66) { // PlateSkirt
XP = 150;
xpRecieved = 150;
addItem = 1085;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1121") && levelReq >= 68) { // Platebody
XP = 250;
xpRecieved = 250;
addItem = 1121;
removeAmount = 5;
makeTimes = amountToMake;
@@ -559,118 +557,118 @@ public class Smithing {
c.getPacketSender().sendMessage("You need " + levelReq + " smithing to do this!");
return;
}
smithItem(c, addItem, removeItem, removeAmount, makeTimes, XP);
smithItem(c, addItem, removeItem, removeAmount, makeTimes, xpRecieved);
}
private void checkAddy(Player c, int levelReq, int amountToMake, String type) {
removeItem = 2361;
if (type.equalsIgnoreCase("1357") && levelReq >= 71) { // Axe
XP = 63;
xpRecieved = 63;
addItem = 1357;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equalsIgnoreCase("1211") && levelReq >= 70) { // Dagger
XP = 63;
xpRecieved = 63;
addItem = 1211;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1430") && levelReq >= 72) { // Mace
XP = 63;
xpRecieved = 63;
addItem = 1430;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1145") && levelReq >= 73) { // Med helm
XP = 63;
xpRecieved = 63;
addItem = 1145;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("823") && levelReq >= 74) { // Dart tips
XP = 63;
xpRecieved = 63;
addItem = 823;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1287") && levelReq >= 74) { // Sword (s)
XP = 63;
xpRecieved = 63;
addItem = 1287;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("4823") && levelReq >= 74) { // Nails
XP = 63;
xpRecieved = 63;
addItem = 4823;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("43") && levelReq >= 75) { // Arrow tips
XP = 63;
xpRecieved = 63;
addItem = 43;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1331") && levelReq >= 75) {// Scim
XP = 125;
xpRecieved = 125;
addItem = 1331;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1301") && levelReq >= 76) { // Longsword
XP = 125;
xpRecieved = 125;
addItem = 1301;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("867") && levelReq >= 77) { // Knives
XP = 63;
xpRecieved = 63;
addItem = 867;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1161") && levelReq >= 77) { // Full Helm
XP = 125;
xpRecieved = 125;
addItem = 1161;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1183") && levelReq >= 78) { // Square shield
XP = 125;
xpRecieved = 125;
addItem = 1183;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1345") && levelReq >= 79) { // Warhammer
XP = 188;
xpRecieved = 188;
addItem = 1345;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1371") && levelReq >= 80) { // Battle axe
XP = 188;
xpRecieved = 188;
addItem = 1371;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1111") && levelReq >= 81) { // Chain
XP = 188;
xpRecieved = 188;
addItem = 1111;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1199") && levelReq >= 82) { // Kite
XP = 188;
xpRecieved = 188;
addItem = 1199;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("3100") && levelReq >= 83) { // claws
XP = 125;
xpRecieved = 125;
addItem = 3100;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1317") && levelReq >= 84) { // 2h Sword
XP = 188;
xpRecieved = 188;
addItem = 1317;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1073") && levelReq >= 86) { // Platelegs
XP = 188;
xpRecieved = 188;
addItem = 1073;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1091") && levelReq >= 86) { // PlateSkirt
XP = 188;
xpRecieved = 188;
addItem = 1091;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1123") && levelReq >= 88) { // Platebody
XP = 313;
xpRecieved = 313;
addItem = 1123;
removeAmount = 5;
makeTimes = amountToMake;
@@ -678,118 +676,118 @@ public class Smithing {
c.getPacketSender().sendMessage("You need " + levelReq + " smithing to do this!");
return;
}
smithItem(c, addItem, removeItem, removeAmount, makeTimes, XP);
smithItem(c, addItem, removeItem, removeAmount, makeTimes, xpRecieved);
}
private void checkRune(Player c, int levelReq, int amountToMake, String type) {
removeItem = 2363;
if (type.equalsIgnoreCase("1359") && levelReq >= 86) { // Axe
XP = 75;
xpRecieved = 75;
addItem = 1359;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equalsIgnoreCase("1213") && levelReq >= 85) { // Dagger
XP = 75;
xpRecieved = 75;
addItem = 1213;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1432") && levelReq >= 87) { // Mace
XP = 75;
xpRecieved = 75;
addItem = 1432;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1147") && levelReq >= 88) { // Med helm
XP = 75;
xpRecieved = 75;
addItem = 1147;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("824") && levelReq >= 89) { // Dart tips
XP = 75;
xpRecieved = 75;
addItem = 824;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1289") && levelReq >= 89) { // Sword (s)
XP = 75;
xpRecieved = 75;
addItem = 1289;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("4824") && levelReq >= 89) { // Nails
XP = 75;
xpRecieved = 75;
addItem = 4824;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("44") && levelReq >= 90) { // Arrow tips
XP = 75;
xpRecieved = 75;
addItem = 44;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1333") && levelReq >= 90) {// Scim
XP = 150;
xpRecieved = 150;
addItem = 1333;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1303") && levelReq >= 91) { // Longsword
XP = 150;
xpRecieved = 150;
addItem = 1303;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("868") && levelReq >= 92) { // Knives
XP = 75;
xpRecieved = 75;
addItem = 868;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("1163") && levelReq >= 92) { // Full Helm
XP = 150;
xpRecieved = 150;
addItem = 1163;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1185") && levelReq >= 93) { // Square shield
XP = 150;
xpRecieved = 150;
addItem = 1185;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1347") && levelReq >= 94) { // Warhammer
XP = 225;
xpRecieved = 225;
addItem = 1347;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1373") && levelReq >= 95) { // Battle axe
XP = 225;
xpRecieved = 225;
addItem = 1373;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1113") && levelReq >= 96) { // Chain
XP = 225;
xpRecieved = 225;
addItem = 1113;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1201") && levelReq >= 97) { // Kite
XP = 225;
xpRecieved = 225;
addItem = 1201;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1319") && levelReq >= 99) { // 2h Sword
XP = 225;
xpRecieved = 225;
addItem = 1319;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1079") && levelReq >= 99) { // Platelegs
XP = 225;
xpRecieved = 225;
addItem = 1079;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("3101") && levelReq >= 98) { // claws
XP = 150;
xpRecieved = 150;
addItem = 3101;
removeAmount = 2;
makeTimes = amountToMake;
} else if (type.equals("1093") && levelReq >= 99) { // PlateSkirt
XP = 225;
xpRecieved = 225;
addItem = 1093;
removeAmount = 3;
makeTimes = amountToMake;
} else if (type.equals("1127") && levelReq >= 99) { // Platebody
XP = 313;
xpRecieved = 313;
addItem = 1127;
removeAmount = 5;
makeTimes = amountToMake;
@@ -797,18 +795,15 @@ public class Smithing {
c.getPacketSender().sendMessage("You need " + levelReq + " smithing to do this!");
return;
}
smithItem(c, addItem, removeItem, removeAmount, makeTimes, XP);
smithItem(c, addItem, removeItem, removeAmount, makeTimes, xpRecieved);
}
public static void smithItem(Player player, int addItem, int removeItem,
int removeItem2, int timesToMake, int XP) {
public static void smithItem(Player player, int addItem, int removeItem, int removeItem2, int timesToMake, int XP) {
player.doAmount = timesToMake;
player.getPacketSender().closeAllWindows();
String name = ItemAssistant.getItemName(addItem);
if (player.getItemAssistant().playerHasItem(removeItem, removeItem2)) {
if (!player.isSmithing)
{
if (!player.isSmithing) {
player.isSmithing = true;
player.startAnimation(898);
CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@@ -816,24 +811,17 @@ public class Smithing {
public void execute(CycleEventContainer container) {
if (player.doAmount <= 0 || !player.getItemAssistant().playerHasItem(removeItem, removeItem2) || !player.isSmithing || player.isWoodcutting || player.isCrafting || player.isMoving || player.isMining || player.isBusy || player.isShopping || player.isFletching || player.isFiremaking || player.isSpinning || player.isPotionMaking || player.playerIsFishing || player.isBanking || player.isSmelting || player.isTeleporting || player.isHarvesting || player.playerIsCooking || player.isPotCrafting) {
container.stop();
}
else
{
} else {
player.startAnimation(898);
player.getPacketSender().sendSound(468, 100, 0);
if (name.contains("ball"))
{
if (name.contains("ball")) {
player.getPacketSender().sendMessage("You make some " + name.toLowerCase() + "s.");
}
else if (name.charAt(name.length() -1) == 's') {
} else if (name.charAt(name.length() -1) == 's') {
player.getPacketSender().sendMessage("You make some " + name.toLowerCase() + ".");
} else {
if (name.charAt(1) == 'a' || name.charAt(1) == 'e' || name.toLowerCase().charAt(1) == 'i' || name.charAt(1) == 'o' || name.charAt(1) == 'u')
{
if (name.charAt(1) == 'a' || name.charAt(1) == 'e' || name.toLowerCase().charAt(1) == 'i' || name.charAt(1) == 'o' || name.charAt(1) == 'u') {
player.getPacketSender().sendMessage("You make an " + name.toLowerCase() + ".");
}
else
{
} else {
player.getPacketSender().sendMessage("You make a " + name.toLowerCase() + ".");
}
}
@@ -841,13 +829,9 @@ public class Smithing {
player.getPacketSender().sendMessage(ItemAssistant.getItemName(addItem));
if (name.contains("bolt")) {
player.getItemAssistant().addItem(addItem, 10);
} else if (name.contains("tip") && !name.contains("dart tip")) {
player.getItemAssistant().addItem(addItem, 15);
} else if (name.contains("dart tip")) {
player.getItemAssistant().addItem(addItem, 10);
} else if (name.contains("nail")) {
player.getItemAssistant().addItem(addItem, 15);
} else if (name.contains("arrow")) {
} else if (name.contains("arrow") || name.contains("nail") || (name.contains("tip") && !name.contains("dart tip"))) {
player.getItemAssistant().addItem(addItem, 15);
} else if (name.contains("knife")) {
player.getItemAssistant().addItem(addItem, 5);
@@ -872,4 +856,5 @@ public class Smithing {
player.isSmithing = false;
}
}
}
}
@@ -22,6 +22,7 @@ import com.rebotted.game.content.combat.magic.Enchanting;
import com.rebotted.game.content.combat.prayer.PrayerData;
import com.rebotted.game.content.combat.prayer.PrayerDrain;
import com.rebotted.game.content.combat.range.DwarfCannon;
import com.rebotted.game.content.combat.range.RangeData;
import com.rebotted.game.content.consumables.Food;
import com.rebotted.game.content.consumables.Potions;
import com.rebotted.game.content.guilds.impl.RangersGuild;
@@ -745,7 +746,6 @@ public abstract class Player {
if (inDesert() && heightLevel == 0) {
DesertHeat.callHeat(this);
}
if (playerEnergy < 100 && System.currentTimeMillis() - lastIncrease >= getPlayerAssistant().raiseTimer()) {
playerEnergy += 1;
lastIncrease = System.currentTimeMillis();
@@ -756,7 +756,6 @@ public abstract class Player {
getPacketSender().sendConfig(173, 0);
}
getPlayerAssistant().writeEnergy();
if (System.currentTimeMillis() - specDelay > CombatConstants.INCREASE_SPECIAL_AMOUNT) {
specDelay = System.currentTimeMillis();
if (specAmount < 10) {
@@ -793,21 +792,19 @@ public abstract class Player {
if (System.currentTimeMillis() - singleCombatDelay2 > 3300) {
underAttackBy2 = 0;
}
if (System.currentTimeMillis() - restoreStatsDelay > 60000) {
restoreStatsDelay = System.currentTimeMillis();
for (int level = 0; level < playerLevel.length; level++) {
if (playerLevel[level] < getLevelForXP(playerXP[level])) {
if (level != 5) { // prayer doesn't restore
playerLevel[level] += 1;
getPacketSender().setSkillLevel(level,
playerLevel[level], playerXP[level]);
getPacketSender().setSkillLevel(level, playerLevel[level], playerXP[level]);
getPlayerAssistant().refreshSkill(level);
}
} else if (playerLevel[level] > getLevelForXP(playerXP[level])) {
playerLevel[level] -= 1;
getPacketSender().setSkillLevel(level,
playerLevel[level], playerXP[level]);
getPacketSender().setSkillLevel(level, playerLevel[level], playerXP[level]);
getPlayerAssistant().refreshSkill(level);
}
}
@@ -857,9 +854,7 @@ public abstract class Player {
if (PlayerHandler.players[frozenBy] == null) {
freezeTimer = -1;
frozenBy = -1;
} else if (!goodDistance(absX, absY,
PlayerHandler.players[frozenBy].absX,
PlayerHandler.players[frozenBy].absY, 20)) {
} else if (!goodDistance(absX, absY, PlayerHandler.players[frozenBy].absX, PlayerHandler.players[frozenBy].absY, 20)) {
freezeTimer = -1;
frozenBy = -1;
}
@@ -932,12 +927,7 @@ public abstract class Player {
}
public void queueMessage(Packet arg1) {
// synchronized(queuedPackets) {
// if (arg1.getId() != 41)
queuedPackets.add(arg1);
// else
// processPacket(arg1);
// }
}
public synchronized boolean processQueuedPackets() {
@@ -953,7 +943,6 @@ public abstract class Player {
packetSize = p.getLength();
inStream.buffer = p.getData();
if (packetType > 0) {
// getPacketDispatcher().sendMessage("PacketType: " + packetType);
PacketHandler.processPacket(this, packetType, packetSize);
}
timeOutCounter = 0;
@@ -970,8 +959,6 @@ public abstract class Player {
packetSize = p.getLength();
inStream.buffer = p.getData();
if (packetType > 0) {
// getPacketDispatcher().sendMessage("PacketType: " +
// packetType);
PacketHandler.processPacket(this, packetType, packetSize);
}
timeOutCounter = 0;
@@ -1095,38 +1082,38 @@ public abstract class Player {
}
public void trawlerFade(final int x, final int y, final int height) {
if (System.currentTimeMillis() - lastAction > 5000) {
lastAction = System.currentTimeMillis();
resetWalkingQueue();
CycleEventHandler.getSingleton().addEvent(this, new CycleEvent() {
int tStage = 5;
public void execute(CycleEventContainer container) {
if (tStage == 5) {
getPacketSender().showInterface(18460);
}
if (tStage == 4) {
getPlayerAssistant().movePlayer(x, y, height);
getPlayerAssistant().resetAnimationsToPrevious();
appearanceUpdateRequired = true;
}
if (tStage == 3) {
getPacketSender().showInterface(18452);
}
if (tStage == 1) {
container.stop();
return;
}
if (tStage > 0) {
tStage--;
}
}
public void stop() {
getPacketSender().closeAllWindows();
tStage = 0;
}
}, 1);
}
}
if (System.currentTimeMillis() - lastAction > 5000) {
lastAction = System.currentTimeMillis();
resetWalkingQueue();
CycleEventHandler.getSingleton().addEvent(this, new CycleEvent() {
int tStage = 5;
public void execute(CycleEventContainer container) {
if (tStage == 5) {
getPacketSender().showInterface(18460);
}
if (tStage == 4) {
getPlayerAssistant().movePlayer(x, y, height);
getPlayerAssistant().resetAnimationsToPrevious();
appearanceUpdateRequired = true;
}
if (tStage == 3) {
getPacketSender().showInterface(18452);
}
if (tStage == 1) {
container.stop();
return;
}
if (tStage > 0) {
tStage--;
}
}
public void stop() {
getPacketSender().closeAllWindows();
tStage = 0;
}
}, 1);
}
}
public void fade(final int x, final int y, final int height) {
if (System.currentTimeMillis() - lastAction > 5000) {
@@ -1135,24 +1122,24 @@ public abstract class Player {
CycleEventHandler.getSingleton().addEvent(this, new CycleEvent() {
int tStage = 6;
public void execute(CycleEventContainer container) {
if (tStage == 6) {
getPacketSender().showInterface(18460);
}
if (tStage == 5) {
getPlayerAssistant().movePlayer(x, y, height);
updateRequired = true;
appearanceUpdateRequired = true;
}
if (tStage == 4) {
getPacketSender().showInterface(18452);
}
if (tStage == 1) {
container.stop();
return;
}
if (tStage > 0) {
tStage--;
}
if (tStage == 6) {
getPacketSender().showInterface(18460);
}
if (tStage == 5) {
getPlayerAssistant().movePlayer(x, y, height);
updateRequired = true;
appearanceUpdateRequired = true;
}
if (tStage == 4) {
getPacketSender().showInterface(18452);
}
if (tStage == 1) {
container.stop();
return;
}
if (tStage > 0) {
tStage--;
}
}
public void stop() {
getPacketSender().closeAllWindows();
@@ -1227,12 +1214,14 @@ public abstract class Player {
private Npc specialTarget = null;
public void setSpecialTarget(Npc target) {
this.specialTarget = target;
}
public Npc getSpecialTarget() {
return specialTarget;
}
this.specialTarget = target;
}
public Npc getSpecialTarget() {
return specialTarget;
}
public int miningAxe = -1, woodcuttingAxe = -1;
@@ -1568,18 +1557,27 @@ public abstract class Player {
4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 2097152,
8388608, 16777216, 67108864, 134217728 };
/**
* Combat variables
*/
public boolean doubleHit, usingSpecial, usingRangeWeapon,
usingBow, usingMagic, castingMagic;
public int npcIndex, npcClickIndex, npcType, castingSpellId, oldSpellId,
public int castingSpellId, oldSpellId,
spellId, hitDelay;
public int specMaxHitIncrease, freezeDelay, freezeTimer = -6, killerId,
playerIndex, oldPlayerIndex, lastWeaponUsed, projectileStage,
crystalBowArrowCount, playerMagicBook, teleGfx, teleEndAnimation,
teleHeight, teleX, teleY, rangeItemUsed, killingNpcIndex,
totalDamageDealt, globalDamageDealt, oldNpcIndex, fightMode, attackTimer;
totalDamageDealt, globalDamageDealt, oldNpcIndex, fightMode, attackTimer,
bowSpecShot;
public boolean magicFailed, oldMagicFailed;
public int bowSpecShot, clickNpcType, clickObjectType, objectId, objectX,
objectY;
/**
* End
*/
public int clickNpcType, clickObjectType, objectId, objectX,
objectY, npcIndex, npcClickIndex, npcType;
public int pItemX, pItemY, pItemId;
public boolean isMoving, walkingToItem;
public boolean isShopping, updateShop;
@@ -2157,8 +2155,35 @@ public abstract class Player {
walkingQueueY[wQueueWritePtr] = y;
wQueueWritePtr = next;
}
public boolean checkRangeDistance() {
return (usingRangeWeapon || usingBow);
}
public int gatherRangeDistance(int distance) {
//dart (non long range)
if (usingRangeWeapon && RangeData.usingDart(this) && fightMode != 3) {
distance = 3;
//longbow (long range)
} else if (usingBow && fightMode == 3 && RangeData.usingLongbow(this)) {
distance = 10;
//longbow (non long range)
} else if (usingBow && fightMode != 3 && RangeData.usingLongbow(this)) {
distance = RangeData.usingCrystalBow(this) ? 10 : 8;
//dart, knife, throwing axe (long range)
} else if (usingRangeWeapon && fightMode == 3) {
distance = RangeData.usingDart(this) ? 5 : 6;
//short bow
} else if (usingBow && !RangeData.usingLongbow(this)) {
distance = fightMode == 3 ? 7 : 9;
}
return distance;
}
public boolean goodDistance(int objectX, int objectY, int playerX, int playerY, int distance) {
if (checkRangeDistance()) {
distance = gatherRangeDistance(distance);
}
return ((objectX-playerX <= distance && objectX-playerX >= -distance) && (objectY-playerY <= distance && objectY-playerY >= -distance));
}
@@ -2168,8 +2193,7 @@ public abstract class Player {
}
int dir;
do {
dir = Misc.direction(currentX, currentY,
walkingQueueX[wQueueReadPtr], walkingQueueY[wQueueReadPtr]);
dir = Misc.direction(currentX, currentY, walkingQueueX[wQueueReadPtr], walkingQueueY[wQueueReadPtr]);
if (dir == -1) {
wQueueReadPtr = (wQueueReadPtr + 1) % walkingQueueSize;
} else if ((dir & 1) != 0) {
@@ -2319,19 +2319,6 @@ public class PlayerAssistant {
return count;
}
public void useOperate(int itemId) {
switch (itemId) {
case 11283:
case 11284:
if (player.playerIndex > 0) {
player.getCombatAssistant().handleDfs();
} else if (player.npcIndex > 0) {
player.getCombatAssistant().handleDfsNPC();
}
break;
}
}
public void getSpeared(int otherX, int otherY) {
int x = player.absX - otherX;
int y = player.absY - otherY;
@@ -10,77 +10,73 @@ import com.rebotted.game.players.Player;
import com.rebotted.game.players.PlayerHandler;
import com.rebotted.net.packets.PacketType;
/**
* Attack Player
**/
public class AttackPlayer implements PacketType {
public static final int ATTACK_PLAYER = 73, MAGE_PLAYER = 249;
@Override
public void processPacket(Player c, int packetType, int packetSize) {
c.endCurrentTask();
c.playerIndex = 0;
c.npcIndex = 0;
public void processPacket(Player player, int packetType, int packetSize) {
player.endCurrentTask();
player.playerIndex = 0;
player.npcIndex = 0;
switch (packetType) {
/**
* Attack player
**/
case ATTACK_PLAYER:
c.playerIndex = c.getInStream().readSignedWordBigEndian();
if (PlayerHandler.players[c.playerIndex] == null) {
player.playerIndex = player.getInStream().readSignedWordBigEndian();
if (PlayerHandler.players[player.playerIndex] == null) {
break;
}
if (c.inDuelArena() && !c.duelingArena()) {
c.getChallengePlayer().processPacket(c, packetType, packetSize);
if (player.inDuelArena() && !player.duelingArena()) {
player.getChallengePlayer().processPacket(player, packetType, packetSize);
}
if (c.respawnTimer > 0) {
if (player.respawnTimer > 0) {
break;
}
if (c.autocastId > 0) {
c.autocasting = true;
if (player.autocastId > 0) {
player.autocasting = true;
}
if (!c.autocasting && c.spellId > 0) {
c.spellId = 0;
if (!player.autocasting && player.spellId > 0) {
player.spellId = 0;
}
c.mageFollow = false;
c.spellId = 0;
c.usingMagic = false;
player.mageFollow = false;
player.spellId = 0;
player.usingMagic = false;
boolean usingBow = false;
boolean usingOtherRangeWeapons = false;
boolean usingArrows = false;
boolean usingCross = c.playerEquipment[c.playerWeapon] == 9185;
boolean usingCross = player.playerEquipment[player.playerWeapon] == 9185;
for (int bowId : RangeData.BOWS) {
if (c.playerEquipment[c.playerWeapon] == bowId) {
if (player.playerEquipment[player.playerWeapon] == bowId) {
usingBow = true;
for (int arrowId : RangeData.ARROWS) {
if (c.playerEquipment[c.playerArrows] == arrowId) {
if (player.playerEquipment[player.playerArrows] == arrowId) {
usingArrows = true;
}
}
}
}
for (int otherRangeId : RangeData.OTHER_RANGE_WEAPONS) {
if (c.playerEquipment[c.playerWeapon] == otherRangeId) {
if (player.playerEquipment[player.playerWeapon] == otherRangeId) {
usingOtherRangeWeapons = true;
}
}
if (c.duelStatus == 5) {
if (c.duelCount > 0) {
c.getPacketSender().sendMessage(
"The duel hasn't started yet!");
c.playerIndex = 0;
if (player.duelStatus == 5) {
if (player.duelCount > 0) {
player.getPacketSender().sendMessage("The duel hasn't started yet!");
player.playerIndex = 0;
return;
}
if (c.duelRule[9]) {
if (player.duelRule[9]) {
boolean canUseWeapon = false;
for (int funWeapon : GameConstants.FUN_WEAPONS) {
if (c.playerEquipment[c.playerWeapon] == funWeapon) {
if (player.playerEquipment[player.playerWeapon] == funWeapon) {
canUseWeapon = true;
}
}
@@ -89,83 +85,57 @@ public class AttackPlayer implements PacketType {
}
}
if (c.duelRule[2] && (usingBow || usingOtherRangeWeapons)) {
c.getPacketSender().sendMessage(
"Range has been disabled in this duel!");
if (player.duelRule[2] && (usingBow || usingOtherRangeWeapons)) {
player.getPacketSender().sendMessage("Range has been disabled for this duel!");
return;
}
if (c.duelRule[3] && !usingBow && !usingOtherRangeWeapons) {
c.getPacketSender().sendMessage(
"Melee has been disabled in this duel!");
if (player.duelRule[3] && !usingBow && !usingOtherRangeWeapons) {
player.getPacketSender().sendMessage("Melee has been disabled for this duel!");
return;
}
}
if ((usingBow || c.autocasting)
&& c.goodDistance(c.getX(), c.getY(),
PlayerHandler.players[c.playerIndex].getX(),
PlayerHandler.players[c.playerIndex].getY(), 6)) {
c.usingBow = true;
c.stopMovement();
if ((usingBow || player.autocasting) && player.goodDistance(player.getX(), player.getY(), PlayerHandler.players[player.playerIndex].getX(), PlayerHandler.players[player.playerIndex].getY(), 6)) {
player.usingBow = true;
player.stopMovement();
}
if (usingOtherRangeWeapons
&& c.goodDistance(c.getX(), c.getY(),
PlayerHandler.players[c.playerIndex].getX(),
PlayerHandler.players[c.playerIndex].getY(), 3)) {
c.usingRangeWeapon = true;
c.stopMovement();
if (usingOtherRangeWeapons && player.goodDistance(player.getX(), player.getY(), PlayerHandler.players[player.playerIndex].getX(), PlayerHandler.players[player.playerIndex].getY(), 3)) {
player.usingRangeWeapon = true;
player.stopMovement();
}
if (!usingBow) {
c.usingBow = false;
player.usingBow = false;
}
if (!usingOtherRangeWeapons) {
c.usingRangeWeapon = false;
player.usingRangeWeapon = false;
}
if (!usingCross && !usingArrows && usingBow
&& c.playerEquipment[c.playerWeapon] < 4212
&& c.playerEquipment[c.playerWeapon] > 4223) {
c.getPacketSender().sendMessage(
"You have run out of arrows!");
if (!usingCross && !usingArrows && usingBow && player.playerEquipment[player.playerWeapon] < 4212 && player.playerEquipment[player.playerWeapon] > 4223) {
player.getPacketSender().sendMessage("You have run out of arrows!");
return;
}
if (RangeData.correctBowAndArrows(c) < c.playerEquipment[c.playerArrows]
if (RangeData.correctBowAndArrows(player) < player.playerEquipment[player.playerArrows]
&& CombatConstants.CORRECT_ARROWS
&& usingBow
&& !RangeData.usingCrystalBow(c)
&& c.playerEquipment[c.playerWeapon] != 9185) {
c.getPacketSender().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.getCombatAssistant().resetPlayerAttack();
&& !RangeData.usingCrystalBow(player)
&& player.playerEquipment[player.playerWeapon] != 9185) {
player.getPacketSender().sendMessage("You can't use " + ItemAssistant.getItemName(player.playerEquipment[player.playerArrows]).toLowerCase() + "s with a " + ItemAssistant.getItemName(player.playerEquipment[player.playerWeapon]).toLowerCase() + ".");
player.stopMovement();
player.getCombatAssistant().resetPlayerAttack();
return;
}
if (c.playerEquipment[c.playerWeapon] == 9185
&& !c.getCombatAssistant().properBolts()) {
c.getPacketSender().sendMessage(
"You must use bolts with a crossbow.");
c.stopMovement();
c.getCombatAssistant().resetPlayerAttack();
if (player.playerEquipment[player.playerWeapon] == 9185 && !player.getCombatAssistant().properBolts()) {
player.getPacketSender().sendMessage("You must use bolts with a crossbow.");
player.stopMovement();
player.getCombatAssistant().resetPlayerAttack();
return;
}
if (c.getCombatAssistant().checkReqs()) {
c.followId = c.playerIndex;
if (!c.usingMagic && !usingBow && !usingOtherRangeWeapons) {
c.followDistance = 1;
c.getPlayerAssistant().followPlayer();
}
if (c.attackTimer <= 0) {
// c.getPacketDispatcher().sendMessage("Tried to attack...");
// c.getCombat().attackPlayer(c.playerIndex);
// c.attackTimer++;
if (player.getCombatAssistant().checkReqs()) {
player.followId = player.playerIndex;
if (!player.usingMagic && !usingBow && !usingOtherRangeWeapons) {
player.followDistance = 1;
player.getPlayerAssistant().followPlayer();
}
}
break;
@@ -174,135 +144,135 @@ public class AttackPlayer implements PacketType {
* Attack player with magic
**/
case MAGE_PLAYER:
if (!c.mageAllowed) {
c.mageAllowed = true;
if (!player.mageAllowed) {
player.mageAllowed = true;
break;
}
c.playerIndex = c.getInStream().readSignedWordA();
int castingSpellId = c.getInStream().readSignedWordBigEndian();
c.castingSpellId = castingSpellId;
c.usingMagic = false;
player.playerIndex = player.getInStream().readSignedWordA();
int castingSpellId = player.getInStream().readSignedWordBigEndian();
player.castingSpellId = castingSpellId;
player.usingMagic = false;
boolean teleother = CastOnOther.castOnOtherSpells(castingSpellId);
if (PlayerHandler.players[c.playerIndex] == null) {
if (PlayerHandler.players[player.playerIndex] == null) {
break;
}
if (c.respawnTimer > 0) {
if (player.respawnTimer > 0) {
break;
}
if (c.playerRights == 3) {
c.getPacketSender().sendMessage(
if (player.playerRights == 3) {
player.getPacketSender().sendMessage(
"Casting Spell id: " + castingSpellId + ".");
}
if (teleother) {
if (c.inTrade) {
c.getTrading().declineTrade(true);
if (player.inTrade) {
player.getTrading().declineTrade(true);
}
if (c.inWild()
&& c.wildLevel > GameConstants.NO_TELEPORT_WILD_LEVEL) {
c.getPacketSender().sendMessage(
if (player.inWild()
&& player.wildLevel > GameConstants.NO_TELEPORT_WILD_LEVEL) {
player.getPacketSender().sendMessage(
"You can't teleport above level "
+ GameConstants.NO_TELEPORT_WILD_LEVEL
+ " in the wilderness.");
break;
}
if (c.duelStatus == 5) {
c.getPacketSender().sendMessage("You can't do that in a duel.");
c.usingMagic = false;
c.stopMovement();
c.getCombatAssistant().resetPlayerAttack();
if (player.duelStatus == 5) {
player.getPacketSender().sendMessage("You can't do that in a duel.");
player.usingMagic = false;
player.stopMovement();
player.getCombatAssistant().resetPlayerAttack();
return;
}
}
switch (c.castingSpellId) {
switch (player.castingSpellId) {
case 12425:
CastOnOther.teleOtherDistance(c, 0, c.playerIndex);
CastOnOther.teleOtherDistance(player, 0, player.playerIndex);
break;
case 12435:
CastOnOther.teleOtherDistance(c, 1, c.playerIndex);
CastOnOther.teleOtherDistance(player, 1, player.playerIndex);
break;
case 12455:
CastOnOther.teleOtherDistance(c, 2, c.playerIndex);
CastOnOther.teleOtherDistance(player, 2, player.playerIndex);
break;
}
if (teleother) {
c.stopMovement();
c.getCombatAssistant().resetPlayerAttack();
player.stopMovement();
player.getCombatAssistant().resetPlayerAttack();
}
for (int i = 0; i < MagicData.MAGIC_SPELLS.length; i++) {
if (castingSpellId == MagicData.MAGIC_SPELLS[i][0]) {
c.spellId = i;
c.usingMagic = true;
player.spellId = i;
player.usingMagic = true;
break;
}
}
if (c.autocasting) {
c.autocasting = false;
if (player.autocasting) {
player.autocasting = false;
}
if (!teleother) {
if (!c.getCombatAssistant().checkReqs()) {
if (!player.getCombatAssistant().checkReqs()) {
break;
}
if (c.duelStatus == 5) {
if (c.duelCount > 0) {
c.getPacketSender().sendMessage(
if (player.duelStatus == 5) {
if (player.duelCount > 0) {
player.getPacketSender().sendMessage(
"The duel hasn't started yet!");
c.playerIndex = 0;
player.playerIndex = 0;
return;
}
if (c.duelRule[4]) {
c.getPacketSender().sendMessage(
if (player.duelRule[4]) {
player.getPacketSender().sendMessage(
"Magic has been disabled in this duel!");
return;
}
if (MagicData.MAGIC_SPELLS[c.spellId][0] == 12445)
if (MagicData.MAGIC_SPELLS[player.spellId][0] == 12445)
{
c.getPacketSender().sendMessage(
player.getPacketSender().sendMessage(
"You can't do that in a duel.");
c.usingMagic = false;
c.stopMovement();
c.getCombatAssistant().resetPlayerAttack();
player.usingMagic = false;
player.stopMovement();
player.getCombatAssistant().resetPlayerAttack();
return;
}
}
for (int r = 0; r < c.REDUCE_SPELLS.length; r++) { // reducing
for (int r = 0; r < player.REDUCE_SPELLS.length; r++) { // reducing
// spells,
// confuse
// etc
if (PlayerHandler.players[c.playerIndex].REDUCE_SPELLS[r] == MagicData.MAGIC_SPELLS[c.spellId][0]) {
if (PlayerHandler.players[player.playerIndex].REDUCE_SPELLS[r] == MagicData.MAGIC_SPELLS[player.spellId][0]) {
if (System.currentTimeMillis()
- PlayerHandler.players[c.playerIndex].reduceSpellDelay[r] < PlayerHandler.players[c.playerIndex].REDUCE_SPELL_TIME[r]) {
c.getPacketSender()
- PlayerHandler.players[player.playerIndex].reduceSpellDelay[r] < PlayerHandler.players[player.playerIndex].REDUCE_SPELL_TIME[r]) {
player.getPacketSender()
.sendMessage(
"That player is currently immune to this spell.");
c.usingMagic = false;
c.stopMovement();
c.getCombatAssistant().resetPlayerAttack();
player.usingMagic = false;
player.stopMovement();
player.getCombatAssistant().resetPlayerAttack();
}
break;
}
}
if (System.currentTimeMillis()
- PlayerHandler.players[c.playerIndex].teleBlockDelay < PlayerHandler.players[c.playerIndex].teleBlockLength
&& MagicData.MAGIC_SPELLS[c.spellId][0] == 12445) {
c.getPacketSender().sendMessage(
- PlayerHandler.players[player.playerIndex].teleBlockDelay < PlayerHandler.players[player.playerIndex].teleBlockLength
&& MagicData.MAGIC_SPELLS[player.spellId][0] == 12445) {
player.getPacketSender().sendMessage(
"That player is already affected by this spell.");
c.usingMagic = false;
c.stopMovement();
c.getCombatAssistant().resetPlayerAttack();
player.usingMagic = false;
player.stopMovement();
player.getCombatAssistant().resetPlayerAttack();
}
}
break;
@@ -24,9 +24,6 @@ public class Bank10 implements PacketType {
JewelryMaking.mouldItem(player, removeId, 10);
break;
case 1688:
player.getPlayerAssistant().useOperate(removeId);
break;
case 3900:
player.getShopAssistant().buyItem(removeId, removeSlot, 10);
break;
@@ -278,9 +278,9 @@ public class Commands implements PacketType {
"Add some snow in your mainscreen(works only in december)",
};
// Clear all lines
for (int i = 8144; i < 8195; i++) player.getPacketSender().sendFrame126("", i);
for (int i = 8144; i < 8195; i++)
player.getPacketSender().sendFrame126("", i);
player.getPacketSender().sendFrame126("@dre@Commands", 8144);
@@ -292,7 +292,8 @@ public class Commands implements PacketType {
break;
case "stuck":
player.getPlayerAssistant().startTeleport(SpellTeleport.LUMBRIDGE.getDestX(), SpellTeleport.LUMBRIDGE.getDestY(), 0, "modern");
player.getPacketSender().sendMessage("How did you manage that one... If it's bug related, please report on Github/Discord!");
player.getPacketSender().sendMessage("How did you manage that one...");
player.getPacketSender().sendMessage("If it's bug related, please report on Github/Discord!");
player.gfx100(80);
player.startAnimation(404);
break;
@@ -500,8 +501,9 @@ public class Commands implements PacketType {
String a[] = playerCommand.split(" ");
String itemName = "";
int itemCount = 0;
for (int i = 1; i < a.length; i++)
itemName = itemName + a[i]+ " ";
for (int i = 1; i < a.length; i++) {
itemName = itemName + a[i]+ " ";
}
itemName = itemName.substring(0, itemName.length()-1);
player.getPacketSender().sendMessage("Searching: " + itemName);
for (int j = 0; j < GameEngine.itemHandler.ItemList.length; j++) {
@@ -34,7 +34,7 @@ public class Walking implements PacketType {
Fishing.resetFishing(player);
}
if (player.playerIsCooking) {// cooking
Cooking.resetCooking(player);
Cooking.setCooking(player, false);
}
if (player.playerSkilling[13]) {// smelting
Smelting.resetSmelting(player);