Fix conflicts

This commit is contained in:
dginovker
2020-05-07 18:33:56 -04:00
parent b4371d3129
commit 3387cd5f07
28 changed files with 1115 additions and 1026 deletions
@@ -328,10 +328,11 @@ public class Specials {
case 29063: case 29063:
if (player2.playerEquipment[player2.playerWeapon] == 1377) { if (player2.playerEquipment[player2.playerWeapon] == 1377) {
if (player2.getCombatAssistant().checkSpecAmount(1377)) { if (player2.specAmount >= 5) {
player2.gfx0(246); player2.gfx0(246);
player2.forcedChat("Raarrrrrgggggghhhhhhh!"); player2.forcedChat("Raarrrrrgggggghhhhhhh!");
player2.startAnimation(1056); player2.startAnimation(1056);
player2.specAmount -= 5;
player2.playerLevel[2] = player2.getLevelForXP(player2.playerXP[2]) + player2.getLevelForXP(player2.playerXP[2]) * 15 / 100; player2.playerLevel[2] = player2.getLevelForXP(player2.playerXP[2]) + player2.getLevelForXP(player2.playerXP[2]) * 15 / 100;
player2.getPlayerAssistant().refreshSkill(2); player2.getPlayerAssistant().refreshSkill(2);
player2.getItemAssistant().updateSpecialBar(); player2.getItemAssistant().updateSpecialBar();
@@ -214,19 +214,26 @@ public class Pickpocket extends SkillHandler {
return false; return false;
} }
public static void attemptPickpocket(final Player player, final int npcId) { private static boolean canSteal(Player player, int npcId) {
if (System.currentTimeMillis() - player.lastThieve < 2000 || player.playerStun) { if (System.currentTimeMillis() - player.lastThieve < 2000 || player.playerStun) {
return; return false;
} }
if (player.underAttackBy > 0 || player.underAttackBy2 > 0) { if (player.underAttackBy > 0 || player.underAttackBy2 > 0) {
player.getPacketSender().sendMessage("You can't pickpocket while in combat!"); player.getPacketSender().sendMessage("You can't pickpocket while in combat!");
return; return false;
} }
if (System.currentTimeMillis() - player.logoutDelay < 4000) { if (System.currentTimeMillis() - player.logoutDelay < 4000) {
return; return false;
} }
if (!THIEVING) { if (!THIEVING) {
player.getPacketSender().sendMessage("This skill is currently disabled."); player.getPacketSender().sendMessage("This skill is currently disabled.");
return false;
}
return true;
}
public static void attemptPickpocket(final Player player, final int npcId) {
if (!canSteal(player, npcId)) {
return; return;
} }
for (final npcData n : npcData.values()) { for (final npcData n : npcData.values()) {
@@ -258,12 +265,12 @@ public class Pickpocket extends SkillHandler {
if (NpcHandler.npcs[i] != null) { if (NpcHandler.npcs[i] != null) {
if (NpcHandler.npcs[i].npcType == npcId) { if (NpcHandler.npcs[i].npcType == npcId) {
if (player.goodDistance(player.absX, player.absY, NpcHandler.npcs[i].absX, NpcHandler.npcs[i].absY, 1) && player.heightLevel == NpcHandler.npcs[i].heightLevel) { if (player.goodDistance(player.absX, player.absY, NpcHandler.npcs[i].absX, NpcHandler.npcs[i].absY, 1) && player.heightLevel == NpcHandler.npcs[i].heightLevel) {
if (!NpcHandler.npcs[i].underAttack) { if (!NpcHandler.npcs[i].underAttack) {
NpcHandler.npcs[i].forceChat("What do you think you're doing?"); NpcHandler.npcs[i].forceChat("What do you think you're doing?");
NpcHandler.npcs[i].facePlayer(player.playerId); NpcHandler.npcs[i].facePlayer(player.playerId);
}
} }
} }
}
} }
} }
player.lastThieve = System.currentTimeMillis() + 5000; player.lastThieve = System.currentTimeMillis() + 5000;
@@ -314,4 +321,5 @@ public class Pickpocket extends SkillHandler {
} }
} }
} }
} }
@@ -7085,6 +7085,21 @@ public class DialogueHandler {
player.getDialogueHandler().sendPlayerChat(ChatEmotes.DEFAULT, "No thanks."); player.getDialogueHandler().sendPlayerChat(ChatEmotes.DEFAULT, "No thanks.");
player.getDialogueHandler().endDialogue(); player.getDialogueHandler().endDialogue();
break; break;
case 3574:
player.getDialogueHandler().sendNpcChat(player.talkingNpc, ChatEmotes.DEFAULT, "Hello there, would you like me to enchant a battlestaff", "for 40k coins for you?");
break;
case 3575:
player.getDialogueHandler().sendOption("Yes.", "No thanks.");
player.dialogueAction = 3575;
break;
case 3576:
player.getDialogueHandler().endDialogue();
player.getPacketSender().showInterface(205);
break;
case 3577:
player.getDialogueHandler().sendPlayerChat(ChatEmotes.HAPPY_JOYFUL, "No thanks.");
player.getDialogueHandler().endDialogue();
break;
} }
} }
@@ -478,6 +478,10 @@ public class DialogueOptions {
} else if (player.dialogueAction == 3111) { } else if (player.dialogueAction == 3111) {
player.getDialogueHandler().sendDialogues(3112, 946); player.getDialogueHandler().sendDialogues(3112, 946);
return; return;
} else if (player.dialogueAction == 161) {// rod
player.getPlayerAssistant().startTeleport(3313, 3234, 0, "modern");
Teles.necklaces(player);
return;
} else if (player.dialogueAction == 162) { } else if (player.dialogueAction == 162) {
player.getDialogueHandler().sendDialogues(3170, player.npcType); player.getDialogueHandler().sendDialogues(3170, player.npcType);
return; return;
@@ -548,13 +552,12 @@ public class DialogueOptions {
} else if (player.dialogueAction == 189) { } else if (player.dialogueAction == 189) {
player.getDialogueHandler().sendDialogues(3210, player.npcType); player.getDialogueHandler().sendDialogues(3210, player.npcType);
return; return;
} else if (player.dialogueAction == 161) {// rod
player.getPlayerAssistant().startTeleport(3313, 3234, 0, "modern");
Teles.necklaces(player);
return;
} else if (player.dialogueAction == 703) { } else if (player.dialogueAction == 703) {
player.getDialogueHandler().sendDialogues(3572, player.npcType); player.getDialogueHandler().sendDialogues(3572, player.npcType);
return; return;
} else if (player.dialogueAction == 3575) {
player.getDialogueHandler().sendDialogues(3577, player.npcType);
return;
} }
player.dialogueAction = 0; player.dialogueAction = 0;
player.getPacketSender().closeAllWindows(); player.getPacketSender().closeAllWindows();
@@ -765,6 +768,9 @@ public class DialogueOptions {
} else if (player.dialogueAction == 703) { } else if (player.dialogueAction == 703) {
player.getDialogueHandler().sendDialogues(3573, player.npcType); player.getDialogueHandler().sendDialogues(3573, player.npcType);
return; return;
} else if (player.dialogueAction == 3575) {
player.getDialogueHandler().sendDialogues(3576, player.npcType);
return;
} }
player.dialogueAction = 0; player.dialogueAction = 0;
player.getPacketSender().closeAllWindows(); player.getPacketSender().closeAllWindows();
@@ -0,0 +1,69 @@
package com.rebotted.game.items.impl;
import java.util.HashMap;
import com.rebotted.game.items.Item;
import com.rebotted.game.players.Player;
public class EnchantStaff {
public static boolean staffButtons(Player player, int button) {
final staffData staff = staffData.forId(button);
if (staff != null) {
if(!player.getInventory().playerHasItem(staff.getBattlestaff())){
player.getPacketSender().sendMessage("You need a battlestaff to do this!");
return true;
}
if(!player.getItemAssistant().playerHasItem(995, 40000)) {
player.getPacketSender().sendMessage("You don't have enough coins with you!");
return true;
}
player.getInventory().removeItem(new Item(staff.getBattlestaff(), 1));
player.getInventory().removeItem(new Item(995, 40000));
player.getInventory().addItem(new Item(staff.getMysticstaff(), 1));
player.getPacketSender().sendMessage("Thormac enchants your staff into a mystic staff.");
player.getPacketSender().closeAllWindows();
return true;
}
return false;
}
public static enum staffData {// button, battlestaff, mystic staff
AIR(1734, 1397, 1405), WATER(1735, 1395, 1403), EARTH(1736, 1399, 1407), FIRE(1737, 1393, 1401), LAVA(1738, 3053, 3054), MUD(15348, 6562, 6563);
private int button;
private int battlestaff;
private int mysticstaff;
public static HashMap<Integer, staffData> craftingStaff = new HashMap<Integer, staffData>();
public static staffData forId(int id) {
return craftingStaff.get(id);
}
static {
for (staffData c : staffData.values()) {
craftingStaff.put(c.getButton(), c);
}
}
private staffData(int button, int battlestaff, int mysticstaff) {
this.button = button;
this.battlestaff = battlestaff;
this.mysticstaff = mysticstaff;
}
public int getButton() {
return button;
}
public int getBattlestaff() {
return battlestaff;
}
public int getMysticstaff() {
return mysticstaff;
}
}
}
File diff suppressed because it is too large Load Diff
@@ -1515,8 +1515,6 @@ public class ObjectsActions {
case 3030: case 3030:
if (player.tutorialProgress == 26) { if (player.tutorialProgress == 26) {
// client.getPacketDispatcher().tutorialIslandInterface(55,
// 12);
player.getDialogueHandler().sendDialogues(3078, -1); player.getDialogueHandler().sendDialogues(3078, -1);
player.getPlayerAssistant().movePlayer(3111, 3125, 0); player.getPlayerAssistant().movePlayer(3111, 3125, 0);
player.startAnimation(828); player.startAnimation(828);
@@ -1644,7 +1642,7 @@ public class ObjectsActions {
break; break;
case 9358: case 9358:
player.getPlayerAssistant().movePlayer(2444, 5171, 0); player.getPlayerAssistant().movePlayer(2480, 5175, 0);
break; break;
case 9359: case 9359:
@@ -1641,7 +1641,7 @@ public class PlayerAssistant {
int x = NpcHandler.npcs[player.followId2].getX(); int x = NpcHandler.npcs[player.followId2].getX();
int y = NpcHandler.npcs[player.followId2].getY(); int y = NpcHandler.npcs[player.followId2].getY();
if (!player.goodDistance(x, y, player.getX(), player.getY(),25)) { if (!player.goodDistance(x, y, player.getX(), player.getY(), 25)) {
player.followId2 = 0; player.followId2 = 0;
resetFollow(); resetFollow();
return; return;
@@ -13,22 +13,21 @@ public class BankX1 implements PacketType {
public int XremoveSlot, XinterfaceID, XremoveID, Xamount; public int XremoveSlot, XinterfaceID, XremoveID, Xamount;
@Override @Override
public void processPacket(Player c, int packetType, int packetSize) { public void processPacket(Player player, int packetType, int packetSize) {
c.endCurrentTask(); player.endCurrentTask();
if (packetType == 135) { if (packetType == 135) {
c.xRemoveSlot = c.getInStream().readSignedWordBigEndian(); player.xRemoveSlot = player.getInStream().readSignedWordBigEndian();
c.xInterfaceId = c.getInStream().readUnsignedWordA(); player.xInterfaceId = player.getInStream().readUnsignedWordA();
c.xRemoveId = c.getInStream().readSignedWordBigEndian(); player.xRemoveId = player.getInStream().readSignedWordBigEndian();
} } else {
else { if (player.xInterfaceId == 7423) {
if (c.xInterfaceId == 7423) { player.getItemAssistant().bankItem(player.xRemoveId, player.xRemoveSlot, Xamount);// Depo 1
c.getItemAssistant().bankItem(c.xRemoveId, c.xRemoveSlot, Xamount);// Depo 1 player.getItemAssistant().resetItems(7423);
c.getItemAssistant().resetItems(7423);
} }
} }
if (packetType == PART1) { if (packetType == PART1) {
synchronized (c) { synchronized (player) {
c.getOutStream().createFrame(27); player.getOutStream().createFrame(27);
} }
} }
@@ -10,19 +10,19 @@ import com.rebotted.net.packets.PacketType;
public class ChallengePlayer implements PacketType { public class ChallengePlayer implements PacketType {
@Override @Override
public void processPacket(Player c, int packetType, int packetSize) { public void processPacket(Player player, int packetType, int packetSize) {
switch (packetType) { switch (packetType) {
case 128: case 128:
int answerPlayer = c.getInStream().readUnsignedWord(); int answerPlayer = player.getInStream().readUnsignedWord();
if(PlayerHandler.players[answerPlayer] == null || answerPlayer == c.playerId) if(PlayerHandler.players[answerPlayer] == null || answerPlayer == player.playerId)
return; return;
if (c.duelingArena() || c.duelStatus == 5) { if (player.duelingArena() || player.duelStatus == 5) {
c.getPacketSender().sendMessage("You can't challenge inside the arena!"); player.getPacketSender().sendMessage("You can't challenge inside the arena!");
return; return;
} }
if (c.inDuelArena()) { if (player.inDuelArena()) {
c.getDueling().requestDuel(answerPlayer); player.getDueling().requestDuel(answerPlayer);
} }
break; break;
} }
@@ -35,18 +35,16 @@ public class ChangeAppearance implements PacketType {
}; };
@Override @Override
public void processPacket(final Player client, final int packetType, final int packetSize) { public void processPacket(final Player player, final int packetType, final int packetSize) {
final int gender = client.getInStream().readSignedByte(); final int gender = player.getInStream().readSignedByte();
if (gender != 0 && gender != 1) { if (gender != 0 && gender != 1) {
return; return;
} }
final int[] apperances = new int[MALE_VALUES.length]; // apperance's final int[] apperances = new int[MALE_VALUES.length]; // appearance values check
// value
// check
for (int i = 0; i < apperances.length; i++) { for (int i = 0; i < apperances.length; i++) {
int value = client.getInStream().readSignedByte(); int value = player.getInStream().readSignedByte();
if (value < (gender == 0 ? MALE_VALUES[i][0] : FEMALE_VALUES[i][0]) if (value < (gender == 0 ? MALE_VALUES[i][0] : FEMALE_VALUES[i][0])
|| value > (gender == 0 ? MALE_VALUES[i][1] || value > (gender == 0 ? MALE_VALUES[i][1]
: FEMALE_VALUES[i][1])) { : FEMALE_VALUES[i][1])) {
@@ -55,35 +53,34 @@ public class ChangeAppearance implements PacketType {
apperances[i] = value; apperances[i] = value;
} }
final int[] colors = new int[ALLOWED_COLORS.length]; // color value final int[] colors = new int[ALLOWED_COLORS.length]; // color value check
// check
for (int i = 0; i < colors.length; i++) { for (int i = 0; i < colors.length; i++) {
int value = client.getInStream().readSignedByte(); int value = player.getInStream().readSignedByte();
if (value < ALLOWED_COLORS[i][0] || value > ALLOWED_COLORS[i][1]) { if (value < ALLOWED_COLORS[i][0] || value > ALLOWED_COLORS[i][1]) {
value = ALLOWED_COLORS[i][0]; value = ALLOWED_COLORS[i][0];
} }
colors[i] = value; colors[i] = value;
} }
if (client.canChangeAppearance) { if (player.canChangeAppearance) {
client.playerAppearance[0] = gender; // gender player.playerAppearance[0] = gender; // gender
client.playerAppearance[1] = apperances[0]; // head player.playerAppearance[1] = apperances[0]; // head
client.playerAppearance[2] = apperances[2]; // torso player.playerAppearance[2] = apperances[2]; // torso
client.playerAppearance[3] = apperances[3]; // arms player.playerAppearance[3] = apperances[3]; // arms
client.playerAppearance[4] = apperances[4]; // hands player.playerAppearance[4] = apperances[4]; // hands
client.playerAppearance[5] = apperances[5]; // legs player.playerAppearance[5] = apperances[5]; // legs
client.playerAppearance[6] = apperances[6]; // feet player.playerAppearance[6] = apperances[6]; // feet
client.playerAppearance[7] = apperances[1]; // beard player.playerAppearance[7] = apperances[1]; // beard
client.playerAppearance[8] = colors[0]; // hair colour player.playerAppearance[8] = colors[0]; // hair colour
client.playerAppearance[9] = colors[1]; // torso colour player.playerAppearance[9] = colors[1]; // torso colour
client.playerAppearance[10] = colors[2]; // legs colour player.playerAppearance[10] = colors[2]; // legs colour
client.playerAppearance[11] = colors[3]; // feet colour player.playerAppearance[11] = colors[3]; // feet colour
client.playerAppearance[12] = colors[4]; // skin colour player.playerAppearance[12] = colors[4]; // skin colour
client.endCurrentTask(); player.endCurrentTask();
client.getPacketSender().closeAllWindows(); player.getPacketSender().closeAllWindows();
client.getPlayerAssistant().requestUpdates(); player.getPlayerAssistant().requestUpdates();
client.canChangeAppearance = false; player.canChangeAppearance = false;
} }
} }
@@ -14,21 +14,21 @@ import com.rebotted.world.GlobalDropsHandler;
public class ChangeRegions implements PacketType { public class ChangeRegions implements PacketType {
@Override @Override
public void processPacket(Player c, int packetType, int packetSize) { public void processPacket(Player player, int packetType, int packetSize) {
if (GameConstants.SOUND && c.musicOn) { if (GameConstants.SOUND && player.musicOn) {
Music.playMusic(c); Music.playMusic(player);
} }
GameEngine.objectHandler.updateObjects(c);//testing GameEngine.objectHandler.updateObjects(player);//testing
GameEngine.itemHandler.reloadItems(c); GameEngine.itemHandler.reloadItems(player);
GameEngine.objectManager.loadObjects(c); GameEngine.objectManager.loadObjects(player);
Doors.getSingleton().load(); Doors.getSingleton().load();
GlobalDropsHandler.reset(c); GlobalDropsHandler.reset(player);
c.getPlayerAssistant().removeObjects();// testing player.getPlayerAssistant().removeObjects();// testing
c.saveFile = true; player.saveFile = true;
if (c.skullTimer > 0) { if (player.skullTimer > 0) {
c.isSkulled = true; player.isSkulled = true;
c.headIconPk = 0; player.headIconPk = 0;
c.getPlayerAssistant().requestUpdates(); player.getPlayerAssistant().requestUpdates();
} }
} }
} }
@@ -20,140 +20,140 @@ public class ClickNPC implements PacketType {
SECOND_CLICK = 17, THIRD_CLICK = 21; SECOND_CLICK = 17, THIRD_CLICK = 21;
@Override @Override
public void processPacket(final Player client, int packetType, int packetSize) { public void processPacket(final Player player, int packetType, int packetSize) {
client.npcIndex = 0; player.npcIndex = 0;
client.npcClickIndex = 0; player.npcClickIndex = 0;
client.playerIndex = 0; player.playerIndex = 0;
client.clickNpcType = 0; player.clickNpcType = 0;
client.getPlayerAssistant().resetFollow(); player.getPlayerAssistant().resetFollow();
client.getCombatAssistant().resetPlayerAttack(); player.getCombatAssistant().resetPlayerAttack();
client.getPlayerAssistant().requestUpdates(); player.getPlayerAssistant().requestUpdates();
client.endCurrentTask(); player.endCurrentTask();
switch (packetType) { switch (packetType) {
/** /**
* Attack npc melee or range * Attack npc melee or range
**/ **/
case ATTACK_NPC: case ATTACK_NPC:
if (client.tutorialProgress == 24) { if (player.tutorialProgress == 24) {
client.getPacketSender().chatbox(6180); player.getPacketSender().chatbox(6180);
client.getDialogueHandler() player.getDialogueHandler()
.chatboxText( .chatboxText(
"While you are fighting you will see a bar over your head. The", "While you are fighting you will see a bar over your head. The",
"bar shows how much health you have left. Your opponent will", "bar shows how much health you have left. Your opponent will",
"have one too. You will continue to attack the rat until it's dead", "have one too. You will continue to attack the rat until it's dead",
"or you do something else.", "or you do something else.",
"Sit back and watch"); "Sit back and watch");
client.getPacketSender().chatbox(6179); player.getPacketSender().chatbox(6179);
} }
if (client.tutorialProgress == 33) { if (player.tutorialProgress == 33) {
client.getPacketSender() player.getPacketSender()
.sendMessage( .sendMessage(
"You can't range these chickens you have to mage them!"); "You can't range these chickens you have to mage them!");
return; return;
} }
if (!client.mageAllowed) { if (!player.mageAllowed) {
client.mageAllowed = true; player.mageAllowed = true;
client.getPacketSender().sendMessage("I can't reach that."); player.getPacketSender().sendMessage("I can't reach that.");
break; break;
} }
client.npcIndex = client.getInStream().readUnsignedWordA(); player.npcIndex = player.getInStream().readUnsignedWordA();
if (NpcHandler.npcs[client.npcIndex] == null) { if (NpcHandler.npcs[player.npcIndex] == null) {
client.npcIndex = 0; player.npcIndex = 0;
break; break;
} }
if (NpcHandler.npcs[client.npcIndex].MaxHP == 0) { if (NpcHandler.npcs[player.npcIndex].MaxHP == 0) {
client.npcIndex = 0; player.npcIndex = 0;
break; break;
} }
if (NpcHandler.npcs[client.npcIndex] == null) { if (NpcHandler.npcs[player.npcIndex] == null) {
break; break;
} }
if (client.autocastId > 0) { if (player.autocastId > 0) {
client.autocasting = true; player.autocasting = true;
} }
if (!client.autocasting && client.spellId > 0) { if (!player.autocasting && player.spellId > 0) {
client.spellId = 0; player.spellId = 0;
} }
client.faceUpdate(client.npcIndex); player.faceUpdate(player.npcIndex);
client.usingMagic = false; player.usingMagic = false;
boolean usingBow = false; boolean usingBow = false;
boolean usingOtherRangeWeapons = false; boolean usingOtherRangeWeapons = false;
boolean usingArrows = false; boolean usingArrows = false;
boolean usingCross = client.playerEquipment[client.playerWeapon] == 9185; boolean usingCross = player.playerEquipment[player.playerWeapon] == 9185;
if (client.playerEquipment[client.playerWeapon] >= 4214 if (player.playerEquipment[player.playerWeapon] >= 4214
&& client.playerEquipment[client.playerWeapon] <= 4223) { && player.playerEquipment[player.playerWeapon] <= 4223) {
usingBow = true; usingBow = true;
} }
for (int bowId : RangeData.BOWS) { for (int bowId : RangeData.BOWS) {
if (client.playerEquipment[client.playerWeapon] == bowId) { if (player.playerEquipment[player.playerWeapon] == bowId) {
usingBow = true; usingBow = true;
for (int arrowId : RangeData.ARROWS) { for (int arrowId : RangeData.ARROWS) {
if (client.playerEquipment[client.playerArrows] == arrowId) { if (player.playerEquipment[player.playerArrows] == arrowId) {
usingArrows = true; usingArrows = true;
} }
} }
} }
} }
for (int otherRangeId : RangeData.OTHER_RANGE_WEAPONS) { for (int otherRangeId : RangeData.OTHER_RANGE_WEAPONS) {
if (client.playerEquipment[client.playerWeapon] == otherRangeId) { if (player.playerEquipment[player.playerWeapon] == otherRangeId) {
usingOtherRangeWeapons = true; usingOtherRangeWeapons = true;
} }
} }
if ((usingBow || client.autocasting) if ((usingBow || player.autocasting)
&& client.goodDistance(client.getX(), client.getY(), && player.goodDistance(player.getX(), player.getY(),
NpcHandler.npcs[client.npcIndex].getX(), NpcHandler.npcs[player.npcIndex].getX(),
NpcHandler.npcs[client.npcIndex].getY(), 7)) { NpcHandler.npcs[player.npcIndex].getY(), 7)) {
client.stopMovement(); player.stopMovement();
} }
if (usingOtherRangeWeapons if (usingOtherRangeWeapons
&& client.goodDistance(client.getX(), client.getY(), && player.goodDistance(player.getX(), player.getY(),
NpcHandler.npcs[client.npcIndex].getX(), NpcHandler.npcs[player.npcIndex].getX(),
NpcHandler.npcs[client.npcIndex].getY(), 4)) { NpcHandler.npcs[player.npcIndex].getY(), 4)) {
client.stopMovement(); player.stopMovement();
} }
if (!usingCross && !usingArrows && usingBow if (!usingCross && !usingArrows && usingBow
&& client.playerEquipment[client.playerWeapon] < 4212 && player.playerEquipment[player.playerWeapon] < 4212
&& client.playerEquipment[client.playerWeapon] > 4223 && !usingCross) { && player.playerEquipment[player.playerWeapon] > 4223 && !usingCross) {
client.getPacketSender().sendMessage( player.getPacketSender().sendMessage(
"You have run out of arrows!"); "You have run out of arrows!");
break; break;
} }
if (RangeData.correctBowAndArrows(client) < client.playerEquipment[client.playerArrows] if (RangeData.correctBowAndArrows(player) < player.playerEquipment[player.playerArrows]
&& CombatConstants.CORRECT_ARROWS && CombatConstants.CORRECT_ARROWS
&& usingBow && usingBow
&& !RangeData.usingCrystalBow(client) && !RangeData.usingCrystalBow(player)
&& client.playerEquipment[client.playerWeapon] != 9185) { && player.playerEquipment[player.playerWeapon] != 9185) {
client.getPacketSender().sendMessage( player.getPacketSender().sendMessage(
"You can't use " "You can't use "
+ ItemAssistant.getItemName( + ItemAssistant.getItemName(
client.playerEquipment[client.playerArrows]) player.playerEquipment[player.playerArrows])
.toLowerCase() .toLowerCase()
+ "s with a " + "s with a "
+ ItemAssistant.getItemName( + ItemAssistant.getItemName(
client.playerEquipment[client.playerWeapon]) player.playerEquipment[player.playerWeapon])
.toLowerCase() + "."); .toLowerCase() + ".");
client.stopMovement(); player.stopMovement();
client.getCombatAssistant().resetPlayerAttack(); player.getCombatAssistant().resetPlayerAttack();
return; return;
} }
if (client.playerEquipment[client.playerWeapon] == 9185 if (player.playerEquipment[player.playerWeapon] == 9185
&& !client.getCombatAssistant().properBolts()) { && !player.getCombatAssistant().properBolts()) {
client.getPacketSender().sendMessage( player.getPacketSender().sendMessage(
"You must use bolts with a crossbow."); "You must use bolts with a crossbow.");
client.stopMovement(); player.stopMovement();
client.getCombatAssistant().resetPlayerAttack(); player.getCombatAssistant().resetPlayerAttack();
return; return;
} }
if (client.followId > 0) { if (player.followId > 0) {
client.getPlayerAssistant().resetFollow(); player.getPlayerAssistant().resetFollow();
} }
if (client.attackTimer <= 0) { if (player.attackTimer <= 0) {
client.getCombatAssistant().attackNpc(client.npcIndex); player.getCombatAssistant().attackNpc(player.npcIndex);
client.attackTimer++; player.attackTimer++;
} }
break; break;
@@ -162,190 +162,190 @@ public class ClickNPC implements PacketType {
* Attack npc with magic * Attack npc with magic
**/ **/
case MAGE_NPC: case MAGE_NPC:
if (client.tutorialProgress == 33) { if (player.tutorialProgress == 33) {
client.getPacketSender().chatbox(6180); player.getPacketSender().chatbox(6180);
client.getDialogueHandler() player.getDialogueHandler()
.chatboxText( .chatboxText(
"", "",
"All you need to do is move on to the mainland. Just speak", "All you need to do is move on to the mainland. Just speak",
"with Terrova and he'll teleport you to Lumbridge Castle.", "with Terrova and he'll teleport you to Lumbridge Castle.",
"", "You have almost completed the tutorial!"); "", "You have almost completed the tutorial!");
client.getPacketSender().chatbox(6179); player.getPacketSender().chatbox(6179);
// c.getDialogues().sendStatement4("You have almost completed the tutorial!", // c.getDialogues().sendStatement4("You have almost completed the tutorial!",
// "All you need to do is move on to the mainland. Just speak", // "All you need to do is move on to the mainland. Just speak",
// "with Terrova and he'll teleport you to Lumbridge.", ""); // "with Terrova and he'll teleport you to Lumbridge.", "");
client.tutorialProgress = 34; player.tutorialProgress = 34;
client.getPacketSender().createArrow(1, 9); player.getPacketSender().createArrow(1, 9);
} }
if (!client.mageAllowed) { if (!player.mageAllowed) {
client.mageAllowed = true; player.mageAllowed = true;
client.getPacketSender().sendMessage("I can't reach that."); player.getPacketSender().sendMessage("I can't reach that.");
break; break;
} }
// c.usingSpecial = false; // c.usingSpecial = false;
// c.getItems().updateSpecialBar(); // c.getItems().updateSpecialBar();
client.npcIndex = client.getInStream().readSignedWordBigEndianA(); player.npcIndex = player.getInStream().readSignedWordBigEndianA();
int castingSpellId = client.getInStream().readSignedWordA(); int castingSpellId = player.getInStream().readSignedWordA();
client.usingMagic = false; player.usingMagic = false;
if (NpcHandler.npcs[client.npcIndex] == null) { if (NpcHandler.npcs[player.npcIndex] == null) {
break; break;
} }
if (NpcHandler.npcs[client.npcIndex].MaxHP == 0 if (NpcHandler.npcs[player.npcIndex].MaxHP == 0
|| NpcHandler.npcs[client.npcIndex].npcType == 944) { || NpcHandler.npcs[player.npcIndex].npcType == 944) {
client.getPacketSender().sendMessage( player.getPacketSender().sendMessage(
"You can't attack this npc."); "You can't attack this npc.");
break; break;
} }
for (int i = 0; i < MagicData.MAGIC_SPELLS.length; i++) { for (int i = 0; i < MagicData.MAGIC_SPELLS.length; i++) {
if (castingSpellId == MagicData.MAGIC_SPELLS[i][0]) { if (castingSpellId == MagicData.MAGIC_SPELLS[i][0]) {
client.spellId = i; player.spellId = i;
client.usingMagic = true; player.usingMagic = true;
break; break;
} }
} }
if (client.autocasting) { if (player.autocasting) {
client.autocasting = false; player.autocasting = false;
} }
if (client.usingMagic) { if (player.usingMagic) {
if (client.goodDistance(client.getX(), client.getY(), if (player.goodDistance(player.getX(), player.getY(),
NpcHandler.npcs[client.npcIndex].getX(), NpcHandler.npcs[player.npcIndex].getX(),
NpcHandler.npcs[client.npcIndex].getY(), 6)) { NpcHandler.npcs[player.npcIndex].getY(), 6)) {
client.stopMovement(); player.stopMovement();
} }
if (client.attackTimer <= 0) { if (player.attackTimer <= 0) {
client.getCombatAssistant().attackNpc(client.npcIndex); player.getCombatAssistant().attackNpc(player.npcIndex);
client.attackTimer++; player.attackTimer++;
} }
} }
break; break;
case FIRST_CLICK: case FIRST_CLICK:
client.npcClickIndex = client.inStream.readSignedWordBigEndian(); player.npcClickIndex = player.inStream.readSignedWordBigEndian();
client.npcType = NpcHandler.npcs[client.npcClickIndex].npcType; player.npcType = NpcHandler.npcs[player.npcClickIndex].npcType;
if (client.goodDistance(NpcHandler.npcs[client.npcClickIndex].getX(), if (player.goodDistance(NpcHandler.npcs[player.npcClickIndex].getX(),
NpcHandler.npcs[client.npcClickIndex].getY(), client.getX(), NpcHandler.npcs[player.npcClickIndex].getY(), player.getX(),
client.getY(), 2)) { player.getY(), 2)) {
client.turnPlayerTo(NpcHandler.npcs[client.npcClickIndex].getX(), player.turnPlayerTo(NpcHandler.npcs[player.npcClickIndex].getX(),
NpcHandler.npcs[client.npcClickIndex].getY()); NpcHandler.npcs[player.npcClickIndex].getY());
NpcHandler.npcs[client.npcClickIndex].facePlayer(client.playerId); NpcHandler.npcs[player.npcClickIndex].facePlayer(player.playerId);
client.getNpcs().firstClickNpc(client.npcType); player.getNpcs().firstClickNpc(player.npcType);
} else { } else {
client.clickNpcType = 1; player.clickNpcType = 1;
CycleEventHandler.getSingleton().addEvent(client, new CycleEvent() { CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override @Override
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
if (client.clickNpcType == 1 if (player.clickNpcType == 1
&& NpcHandler.npcs[client.npcClickIndex] != null) { && NpcHandler.npcs[player.npcClickIndex] != null) {
if (client.goodDistance(client.getX(), client.getY(), if (player.goodDistance(player.getX(), player.getY(),
NpcHandler.npcs[client.npcClickIndex].getX(), NpcHandler.npcs[player.npcClickIndex].getX(),
NpcHandler.npcs[client.npcClickIndex].getY(), 1)) { NpcHandler.npcs[player.npcClickIndex].getY(), 1)) {
client.turnPlayerTo( player.turnPlayerTo(
NpcHandler.npcs[client.npcClickIndex].getX(), NpcHandler.npcs[player.npcClickIndex].getX(),
NpcHandler.npcs[client.npcClickIndex].getY()); NpcHandler.npcs[player.npcClickIndex].getY());
NpcHandler.npcs[client.npcClickIndex] NpcHandler.npcs[player.npcClickIndex]
.facePlayer(client.playerId); .facePlayer(player.playerId);
client.getNpcs().firstClickNpc(client.npcType); player.getNpcs().firstClickNpc(player.npcType);
container.stop(); container.stop();
} }
} }
if (client.clickNpcType == 0 || client.clickNpcType > 1) { if (player.clickNpcType == 0 || player.clickNpcType > 1) {
container.stop(); container.stop();
} }
} }
@Override @Override
public void stop() { public void stop() {
client.clickNpcType = 0; player.clickNpcType = 0;
} }
}, 1); }, 1);
} }
break; break;
case SECOND_CLICK: case SECOND_CLICK:
client.npcClickIndex = client.inStream.readUnsignedWordBigEndianA(); player.npcClickIndex = player.inStream.readUnsignedWordBigEndianA();
client.npcType = NpcHandler.npcs[client.npcClickIndex].npcType; player.npcType = NpcHandler.npcs[player.npcClickIndex].npcType;
if (client.goodDistance(NpcHandler.npcs[client.npcClickIndex].getX(), if (player.goodDistance(NpcHandler.npcs[player.npcClickIndex].getX(),
NpcHandler.npcs[client.npcClickIndex].getY(), client.getX(), NpcHandler.npcs[player.npcClickIndex].getY(), player.getX(),
client.getY(), 2)) { player.getY(), 2)) {
client.turnPlayerTo(NpcHandler.npcs[client.npcClickIndex].getX(), player.turnPlayerTo(NpcHandler.npcs[player.npcClickIndex].getX(),
NpcHandler.npcs[client.npcClickIndex].getY()); NpcHandler.npcs[player.npcClickIndex].getY());
NpcHandler.npcs[client.npcClickIndex].facePlayer(client.playerId); NpcHandler.npcs[player.npcClickIndex].facePlayer(player.playerId);
client.getNpcs().secondClickNpc(client.npcType); player.getNpcs().secondClickNpc(player.npcType);
} else { } else {
client.clickNpcType = 2; player.clickNpcType = 2;
CycleEventHandler.getSingleton().addEvent(client, new CycleEvent() { CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override @Override
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
if (client.clickNpcType == 2 if (player.clickNpcType == 2
&& NpcHandler.npcs[client.npcClickIndex] != null) { && NpcHandler.npcs[player.npcClickIndex] != null) {
if (client.goodDistance(client.getX(), client.getY(), if (player.goodDistance(player.getX(), player.getY(),
NpcHandler.npcs[client.npcClickIndex].getX(), NpcHandler.npcs[player.npcClickIndex].getX(),
NpcHandler.npcs[client.npcClickIndex].getY(), 1)) { NpcHandler.npcs[player.npcClickIndex].getY(), 1)) {
client.turnPlayerTo( player.turnPlayerTo(
NpcHandler.npcs[client.npcClickIndex].getX(), NpcHandler.npcs[player.npcClickIndex].getX(),
NpcHandler.npcs[client.npcClickIndex].getY()); NpcHandler.npcs[player.npcClickIndex].getY());
NpcHandler.npcs[client.npcClickIndex] NpcHandler.npcs[player.npcClickIndex]
.facePlayer(client.playerId); .facePlayer(player.playerId);
client.getNpcs().secondClickNpc(client.npcType); player.getNpcs().secondClickNpc(player.npcType);
container.stop(); container.stop();
} }
} }
if (client.clickNpcType < 2 || client.clickNpcType > 2) { if (player.clickNpcType < 2 || player.clickNpcType > 2) {
container.stop(); container.stop();
} }
} }
@Override @Override
public void stop() { public void stop() {
client.clickNpcType = 0; player.clickNpcType = 0;
} }
}, 1); }, 1);
} }
break; break;
case THIRD_CLICK: case THIRD_CLICK:
client.npcClickIndex = client.inStream.readSignedWord(); player.npcClickIndex = player.inStream.readSignedWord();
client.npcType = NpcHandler.npcs[client.npcClickIndex].npcType; player.npcType = NpcHandler.npcs[player.npcClickIndex].npcType;
if (client.goodDistance(NpcHandler.npcs[client.npcClickIndex].getX(), if (player.goodDistance(NpcHandler.npcs[player.npcClickIndex].getX(),
NpcHandler.npcs[client.npcClickIndex].getY(), client.getX(), NpcHandler.npcs[player.npcClickIndex].getY(), player.getX(),
client.getY(), 2)) { player.getY(), 2)) {
client.turnPlayerTo(NpcHandler.npcs[client.npcClickIndex].getX(), player.turnPlayerTo(NpcHandler.npcs[player.npcClickIndex].getX(),
NpcHandler.npcs[client.npcClickIndex].getY()); NpcHandler.npcs[player.npcClickIndex].getY());
NpcHandler.npcs[client.npcClickIndex].facePlayer(client.playerId); NpcHandler.npcs[player.npcClickIndex].facePlayer(player.playerId);
client.getNpcs().thirdClickNpc(client.npcType); player.getNpcs().thirdClickNpc(player.npcType);
} else { } else {
client.clickNpcType = 3; player.clickNpcType = 3;
CycleEventHandler.getSingleton().addEvent(client, new CycleEvent() { CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override @Override
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
if (client.clickNpcType == 3 if (player.clickNpcType == 3
&& NpcHandler.npcs[client.npcClickIndex] != null) { && NpcHandler.npcs[player.npcClickIndex] != null) {
if (client.goodDistance(client.getX(), client.getY(), if (player.goodDistance(player.getX(), player.getY(),
NpcHandler.npcs[client.npcClickIndex].getX(), NpcHandler.npcs[player.npcClickIndex].getX(),
NpcHandler.npcs[client.npcClickIndex].getY(), 1)) { NpcHandler.npcs[player.npcClickIndex].getY(), 1)) {
client.turnPlayerTo( player.turnPlayerTo(
NpcHandler.npcs[client.npcClickIndex].getX(), NpcHandler.npcs[player.npcClickIndex].getX(),
NpcHandler.npcs[client.npcClickIndex].getY()); NpcHandler.npcs[player.npcClickIndex].getY());
NpcHandler.npcs[client.npcClickIndex] NpcHandler.npcs[player.npcClickIndex]
.facePlayer(client.playerId); .facePlayer(player.playerId);
client.getNpcs().thirdClickNpc(client.npcType); player.getNpcs().thirdClickNpc(player.npcType);
container.stop(); container.stop();
} }
} }
if (client.clickNpcType < 3) { if (player.clickNpcType < 3) {
container.stop(); container.stop();
} }
} }
@Override @Override
public void stop() { public void stop() {
client.clickNpcType = 0; player.clickNpcType = 0;
} }
}, 1); }, 1);
} }
@@ -113,53 +113,53 @@ public class ClickObject implements PacketType {
} }
} }
public void completeObjectClick(final Player p, int objectOption) { public void completeObjectClick(final Player player, int objectOption) {
p.turnPlayerTo(p.objectX, p.objectY); player.turnPlayerTo(player.objectX, player.objectY);
switch (objectOption) { switch (objectOption) {
case 1: case 1:
if (p.playerRights == 3 || p.debugMode) { if (player.playerRights == 3 || player.debugMode) {
p.getPacketSender().sendMessage("ObjectId: " + p.objectId + " ObjectX: " + p.objectX + " ObjectY: " + p.objectY + " Objectclick = 1, Xoff: " + (p.getX() - p.objectX) + " Yoff: " + (p.getY() - p.objectY)); player.getPacketSender().sendMessage("ObjectId: " + player.objectId + " ObjectX: " + player.objectX + " ObjectY: " + player.objectY + " Objectclick = 1, Xoff: " + (player.getX() - player.objectX) + " Yoff: " + (player.getY() - player.objectY));
} }
//todo: check if it's a door before fire handle //todo: check if it's a door before fire handle
Doors.getSingleton().handleDoor(p, p.objectId, p.objectX, p.objectY, p.heightLevel); Doors.getSingleton().handleDoor(player, player.objectId, player.objectX, player.objectY, player.heightLevel);
if (p.teleTimer > 0) { if (player.teleTimer > 0) {
p.getPacketSender().sendMessage("You cannot use objects while teleporting."); player.getPacketSender().sendMessage("You cannot use objects while teleporting.");
return; return;
} }
if (Math.abs(p.getX() - p.objectX) > 25 || Math.abs(p.getY() - p.objectY) > 25) { if (Math.abs(player.getX() - player.objectX) > 25 || Math.abs(player.getY() - player.objectY) > 25) {
p.resetWalkingQueue(); player.resetWalkingQueue();
break; break;
} }
if (Woodcutting.playerTrees(p, p.objectId) && p.objectId != 1292) { if (Woodcutting.playerTrees(player, player.objectId) && player.objectId != 1292) {
Woodcutting.startWoodcutting(p, p.objectId, p.objectX, p.objectY, p.clickObjectType); Woodcutting.startWoodcutting(player, player.objectId, player.objectX, player.objectY, player.clickObjectType);
} }
switch (p.objectId) { switch (player.objectId) {
case 1292: case 1292:
if (p.spiritTree == false && p.clickedTree) { if (player.spiritTree == false && player.clickedTree) {
p.getPacketSender().sendMessage("You have already spawned a tree spirit."); player.getPacketSender().sendMessage("You have already spawned a tree spirit.");
return; return;
} }
if (p.spiritTree == false && p.clickedTree == false) { if (player.spiritTree == false && player.clickedTree == false) {
p.getPacketSender().sendMessage("You attempt to chop the tree, and a tree spirit appears."); player.getPacketSender().sendMessage("You attempt to chop the tree, and a tree spirit appears.");
NpcHandler.spawnNpc(p, 655, p.getX(), p.getY(), 0, 0, 225, 20, 80, 80, true, false); NpcHandler.spawnNpc(player, 655, player.getX(), player.getY(), 0, 0, 225, 20, 80, 80, true, false);
p.clickedTree = true; player.clickedTree = true;
} else if (p.spiritTree) { } else if (player.spiritTree) {
Woodcutting.startWoodcutting(p, p.objectId, p.objectX, p.objectY, p.clickObjectType); Woodcutting.startWoodcutting(player, player.objectId, player.objectX, player.objectY, player.clickObjectType);
} }
break; break;
case 1294: case 1294:
case 1293: case 1293:
case 1317: case 1317:
p.getPlayerAssistant().spiritTree(); player.getPlayerAssistant().spiritTree();
break; break;
case 2164: case 2164:
case 2165: case 2165:
GameEngine.trawler.fixNet(p); GameEngine.trawler.fixNet(player);
break; break;
case 4462: case 4462:
@@ -168,55 +168,55 @@ public class ClickObject implements PacketType {
case 4463: case 4463:
case 4464: case 4464:
case 4459: case 4459:
if (!CastleWars.isInCw(p)) { if (!CastleWars.isInCw(player)) {
p.getPacketSender().sendMessage("You have to be in castle wars to use these objects."); player.getPacketSender().sendMessage("You have to be in castle wars to use these objects.");
CastleWars.resetPlayer(p); CastleWars.resetPlayer(player);
return; return;
} }
CastleWarObjects.handleObject(p, p.objectId, p.objectX, p.objectY); CastleWarObjects.handleObject(player, player.objectId, player.objectX, player.objectY);
break; break;
case 2513: case 2513:
p.getRangersGuild().fireAtTarget(); player.getRangersGuild().fireAtTarget();
break; break;
case 8930: case 8930:
p.fade(1975, 4409, 3); player.fade(1975, 4409, 3);
break; break;
case 8929: case 8929:
p.fade(2442, 10147, 0); player.fade(2442, 10147, 0);
break; break;
case 1568: case 1568:
if (p.objectX == 2399 && p.objectY == 3099) { if (player.objectX == 2399 && player.objectY == 3099) {
p.getPacketSender() player.getPacketSender()
.object(9472, 2399, 3099, 0, 10); .object(9472, 2399, 3099, 0, 10);
} }
if (p.objectX == 2400 && p.objectY == 3108) { if (player.objectX == 2400 && player.objectY == 3108) {
p.getPacketSender() player.getPacketSender()
.object(9472, 2400, 3108, 2, 10); .object(9472, 2400, 3108, 2, 10);
} }
break; break;
case 4437: case 4437:
if (p.getItemAssistant().playerHasItem(1265, 1)) { if (player.getItemAssistant().playerHasItem(1265, 1)) {
p.getPacketSender().sendMessage( player.getPacketSender().sendMessage(
"You start to break up the rocks..."); "You start to break up the rocks...");
p.startAnimation(625); player.startAnimation(625);
CycleEventHandler.getSingleton().addEvent(p, new CycleEvent() { CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override @Override
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
container.stop(); container.stop();
p.startAnimation(65535); player.startAnimation(65535);
} }
@Override @Override
public void stop() { public void stop() {
p.getPacketSender().object(-1, player.getPacketSender().object(-1,
p.objectX, p.objectY, 0, 10); player.objectX, player.objectY, 0, 10);
p.getPacketSender().object(4438, player.getPacketSender().object(4438,
p.objectX, p.objectY, 0, 10); player.objectX, player.objectY, 0, 10);
p.getPacketSender().sendMessage( player.getPacketSender().sendMessage(
"You break up the rocks."); "You break up the rocks.");
} }
}, 3); }, 3);
@@ -224,22 +224,22 @@ public class ClickObject implements PacketType {
break; break;
case 4438: case 4438:
if (p.getItemAssistant().playerHasItem(1265, 1)) { if (player.getItemAssistant().playerHasItem(1265, 1)) {
p.getPacketSender().sendMessage( player.getPacketSender().sendMessage(
"You start to break up the rocks..."); "You start to break up the rocks...");
p.startAnimation(625); player.startAnimation(625);
CycleEventHandler.getSingleton().addEvent(p, new CycleEvent() { CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override @Override
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
stop(); stop();
p.startAnimation(65535); player.startAnimation(65535);
} }
@Override @Override
public void stop() { public void stop() {
p.getPacketSender().object(-1, player.getPacketSender().object(-1,
p.objectX, p.objectY, 0, 10); player.objectX, player.objectY, 0, 10);
p.getPacketSender().sendMessage( player.getPacketSender().sendMessage(
"You break up the rocks."); "You break up the rocks.");
} }
}, 3); }, 3);
@@ -247,58 +247,58 @@ public class ClickObject implements PacketType {
break; break;
case 4448: case 4448:
if (p.getItemAssistant().playerHasItem(1265, 1)) { if (player.getItemAssistant().playerHasItem(1265, 1)) {
p.getPacketSender().sendMessage( player.getPacketSender().sendMessage(
"You start to mine the wall..."); "You start to mine the wall...");
p.startAnimation(625); player.startAnimation(625);
CycleEventHandler.getSingleton().addEvent(p, new CycleEvent() { CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override @Override
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
stop(); stop();
p.startAnimation(65535); player.startAnimation(65535);
p.getPacketSender().sendMessage( player.getPacketSender().sendMessage(
"You collapse the cave wall."); "You collapse the cave wall.");
} }
@Override @Override
public void stop() { public void stop() {
if ((p.objectX == 2390 || p.objectX == 2393) if ((player.objectX == 2390 || player.objectX == 2393)
&& (p.objectY == 9503 || p.objectY == 9500)) { // east && (player.objectY == 9503 || player.objectY == 9500)) { // east
// cave // cave
// side // side
p.getPacketSender().object(-1, 2391, player.getPacketSender().object(-1, 2391,
9501, 0, 10); 9501, 0, 10);
p.getPacketSender().object(4437, 2391, player.getPacketSender().object(4437, 2391,
9501, 0, 10); 9501, 0, 10);
CastleWars.collapseCave(1); CastleWars.collapseCave(1);
} }
if ((p.objectX == 2399 || p.objectX == 2402) if ((player.objectX == 2399 || player.objectX == 2402)
&& (p.objectY == 9511 || p.objectY == 9514)) { // north && (player.objectY == 9511 || player.objectY == 9514)) { // north
// cave // cave
// side // side
p.getPacketSender().object(-1, 2400, player.getPacketSender().object(-1, 2400,
9512, 1, 10); 9512, 1, 10);
p.getPacketSender().object(4437, 2400, player.getPacketSender().object(4437, 2400,
9512, 1, 10); 9512, 1, 10);
CastleWars.collapseCave(0); CastleWars.collapseCave(0);
} }
if ((p.objectX == 2408 || p.objectX == 2411) if ((player.objectX == 2408 || player.objectX == 2411)
&& (p.objectY == 9502 || p.objectY == 9505)) { // west && (player.objectY == 9502 || player.objectY == 9505)) { // west
// cave // cave
// side // side
p.getPacketSender().object(-1, 2409, player.getPacketSender().object(-1, 2409,
9503, 0, 10); 9503, 0, 10);
p.getPacketSender().object(4437, 2409, player.getPacketSender().object(4437, 2409,
9503, 0, 10); 9503, 0, 10);
CastleWars.collapseCave(3); CastleWars.collapseCave(3);
} }
if ((p.objectX == 2400 || p.objectX == 2403) if ((player.objectX == 2400 || player.objectX == 2403)
&& (p.objectY == 9496 || p.objectY == 9493)) { // south && (player.objectY == 9496 || player.objectY == 9493)) { // south
// cave // cave
// side // side
p.getPacketSender().object(-1, 2401, player.getPacketSender().object(-1, 2401,
9494, 1, 10); 9494, 1, 10);
p.getPacketSender().object(4437, 2401, player.getPacketSender().object(4437, 2401,
9494, 1, 10); 9494, 1, 10);
CastleWars.collapseCave(2); CastleWars.collapseCave(2);
} }
@@ -308,31 +308,31 @@ public class ClickObject implements PacketType {
break; break;
case 1733: case 1733:
if (p.objectX == 3058 && p.objectY == 3376) { if (player.objectX == 3058 && player.objectY == 3376) {
p.getPlayerAssistant().movePlayer(3058, 9776, 0); player.getPlayerAssistant().movePlayer(3058, 9776, 0);
} else if (p.objectX == 2603 && p.objectY == 3078) { } else if (player.objectX == 2603 && player.objectY == 3078) {
} }
break; break;
case 55: case 55:
if (p.objectX == 3061 && p.objectY == 3374) { if (player.objectX == 3061 && player.objectY == 3374) {
p.getPlayerAssistant().movePlayer(3058, 9776, 0); player.getPlayerAssistant().movePlayer(3058, 9776, 0);
} }
break; break;
case 9472: case 9472:
if (p.objectX == 2399 && p.objectY == 3099) { if (player.objectX == 2399 && player.objectY == 3099) {
p.startAnimation(828); player.startAnimation(828);
p.stopMovement(); player.stopMovement();
p.resetWalkingQueue(); player.resetWalkingQueue();
p.getPlayerAssistant().requestUpdates(); player.getPlayerAssistant().requestUpdates();
p.getPacketSender().closeAllWindows(); player.getPacketSender().closeAllWindows();
CycleEventHandler.getSingleton().addEvent(p, new CycleEvent() { CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override @Override
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
container.stop(); container.stop();
p.startAnimation(65535); player.startAnimation(65535);
p.getPlayerAssistant().movePlayer(2400, 9507, player.getPlayerAssistant().movePlayer(2400, 9507,
0); 0);
} }
@@ -342,18 +342,18 @@ public class ClickObject implements PacketType {
} }
}, 1); }, 1);
} }
if (p.objectX == 2400 && p.objectY == 3108) { if (player.objectX == 2400 && player.objectY == 3108) {
p.startAnimation(828); player.startAnimation(828);
p.stopMovement(); player.stopMovement();
p.resetWalkingQueue(); player.resetWalkingQueue();
p.getPlayerAssistant().requestUpdates(); player.getPlayerAssistant().requestUpdates();
p.getPacketSender().closeAllWindows(); player.getPacketSender().closeAllWindows();
CycleEventHandler.getSingleton().addEvent(p, new CycleEvent() { CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override @Override
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
stop(); stop();
p.startAnimation(65535); player.startAnimation(65535);
p.getPlayerAssistant().movePlayer(2399, 9500, 0); player.getPlayerAssistant().movePlayer(2399, 9500, 0);
} }
@Override @Override
@@ -365,47 +365,47 @@ public class ClickObject implements PacketType {
break; break;
case 4387: case 4387:
CastleWars.addToWaitRoom(p, 1); // saradomin CastleWars.addToWaitRoom(player, 1); // saradomin
break; break;
case 4388: case 4388:
CastleWars.addToWaitRoom(p, 2); // zamorak CastleWars.addToWaitRoom(player, 2); // zamorak
break; break;
case 4408: case 4408:
CastleWars.addToWaitRoom(p, 3); // guthix CastleWars.addToWaitRoom(player, 3); // guthix
break; break;
case 4389: // sara case 4389: // sara
case 4390: // zammy waiting room portal case 4390: // zammy waiting room portal
CastleWars.leaveWaitingRoom(p); CastleWars.leaveWaitingRoom(player);
break; break;
} }
p.getObjects().firstClickObject(p.objectId, p.objectX, p.objectY); player.getObjects().firstClickObject(player.objectId, player.objectX, player.objectY);
break; break;
case 2: case 2:
if (p.playerRights == 3) { if (player.playerRights == 3) {
p.getPacketSender().sendMessage("ObjectId: " + p.objectId + " ObjectX: " + p.objectX + " ObjectY: " + p.objectY + " Objectclick = 2, Xoff: " + (p.getX() - p.objectX) + " Yoff: " + (p.getY() - p.objectY)); player.getPacketSender().sendMessage("ObjectId: " + player.objectId + " ObjectX: " + player.objectX + " ObjectY: " + player.objectY + " Objectclick = 2, Xoff: " + (player.getX() - player.objectX) + " Yoff: " + (player.getY() - player.objectY));
} }
p.getObjects().secondClickObject(p.objectId, p.objectX, p.objectY); player.getObjects().secondClickObject(player.objectId, player.objectX, player.objectY);
break; break;
case 3: // 'F' case 3: // 'F'
if (p.playerRights == 3) { if (player.playerRights == 3) {
p.getPacketSender().sendMessage("ObjectId: " + p.objectId + " ObjectX: " + p.objectX + " ObjectY: " + p.objectY + " Objectclick = 3, Xoff: " + (p.getX() - p.objectX) + " Yoff: " + (p.getY() - p.objectY)); player.getPacketSender().sendMessage("ObjectId: " + player.objectId + " ObjectX: " + player.objectX + " ObjectY: " + player.objectY + " Objectclick = 3, Xoff: " + (player.getX() - player.objectX) + " Yoff: " + (player.getY() - player.objectY));
} }
p.getObjects().thirdClickObject(p.objectId, p.objectX, p.objectY); player.getObjects().thirdClickObject(player.objectId, player.objectX, player.objectY);
break; break;
case 4: case 4:
if (p.playerRights == 3) { if (player.playerRights == 3) {
p.getPacketSender().sendMessage("ObjectId: " + p.objectId + " ObjectX: " + p.objectX + " ObjectY: " + p.objectY + " Objectclick = 4, Xoff: " + (p.getX() - p.objectX) + " Yoff: " + (p.getY() - p.objectY)); player.getPacketSender().sendMessage("ObjectId: " + player.objectId + " ObjectX: " + player.objectX + " ObjectY: " + player.objectY + " Objectclick = 4, Xoff: " + (player.getX() - player.objectX) + " Yoff: " + (player.getY() - player.objectY));
} }
p.getObjects().fourthClickObject(p.objectId, p.objectX, p.objectY); player.getObjects().fourthClickObject(player.objectId, player.objectX, player.objectY);
break; break;
} }
} }
@@ -7,128 +7,128 @@ import com.rebotted.net.packets.PacketType;
public class ClickTab implements PacketType { public class ClickTab implements PacketType {
@Override @Override
public void processPacket(final Player c, int packetType, int packetSize) { public void processPacket(final Player player, int packetType, int packetSize) {
switch (packetSize) { switch (packetSize) {
case 1:// first part. case 1:// first part.
if (c.tutorialProgress == 0) { // wrench if (player.tutorialProgress == 0) { // wrench
c.getPacketSender().chatbox(6180); player.getPacketSender().chatbox(6180);
c.getDialogueHandler() player.getDialogueHandler()
.chatboxText( .chatboxText(
"On the side panel you can now see a variety of options from", "On the side panel you can now see a variety of options from",
"changing your graphic settings and audio and music volume", "changing your graphic settings and audio and music volume",
"to selecting whether your player should accept help from", "to selecting whether your player should accept help from",
"other players. Don't worry about these too much for now.", "other players. Don't worry about these too much for now.",
"@blu@Player controls"); "@blu@Player controls");
c.getPacketSender().chatbox(6179); player.getPacketSender().chatbox(6179);
c.tutorialProgress = 1; player.tutorialProgress = 1;
} else if (c.tutorialProgress == 3) { // backpack } else if (player.tutorialProgress == 3) { // backpack
c.getPacketSender().chatbox(6180); player.getPacketSender().chatbox(6180);
c.getDialogueHandler() player.getDialogueHandler()
.chatboxText( .chatboxText(
"You can click on the backpack icon at any time to view the", "You can click on the backpack icon at any time to view the",
"items that you currently have in your inventory. You will see", "items that you currently have in your inventory. You will see",
"that you now have an axe in your inventory. Use this to get", "that you now have an axe in your inventory. Use this to get",
"some logs by clicking on one of the trees in the area.", "some logs by clicking on one of the trees in the area.",
"Cut down a tree"); "Cut down a tree");
c.getPacketSender().createArrow(3099, 3095, c.getH(), 2); player.getPacketSender().createArrow(3099, 3095, player.getH(), 2);
c.getPacketSender().chatbox(6179); player.getPacketSender().chatbox(6179);
} else if (c.tutorialProgress == 4) { // Skills tab } else if (player.tutorialProgress == 4) { // Skills tab
c.getPacketSender().chatbox(6180); player.getPacketSender().chatbox(6180);
c.getDialogueHandler() player.getDialogueHandler()
.chatboxText( .chatboxText(
"Here you will see how good your skills are. As you move your", "Here you will see how good your skills are. As you move your",
"mouse over any of the icons in this panel, the small yellow", "mouse over any of the icons in this panel, the small yellow",
"popup box will show you the exact amount of experience you", "popup box will show you the exact amount of experience you",
"have and how much is needed to get to the next level.", "have and how much is needed to get to the next level.",
"Your skill stats"); "Your skill stats");
c.tutorialProgress = 5; player.tutorialProgress = 5;
c.getPacketSender().chatbox(6179); player.getPacketSender().chatbox(6179);
c.getPacketSender().createArrow(1, 2); player.getPacketSender().createArrow(1, 2);
} else if (c.tutorialProgress == 9) { // Music tab } else if (player.tutorialProgress == 9) { // Music tab
c.getPacketSender().chatbox(6180); player.getPacketSender().chatbox(6180);
c.getDialogueHandler() player.getDialogueHandler()
.chatboxText( .chatboxText(
"From this interface you can control the music that is played.", "From this interface you can control the music that is played.",
"As you explore the world, more of the tunes will become", "As you explore the world, more of the tunes will become",
"unlocked. Once you've examined this menu use the next door", "unlocked. Once you've examined this menu use the next door",
"to continue. If you need a recap, talk to the Master Chef", "to continue. If you need a recap, talk to the Master Chef",
"The music player"); "The music player");
c.getPacketSender().createArrow(3073, 3090, c.getH(), 2); player.getPacketSender().createArrow(3073, 3090, player.getH(), 2);
c.tutorialProgress = 10; player.tutorialProgress = 10;
c.getPacketSender().chatbox(6179); player.getPacketSender().chatbox(6179);
} else if (c.tutorialProgress == 10) { // Emotes aNd running } else if (player.tutorialProgress == 10) { // Emotes aNd running
c.getPacketSender().chatbox(6180); player.getPacketSender().chatbox(6180);
c.getDialogueHandler() player.getDialogueHandler()
.chatboxText( .chatboxText(
"For those situations where words don't quite describe how you", "For those situations where words don't quite describe how you",
"feel, try an emote. Go ahead, try one out! You might notice", "feel, try an emote. Go ahead, try one out! You might notice",
"that some of the emotes are grey and cannot be used now.", "that some of the emotes are grey and cannot be used now.",
"As you progress further into the game you'll gain more.", "As you progress further into the game you'll gain more.",
"Emotes"); "Emotes");
c.getPacketSender().chatbox(6179); player.getPacketSender().chatbox(6179);
} else if (c.tutorialProgress == 12) { // Quest Tab } else if (player.tutorialProgress == 12) { // Quest Tab
c.getPacketSender().chatbox(6180); player.getPacketSender().chatbox(6180);
c.getDialogueHandler() player.getDialogueHandler()
.chatboxText( .chatboxText(
"", "",
"This is your Quest Journal, a list of all the quests in the game.", "This is your Quest Journal, a list of all the quests in the game.",
"Talk to the Quest Guide again for an explaination.", "Talk to the Quest Guide again for an explaination.",
"", "Your Quest Journal"); "", "Your Quest Journal");
c.tutorialProgress = 13; player.tutorialProgress = 13;
c.getPacketSender().chatbox(6179); player.getPacketSender().chatbox(6179);
} else if (c.tutorialProgress == 21) { // Worn inventory } else if (player.tutorialProgress == 21) { // Worn inventory
c.getPacketSender().chatbox(6180); player.getPacketSender().chatbox(6180);
c.getDialogueHandler() player.getDialogueHandler()
.chatboxText( .chatboxText(
"You can see what items you are wearing in the worn inventory", "You can see what items you are wearing in the worn inventory",
"to the left of the screen with their combined statistics on the", "to the left of the screen with their combined statistics on the",
"right. Let's add something. Left click your dagger to 'wield' it.", "right. Let's add something. Left click your dagger to 'wield' it.",
"", "Worn interface"); "", "Worn interface");
c.getPacketSender().chatbox(6179); player.getPacketSender().chatbox(6179);
c.tutorialProgress = 22; player.tutorialProgress = 22;
} else if (c.tutorialProgress == 23) { // Attack syle tabs } else if (player.tutorialProgress == 23) { // Attack syle tabs
c.getPacketSender().chatbox(6180); player.getPacketSender().chatbox(6180);
c.getDialogueHandler() player.getDialogueHandler()
.chatboxText( .chatboxText(
"From this interface you can select the type of attack your", "From this interface you can select the type of attack your",
"character will use. Different monsters have different", "character will use. Different monsters have different",
"weaknesses. If you hover your mouse over the buttons, you", "weaknesses. If you hover your mouse over the buttons, you",
"will see the type of XP you will receive when using each attack.", "will see the type of XP you will receive when using each attack.",
"This is your combat interface"); "This is your combat interface");
c.tutorialProgress = 24; player.tutorialProgress = 24;
c.getPacketSender().chatbox(6179); player.getPacketSender().chatbox(6179);
c.getItemAssistant() player.getItemAssistant()
.sendWeapon( .sendWeapon(
c.playerEquipment[c.playerWeapon], player.playerEquipment[player.playerWeapon],
ItemAssistant ItemAssistant
.getItemName(c.playerEquipment[c.playerWeapon])); .getItemName(player.playerEquipment[player.playerWeapon]));
c.getPacketSender().createArrow(3111, 9518, c.getH(), 2); player.getPacketSender().createArrow(3111, 9518, player.getH(), 2);
} else if (c.tutorialProgress == 29) { // Prayer } else if (player.tutorialProgress == 29) { // Prayer
c.getDialogueHandler().sendDialogues(3092, 222); player.getDialogueHandler().sendDialogues(3092, 222);
} else if (c.tutorialProgress == 30) { // friends tab } else if (player.tutorialProgress == 30) { // friends tab
c.getPacketSender().chatbox(6180); player.getPacketSender().chatbox(6180);
c.getDialogueHandler() player.getDialogueHandler()
.chatboxText( .chatboxText(
"This will be explaing by Brother Brace shortly, but first click", "This will be explaing by Brother Brace shortly, but first click",
"on the other flashing face to the right of your screen.", "on the other flashing face to the right of your screen.",
"", "", "This is your friends list"); "", "", "This is your friends list");
c.getPacketSender().setSidebarInterface(9, 5715); player.getPacketSender().setSidebarInterface(9, 5715);
c.getPacketSender().flashSideBarIcon(-9); player.getPacketSender().flashSideBarIcon(-9);
c.tutorialProgress = 31; player.tutorialProgress = 31;
c.getPacketSender().chatbox(6179); player.getPacketSender().chatbox(6179);
} else if (c.tutorialProgress == 31) { // ignores tab } else if (player.tutorialProgress == 31) { // ignores tab
c.getPacketSender().chatbox(6180); player.getPacketSender().chatbox(6180);
c.getDialogueHandler() player.getDialogueHandler()
.chatboxText( .chatboxText(
"The two lists - friends and ignore - can be very helpful for", "The two lists - friends and ignore - can be very helpful for",
"keeping track of when your friends are online or for blocking", "keeping track of when your friends are online or for blocking",
"messages from people you simply don't like. Speak with", "messages from people you simply don't like. Speak with",
"Brother Brace and he will tell you more.", "Brother Brace and he will tell you more.",
"This is your ignore list"); "This is your ignore list");
c.getPacketSender().chatbox(6179); player.getPacketSender().chatbox(6179);
} else if (c.tutorialProgress == 32) { // Final magic tab } else if (player.tutorialProgress == 32) { // Final magic tab
c.tutorialProgress = 33; player.tutorialProgress = 33;
c.getDialogueHandler().sendDialogues(3108, 946); player.getDialogueHandler().sendDialogues(3108, 946);
} }
break; break;
@@ -25,6 +25,7 @@ import com.rebotted.game.content.traveling.GnomeGlider;
import com.rebotted.game.dialogues.DialogueOptions; import com.rebotted.game.dialogues.DialogueOptions;
import com.rebotted.game.items.GameItem; import com.rebotted.game.items.GameItem;
import com.rebotted.game.items.ItemAssistant; import com.rebotted.game.items.ItemAssistant;
import com.rebotted.game.items.impl.EnchantStaff;
import com.rebotted.game.items.impl.ExperienceLamp; import com.rebotted.game.items.impl.ExperienceLamp;
import com.rebotted.game.items.impl.LightSources; import com.rebotted.game.items.impl.LightSources;
import com.rebotted.game.objects.impl.Climbing; import com.rebotted.game.objects.impl.Climbing;
@@ -57,6 +58,9 @@ public class ClickingButtons implements PacketType {
Specials.specialClicking(player, actionButtonId); Specials.specialClicking(player, actionButtonId);
DialogueOptions.handleDialogueOptions(player, actionButtonId); DialogueOptions.handleDialogueOptions(player, actionButtonId);
DairyChurn.churnItem(player, actionButtonId); DairyChurn.churnItem(player, actionButtonId);
if (EnchantStaff.staffButtons(player, actionButtonId)) {
return;
}
if (player.musicOn) { if (player.musicOn) {
player.getPlayList().handleButton(actionButtonId); player.getPlayList().handleButton(actionButtonId);
} }
@@ -69,16 +73,12 @@ public class ClickingButtons implements PacketType {
if (player.isDead) { if (player.isDead) {
return; return;
} }
if (player.playerRights == 3) { if (player.playerRights == 3) {
player.getPacketSender().sendMessage( player.getPacketSender().sendMessage(player.playerName + " - actionbutton: " + actionButtonId);
player.playerName + " - actionbutton: " + actionButtonId);
} }
if (player.isAutoButton(actionButtonId)) { if (player.isAutoButton(actionButtonId)) {
player.assignAutocast(actionButtonId); player.assignAutocast(actionButtonId);
} }
switch (actionButtonId) { switch (actionButtonId) {
@@ -3,13 +3,10 @@ package com.rebotted.net.packets.impl;
import com.rebotted.game.players.Player; import com.rebotted.game.players.Player;
import com.rebotted.net.packets.PacketType; import com.rebotted.net.packets.PacketType;
/**
* Clicking in game
**/
public class ClickingInGame implements PacketType { public class ClickingInGame implements PacketType {
@Override @Override
public void processPacket(Player c, int packetType, int packetSize) { public void processPacket(Player player, int packetType, int packetSize) {
} }
@@ -7,18 +7,18 @@ import com.rebotted.net.packets.PacketType;
public class FollowPlayer implements PacketType { public class FollowPlayer implements PacketType {
@Override @Override
public void processPacket(Player c, int packetType, int packetSize) { public void processPacket(Player player, int packetType, int packetSize) {
int followPlayer = c.getInStream().readUnsignedWordBigEndian(); int followPlayer = player.getInStream().readUnsignedWordBigEndian();
if (PlayerHandler.players[followPlayer] == null) { if (PlayerHandler.players[followPlayer] == null) {
return; return;
} }
c.playerIndex = 0; player.playerIndex = 0;
c.npcIndex = 0; player.npcIndex = 0;
c.mageFollow = false; player.mageFollow = false;
c.usingBow = false; player.usingBow = false;
c.usingRangeWeapon = false; player.usingRangeWeapon = false;
c.followDistance = 1; player.followDistance = 1;
c.followId = followPlayer; player.followId = followPlayer;
c.endCurrentTask(); player.endCurrentTask();
} }
} }
@@ -12,23 +12,23 @@ import com.rebotted.net.packets.PacketType;
public class ItemClick2 implements PacketType { public class ItemClick2 implements PacketType {
@Override @Override
public void processPacket(Player c, int packetType, int packetSize) { public void processPacket(Player player, int packetType, int packetSize) {
int itemId = c.getInStream().readSignedWordA(); int itemId = player.getInStream().readSignedWordA();
if (!c.getItemAssistant().playerHasItem(itemId, 1)) { if (!player.getItemAssistant().playerHasItem(itemId, 1)) {
return; return;
} }
c.endCurrentTask(); player.endCurrentTask();
if (HandleEmpty.canEmpty(c, itemId)) { if (HandleEmpty.canEmpty(player, itemId)) {
HandleEmpty.handleEmptyItem(c, itemId, HandleEmpty.filledToEmpty(c, itemId)); HandleEmpty.handleEmptyItem(player, itemId, HandleEmpty.filledToEmpty(player, itemId));
return; return;
} }
switch (itemId) { switch (itemId) {
case 4079: case 4079:
c.startAnimation(1459); player.startAnimation(1459);
break; break;
} }
@@ -8,19 +8,19 @@ import com.rebotted.net.packets.PacketType;
public class ItemClick2OnGroundItem implements PacketType { public class ItemClick2OnGroundItem implements PacketType {
@Override @Override
public void processPacket(Player c, int packetType, int packetSize) { public void processPacket(Player player, int packetType, int packetSize) {
final int itemX = c.getInStream().readSignedWordBigEndian(); final int itemX = player.getInStream().readSignedWordBigEndian();
final int itemY = c.getInStream().readSignedWordBigEndianA(); final int itemY = player.getInStream().readSignedWordBigEndianA();
final int itemId = c.getInStream().readUnsignedWordA(); final int itemId = player.getInStream().readUnsignedWordA();
System.out.println("ItemClick2OnGroundItem - " + c.playerName + " - " + itemId + " - " + itemX + " - " + itemY); System.out.println("ItemClick2OnGroundItem - " + player.playerName + " - " + itemId + " - " + itemX + " - " + itemY);
if (c.absX != itemX || c.absY != itemY) { if (player.absX != itemX || player.absY != itemY) {
c.getPacketSender().sendMessage("You can't do that there!"); player.getPacketSender().sendMessage("You can't do that there!");
return; return;
} }
c.endCurrentTask(); player.endCurrentTask();
for (LogData l : LogData.values()) { for (LogData l : LogData.values()) {
if (itemId == l.getLogId()) { if (itemId == l.getLogId()) {
Firemaking.attemptFire(c, 590, itemId, itemX, itemY, true); Firemaking.attemptFire(player, 590, itemId, itemX, itemY, true);
return; return;
} }
} }
@@ -13,43 +13,43 @@ import com.rebotted.util.Misc;
public class ItemOnPlayer implements PacketType { public class ItemOnPlayer implements PacketType {
@Override @Override
public void processPacket(Player c, int packetType, int packetSize) { public void processPacket(Player player, int packetType, int packetSize) {
int playerId = c.inStream.readUnsignedWord(); int playerId = player.inStream.readUnsignedWord();
int itemId = c.playerItems[c.inStream.readSignedWordBigEndian()] - 1; int itemId = player.playerItems[player.inStream.readSignedWordBigEndian()] - 1;
c.endCurrentTask(); player.endCurrentTask();
switch (itemId) { switch (itemId) {
case 962: case 962:
Player o = (Player) PlayerHandler.players[playerId]; Player o = (Player) PlayerHandler.players[playerId];
if (RareProtection.CRACKERS) { if (RareProtection.CRACKERS) {
int delete = c.getItemAssistant().getItemAmount(962); int delete = player.getItemAssistant().getItemAmount(962);
c.getItemAssistant().deleteItem(962, delete); player.getItemAssistant().deleteItem(962, delete);
c.getPacketSender().sendMessage("You can't do that!"); player.getPacketSender().sendMessage("You can't do that!");
return; return;
} }
c.turnPlayerTo(o.absX, o.absY); player.turnPlayerTo(o.absX, o.absY);
o.turnPlayerTo(c.absX, c.absY); o.turnPlayerTo(player.absX, player.absY);
o.gfx0(176); o.gfx0(176);
c.gfx0(176); player.gfx0(176);
c.startAnimation(451); player.startAnimation(451);
o.startAnimation(451); o.startAnimation(451);
c.getPacketSender().sendMessage( player.getPacketSender().sendMessage(
"You pull the Christmas Cracker..."); "You pull the Christmas Cracker...");
o.getPacketSender().sendMessage( o.getPacketSender().sendMessage(
c.playerName.toUpperCase() + " need your help... You pull the Christmas Cracker..."); player.playerName.toUpperCase() + " need your help... You pull the Christmas Cracker...");
c.getItemAssistant().deleteItem(962, 1); player.getItemAssistant().deleteItem(962, 1);
if (Misc.random(3) == 1) { if (Misc.random(3) == 1) {
o.forcedText = "Yay! I got the Cracker!"; o.forcedText = "Yay! I got the Cracker!";
o.forcedChatUpdateRequired = true; o.forcedChatUpdateRequired = true;
o.getItemAssistant().addItem(1038 + Misc.random(5) * 2, 1); o.getItemAssistant().addItem(1038 + Misc.random(5) * 2, 1);
} else { } else {
c.forcedText = "Yay! I got the Cracker!"; player.forcedText = "Yay! I got the Cracker!";
c.forcedChatUpdateRequired = true; player.forcedChatUpdateRequired = true;
c.getItemAssistant().addItem(1038 + Misc.random(5) * 2, 1); player.getItemAssistant().addItem(1038 + Misc.random(5) * 2, 1);
} }
break; break;
default: default:
c.getPacketSender().sendMessage("Nothing interesting happens."); player.getPacketSender().sendMessage("Nothing interesting happens.");
break; break;
} }
} }
@@ -16,64 +16,64 @@ import com.rebotted.net.packets.PacketType;
public class MagicOnFloorItems implements PacketType { public class MagicOnFloorItems implements PacketType {
@Override @Override
public void processPacket(final Player c, int packetType, int packetSize) { public void processPacket(final Player player, int packetType, int packetSize) {
final int itemY = c.getInStream().readSignedWordBigEndian(); final int itemY = player.getInStream().readSignedWordBigEndian();
int itemId = c.getInStream().readUnsignedWord(); int itemId = player.getInStream().readUnsignedWord();
final int itemX = c.getInStream().readSignedWordBigEndian(); final int itemX = player.getInStream().readSignedWordBigEndian();
c.getInStream().readUnsignedWordA(); player.getInStream().readUnsignedWordA();
if (!GameEngine.itemHandler.itemExists(itemId, itemX, itemY)) { if (!GameEngine.itemHandler.itemExists(itemId, itemX, itemY)) {
c.stopMovement(); player.stopMovement();
return; return;
} }
c.usingMagic = true; player.usingMagic = true;
c.endCurrentTask(); player.endCurrentTask();
if (!c.getCombatAssistant().checkMagicReqs(51)) { if (!player.getCombatAssistant().checkMagicReqs(51)) {
c.stopMovement(); player.stopMovement();
return; return;
} }
if ((c.getItemAssistant().freeSlots() >= 1 || c.getItemAssistant() if ((player.getItemAssistant().freeSlots() >= 1 || player.getItemAssistant()
.playerHasItem(itemId, 1)) .playerHasItem(itemId, 1))
&& ItemData.itemStackable[itemId] && ItemData.itemStackable[itemId]
|| c.getItemAssistant().freeSlots() > 0 || player.getItemAssistant().freeSlots() > 0
&& !ItemData.itemStackable[itemId]) { && !ItemData.itemStackable[itemId]) {
if (c.goodDistance(c.getX(), c.getY(), itemX, itemY, 12)) { if (player.goodDistance(player.getX(), player.getY(), itemX, itemY, 12)) {
c.walkingToItem = true; player.walkingToItem = true;
int offY = (c.getX() - itemX) * -1; int offY = (player.getX() - itemX) * -1;
int offX = (c.getY() - itemY) * -1; int offX = (player.getY() - itemY) * -1;
c.teleGrabX = itemX; player.teleGrabX = itemX;
c.teleGrabY = itemY; player.teleGrabY = itemY;
c.teleGrabItem = itemId; player.teleGrabItem = itemId;
c.turnPlayerTo(itemX, itemY); player.turnPlayerTo(itemX, itemY);
c.teleGrabDelay = System.currentTimeMillis(); player.teleGrabDelay = System.currentTimeMillis();
c.startAnimation(MagicData.MAGIC_SPELLS[51][2]); player.startAnimation(MagicData.MAGIC_SPELLS[51][2]);
c.gfx100(MagicData.MAGIC_SPELLS[51][3]); player.gfx100(MagicData.MAGIC_SPELLS[51][3]);
c.getPlayerAssistant().createPlayersStillGfx(144, itemX, itemY, player.getPlayerAssistant().createPlayersStillGfx(144, itemX, itemY,
0, 72); 0, 72);
c.getPlayerAssistant().createPlayersProjectile(c.getX(), player.getPlayerAssistant().createPlayersProjectile(player.getX(),
c.getY(), offX, offY, 50, 70, player.getY(), offX, offY, 50, 70,
MagicData.MAGIC_SPELLS[51][4], 50, 10, 0, 50); MagicData.MAGIC_SPELLS[51][4], 50, 10, 0, 50);
c.getPlayerAssistant().addSkillXP( player.getPlayerAssistant().addSkillXP(
MagicData.MAGIC_SPELLS[51][7], 6); MagicData.MAGIC_SPELLS[51][7], 6);
c.getPlayerAssistant().refreshSkill(6); player.getPlayerAssistant().refreshSkill(6);
c.stopMovement(); player.stopMovement();
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() { CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override @Override
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
if (!c.walkingToItem) { if (!player.walkingToItem) {
stop(); stop();
} }
if (System.currentTimeMillis() - c.teleGrabDelay > 1550 if (System.currentTimeMillis() - player.teleGrabDelay > 1550
&& c.usingMagic) { && player.usingMagic) {
if (GameEngine.itemHandler.itemExists(c.teleGrabItem, if (GameEngine.itemHandler.itemExists(player.teleGrabItem,
c.teleGrabX, c.teleGrabY) player.teleGrabX, player.teleGrabY)
&& c.goodDistance(c.getX(), c.getY(), && player.goodDistance(player.getX(), player.getY(),
itemX, itemY, 12)) { itemX, itemY, 12)) {
GameEngine.itemHandler.removeGroundItem(c, GameEngine.itemHandler.removeGroundItem(player,
c.teleGrabItem, c.teleGrabX, player.teleGrabItem, player.teleGrabX,
c.teleGrabY, true); player.teleGrabY, true);
c.usingMagic = false; player.usingMagic = false;
container.stop(); container.stop();
} }
} }
@@ -81,34 +81,34 @@ public class MagicOnFloorItems implements PacketType {
@Override @Override
public void stop() { public void stop() {
c.walkingToItem = false; player.walkingToItem = false;
} }
}, 1); }, 1);
} }
} else { } else {
c.getPacketSender().sendMessage( player.getPacketSender().sendMessage(
"You don't have enough space in your inventory."); "You don't have enough space in your inventory.");
c.stopMovement(); player.stopMovement();
} }
if (c.goodDistance(c.getX(), c.getY(), itemX, itemY, 12)) { if (player.goodDistance(player.getX(), player.getY(), itemX, itemY, 12)) {
int offY = (c.getX() - itemX) * -1; int offY = (player.getX() - itemX) * -1;
int offX = (c.getY() - itemY) * -1; int offX = (player.getY() - itemY) * -1;
c.teleGrabX = itemX; player.teleGrabX = itemX;
c.teleGrabY = itemY; player.teleGrabY = itemY;
c.teleGrabItem = itemId; player.teleGrabItem = itemId;
c.turnPlayerTo(itemX, itemY); player.turnPlayerTo(itemX, itemY);
c.teleGrabDelay = System.currentTimeMillis(); player.teleGrabDelay = System.currentTimeMillis();
c.startAnimation(MagicData.MAGIC_SPELLS[51][2]); player.startAnimation(MagicData.MAGIC_SPELLS[51][2]);
c.gfx100(MagicData.MAGIC_SPELLS[51][3]); player.gfx100(MagicData.MAGIC_SPELLS[51][3]);
c.getPlayerAssistant().createPlayersStillGfx(144, itemX, itemY, 0, player.getPlayerAssistant().createPlayersStillGfx(144, itemX, itemY, 0,
72); 72);
c.getPlayerAssistant().createPlayersProjectile(c.getX(), c.getY(), player.getPlayerAssistant().createPlayersProjectile(player.getX(), player.getY(),
offX, offY, 50, 70, MagicData.MAGIC_SPELLS[51][4], 50, 10, offX, offY, 50, 70, MagicData.MAGIC_SPELLS[51][4], 50, 10,
0, 50); 0, 50);
c.getPlayerAssistant().addSkillXP(MagicData.MAGIC_SPELLS[51][7], 6); player.getPlayerAssistant().addSkillXP(MagicData.MAGIC_SPELLS[51][7], 6);
c.getPlayerAssistant().refreshSkill(6); player.getPlayerAssistant().refreshSkill(6);
c.stopMovement(); player.stopMovement();
} }
} }
@@ -9,25 +9,24 @@ import com.rebotted.net.packets.PacketType;
public class MoveItems implements PacketType { public class MoveItems implements PacketType {
@Override @Override
public void processPacket(Player c, int packetType, int packetSize) { public void processPacket(Player player, int packetType, int packetSize) {
int interfaceId = c.getInStream().readSignedWordBigEndianA(); int interfaceId = player.getInStream().readSignedWordBigEndianA();
boolean insertMode = c.getInStream().readSignedByteC() == 1; boolean insertMode = player.getInStream().readSignedByteC() == 1;
int from = c.getInStream().readSignedWordBigEndianA(); int from = player.getInStream().readSignedWordBigEndianA();
int to = c.getInStream().readSignedWordBigEndian(); int to = player.getInStream().readSignedWordBigEndian();
// c.sendMessage("junk: " + somejunk); if (player.inTrade) {
if (c.inTrade) { player.getTrading().declineTrade();
c.getTrading().declineTrade();
return; return;
} }
if (c.tradeStatus == 1) { if (player.tradeStatus == 1) {
c.getTrading().declineTrade(); player.getTrading().declineTrade();
return; return;
} }
if (c.duelStatus == 1) { if (player.duelStatus == 1) {
c.getDueling().declineDuel(); player.getDueling().declineDuel();
return; return;
} }
c.getItemAssistant().moveItems(from, to, interfaceId, insertMode); player.getItemAssistant().moveItems(from, to, interfaceId, insertMode);
c.endCurrentTask(); player.endCurrentTask();
} }
} }
@@ -6,9 +6,9 @@ import com.rebotted.net.packets.PacketType;
public class Report implements PacketType { public class Report implements PacketType {
@Override @Override
public void processPacket(Player c, int packetType, int packetSize) { public void processPacket(Player player, int packetType, int packetSize) {
try { try {
ReportHandler.handleReport(c); ReportHandler.handleReport(player);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
@@ -9,7 +9,7 @@ import com.rebotted.net.packets.PacketType;
public class SilentPacket implements PacketType { public class SilentPacket implements PacketType {
@Override @Override
public void processPacket(Player c, int packetType, int packetSize) { public void processPacket(Player player, int packetType, int packetSize) {
} }
} }
@@ -11,28 +11,28 @@ import com.rebotted.net.packets.PacketType;
public class Trade implements PacketType { public class Trade implements PacketType {
@Override @Override
public void processPacket(Player c, int packetType, int packetSize) { public void processPacket(Player player, int packetType, int packetSize) {
int tradeId = c.getInStream().readSignedWordBigEndian(); int tradeId = player.getInStream().readSignedWordBigEndian();
c.getPlayerAssistant().resetFollow(); player.getPlayerAssistant().resetFollow();
c.endCurrentTask(); player.endCurrentTask();
if (c.disconnected) { if (player.disconnected) {
c.tradeStatus = 0; player.tradeStatus = 0;
} }
if (c.duelingArena()) { if (player.duelingArena()) {
c.getPacketSender().sendMessage("You can't trade inside the arena!"); player.getPacketSender().sendMessage("You can't trade inside the arena!");
return; return;
} }
if (c.playerRights == 2 && !GameConstants.ADMIN_CAN_TRADE) { if (player.playerRights == 2 && !GameConstants.ADMIN_CAN_TRADE) {
c.getPacketSender().sendMessage("Trading as an admin has been disabled."); player.getPacketSender().sendMessage("Trading as an admin has been disabled.");
return; return;
} }
if(tradeId < 1) { if(tradeId < 1) {
return; return;
} }
if (tradeId != c.playerId) { if (tradeId != player.playerId) {
c.getTrading().requestTrade(tradeId); player.getTrading().requestTrade(tradeId);
} }
} }
@@ -181,7 +181,7 @@ public class Boundary {
public static final Boundary[] BANK_AREA = new Boundary[] { public static final Boundary[] BANK_AREA = new Boundary[] {
new Boundary(3205, 3212, 3217, 3224, 2), //Lumbridge new Boundary(3205, 3212, 3217, 3224, 2), //Lumbridge
new Boundary(3162, 3271, 3266, 3272),//Al Kharid new Boundary(3161, 3173, 3269, 3272),//Al Kharid
new Boundary(2436, 2453, 5174, 5186),//TzHaar new Boundary(2436, 2453, 5174, 5186),//TzHaar
new Boundary(2842, 2860, 2950, 2957),//Shilo new Boundary(2842, 2860, 2950, 2957),//Shilo
new Boundary(3456, 3492, 3200, 3215),//Burgh d rott new Boundary(3456, 3492, 3200, 3215),//Burgh d rott
@@ -209,7 +209,7 @@ public class Boundary {
new Boundary(2834, 2841, 10204, 10215),//Keldagrim new Boundary(2834, 2841, 10204, 10215),//Keldagrim
new Boundary(2379, 2386, 4453, 4462),//Zanaris new Boundary(2379, 2386, 4453, 4462),//Zanaris
new Boundary(2582, 2591, 3417, 3423),//Fishing Guild new Boundary(2582, 2591, 3417, 3423),//Fishing Guild
new Boundary(3509, 3516, 3417, 3423),//Canifis new Boundary(3509, 3515, 3475, 3483),//Canifis
new Boundary(3297, 3311, 3115, 3133),//Shantay Pass new Boundary(3297, 3311, 3115, 3133),//Shantay Pass
new Boundary(3035, 3049, 4967, 4977, 1),//Rogues Den new Boundary(3035, 3049, 4967, 4977, 1),//Rogues Den
}; };
@@ -142,25 +142,21 @@ public class Region {
public static boolean canShoot(int x, int y, int z, int direction) { public static boolean canShoot(int x, int y, int z, int direction) {
if (direction == 0) { if (direction == 0) {
return !projectileBlockedNorthWest(x, y, z) && !projectileBlockedNorth(x, y, z) return !projectileBlockedNorthWest(x, y, z) && !projectileBlockedNorth(x, y, z) && !projectileBlockedWest(x, y, z);
&& !projectileBlockedWest(x, y, z);
} else if (direction == 1) { } else if (direction == 1) {
return !projectileBlockedNorth(x, y, z); return !projectileBlockedNorth(x, y, z);
} else if (direction == 2) { } else if (direction == 2) {
return !projectileBlockedNorthEast(x, y, z) && !projectileBlockedNorth(x, y, z) return !projectileBlockedNorthEast(x, y, z) && !projectileBlockedNorth(x, y, z) && !projectileBlockedEast(x, y, z);
&& !projectileBlockedEast(x, y, z);
} else if (direction == 3) { } else if (direction == 3) {
return !projectileBlockedWest(x, y, z); return !projectileBlockedWest(x, y, z);
} else if (direction == 4) { } else if (direction == 4) {
return !projectileBlockedEast(x, y, z); return !projectileBlockedEast(x, y, z);
} else if (direction == 5) { } else if (direction == 5) {
return !projectileBlockedSouthWest(x, y, z) && !projectileBlockedSouth(x, y, z) return !projectileBlockedSouthWest(x, y, z) && !projectileBlockedSouth(x, y, z) && !projectileBlockedWest(x, y, z);
&& !projectileBlockedWest(x, y, z);
} else if (direction == 6) { } else if (direction == 6) {
return !projectileBlockedSouth(x, y, z); return !projectileBlockedSouth(x, y, z);
} else if (direction == 7) { } else if (direction == 7) {
return !projectileBlockedSouthEast(x, y, z) && !projectileBlockedSouth(x, y, z) return !projectileBlockedSouthEast(x, y, z) && !projectileBlockedSouth(x, y, z) && !projectileBlockedEast(x, y, z);
&& !projectileBlockedEast(x, y, z);
} }
return false; return false;
} }