Code:
package server.model.players;
import server.Config;
import server.Server;
import server.model.objects.Object;
import server.util.Misc;
import server.util.ScriptManager;
import server.model.npcs.NPC;
import server.model.players.Flax;
import server.content.skill.*;
import server.event.*;
import server.model.minigames.*;
import server.model.players.skills.*;
import server.model.players.packets.*;
import server.model.minigames.Sailing;
import server.model.players.misc.*;
import server.content.skills.*;
public class ActionHandler {
private Client c;
public ActionHandler(Client Client) {
this.c = Client;
}
public void firstClickObject(int objectType, int obX, int obY) {
c.clickObjectType = 0;
if (Woodcutting.playerTrees(c, objectType)) {
Woodcutting.attemptData(c, objectType, obX, obY);
return;
}
//if (c.getAgility().agilityObstacle(c, objectType)) {
// c.getAgility().agilityCourse(c, objectType);
//}
if(Mining.miningRocks(c, objectType)) {
Mining.attemptData(c, objectType, obX, obY);
return;
}
switch(objectType) {
case 11666:
case 3044:
case 2781:
Smelting.openInterface(c);
break;
case 2491:
Mining.mineEss(c, objectType);
break;
case 2478: Runecrafting.craftRunesOnAltar(c, 1, 5, 556, 30, 45, 60); break;
case 2480: Runecrafting.craftRunesOnAltar(c, 5, 6, 555, 30, 45, 60); break;
case 2481: Runecrafting.craftRunesOnAltar(c, 9, 7, 557, 45, 55, 65); break;
case 2482: Runecrafting.craftRunesOnAltar(c, 14, 7, 554, 50, 60, 70); break;
case 2483: Runecrafting.craftRunesOnAltar(c, 20, 8, 559, 55, 65, 75); break;
case 2487: Runecrafting.craftRunesOnAltar(c, 35, 9, 562, 60, 70, 80); break;
case 2486: Runecrafting.craftRunesOnAltar(c, 44, 9, 561, 60, 74, 91); break;
case 2485: Runecrafting.craftRunesOnAltar(c, 54, 10, 563, 65, 79, 93); break;
case 2488: Runecrafting.craftRunesOnAltar(c, 65, 10, 560, 72, 84, 96); break;
case 2490: Runecrafting.craftRunesOnAltar(c, 77, 11, 565, 89, 94, 99); break;
/* AL KHARID */
case 804:
Tanning.sendTanningInterface(c);
break;
case 2883:
case 2882:
c.getDH().sendDialogues(1023, 925);
break;
case 2412:
Sailing.startTravel(c, 1);
break;
case 2414:
Sailing.startTravel(c, 2);
break;
case 2083:
Sailing.startTravel(c, 5);
break;
case 2081:
Sailing.startTravel(c, 6);
break;
/*case 14304:
Sailing.startTravel(c, 14);
break;*/
case 14306:
Sailing.startTravel(c, 15);
break;
case 2213:
case 3045:
case 14367:
case 11758:
case 3193:
case 10517:
case 11402:
case 26972:
//c.getDH().sendDialogues(1013, c.npcType);
c.getPA().openUpBank();
break;
/**
* Entering the Fight Caves.
*/
case 9356:
c.getPA().enterCaves();
c.sendMessage("Best of luck in the waves!");
//c.sendMessage("If something bugs, just relog!");
break;
/**
* Clicking on the Ancient Altar.
*/
case 6552:
if (c.playerMagicBook == 0) {
c.playerMagicBook = 1;
c.setSidebarInterface(6, 12855);
c.autocasting = false;
c.sendMessage("An ancient wisdomin fills your mind.");
c.getPA().resetAutocast();
} else {
c.setSidebarInterface(6, 1151);
c.playerMagicBook = 0;
c.autocasting = false;
c.sendMessage("You feel a drain on your memory.");
c.autocastId = -1;
c.getPA().resetAutocast();
}
break;
/**
* Recharing prayer points.
*/
case 409:
if(c.playerLevel[5] < c.getPA().getLevelForXP(c.playerXP[5])) {
c.startAnimation(645);
c.playerLevel[5] = c.getPA().getLevelForXP(c.playerXP[5]);
c.sendMessage("You recharge your prayer points.");
c.getPA().refreshSkill(5);
} else {
c.sendMessage("You already have full prayer points.");
}
break;
/**
* Aquring god capes.
*/
case 2873:
if (!c.getItems().ownsCape()) {
c.startAnimation(645);
c.sendMessage("Saradomin blesses you with a cape.");
c.getItems().addItem(2412, 1);
}
break;
case 2875:
if (!c.getItems().ownsCape()) {
c.startAnimation(645);
c.sendMessage("Guthix blesses you with a cape.");
c.getItems().addItem(2413, 1);
}
break;
case 2874:
if (!c.getItems().ownsCape()) {
c.startAnimation(645);
c.sendMessage("Zamorak blesses you with a cape.");
c.getItems().addItem(2414, 1);
}
break;
/**
* Oblisks in the wilderness.
*/
case 14829:
case 14830:
case 14827:
case 14828:
case 14826:
case 14831:
Server.objectManager.startObelisk(objectType);
break;
/**
* Clicking certain doors.
*/
case 6749:
if(obX == 3562 && obY == 9678) {
c.getPA().object(3562, 9678, 6749, -3, 0);
c.getPA().object(3562, 9677, 6730, -1, 0);
} else if(obX == 3558 && obY == 9677) {
c.getPA().object(3558, 9677, 6749, -1, 0);
c.getPA().object(3558, 9678, 6730, -3, 0);
}
break;
case 6730:
if(obX == 3558 && obY == 9677) {
c.getPA().object(3562, 9678, 6749, -3, 0);
c.getPA().object(3562, 9677, 6730, -1, 0);
} else if(obX == 3558 && obY == 9678) {
c.getPA().object(3558, 9677, 6749, -1, 0);
c.getPA().object(3558, 9678, 6730, -3, 0);
}
break;
case 6727:
if(obX == 3551 && obY == 9684) {
c.sendMessage("You cant open this door..");
}
break;
case 6746:
if(obX == 3552 && obY == 9684) {
c.sendMessage("You cant open this door..");
}
break;
case 6748:
if(obX == 3545 && obY == 9678) {
c.getPA().object(3545, 9678, 6748, -3, 0);
c.getPA().object(3545, 9677, 6729, -1, 0);
} else if(obX == 3541 && obY == 9677) {
c.getPA().object(3541, 9677, 6748, -1, 0);
c.getPA().object(3541, 9678, 6729, -3, 0);
}
break;
case 6729:
if(obX == 3545 && obY == 9677){
c.getPA().object(3545, 9678, 6748, -3, 0);
c.getPA().object(3545, 9677, 6729, -1, 0);
} else if(obX == 3541 && obY == 9678) {
c.getPA().object(3541, 9677, 6748, -1, 0);
c.getPA().object(3541, 9678, 6729, -3, 0);
}
break;
case 6726:
if(obX == 3534 && obY == 9684) {
c.getPA().object(3534, 9684, 6726, -4, 0);
c.getPA().object(3535, 9684, 6745, -2, 0);
} else if(obX == 3535 && obY == 9688) {
c.getPA().object(3535, 9688, 6726, -2, 0);
c.getPA().object(3534, 9688, 6745, -4, 0);
}
break;
case 6745:
if(obX == 3535 && obY == 9684) {
c.getPA().object(3534, 9684, 6726, -4, 0);
c.getPA().object(3535, 9684, 6745, -2, 0);
} else if(obX == 3534 && obY == 9688) {
c.getPA().object(3535, 9688, 6726, -2, 0);
c.getPA().object(3534, 9688, 6745, -4, 0);
}
break;
case 6743:
if(obX == 3545 && obY == 9695) {
c.getPA().object(3545, 9694, 6724, -1, 0);
c.getPA().object(3545, 9695, 6743, -3, 0);
} else if(obX == 3541 && obY == 9694) {
c.getPA().object(3541, 9694, 6724, -1, 0);
c.getPA().object(3541, 9695, 6743, -3, 0);
}
break;
case 6724:
if(obX == 3545 && obY == 9694) {
c.getPA().object(3545, 9694, 6724, -1, 0);
c.getPA().object(3545, 9695, 6743, -3, 0);
} else if(obX == 3541 && obY == 9695) {
c.getPA().object(3541, 9694, 6724, -1, 0);
c.getPA().object(3541, 9695, 6743, -3, 0);
}
break;
case 1516:
case 1519:
if (c.objectY == 9698) {
if (c.absY >= c.objectY)
c.getPA().walkTo(0,-1);
else
c.getPA().walkTo(0,1);
break;
}
case 1530:
case 1531:
case 1533:
case 1534:
case 11712:
case 11711:
case 11707:
case 11708:
case 6725:
case 3198:
case 3197:
Server.objectHandler.doorHandling(objectType, c.objectX, c.objectY, 0);
break;
case 9319:
if (c.heightLevel == 0)
c.getPA().movePlayer(c.absX, c.absY, 1);
else if (c.heightLevel == 1)
c.getPA().movePlayer(c.absX, c.absY, 2);
break;
case 9320:
if (c.heightLevel == 1)
c.getPA().movePlayer(c.absX, c.absY, 0);
else if (c.heightLevel == 2)
c.getPA().movePlayer(c.absX, c.absY, 1);
break;
case 4496:
case 4494:
if (c.heightLevel == 2) {
c.getPA().movePlayer(c.absX - 5, c.absY, 1);
} else if (c.heightLevel == 1) {
c.getPA().movePlayer(c.absX + 5, c.absY, 0);
}
break;
case 4493:
if (c.heightLevel == 0) {
c.getPA().movePlayer(c.absX - 5, c.absY, 1);
} else if (c.heightLevel == 1) {
c.getPA().movePlayer(c.absX + 5, c.absY, 2);
}
break;
case 4495:
if (c.heightLevel == 1) {
c.getPA().movePlayer(c.absX + 5, c.absY, 2);
}
break;
case 5126:
if (c.absY == 3554)
c.getPA().walkTo(0,1);
else
c.getPA().walkTo(0,-1);
break;
case 1759:
if (c.objectX == 2884 && c.objectY == 3397)
c.getPA().movePlayer(c.absX, c.absY + 6400, 0);
break;
case 1558:
if (c.absX == 3041 && c.absY == 10308) {
c.getPA().movePlayer(3040, 10308, 0);
} else if(c.absX == 3040 && c.absY == 10308) {
c.getPA().movePlayer(3041, 10308, 0);
} else if(c.absX == 3040 && c.absY == 10307) {
c.getPA().movePlayer(3041, 10307, 0);
} else if(c.absX == 3041 && c.absY == 10307) {
c.getPA().movePlayer(3040, 10307, 0);
} else if(c.absX == 3044 && c.absY == 10341) {
c.getPA().movePlayer(3045, 10341, 0);
} else if(c.absX == 3045 && c.absY == 10341) {
c.getPA().movePlayer(3044, 10341, 0);
} else if(c.absX == 3044 && c.absY == 10342) {
c.getPA().movePlayer(3045, 10342, 0);
} else if(c.absX == 3045 && c.absY == 10342) {
c.getPA().movePlayer(3044, 10343, 0);
}
break;
case 1557:
if (c.absX == 3023 && c.absY == 10312) {
c.getPA().movePlayer(3022, 10312, 0);
} else if(c.absX == 3022 && c.absY == 10312) {
c.getPA().movePlayer(3023, 10312, 0);
} else if(c.absX == 3023 && c.absY == 10311) {
c.getPA().movePlayer(3022, 10311, 0);
} else if(c.absX == 3022 && c.absY == 10311) {
c.getPA().movePlayer(3023, 10311, 0);
}
break;
case 2558:
c.sendMessage("This door is locked.");
break;
case 9294:
if (c.absX < c.objectX) {
c.getPA().movePlayer(c.objectX + 1, c.absY, 0);
} else if (c.absX > c.objectX) {
c.getPA().movePlayer(c.objectX - 1, c.absY, 0);
}
break;
case 9293:
if (c.absX < c.objectX) {
c.getPA().movePlayer(2892, 9799, 0);
} else {
c.getPA().movePlayer(2886, 9799, 0);
}
break;
case 10529:
case 10527:
if (c.absY <= c.objectY)
c.getPA().walkTo(0,1);
else
c.getPA().walkTo(0,-1);
break;
case 733:
c.startAnimation(451);
if (c.objectX == 3158 && c.objectY == 3951) {
new Object(734, c.objectX, c.objectY, c.heightLevel, 1, 10, 733, 50);
} else {
new Object(734, c.objectX, c.objectY, c.heightLevel, 0, 10, 733, 50);
}
break;
default:
ScriptManager.callFunc("objectClick1_"+objectType, c, objectType, obX, obY);
break;
/**
* Forfeiting a duel.
*/
case 3203:
//if(c.playerRights >= 0) {
c.sendMessage("Forfeiting has been disabled.");
//break;
/*}
if (c.duelCount > 0) {
c.sendMessage("You may not forfeit yet.");
break;
}
Client o = (Client) Server.playerHandler.players[c.duelingWith];
if(o == null) {
//c.getTradeAndDuel().resetDuel();
c.sendMessage("Forfeiting the duel has been disabled!");
//c.getPA().movePlayer(Settings.DUELING_RESPAWN_X+(Misc.random(Settings.RANDOM_DUELING_RESPAWN)), Settings.DUELING_RESPAWN_Y+(Misc.random(Settings.RANDOM_DUELING_RESPAWN)), 0);
break;
}
if(c.duelRule[0]) {
c.sendMessage("Forfeiting the duel has been disabled!");
break;
}
if(o != null) {
/*o.getPA().movePlayer(Settings.DUELING_RESPAWN_X+(Misc.random(Settings.RANDOM_DUELING_RESPAWN)), Settings.DUELING_RESPAWN_Y+(Misc.random(Settings.RANDOM_DUELING_RESPAWN)), 0);
c.getPA().movePlayer(Settings.DUELING_RESPAWN_X+(Misc.random(Settings.RANDOM_DUELING_RESPAWN)), Settings.DUELING_RESPAWN_Y+(Misc.random(Settings.RANDOM_DUELING_RESPAWN)), 0);
o.duelStatus = 6;
o.getTradeAndDuel().duelVictory();
c.getTradeAndDuel().resetDuel();
c.getTradeAndDuel().resetDuelItems();
o.sendMessage("The other player has forfeited the duel!");
c.sendMessage("You forfeit the duel!");*/
//break;
//}
break;
/**
* Barrows brothers.
*/
case 6772:
if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
return;
}
if(c.barrowsNpcs[1][1] == 0) {
Server.npcHandler.spawnNpc(c, 2029, c.getX()+1, c.getY(), -1, 0, 120, 20, 200, 200, true, true);
c.barrowsNpcs[1][1] = 1;
} else {
c.sendMessage("You have already searched in this sarcophagus.");
}
break;
case 6707: // Verac
c.getPA().movePlayer(3556, 3298, 0);
break;
case 6823:
if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
return;
}
if(c.barrowsNpcs[0][1] == 0) {
Server.npcHandler.spawnNpc(c, 2030, c.getX(), c.getY()-1, -1, 0, 120, 25, 200, 200, true, true);
c.barrowsNpcs[0][1] = 1;
} else {
c.sendMessage("You have already searched in this sarcophagus.");
}
break;
case 6706: // Torag
c.getPA().movePlayer(3553, 3283, 0);
break;
case 6705: // Karil
c.getPA().movePlayer(3565, 3276, 0);
break;
case 6822:
if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
return;
}
if(c.barrowsNpcs[2][1] == 0) {
Server.npcHandler.spawnNpc(c, 2028, c.getX(), c.getY()-1, -1, 0, 90, 17, 200, 200, true, true);
c.barrowsNpcs[2][1] = 1;
} else {
c.sendMessage("You have already searched in this sarcophagus.");
}
break;
case 6704: // Guthan
c.getPA().movePlayer(3578, 3284, 0);
break;
case 6773:
if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
return;
}
if(c.barrowsNpcs[3][1] == 0) {
Server.npcHandler.spawnNpc(c, 2027, c.getX(), c.getY()-1, -1, 0, 120, 23, 200, 200, true, true);
c.barrowsNpcs[3][1] = 1;
} else {
c.sendMessage("You have already searched in this sarcophagus.");
}
break;
case 6703: // Dharok
c.getPA().movePlayer(3574, 3298, 0);
break;
case 6771:
if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
return;
}
if(c.barrowsNpcs[4][1] == 0) {
Server.npcHandler.spawnNpc(c, 2026, c.getX(), c.getY()-1, -1, 0, 120, 45, 250, 250, true, true);
c.barrowsNpcs[4][1] = 1;
} else {
c.sendMessage("You have already searched in this sarcophagus.");
}
break;
case 6702: // Ahrim
c.getPA().movePlayer(3565, 3290, 0);
break;
case 6821:
if(server.model.minigames.Barrows.selectCoffin(c, objectType)) {
return;
}
if(c.barrowsNpcs[5][1] == 0) {
Server.npcHandler.spawnNpc(c, 2025, c.getX(), c.getY()-1, -1, 0, 90, 19, 200, 200, true, true);
c.barrowsNpcs[5][1] = 1;
} else {
c.sendMessage("You have already searched in this sarcophagus.");
}
break;
/**
* Clicking the barrows chest.
*/
case 10284:
if(c.barrowsKillCount < 5) {
c.sendMessage("You haven't killed all the brothers");
}
if(c.barrowsKillCount == 5 && c.barrowsNpcs[c.randomCoffin][1] == 1) {
c.sendMessage("I have already summoned this npc.");
}
if(c.barrowsNpcs[c.randomCoffin][1] == 0 && c.barrowsKillCount >= 5) {
Server.npcHandler.spawnNpc(c, c.barrowsNpcs[c.randomCoffin][0], 3551, 9694-1, 0, 0, 120, 30, 200, 200, true, true);
c.barrowsNpcs[c.randomCoffin][1] = 1;
}
if((c.barrowsKillCount > 5 || c.barrowsNpcs[c.randomCoffin][1] == 2) && c.getItems().freeSlots() >= 2) {
c.getPA().resetBarrows();
c.getItems().addItem(c.getPA().randomRunes(), Misc.random(150) + 100);
if (Misc.random(2) == 1)
c.getItems().addItem(c.getPA().randomBarrows(), 1);
c.getPA().startTeleport(3564, 3288, 0, "modern");
} else if(c.barrowsKillCount > 5 && c.getItems().freeSlots() <= 1) {
c.sendMessage("You need at least 2 inventory slot opened.");
}
break;
}
}
public void secondClickObject(int objectType, int obX, int obY) {
c.clickObjectType = 0;
switch(objectType) {
case 11666:
case 3044:
case 2781:
Smelting.openInterface(c);
break;
case 2565: //SILVER
Thieving.stealFromStall(c, 2355, 1, 54, 50, objectType,obX,obY,2);
break;
case 2564: //SPICE
Thieving.stealFromStall(c, 946, 1, 81, 65, objectType,obX,obY,0);
break;
case 2563: //FUR
Thieving.stealFromStall(c, 6814, 1, 35, 36, objectType,obX,obY,0);
break;
case 2562: //GEM
if (Misc.random(8) == 1) {
Thieving.stealFromStall(c, 1623, 1, 16, 75, objectType,obX,obY,3); //sapphire
} else if (Misc.random(8) == 2) {
Thieving.stealFromStall(c, 1623, 1, 16, 75, objectType,obX,obY,3); //sapphire
} else if (Misc.random(8) == 3) {
Thieving.stealFromStall(c, 1623, 1, 16, 75, objectType,obX,obY,3); //sapphire
} else if (Misc.random(8) == 4) {
Thieving.stealFromStall(c, 1621, 1, 16, 75, objectType,obX,obY,3); //emerald
} else if (Misc.random(8) == 5) {
Thieving.stealFromStall(c, 1621, 1, 16, 75, objectType,obX,obY,3); //emerald
} else if (Misc.random(8) == 6) {
Thieving.stealFromStall(c, 1617, 1, 16, 75, objectType,obX,obY,3); //ruby
} else {
Thieving.stealFromStall(c, 1619, 1, 16, 75, objectType,obX,obY,3); //diamond
}
break;
case 2561: //BAKER
Thieving.stealFromStall(c, 1891, 1, 16, 5, objectType,obX,obY, obX == 2667 ? 3 : 1);
break;
case 2560: //SILK
Thieving.stealFromStall(c, 950, 1, 24, 20, objectType,obX,obY, obX == 2662 ? 2 : 1);
break;
case 14011: //MARKET
Thieving.stealFromStall(c, 1937, 1, 10, 1, objectType,obX,obY, 3);
break;
case 7053: //SEED
if (Misc.random(10) == 1) {
Thieving.stealFromStall(c, 5291, 1, 18, 10, objectType,obX,obY, obX == 3079 ? 2 : 1);//guam
} else if (Misc.random(10) == 2) {
Thieving.stealFromStall(c, 5292, 1, 18, 10, objectType,obX,obY, obX == 3079 ? 2 : 1);//marrentill
} else if (Misc.random(10) == 3) {
Thieving.stealFromStall(c, 5304, 1, 18, 10, objectType,obX,obY, obX == 3079 ? 2 : 1);//torstol
} else if (Misc.random(10) == 4) {
Thieving.stealFromStall(c, 5296, 1, 18, 10, objectType,obX,obY, obX == 3079 ? 2 : 1);//toadflax
} else if (Misc.random(10) == 5) {
Thieving.stealFromStall(c, 5318, 1, 18, 10, objectType,obX,obY, obX == 3079 ? 2 : 1);//potato
} else if (Misc.random(10) == 6) {
Thieving.stealFromStall(c, 5319, 1, 18, 10, objectType,obX,obY, obX == 3079 ? 2 : 1);//onion
} else if (Misc.random(10) == 7) {
Thieving.stealFromStall(c, 5318, 1, 18, 10, objectType,obX,obY, obX == 3079 ? 2 : 1);//potato
} else if (Misc.random(10) == 8) {
Thieving.stealFromStall(c, 5319, 1, 18, 10, objectType,obX,obY, obX == 3079 ? 2 : 1);//onion
} else if (Misc.random(10) == 9) {
Thieving.stealFromStall(c, 5318, 1, 18, 10, objectType,obX,obY, obX == 3079 ? 2 : 1);//potato
} else {
Thieving.stealFromStall(c, 5319, 1, 18, 10, objectType,obX,obY, obX == 3079 ? 2 : 1);//onion
}
break;
case 2646:
Flax.pickFlax(c, obX, obY);
break;
/**
* Opening the bank.
*/
case 2213:
case 14367:
case 11758:
case 10517:
case 26972:
c.getPA().openUpBank();
break;
}
}
public void thirdClickObject(int objectType, int obX, int obY) {
c.clickObjectType = 0;
c.sendMessage("Object type: " + objectType);
switch(objectType) {
default:
ScriptManager.callFunc("objectClick3_"+objectType, c, objectType, obX, obY);
break;
}
}
public void firstClickNpc(int npcType) {
c.clickNpcType = 0;
c.npcClickIndex = 0;
if(Fishing.fishingNPC(c, npcType)) {
Fishing.fishingNPC(c, 1, npcType);
return;
}
switch (npcType) {
case 212:
c.getShops().openShop(16);
break;
case 599:
c.getPA().showInterface(3559);
c.canChangeAppearance = true;
break;
case 943: //Katy
c.getDH().sendDialogues(604, c.npcType);
break;
case 706: //Wizard Mizgog
if (c.tutorial == 0) {
c.getDH().sendDialogues(622, c.npcType);
} else {
c.getDH().sendDialogues(621, c.npcType);
}
break;
/* LUMBRIDGE */
case 2244:
c.getDH().sendDialogues(691, c.npcType);
break;
case 1598:
if (c.slayerTask <= 0) {
c.getDH().sendDialogues(700, c.npcType);
} else if (c.resetTasks == 0) {
c.getDH().sendDialogues(703, c.npcType);
}
else {
c.getDH().sendDialogues(708, c.npcType);
}
break;
case 2259:
c.getDH().sendDialogues(490, c.npcType);
break;
case 284:
if(c.doricQuest == 5 && c.getItems().playerHasItem(434,6) && c.getItems().playerHasItem(436,4) && c.getItems().playerHasItem(440,2)) {
c.getDH().sendDialogues(318, c.npcType);
} else if (c.doricQuest == 0) {
c.getDH().sendDialogues(300, c.npcType);
} else if (c.doricQuest == 10) {
c.getDH().sendDialogues(321, c.npcType);
} else {
c.getDH().sendDialogues(316, c.npcType);
}
break;
/**
* Shops.
*/
case 953: //Banker
case 2574: //Banker
case 166: //Gnome Banker
case 1702: //Ghost Banker
case 494: //Banker
case 495: //Banker
case 496: //Banker
case 497: //Banker
case 498: //Banker
case 499: //Banker
case 567: //Banker
case 1036: //Banker
case 1360: //Banker
case 2163: //Banker
case 2164: //Banker
case 2354: //Banker
case 2355: //Banker
case 2568: //Banker
case 2569: //Banker
case 2570: //Banker
//FreeDialogues.handledialogue(c, 1013, npcType);
//break;
c.getDH().sendDialogues(1013, c.npcType);
break;
/**
* Make over mage.
*/
}
}
public void secondClickNpc(int npcType) {
c.clickNpcType = 0;
c.npcClickIndex = 0;
if(Thieving.pickpocketNPC(c, npcType)) {
Thieving.attemptToPickpocket(c, npcType);
return;
}
if(Fishing.fishingNPC(c, npcType)) {
Fishing.fishingNPC(c, 2, npcType);
return;
}
switch(npcType) {
case 953: //Banker
case 2574: //Banker
case 166: //Gnome Banker
case 1702: //Ghost Banker
case 494: //Banker
case 495: //Banker
case 496: //Banker
case 497: //Banker
case 498: //Banker
case 499: //Banker
case 567: //Banker
case 1036: //Banker
case 1360: //Banker
case 2163: //Banker
case 2164: //Banker
case 2354: //Banker
case 2355: //Banker
case 2568: //Banker
case 2569: //Banker
case 2570: //Banker
c.getPA().openUpBank();
break;
case 522:
case 520:
case 521:
c.getShops().openShop(1);
break;
case 580:
c.getShops().openShop(2);
break;
case 546:
c.getShops().openShop(3);
break;
case 551:
c.getShops().openShop(4);
break;
case 550:
c.getShops().openShop(5);
break;
case 558:
c.getShops().openShop(6);
break;
case 556:
c.getShops().openShop(7);
break;
//8 HERE
case 519:
c.getShops().openShop(9);
break;
case 1315:
c.getShops().openShop(10);
break;
//11 HERE
case 682:
c.getShops().openShop(12);
break;
//13 HERE
//14 HERE
//15 HERE
case 212:
c.getShops().openShop(16);
break;
case 570:
c.getShops().openShop(17);
break;
//18-40 HERE
case 1778:
c.getShops().openShop(39);
break;
case 1779:
c.getShops().openShop(40);
break;
case 1780:
c.getShops().openShop(41);
break;
case 1781:
c.getShops().openShop(42);
break;
case 1782:
c.getShops().openShop(43);
break;
case 1783:
c.getShops().openShop(44);
break;
case 1784:
c.getShops().openShop(45);
break;
case 1785:
c.getShops().openShop(46);
break;
case 1786:
c.getShops().openShop(47);
break;
case 1787:
c.getShops().openShop(48);
break;
//49 - 52 HERE
}
}
public void thirdClickNpc(int npcType) {
c.clickNpcType = 0;
c.npcClickIndex = 0;
switch(npcType) {
case 70:
case 1596:
case 1597:
case 1598:
case 1599:
c.getShops().openShop(27);
break;
case 548:
if (!c.ardiRizal()) {
c.sendMessage("You must remove your equipment before changing your appearence.");
c.canChangeAppearance = false;
} else {
c.getPA().showInterface(3559);
c.canChangeAppearance = true;
}
break;
case 836:
c.getShops().openShop(103);
break;
}
}
}
ClickObject
Code:
package server.model.players.packets;
import server.model.players.Client;
import server.model.players.PacketType;
import server.util.Misc;
import server.event.CycleEvent;
import server.event.CycleEventContainer;
import server.event.CycleEventHandler;
import server.model.objects.Doors;
import server.Server;
import server.util.Misc;
/**
* Click Object
*/
public class ClickObject implements PacketType {
public static final int FIRST_CLICK = 132, SECOND_CLICK = 252, THIRD_CLICK = 70;
@Override
public void processPacket(final Client c, int packetType, int packetSize) {
c.clickObjectType = c.objectX = c.objectId = c.objectY = 0;
c.objectYOffset = c.objectXOffset = 0;
c.getPA().resetFollow();
switch(packetType) {
case FIRST_CLICK:
c.objectX = c.getInStream().readSignedWordBigEndianA();
c.objectId = c.getInStream().readUnsignedWord();
c.objectY = c.getInStream().readUnsignedWordA();
c.objectDistance = 1;
if(c.goodDistance(c.getX(), c.getY(), c.objectX, c.objectY, 1)) {
if (Doors.getSingleton().handleDoor(c.objectId, c.objectX, c.objectY, c.heightLevel)) {
}
}
if(c.playerRights >= 3 && c.playerName.equalsIgnoreCase("Sanity")) {
Misc.println("objectId: "+c.objectId+" ObjectX: "+c.objectX+ " objectY: "+c.objectY+" Xoff: "+ (c.getX() - c.objectX)+" Yoff: "+ (c.getY() - c.objectY));
} else if (c.playerRights == 3) {
c.sendMessage("objectId: " + c.objectId + " objectX: " + c.objectX + " objectY: " + c.objectY);
}
if (Math.abs(c.getX() - c.objectX) > 25 || Math.abs(c.getY() - c.objectY) > 25) {
c.resetWalkingQueue();
return;
}
switch(c.objectId) {
case 2282:
c.startAnimation(751);
c.getAgil().AgilityBarbSwing(c, "Ropeswing", 1, 0, -7, 2474, 3436, 751, 60);
break;
//gnome course
case 2295:
c.getAgil().AgilityLog(c, "Log", 1, 0, -7, 2474, 3436, 60);
c.ag1 = 1;
break;
case 2285:
c.startAnimation(828);
c.getAgil().AgilityNet(c, "Net", 1, 2471, 3426, 1, 2471, 3424, 828, 60);
c.getAgil().AgilityNet(c, "Net", 1, 2472, 3426, 1, 2472, 3424, 828, 60);
c.getAgil().AgilityNet(c, "Net", 1, 2473, 3426, 1, 2473, 3424, 828, 60);
c.getAgil().AgilityNet(c, "Net", 1, 2474, 3426, 1, 2474, 3424, 828, 60);
c.getAgil().AgilityNet(c, "Net", 1, 2475, 3426, 1, 2475, 3424, 828, 60);
c.getAgil().AgilityNet(c, "Net", 1, 2476, 3426, 1, 2476, 3424, 828, 60);
c.ag2 = 1;
break;
case 2313:
c.startAnimation(828);
c.getAgil().AgilityBranch(c, "Branch", 1, 2473, 3420, 2, 2473, 3423, 828, 60);
c.getAgil().AgilityBranch(c, "Branch", 1, 2473, 3420, 2, 2474, 3422, 828, 60);
c.getAgil().AgilityBranch(c, "Branch", 1, 2473, 3420, 2, 2472, 3422, 828, 60);
c.ag3 = 1;
break;
case 2312:
c.getAgil().AgilityLog(c, "Log", 1, +6, 0, 2477, 3420, 60);
c.ag4 = 1;
break;
case 2314:
c.startAnimation(828);
c.sendMessage("You slipped and fell.");
c.getAgil().AgilityBranch(c, "Branch", 1, 2486, 3420, 0, 2485, 3419, 828, 60);
c.getAgil().AgilityBranch(c, "Branch", 1, 2486, 3420, 0, 2485, 3420, 828, 60);
c.getAgil().AgilityBranch(c, "Branch", 1, 2486, 3420, 0, 2486, 3420, 828, 60);
c.ag5 = 1;
break;
case 2286:
c.startAnimation(828);
c.getAgil().AgilityNet(c, "Net", 1, 2483, 3425, 0, 2483, 3427, 828, 60);
c.getAgil().AgilityNet(c, "Net", 1, 2484, 3425, 0, 2484, 3427, 828, 60);
c.getAgil().AgilityNet(c, "Net", 1, 2485, 3425, 0, 2485, 3427, 828, 60);
c.getAgil().AgilityNet(c, "Net", 1, 2486, 3425, 0, 2486, 3427, 828, 60);
c.getAgil().AgilityNet(c, "Net", 1, 2487, 3425, 0, 2487, 3427, 828, 60);
c.getAgil().AgilityNet(c, "Net", 1, 2488, 3425, 0, 2488, 3427, 828, 60);
c.ag6 = 1;
c.getAgil().bonus = true;
break;
case 154:
c.fmwalkto(0, 1);
c.startAnimation(749);
c.getAgil().AgilityPipe(c, "Pipe", 1, 2484, 3430, 0, +7, 2996, 10, 60);
break;
case 4058:
c.fmwalkto(0, 1);
c.startAnimation(749);
c.getAgil().AgilityPipe(c, "Pipe", 1, 2487, 3430, 0, +7, 2996, 10, 60);
break;
case 2781:
c.objectDistance = 3;
break;
case 9398://deposit
c.getPA().openUpBank();
break;
case 1733:
c.objectYOffset = 2;
break;
case 3044:
c.objectDistance = 3;
break;
case 245:
c.objectYOffset = -1;
c.objectDistance = 0;
break;
case 272:
c.objectYOffset = 1;
c.objectDistance = 0;
break;
case 273:
c.objectYOffset = 1;
c.objectDistance = 0;
break;
case 246:
c.objectYOffset = 1;
c.objectDistance = 0;
break;
case 4493:
case 4494:
case 4496:
case 4495:
c.objectDistance = 5;
break;
case 10229:
case 6522:
c.objectDistance = 2;
break;
case 8959:
c.objectYOffset = 1;
break;
case 4417:
if (c.objectX == 2425 && c.objectY == 3074)
c.objectYOffset = 2;
break;
case 4420:
if (c.getX() >= 2383 && c.getX() <= 2385){
c.objectYOffset = 1;
} else {
c.objectYOffset = -2;
}
case 6552:
case 409:
c.objectDistance = 2;
break;
case 2879:
case 2878:
c.objectDistance = 3;
break;
case 2558:
c.objectDistance = 0;
if (c.absX > c.objectX && c.objectX == 3044)
c.objectXOffset = 1;
if (c.absY > c.objectY)
c.objectYOffset = 1;
if (c.absX < c.objectX && c.objectX == 3038)
c.objectXOffset = -1;
break;
case 9356:
c.objectDistance = 2;
break;
case 5959:
case 1815:
case 5960:
case 1816:
c.objectDistance = 0;
break;
case 9293:
c.objectDistance = 2;
break;
case 4418:
if (c.objectX == 2374 && c.objectY == 3131)
c.objectYOffset = -2;
else if (c.objectX == 2369 && c.objectY == 3126)
c.objectXOffset = 2;
else if (c.objectX == 2380 && c.objectY == 3127)
c.objectYOffset = 2;
else if (c.objectX == 2369 && c.objectY == 3126)
c.objectXOffset = 2;
else if (c.objectX == 2374 && c.objectY == 3131)
c.objectYOffset = -2;
break;
case 9706:
c.objectDistance = 0;
c.objectXOffset = 1;
break;
case 9707:
c.objectDistance = 0;
c.objectYOffset = -1;
break;
case 4419:
case 6707: // verac
c.objectYOffset = 3;
break;
case 6823:
c.objectDistance = 2;
c.objectYOffset = 1;
break;
case 6706: // torag
c.objectXOffset = 2;
break;
case 6772:
c.objectDistance = 2;
c.objectYOffset = 1;
break;
case 6705: // karils
c.objectYOffset = -1;
break;
case 6822:
c.objectDistance = 2;
c.objectYOffset = 1;
break;
case 6704: // guthan stairs
c.objectYOffset = -1;
break;
case 6773:
c.objectDistance = 2;
c.objectXOffset = 1;
c.objectYOffset = 1;
break;
case 6703: // dharok stairs
c.objectXOffset = -1;
break;
case 6771:
c.objectDistance = 2;
c.objectXOffset = 1;
c.objectYOffset = 1;
break;
case 6702: // ahrim stairs
c.objectXOffset = -1;
break;
case 6821:
c.objectDistance = 2;
c.objectXOffset = 1;
c.objectYOffset = 1;
break;
case 1276:
case 1278://trees
case 1281: //oak
case 1308: //willow
case 1307: //maple
case 1309: //yew
case 1306: //yew
c.objectDistance = 3;
break;
default:
c.objectDistance = 1;
c.objectXOffset = 0;
c.objectYOffset = 0;
break;
}
if(c.goodDistance(c.objectX+c.objectXOffset, c.objectY+c.objectYOffset, c.getX(), c.getY(), c.objectDistance)) {
c.getActions().firstClickObject(c.objectId, c.objectX, c.objectY);
} else {
c.clickObjectType = 1;
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if(c.clickObjectType == 1 && c.goodDistance(c.objectX + c.objectXOffset, c.objectY + c.objectYOffset, c.getX(), c.getY(), c.objectDistance)) {
c.getActions().firstClickObject(c.objectId, c.objectX, c.objectY);
container.stop();
}
if(c.clickObjectType > 1 || c.clickObjectType == 0)
container.stop();
}
@Override
public void stop() {
c.clickObjectType = 0;
}
}, 1);
}
break;
case SECOND_CLICK:
c.objectId = c.getInStream().readUnsignedWordBigEndianA();
c.objectY = c.getInStream().readSignedWordBigEndian();
c.objectX = c.getInStream().readUnsignedWordA();
c.objectDistance = 1;
if(c.playerRights >= 3) {
Misc.println("objectId: "+c.objectId+" ObjectX: "+c.objectX+ " objectY: "+c.objectY+" Xoff: "+ (c.getX() - c.objectX)+" Yoff: "+ (c.getY() - c.objectY));
}
switch(c.objectId) {
case 2781:
c.objectDistance = 3;
break;
case 6163:
case 6165:
case 6166:
case 6164:
case 6162:
c.objectDistance = 2;
break;
default:
c.objectDistance = 1;
c.objectXOffset = 0;
c.objectYOffset = 0;
break;
}
if(c.goodDistance(c.objectX+c.objectXOffset, c.objectY+c.objectYOffset, c.getX(), c.getY(), c.objectDistance)) {
c.getActions().secondClickObject(c.objectId, c.objectX, c.objectY);
} else {
c.clickObjectType = 2;
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if(c.clickObjectType == 2 && c.goodDistance(c.objectX + c.objectXOffset, c.objectY + c.objectYOffset, c.getX(), c.getY(), c.objectDistance)) {
c.getActions().secondClickObject(c.objectId, c.objectX, c.objectY);
container.stop();
}
if(c.clickObjectType < 2 || c.clickObjectType > 2)
container.stop();
}
@Override
public void stop() {
c.clickObjectType = 0;
}
}, 1);
}
break;
case THIRD_CLICK:
c.objectX = c.getInStream().readSignedWordBigEndian();
c.objectY = c.getInStream().readUnsignedWord();
c.objectId = c.getInStream().readUnsignedWordBigEndianA();
if(c.playerRights >= 3) {
Misc.println("objectId: "+c.objectId+" ObjectX: "+c.objectX+ " objectY: "+c.objectY+" Xoff: "+ (c.getX() - c.objectX)+" Yoff: "+ (c.getY() - c.objectY));
}
switch(c.objectId) {
default:
c.objectDistance = 1;
c.objectXOffset = 0;
c.objectYOffset = 0;
break;
}
if(c.goodDistance(c.objectX+c.objectXOffset, c.objectY+c.objectYOffset, c.getX(), c.getY(), c.objectDistance)) {
c.getActions().secondClickObject(c.objectId, c.objectX, c.objectY);
} else {
c.clickObjectType = 3;
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if(c.clickObjectType == 3 && c.goodDistance(c.objectX + c.objectXOffset, c.objectY + c.objectYOffset, c.getX(), c.getY(), c.objectDistance)) {
c.getActions().thirdClickObject(c.objectId, c.objectX, c.objectY);
container.stop();
}
if(c.clickObjectType < 3)
container.stop();
}
@Override
public void stop() {
c.clickObjectType = 0;
}
}, 1);
}
break;
}
}
public void handleSpecialCase(Client c, int id, int x, int y) {
}
}