public static bool useAnimator(Player p, int itemId, int objectId, int objectX, int objectY) { if (objectId != ANIMATOR_ID) { return false; } int animatorIndex = -1; for (int i = 0; i < ANIMATOR_LOCATIONS.Length; i++) { if (objectX == ANIMATOR_LOCATIONS[i][0] && objectY == ANIMATOR_LOCATIONS[i][1]) { animatorIndex = i; break; } } if (animatorIndex == -1) { return false; } p.setTemporaryAttribute("warriorGuildAnimator", animatorIndex); CoordinateEvent createAnimatedArmorCoordinateEvent = new CoordinateEvent(p, new Location(ANIMATOR_LOCATIONS[animatorIndex][0], (ANIMATOR_LOCATIONS[animatorIndex][1] + 1), 0)); createAnimatedArmorCoordinateEvent.setAction(() => { int armourIndex = hasArmour(p, itemId); if (armourIndex != -1) { createdAnimatedArmour(p, armourIndex); } }); Server.registerCoordinateEvent(createAnimatedArmorCoordinateEvent); return true; }
/*public void sendTabConfig() { * int config = 0; * config += getItemsInTab(p, 2); * config += getItemsInTab(p, 3) * 1024; * config += getItemsInTab(p, 4) * 1048576; * player.getPackets().sendConfig(1246, config); * config = 0; * config += getItemsInTab(p, 5); * config += getItemsInTab(p, 6) * 1024; * config += getItemsInTab(p, 7) * 1048576; * player.getPackets().sendConfig(1247, config); * config = -2013265920; //0x88000000 * config += getItemsInTab(p, 8); * config += getItemsInTab(p, 9) * 1024; * player.getPackets().sendConfig(1248, config); * }*/ public void asNote() { if (player.getTemporaryAttribute("withdrawNote") == null) { player.setTemporaryAttribute("withdrawNote", (bool)true); withdrawAsNote = true; return; } if ((bool)player.getTemporaryAttribute("withdrawNote")) { player.setTemporaryAttribute("withdrawNote", (bool)false); } else { player.setTemporaryAttribute("withdrawNote", (bool)true); } withdrawAsNote = (bool)player.getTemporaryAttribute("withdrawNote"); }
public static void displayWildernessLeverOptions(Player p, int leverIndex) { int dialogueIndex = 140 + leverIndex; p.setTemporaryAttribute("dialogue", dialogueIndex); string option1 = leverIndex == 0 ? "Edgeville" : "Home"; p.getPackets().modifyText(option1, 230, 2); p.getPackets().modifyText("Mage bank", 230, 3); p.getPackets().modifyText("Nowhere", 230, 4); p.getPackets().sendChatboxInterface2(230); }
protected static void createdAnimatedArmour(Player p, int index) { if (p.getTemporaryAttribute("warriorGuildAnimator") == null) { return; } p.setLastAnimation(new Animation(827)); p.setTemporaryAttribute("unmovable", true); for (int i = 0; i < ARMOUR_SETS[index].Length; i++) { p.getInventory().deleteItem(ARMOUR_SETS[index][i]); } p.getPackets().sendChatboxInterface(211); p.getPackets().modifyText("You place the armour onto the platform where it", 211, 1); p.getPackets().modifyText("dissapears...", 211, 2); int animatorIndex = (int) p.getTemporaryAttribute("warriorGuildAnimator"); Event createAnimatedArmourEvent = new Event(1500); int createAnimatedArmourCounter = 0; Npc npc = null; createAnimatedArmourEvent.setAction(() => { if (createAnimatedArmourCounter == 0) { p.getPackets().sendChatboxInterface(211); p.getPackets().modifyText("The animator hums, something appears to be working.", 211, 1); p.getPackets().modifyText("You stand back.", 211, 2); createAnimatedArmourEvent.setTick(500); } else if (createAnimatedArmourCounter == 1) { p.getWalkingQueue().forceWalk(0, + 3); createAnimatedArmourEvent.setTick(2000); } else if (createAnimatedArmourCounter == 2) { createAnimatedArmourEvent.setTick(500); Location minCoords = new Location(2849, 3534, 0); Location maxCoords = new Location(2861, 3545, 0); npc = new Npc(ANIMATED_ARMOUR[index]); npc.setMinimumCoords(minCoords); npc.setMaximumCoords(maxCoords); npc.setLocation(new Location(ANIMATOR_LOCATIONS[animatorIndex][0], ANIMATOR_LOCATIONS[animatorIndex][1], 0)); npc.setWalkType(WalkType.STATIC); npc.setForceText("I'm ALIVE!"); npc.setLastAnimation(new Animation(4166)); npc.setEntityFocus(p.getClientIndex()); npc.setOwner(p); npc.setTarget(p); p.getPackets().setArrowOnEntity(1, npc.getClientIndex()); Server.getNpcList().Add(npc); } else { p.setEntityFocus(npc.getClientIndex()); p.getPackets().softCloseInterfaces(); createAnimatedArmourEvent.stop(); p.removeTemporaryAttribute("unmovable"); npc.getFollow().setFollowing(p); } createAnimatedArmourCounter++; }); Server.registerEvent(createAnimatedArmourEvent); }
private static int getHairStyle(Player p, bool decrease) { int oldHair = p.getAppearance().getLook(0); int newHair = oldHair; if (p.getTemporaryAttribute("hairToggle") == null) { p.setTemporaryAttribute("hairToggle", 0); return(0); } newHair = (int)p.getTemporaryAttribute("hairToggle"); newHair = decrease ? -1 : +1; if (newHair == 11) { newHair = 186;// } else if (newHair == 12) { newHair = 188;// } else if (newHair == 13) { newHair = 190;// } else if (newHair == 14) { newHair = 192;// } else if (newHair == 15) { newHair = 194;// } else if (newHair == 16) { newHair = 196; // } else if (newHair == 17) { //17 to 25 dump from rs } p.setTemporaryAttribute("hairToggle", newHair); return(newHair); }
public static void display(Player player, int buttonId) { int j = 0; for (int i = 125; i < 149; i++) { if (buttonId == i) { int skillFlashFlags = (int)(player.getTemporaryAttribute("skillFlashFlags") == null ? 0 : (int)player.getTemporaryAttribute("skillFlashFlags")); if ((skillFlashFlags & getSkillFlashingIcon(j)) == getSkillFlashingIcon(j)) { skillFlashFlags &= ~getSkillFlashingIcon(j); //turn off this skill icon flashing animation bit. player.getPackets().sendConfig(1179, skillFlashFlags); //stop flashing the skill you clicked on, if it was flashing. player.setTemporaryAttribute("skillFlashFlags", skillFlashFlags); //update the variable for remaining flashing skill icons. } player.getPackets().displayInterface(499); player.getPackets().sendConfig(965, MENU_ID[j]); player.setTemporaryAttribute("SkillMenu", (int) MENU_ID[j]); break; } j++; } }
public static void exitCave(Player p, int objectX, int objectY) { AreaEvent exitCaveAreaEvent = new AreaEvent(p, objectX, objectY - 1, objectX + 2, objectY - 1); exitCaveAreaEvent.setAction(() => { p.setTemporaryAttribute("unmovable", true); Event teleFromCaveEvent = new Event(600); teleFromCaveEvent.setAction(() => { teleFromCaveEvent.stop(); p.getFightCave().teleFromCave(true); }); Server.registerEvent(teleFromCaveEvent); }); Server.registerCoordinateEvent(exitCaveAreaEvent); }
public static void talkToBob(Player p, Npc npc, int item, int option) { p.setEntityFocus(npc.getClientIndex()); AreaEvent talkToBobAreaEvent = new AreaEvent(p, npc.getLocation().getX() - 1, npc.getLocation().getY() - 1, npc.getLocation().getX() + 1, npc.getLocation().getY() + 1); talkToBobAreaEvent.setAction(() => { npc.setFaceLocation(p.getLocation()); p.setFaceLocation(npc.getLocation()); p.setEntityFocus(65535); if (option == 0) { // use item on bob if (item > 0) { p.setTemporaryAttribute("bobsAxesBarrowItem", item); showBobDialogue(p, 101); } } else if (option == 1) { // talk showBobDialogue(p, 107); } else if (option == 2) { // trade p.setShopSession(new ShopSession(p, 4)); } }); Server.registerCoordinateEvent(talkToBobAreaEvent); }
public static void leverTeleport(Player p, int option) { p.getPackets().closeInterfaces(); Location teleLocation = new Location(LEVER_COORDINATES[option][0], LEVER_COORDINATES[option][1], LEVER_COORDINATES[option][2]); Event leverTeleportEvent = new Event(200); leverTeleportEvent.setAction(() => { leverTeleportEvent.stop(); if (p.getTemporaryAttribute("teleblocked") != null) { p.getPackets().sendMessage("A magical force prevents you from teleporting!"); return; } else if ((p.getTemporaryAttribute("teleporting") != null )) { return; } p.setLastAnimation(new Animation(2140)); p.getPackets().closeInterfaces(); p.setTemporaryAttribute("teleporting", true); p.getWalkingQueue().resetWalkingQueue(); p.getPackets().clearMapFlag(); SkillHandler.resetAllSkills(p); Event levelTeleportStartEvent = new Event(700); levelTeleportStartEvent.setAction(() => { levelTeleportStartEvent.stop(); p.setLastAnimation(new Animation(8939, 0)); p.setLastGraphics(new Graphics(1576, 0)); Event levelTeleportFinishEvent = new Event(1800); levelTeleportFinishEvent.setAction(() => { levelTeleportFinishEvent.stop(); p.teleport(teleLocation); p.setLastAnimation(new Animation(8941, 0)); p.setLastGraphics(new Graphics(1577, 0)); Teleport.resetTeleport(p); }); Server.registerEvent(levelTeleportFinishEvent); }); Server.registerEvent(levelTeleportStartEvent); }); Server.registerEvent(leverTeleportEvent); }
public static void levelUp(Player player, SKILL skill) { int skillIndex = Convert.ToInt32(skill); String s = "<br><br><br>"; String s1 = "<br><br><br><br>"; if (player.getTemporaryAttribute("teleporting") == null) { player.setLastGraphics(new Graphics(199, 0, 100)); } int skillFlashFlags = (int)(player.getTemporaryAttribute("skillFlashFlags") == null ? 0 : (int)player.getTemporaryAttribute("skillFlashFlags")); skillFlashFlags |= SKILL_FLASH_BITMASKS[skillIndex]; player.setTemporaryAttribute("skillFlashFlags", skillFlashFlags); player.getPackets().sendMessage("You've just advanced a " + SKILL_NAME[skillIndex] + " level! You have reached level " + player.getSkills().getMaxLevel(skillIndex) + "."); player.getPackets().modifyText(s + "Congratulations, you have just advanced a " + SKILL_NAME[skillIndex] + " level!", 740, 0); player.getPackets().modifyText(s1 + "You have now reached level " + player.getSkills().getMaxLevel(skillIndex) + ".", 740, 1); player.getPackets().modifyText("", 740, 2); player.getPackets().sendConfig(1179, SKILL_ICON_BITMASKS[skillIndex] | skillFlashFlags); //start flashing appropriate skill icons player.getPackets().sendChatboxInterface2(740); player.getUpdateFlags().setAppearanceUpdateRequired(true); }
public static void showBentleyDialogue(Player p, int status) { int newStatus = -1; p.getPackets().softCloseInterfaces(); if (p.getTemporaryAttribute("unmovable") != null) { return; } switch(status) { case 240: p.getPackets().sendNPCHead(4540, 241, 2); p.getPackets().modifyText("Captain Bentley", 241, 3); p.getPackets().modifyText("Well, hello there " + p.getLoginDetails().getUsername() + ", ready to set sail?", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 241; break; case 241: p.getPackets().modifyText("I'd like to travel to..", 235, 1); p.getPackets().modifyText("Canifis", 235, 2); p.getPackets().modifyText("Waterbirth Isle", 235, 3); p.getPackets().modifyText("Pest Control", 235, 4); p.getPackets().modifyText("Warrior Guild", 235, 5); p.getPackets().modifyText("Fremmenik Shore", 235, 6); p.getPackets().sendChatboxInterface2(235); newStatus = 242; break; case 242: // Canifis travel(p, 0, false); break; case 243: // Waterbirth isle travel(p, 1, false); break; case 244: // Pest control travel(p, 2, false); break; case 245: // Warrior guild int attackLevel = p.getSkills().getMaxLevel(Skills.SKILL.ATTACK); int strengthLevel = p.getSkills().getMaxLevel(Skills.SKILL.STRENGTH); bool hasA99 = attackLevel == 99 || strengthLevel == 99; if (((attackLevel + strengthLevel) >= 130) || hasA99) { travel(p, 3, false); } else { p.getPackets().sendNPCHead(4540, 243, 2); p.getPackets().modifyText("Captain Bentley", 243, 3); p.getPackets().modifyText("I'm sorry " + p.getLoginDetails().getUsername() + ", I cannot take you there.", 243, 4); p.getPackets().modifyText("A combined Attack & Strength level of 130 is ", 243, 5); p.getPackets().modifyText("required to use The Warrior Guild.", 243, 6); p.getPackets().animateInterface(9827, 243, 2); p.getPackets().sendChatboxInterface2(243); } break; case 246: // Fremmenik shore travel(p, 4, false); break; } if (newStatus != -1) { p.setTemporaryAttribute("dialogue", newStatus); } }
private static void travel(Player p, int index, bool returning) { p.setTemporaryAttribute("unmovable", true); p.getPackets().displayInterface(120); if (returning) { p.getPackets().sendMessage("You sail off back to Oo'glog.."); } else { p.getPackets().sendMessage("You climb aboard Captain Bentley's boat and set sail to " + DESTINATION_NAMES[index] + "."); } Event travelEvent = new Event(2000); int travelCounter = 0; travelEvent.setAction(() => { if (travelCounter == 0) { travelCounter++; travelEvent.setTick(600); if (returning) { p.teleport(new Location(2622, 2857, 0)); } else { p.teleport(new Location(LOCATIONS[index][0], LOCATIONS[index][1], LOCATIONS[index][2])); } } else { travelEvent.stop(); p.getPackets().sendOverlay(170); p.removeTemporaryAttribute("unmovable"); p.getPackets().sendMessage(returning ? "The boat arrives back in Oo'glog." : DESTINATION_MESSAGES[index]); p.getPackets().closeInterfaces(); Event removeOverlayEvent = new Event(2000); removeOverlayEvent.setAction(() => { removeOverlayEvent.stop(); p.getPackets().sendRemoveOverlay(); if (index == 1) { p.removeTemporaryAttribute("snowInterface"); } }); Server.registerEvent(removeOverlayEvent); } }); Server.registerEvent(travelEvent); }
public static void verifyEnterTunnel(Player p) { p.getPackets().closeInterfaces(); if (p.getTemporaryAttribute("barrowTunnel") != null) { if ((int) p.getTemporaryAttribute("barrowTunnel") == 2) { p.teleport(new Location(3568, 9712, 0)); p.removeTemporaryAttribute("barrowTunnel"); return; } } p.getPackets().sendChatboxInterface(228); p.getPackets().modifyText("Yeah, I'm fearless!", 228, 2); p.getPackets().modifyText("No way, that looks scary!", 228, 3); p.setTemporaryAttribute("barrowTunnel", 2); }
public static void showCaptainBarnabyDialogue(Player p, int status) { int newStatus = -1; p.getPackets().softCloseInterfaces(); if (p.getTemporaryAttribute("unmovable") != null) { return; } switch(status) { case 410: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("Could you take me back to Oo'glog please?", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 411; break; case 411: p.getPackets().sendNPCHead(4962, 241, 2); p.getPackets().modifyText("Captain Barnaby", 241, 3); p.getPackets().modifyText("Yes! it's freezing here, let's go!", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 412; break; case 412: travel(p, 4, true); break; } if (newStatus != -1) { p.setTemporaryAttribute("dialogue", newStatus); } }
public static void slashWeb(Player p, ushort webId, Location webLocation) { AreaEvent slashWebAreaEvent = new AreaEvent(p, webLocation.getX() - 1, webLocation.getY() - 1, webLocation.getX() + 1, webLocation.getY() + 1); slashWebAreaEvent.setAction(() => { long lastSlash = 0; p.setFaceLocation(webLocation); if (p.getTemporaryAttribute("lastWebSlash") != null) { lastSlash = (int)p.getTemporaryAttribute("lastWebSlash"); } if (Environment.TickCount - lastSlash <= 800) { return; } if (Server.getGlobalObjects().originalObjectExists(webId, webLocation)) { p.setLastAnimation(new Animation(p.getAttackAnimation())); p.setTemporaryAttribute("lastWebSlash", Environment.TickCount); Event attemptCutWebEvent = new Event(500); attemptCutWebEvent.setAction(() => { attemptCutWebEvent.stop(); bool webExists = Server.getGlobalObjects().originalObjectExists(webId, webLocation); Server.getGlobalObjects().lowerHealth(webId, webLocation); if (Server.getGlobalObjects().originalObjectExists(webId, webLocation)) { p.getPackets().sendMessage("You fail to cut through the web."); } else { if (webExists) { // This means we slashed it, if !webExists, someone else slashed it in the last 500ms p.getPackets().sendMessage("You slash through the web!"); } } }); Server.registerEvent(attemptCutWebEvent); } }); Server.registerCoordinateEvent(slashWebAreaEvent); }
public static void showBobDialogue(Player p, int status) { p.getPackets().softCloseInterfaces(); int index = -1; int newStatus = -1; if (p.getTemporaryAttribute("bobsAxesBarrowItem") != null) { int item = (int)p.getTemporaryAttribute("bobsAxesBarrowItem"); index = getIndex(item); if (index == -1) { return; } else if (item == (int)DATA[index][0]) { p.getPackets().sendNPCHead(BOB_ID, 241, 2); p.getPackets().modifyText("Bob", 241, 3); p.getPackets().modifyText("That item isn't broken..", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); return; } else if (item != (int)DATA[index][1]) { return; } } switch(status) { case 101: p.getPackets().sendNPCHead(BOB_ID, 241, 2); p.getPackets().modifyText("Bob", 241, 3); p.getPackets().modifyText("That'll cost you " + ((int)DATA[index][2]).ToString("#,##0") + " gold coins to fix, are you sure?", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 102; break; case 102: p.getPackets().modifyText("Yes, I'm sure!", 557, 2); p.getPackets().modifyText("On second thoughts, no thanks.", 557, 3); p.getPackets().sendChatboxInterface2(557); newStatus = 103; break; case 103: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("Yes, I'm sure!", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 104; break; case 104: if (!p.getInventory().hasItemAmount(995, (int)DATA[index][2])) { p.getPackets().sendNPCHead(BOB_ID, 241, 2); p.getPackets().modifyText("Bob", 241, 3); p.getPackets().modifyText("You don't have enough money to pay for the repair!", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); break; } else { if (!p.getInventory().hasItem((int)DATA[index][1])) { p.getPackets().sendNPCHead(BOB_ID, 241, 2); p.getPackets().modifyText("Bob", 241, 3); p.getPackets().modifyText("The item seems to have gone from your inventory.", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); break; } else if (p.getInventory().deleteItem(995, (int)DATA[index][2])) { p.getInventory().replaceSingleItem((int)DATA[index][1], (int)DATA[index][0]); p.getPackets().sendNPCHead(BOB_ID, 241, 2); p.getPackets().modifyText("Bob", 241, 3); p.getPackets().modifyText("There you go, happy doing business with you!", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); p.getPackets().sendMessage("You pay Bob his fee and he repairs your " + (string)DATA[index][3] + "."); break; } } break; case 105: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("On second thoughts, no thanks.", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 106; break; case 106: p.getPackets().sendNPCHead(BOB_ID, 241, 2); p.getPackets().modifyText("Bob", 241, 3); p.getPackets().modifyText("Ok, but don't expect my prices to change anytime soon!", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); break; case 107: p.getPackets().sendNPCHead(BOB_ID, 241, 2); p.getPackets().modifyText("Bob", 241, 3); p.getPackets().modifyText("Hello there " + p.getLoginDetails().getUsername() + ", what can i do for you?", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 108; break; case 108: p.getPackets().modifyText("Could you please repair my Barrow item?", 230, 2); p.getPackets().modifyText("I'm interested in buying an axe.", 230, 3); p.getPackets().modifyText("Nevermind.", 230, 4); p.getPackets().sendChatboxInterface2(230); newStatus = 109; break; case 109: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("Could you please repair my Barrow item?", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 110; break; case 110: p.getPackets().sendNPCHead(BOB_ID, 241, 2); p.getPackets().modifyText("Bob", 241, 3); p.getPackets().modifyText("Certainly! Show me the item and i'll see what i can do.", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); break; case 111: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("I'm interested in buying an axe.", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 112; break; case 112: p.getPackets().sendNPCHead(BOB_ID, 241, 2); p.getPackets().modifyText("Bob", 241, 3); p.getPackets().modifyText("What a coincidence! Axes are my speciality!", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 113; break; case 113: //TODO open bob's shop break; case 114: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("Nevermind.", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); break; } if (newStatus != -1) { p.setTemporaryAttribute("dialogue", newStatus); } }
private void handleClickFive(Player player, Packet packet) { int interfaceId = packet.readUShort(); int child = packet.readUShort(); int slot = packet.readUShort(); Console.WriteLine("InterfaceOption 5: interfaceId: " + interfaceId); switch(interfaceId) { case 763: // Bank inventory - X. player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(interfaceId, slot)); break; case 762: // Bank - X. player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(interfaceId, slot)); break; case 336: // Trade inventory - trade X. player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(interfaceId, slot)); break; case 335: // Trade interface - remove X. player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(interfaceId, slot)); break; case 631: // Duel interface - remove All if (player.getDuel() != null) { player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(interfaceId, slot)); break; } break; case 620: // Shop - buy X/buy 50. if (player.getShopSession().isInMainStock()) { player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(interfaceId, slot)); } else { player.getShopSession().buyItem(slot, 50); } break; case 621: // Shop - Sell 50. player.getShopSession().sellItem(slot, 50); break; case 590: // Clan chat setup Clan clan = Server.getClanManager().getClanByOwner(player.getLoginDetails().getUsername()); if (clan == null) { player.getPackets().sendMessage("Please create your clan chat before changing settings."); break; } switch(child) { case 23: // "Who can enter chat" - sergeant. clan.setEnterRights(Clan.ClanRank.SERGEANT); player.getPackets().modifyText(clan.getRankString(clan.getEnterRights()), 590, 23); break; case 24: // "Who can talk in chat" - sergeant. clan.setTalkRights(Clan.ClanRank.SERGEANT); player.getPackets().modifyText(clan.getRankString(clan.getTalkRights()), 590, 24); break; case 25: // // "Who can kick in chat" - sergeant. clan.setKickRights(Clan.ClanRank.SERGEANT); player.getPackets().modifyText(clan.getRankString(clan.getKickRights()), 590, 25); break; case 26: // "Who can share loot" - sergeant. clan.setLootRights(Clan.ClanRank.SERGEANT); player.getPackets().modifyText(clan.getRankString(clan.getLootRights()), 590, 26); break; } break; } }
private void handleClickFour(Player player, Packet packet) { int interfaceId = packet.readUShort(); int child = packet.readUShort(); int slot = packet.readUShort(); Console.WriteLine("InterfaceOption 4: interfaceId: " + interfaceId); switch(interfaceId) { case 763: // Bank inventory - Custom amount. player.getBank().deposit(slot, player.getBank().getLastXAmount()); player.getBank().refreshBank(); break; case 762: // Bank - Custom amount. player.getBank().withdraw(slot, player.getBank().getLastXAmount()); player.getBank().refreshBank(); break; case 154: // Craft normal leather. player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(154, child)); break; case 542: // Glassblowing. switch(child) { case 40: // Make X beer glass. case 41: // Make X candle lantern. case 42: // Make X oil lamp. case 38: // Make X vial. case 44: // Make X Fishbowl case 39: // Make X orb. case 43: // Make X lantern lens case 45: // Make X dorgeshuun light orb. player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(542, child)); break; } break; case 336: // Trade/stake inventory - trade all. if (player.getTrade() != null) { player.getTrade().tradeItem(slot, player.getInventory().getItemAmount(player.getInventory().getItemInSlot(slot))); break; } if (player.getDuel() != null) { player.getDuel().stakeItem(slot, player.getInventory().getItemAmount(player.getInventory().getItemInSlot(slot))); break; } break; case 335: // Trade interface - remove all. player.getTrade().removeItem(slot, player.getTrade().getItemAmount(player.getTrade().getItemInSlot(slot))); break; case 631: // Duel interface - remove All if (player.getDuel() != null) { player.getDuel().removeItem(slot, player.getDuel().getItemAmount(player.getDuel().getItemInSlot(slot))); break; } break; case 620: // Shop - buy 10. player.getShopSession().buyItem(slot, 10); break; case 621: // Shop - sell 10. player.getShopSession().sellItem(slot, 10); break; case 590: // Clan chat setup Clan clan = Server.getClanManager().getClanByOwner(player.getLoginDetails().getUsername()); if (clan == null) { player.getPackets().sendMessage("Please create your clan chat before changing settings."); break; } switch(child) { case 23: // "Who can enter chat" - corporal. clan.setEnterRights(Clan.ClanRank.CORPORAL); player.getPackets().modifyText(clan.getRankString(clan.getEnterRights()), 590, 23); break; case 24: // "Who can talk in chat" - corporal. clan.setTalkRights(Clan.ClanRank.CORPORAL); player.getPackets().modifyText(clan.getRankString(clan.getTalkRights()), 590, 24); break; case 25: // // "Who can kick in chat" - corporal. clan.setKickRights(Clan.ClanRank.CORPORAL); player.getPackets().modifyText(clan.getRankString(clan.getKickRights()), 590, 25); break; case 26: // "Who can share loot" - corporal. clan.setLootRights(Clan.ClanRank.CORPORAL); player.getPackets().modifyText(clan.getRankString(clan.getLootRights()), 590, 26); break; } break; } }
private static int getHairStyle(Player p, bool decrease) { int oldHair = p.getAppearance().getLook(0); int newHair = oldHair; if (p.getTemporaryAttribute("hairToggle") == null) { p.setTemporaryAttribute("hairToggle", 0); return 0; } newHair = (int)p.getTemporaryAttribute("hairToggle"); newHair = decrease ? -1 : +1; if (newHair == 11) { newHair = 186;// } else if (newHair == 12) { newHair = 188;// } else if (newHair == 13) { newHair = 190;// } else if (newHair == 14) { newHair = 192;// } else if (newHair == 15) { newHair = 194;// } else if (newHair == 16) { newHair = 196; // } else if (newHair == 17) { //17 to 25 dump from rs } p.setTemporaryAttribute("hairToggle", newHair); return newHair; }
public static void showAliDialogue(Player p, int status) { int newStatus = -1; p.getPackets().softCloseInterfaces(); if (p.getTemporaryAttribute("unmovable") != null) { return; } switch(status) { case 205: p.getPackets().sendNPCHead(1862, 241, 2); p.getPackets().modifyText("Ali Morissane", 241, 3); p.getPackets().modifyText("Would you like to go back to Lletya?", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 206; break; case 206: p.getPackets().sendChatboxInterface2(228); p.getPackets().modifyText("Yes please, let's go", 228, 2); p.getPackets().modifyText("Not yet", 228, 3); newStatus = 207; break; case 207: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("Yes please, let's go.", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 208; break; case 208: p.getPackets().sendNPCHead(1862, 241, 2); p.getPackets().modifyText("Ali Morissane", 241, 3); p.getPackets().modifyText("Very well.", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 209; break; case 209: p.setTemporaryAttribute("unmovable", true); p.getPackets().displayInterface(120); p.getPackets().sendMessage("Your camel trots off slowly out of the desert.."); Event moveBackToLletyaEvent = new Event(2000); int moveBackToLletyaCounter = 0; moveBackToLletyaEvent.setAction(() => { if (moveBackToLletyaCounter == 0) { moveBackToLletyaCounter++; moveBackToLletyaEvent.setTick(600); p.teleport(new Location(2340, 3799, 0)); } else { moveBackToLletyaEvent.stop(); p.removeTemporaryAttribute("unmovable"); p.getPackets().sendMessage("..You and Ali are back in Lletya."); p.getPackets().closeInterfaces(); } }); Server.registerEvent(moveBackToLletyaEvent); break; case 210: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("Not yet.", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 211; break; case 211: p.getPackets().sendNPCHead(1862, 241, 2); p.getPackets().modifyText("Ali Morissane", 241, 3); p.getPackets().modifyText("No problem, I will be here when you decide to leave.", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); break; } if (newStatus != -1) { p.setTemporaryAttribute("dialogue", newStatus); } }
public static void doDialogue(Player p, int status) { int newStatus = -1; p.getPackets().softCloseInterfaces(); switch(status) { case 1: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("Ahoy Cap'n!", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 2; break; case 2: p.getPackets().sendNPCHead(437, 241, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 241, 3); p.getPackets().modifyText("Ahoy there!", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 3; break; case 3: p.getPackets().sendNPCHead(4535, 241, 1); p.getPackets().modifyText("Parrot", 241, 3); p.getPackets().modifyText("Avast ye scurvy swabs!", 241, 4); p.getPackets().animateInterface(9827, 241, 1); p.getPackets().sendChatboxInterface2(241); newStatus = 4; break; case 4: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("Huh?", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 5; break; case 5: p.getPackets().sendNPCHead(437, 241, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 241, 3); p.getPackets().modifyText("Don't mind me parrot, he's Cracked Jenny's Tea Cup!", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 6; break; case 6: p.getPackets().sendChatboxInterface2(235); p.getPackets().modifyText("What is this place?", 235, 2); p.getPackets().modifyText("What do i do in the arena?", 235, 3); p.getPackets().modifyText("I'd like to use the Agility Arena, please.", 235, 4); p.getPackets().modifyText("Could you sell me a Skillcape of Agility?.", 235, 5); p.getPackets().modifyText("See you later.", 235, 6); newStatus = 7; break; case 7: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("What is this place?", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 8; break; case 8: p.getPackets().sendNPCHead(437, 242, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 242, 3); p.getPackets().modifyText("This, me hearty, is the entrance to the Brimhaven", 242, 4); p.getPackets().modifyText("Agility Arena!", 242, 5); p.getPackets().animateInterface(9827, 242, 2); p.getPackets().sendChatboxInterface2(242); newStatus = 9; break; case 9: p.getPackets().sendNPCHead(437, 242, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 242, 3); p.getPackets().modifyText("I were diggin for buried treasure when I found it!", 242, 4); p.getPackets().modifyText("Amazed I was! It was a sight to behold!", 242, 5); p.getPackets().animateInterface(9827, 242, 2); p.getPackets().sendChatboxInterface2(242); newStatus = 10; break; case 10: p.getPackets().sendNPCHead(4535, 241, 1); p.getPackets().modifyText("Parrot", 241, 3); p.getPackets().modifyText("Buried treasure!", 241, 4); p.getPackets().animateInterface(9827, 241, 1); p.getPackets().sendChatboxInterface2(241); newStatus = 11; break; case 11: p.getPackets().sendNPCHead(437, 242, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 242, 3); p.getPackets().modifyText("It were the biggest thing i'd ever seen! It must've been", 242, 4); p.getPackets().modifyText("atleast a league from side to side!", 242, 5); p.getPackets().animateInterface(9827, 242, 2); p.getPackets().sendChatboxInterface2(242); newStatus = 12; break; case 12: p.getPackets().sendNPCHead(437, 241, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 241, 3); p.getPackets().modifyText("It made me list, I were that excited!", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 13; break; case 13: p.getPackets().sendNPCHead(4535, 241, 1); p.getPackets().modifyText("Parrot", 241, 3); p.getPackets().modifyText("Get on with it!", 241, 4); p.getPackets().animateInterface(9827, 241, 1); p.getPackets().sendChatboxInterface2(241); newStatus = 14; break; case 14: p.getPackets().sendNPCHead(437, 244, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 244, 3); p.getPackets().modifyText("I'd found a huge cave with all these platforms. I reckon", 244, 4); p.getPackets().modifyText("it be an ancient civilisation that made it. I had to be", 244, 5); p.getPackets().modifyText("mighty careful as there was these traps everywhere!", 244, 6); p.getPackets().modifyText("Dangerous it was!", 244, 7); p.getPackets().animateInterface(9827, 244, 2); p.getPackets().sendChatboxInterface2(244); newStatus = 15; break; case 15: p.getPackets().sendNPCHead(4535, 241, 1); p.getPackets().modifyText("Parrot", 241, 3); p.getPackets().modifyText("Danger! Danger!", 241, 4); p.getPackets().animateInterface(9827, 241, 1); p.getPackets().sendChatboxInterface2(241); newStatus = 16; break; case 16: p.getPackets().sendNPCHead(437, 241, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 241, 3); p.getPackets().modifyText("Entrance is only " + AGILITY_ARENA_PRICE.ToString("#,##0") + " coins!", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 6; break; case 17: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("What do I do in the arena?", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 18; break; case 18: p.getPackets().sendNPCHead(437, 244, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 244, 3); p.getPackets().modifyText("Well, me hearty, it's simple. Ye can cross between two", 244, 4); p.getPackets().modifyText("platforms by using the traps or obstacles strung across", 244, 5); p.getPackets().modifyText("'em. Try and make your way to the pillar that is", 244, 6); p.getPackets().modifyText("indicated by the flashing arrow.", 244, 7); p.getPackets().animateInterface(9827, 244, 2); p.getPackets().sendChatboxInterface2(244); newStatus = 19; break; case 19: p.getPackets().sendNPCHead(437, 243, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 243, 3); p.getPackets().modifyText("Ye receive tickets for tagging more than one pillar in a", 243, 4); p.getPackets().modifyText("row. So ye won't get a ticket from the first pillar but", 243, 5); p.getPackets().modifyText("ye will for every platform ye tag in a row after that.", 243, 6); p.getPackets().animateInterface(9827, 243, 2); p.getPackets().sendChatboxInterface2(243); newStatus = 20; break; case 20: p.getPackets().sendNPCHead(437, 244, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 244, 3); p.getPackets().modifyText("If ye miss a platform ye will miss out on the next ticket", 244, 4); p.getPackets().modifyText("so try and get every platform you can! When ye be", 244, 5); p.getPackets().modifyText("done, take the tickets to Jackie over there and she'll", 244, 6); p.getPackets().modifyText("exchange them for experience or items.", 244, 7); p.getPackets().animateInterface(9827, 244, 2); p.getPackets().sendChatboxInterface2(244); newStatus = 21; break; case 21: p.getPackets().sendNPCHead(4535, 242, 1); p.getPackets().modifyText("Parrot", 242, 3); p.getPackets().modifyText("Tag when green light means tickets!", 242, 4); p.getPackets().modifyText("Tag when red light means green light!", 242, 5); p.getPackets().animateInterface(9827, 242, 1); p.getPackets().sendChatboxInterface2(242); newStatus = 22; break; case 22: p.getPackets().sendNPCHead(437, 241, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 241, 3); p.getPackets().modifyText("Thanks me hearty!", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 23; break; case 23: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("Thanks!", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 6; break; case 24: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("I'd like to use the Agility Arena, please.", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 25; break; case 25: string message = ""; if (p.hasPaidAgilityArena()) { message = "Ye've already paid, so down ye goes..."; } else { message = "Aye, Entrance be " + AGILITY_ARENA_PRICE.ToString("#,##0") + " coins."; newStatus = 26; } p.getPackets().sendNPCHead(437, 241, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 241, 3); p.getPackets().modifyText(message, 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); break; case 26: p.getPackets().sendNPCHead(4535, 241, 1); p.getPackets().modifyText("Parrot", 241, 3); p.getPackets().modifyText("Pieces of eight!", 241, 4); p.getPackets().animateInterface(9827, 241, 1); p.getPackets().sendChatboxInterface2(241); newStatus = 27; break; case 27: p.getPackets().sendNPCHead(437, 242, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 242, 3); p.getPackets().modifyText("A word of warning me hearty! There are dangerous", 242, 4); p.getPackets().modifyText("traps down there!", 242, 5); p.getPackets().animateInterface(9827, 242, 2); p.getPackets().sendChatboxInterface2(242); newStatus = 28; break; case 28: if (!p.getInventory().hasItemAmount(995, AGILITY_ARENA_PRICE)) { p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("I don't have enough money on me at the moment..", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 31; break; } p.getPackets().modifyText("Ok, here's " + AGILITY_ARENA_PRICE.ToString("#,##0") + " coins.", 228, 2); p.getPackets().modifyText("Never mind.", 228, 3); p.getPackets().sendChatboxInterface(228); newStatus = 29; break; case 29: if (p.getInventory().deleteItem(995, AGILITY_ARENA_PRICE)) { p.setPaidAgilityArena(true); } p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("Ok, here's " + AGILITY_ARENA_PRICE.ToString("#,##0") + " coins.", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 30; break; case 30: p.getPackets().sendMessage("You pay Cap'n Izzy " + AGILITY_ARENA_PRICE.ToString("#,##0") + " coins."); p.getPackets().sendNPCHead(437, 241, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 241, 3); p.getPackets().modifyText("May the wind be in ye sails!", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); break; case 31: p.getPackets().sendNPCHead(4535, 241, 1); p.getPackets().modifyText("Parrot", 241, 3); p.getPackets().modifyText("*Squawk*", 241, 4); p.getPackets().animateInterface(9827, 241, 1); p.getPackets().sendChatboxInterface2(241); newStatus = 32; break; case 32: p.getPackets().sendNPCHead(437, 241, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 241, 3); p.getPackets().modifyText("No coins, no entrance!", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); break; case 33: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("Never mind.", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); break; case 34: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("Could you sell me a Skillcape of Agility?", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 35; break; case 35: p.getPackets().sendNPCHead(437, 244, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 244, 3); if (p.getSkills().getMaxLevel(Skills.SKILL.AGILITY) < 99) { p.getPackets().modifyText("Unfortunatly not. I may only sell the Skillcape of Agility", 244, 4); p.getPackets().modifyText("to those that have conquered the obstacles of Runescape,", 244, 5); p.getPackets().modifyText("can climb like a cat and run like the wind! which err..", 244, 6); p.getPackets().modifyText("isnt you. Is there anything else?", 244, 7); newStatus = 6; } else { p.getPackets().modifyText("Indeed! You have reached level 99 Agility and have", 244, 4); p.getPackets().modifyText("become a master of dexterity. It would be a pleasure", 244, 5); p.getPackets().modifyText("to sell you an Agility skillcape and hood for a sum of", 244, 6); p.getPackets().modifyText(SkillHandler.SKILLCAPE_PRICE.ToString("#,##0") + " coins.", 244, 7); newStatus = 36; } p.getPackets().animateInterface(9827, 244, 2); p.getPackets().sendChatboxInterface2(244); break; case 36: p.getPackets().modifyText("I'll pay " + SkillHandler.SKILLCAPE_PRICE.ToString("#,##0") + " coins.", 228, 2); p.getPackets().modifyText(SkillHandler.SKILLCAPE_PRICE.ToString("#,##0") + " is a crazy price!", 228, 3); p.getPackets().sendChatboxInterface(228); newStatus = 37; break; case 37: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("I'll pay " + SkillHandler.SKILLCAPE_PRICE.ToString("#,##0") + " coins.", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 38; break; case 38: if (p.getInventory().getTotalFreeSlots() < 2) { p.getPackets().sendNPCHead(437, 241, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 241, 3); p.getPackets().modifyText("Ye require 2 free inventory spaces!", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); break; } if (p.getInventory().deleteItem(995, SkillHandler.SKILLCAPE_PRICE)) { int cape = p.getSkills().hasMultiple99s() ? 9772 : 9771; int hood = 9773; p.getInventory().addItem(cape); p.getInventory().addItem(hood); p.getPackets().sendNPCHead(437, 242, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 242, 3); p.getPackets().modifyText("One Agility Skillcape & hood.", 242, 4); p.getPackets().modifyText("Wear it with pride.", 242, 5); p.getPackets().animateInterface(9827, 242, 2); p.getPackets().sendChatboxInterface2(242); } else { p.getPackets().sendNPCHead(437, 241, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 241, 3); p.getPackets().modifyText("Ye don't have enough coins!", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); } break; case 39: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText(SkillHandler.SKILLCAPE_PRICE.ToString("#,##0") + " is a crazy price!", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 40; break; case 40: p.getPackets().sendNPCHead(437, 241, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 241, 3); p.getPackets().modifyText("I'm sure ye will change your mind eventually..", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); break; case 41: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("See you later.", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 42; break; case 42: p.getPackets().sendNPCHead(437, 241, 2); p.getPackets().modifyText("Cap'n Izzy No-Beard", 241, 3); p.getPackets().modifyText("Aye, goodbye " + p.getLoginDetails().getUsername() + ".", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); break; /* * NOW TALKING TO JACKIE THE FRUIT */ case 43: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("Ahoy there!", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 44; break; case 44: p.getPackets().sendNPCHead(1055, 241, 2); p.getPackets().modifyText("Pirate Jackie the Fruit", 241, 3); p.getPackets().modifyText("Ahoy!", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 45; break; case 45: p.getPackets().sendChatboxInterface2(232); p.getPackets().modifyText("What is this place?", 232, 2); p.getPackets().modifyText("What do you do?", 232, 3); p.getPackets().modifyText("I'd like to trade in my tickets, please.", 232, 4); p.getPackets().modifyText("See you later.", 232, 5); newStatus = 46; break; case 46: p.getPackets().sendNPCHead(1055, 241, 2); p.getPackets().modifyText("Pirate Jackie the Fruit", 241, 3); p.getPackets().modifyText("Welcome to the Brimhaven Agility Arena!", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 47; break; case 47: p.getPackets().sendNPCHead(1055, 242, 2); p.getPackets().modifyText("Pirate Jackie the Fruit", 242, 3); p.getPackets().modifyText("If ye want to know more, talk to Cap'n Izzy, after", 242, 4); p.getPackets().modifyText("all... he did find it!", 242, 5); p.getPackets().animateInterface(9827, 242, 2); p.getPackets().sendChatboxInterface2(242); newStatus = 45; break; case 48: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("What do you do?", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 49; break; case 49: p.getPackets().sendNPCHead(1055, 244, 2); p.getPackets().modifyText("Pirate Jackie the Fruit", 244, 3); p.getPackets().modifyText("I be the jack o' tickets. I exchange the tickets ye", 244, 4); p.getPackets().modifyText("Collect in the Agility arena for more stuff. Ye can", 244, 5); p.getPackets().modifyText("obtain more Agility experience or items ye won't", 244, 6); p.getPackets().modifyText("find anywhere else!", 244, 7); p.getPackets().animateInterface(9827, 244, 2); p.getPackets().sendChatboxInterface2(244); newStatus = 50; break; case 50: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("Sounds good!", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 45; break; case 51: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("I'd like to trade in my tickets, please.", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 52; break; case 52: p.getPackets().sendNPCHead(1055, 241, 2); p.getPackets().modifyText("Pirate Jackie the Fruit", 241, 3); p.getPackets().modifyText("Aye, ye be on the right track.", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 53; break; case 53: p.getPackets().displayInterface(6); break; case 54: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("See you later.", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 55; break; case 55: p.getPackets().sendNPCHead(1055, 241, 2); p.getPackets().modifyText("Pirate Jackie the Fruit", 241, 3); p.getPackets().modifyText("Goodbye.", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); break; } if (newStatus != -1) { p.setTemporaryAttribute("dialogue", newStatus); } }
public static void setAutoCastSpell(Player p, int spell, int spellIndex, bool ancients) { p.getPackets().modifyText(AUTOCAST_NAME[spell], 90, 11); p.getPackets().showChildInterface(90, 83, false); p.getPackets().showChildInterface(90, AUTOCAST_CONFIG[spell], true); p.getPackets().sendConfig(43, 3); p.getPackets().sendTab(83, 90); p.getPackets().modifyText(p.getEquipment().getSlot(ItemData.EQUIP.WEAPON).getDefinition().getName(), 90, 0); p.setTemporaryAttribute("autoCastSpell", spellIndex); p.setTemporaryAttribute("autoCastSpell2", spell); if (ancients) { p.setTemporaryAttribute("autoCastAncients", ancients); } else { p.removeTemporaryAttribute("autoCastAncients"); } }
public static bool openTunnelDoor(Player player, int doorId, int x, int y) { if (doorId < 6716 || (doorId > 6731 && doorId < 6735) || doorId > 6750) { return false; } int index = getDoorIndex(doorId, x, y); int index2 = getOtherDoor(x, y); // index of the door next to the one you clicked. if (index == -1 || index2 == -1) { return false; } bool betweenDoors = player.getTemporaryAttribute("betweenDoors") != null; Location clickedDoor = new Location(DOOR_LOCATION[index][0], DOOR_LOCATION[index][1], 0); Location otherDoor = new Location(DOOR_LOCATION[index2][0], DOOR_LOCATION[index2][1], 0); int openDoorId = DOOR_OPEN_DIRECTION[index][0]; int openDoorId2 = DOOR_OPEN_DIRECTION[index2][0]; int openDirection = DOOR_OPEN_DIRECTION[index][2]; int newX = openDirection == 1 ? x+1 : openDirection == 2 ? x : openDirection == 3 ? x-1 : openDirection == 4 ? x : x; int newY = openDirection == 1 ? y : openDirection == 2 ? y+1 : openDirection == 3 ? y : openDirection == 4 ? y-1 : y; int newX2 = openDirection == 1 ? DOOR_LOCATION[index2][0] + 1 : openDirection == 2 ? DOOR_LOCATION[index2][0] : openDirection == 3 ? DOOR_LOCATION[index2][0] - 1 : openDirection == 4 ? DOOR_LOCATION[index2][0] : DOOR_LOCATION[index2][0]; int newY2 = openDirection == 1 ? DOOR_LOCATION[index2][1] : openDirection == 2 ? DOOR_LOCATION[index2][1] + 1 : openDirection == 3 ? DOOR_LOCATION[index2][1] : openDirection == 4 ? DOOR_LOCATION[index2][1] - 1 : DOOR_LOCATION[index2][1]; int[] doorStandCoordinates = getDoorCoordinates(player, index, index2, betweenDoors); int[] walkDirections = getWalkDirections(player, index, index2, betweenDoors); player.setFaceLocation(clickedDoor); AreaEvent doorsWalkAreaEvent = new AreaEvent(player, doorStandCoordinates[0], doorStandCoordinates[1], doorStandCoordinates[2] + 1, doorStandCoordinates[3] + 1); doorsWalkAreaEvent.setAction(() => { player.setTemporaryAttribute("unmovable", true); Event forceWalkDoorEvent = new Event(800); forceWalkDoorEvent.setAction(() => { player.getWalkingQueue().resetWalkingQueue(); foreach(Player p in Server.getPlayerList()) { //change door for all logged in players? uhh what? p.getPackets().removeObject(clickedDoor, openDoorId == 6713 ? 4 : 3, 0); p.getPackets().removeObject(otherDoor, openDoorId2 == 6732 ? 3 : 4, 0); p.getPackets().createObject(openDoorId, new Location(newX, newY, 0), DOOR_OPEN_DIRECTION[index][1], 0); p.getPackets().createObject(openDoorId2, new Location(newX2, newY2, 0), DOOR_OPEN_DIRECTION[index2][1], 0); } player.getWalkingQueue().forceWalk(walkDirections[0], walkDirections[1]); forceWalkDoorEvent.stop(); }); Server.registerEvent(forceWalkDoorEvent); Event betweenDoorsEvent = new Event(betweenDoors ? 2200 : 1900); betweenDoorsEvent.setAction(() => { int face = openDirection == 3 ? 0 : openDirection == 4 ? 3 : openDirection == 2 ? 1 : 2; foreach(Player p in Server.getPlayerList()) { p.getPackets().removeObject(new Location(newX, newY, 0), openDoorId == 6713 ? 4 : 3, 0); p.getPackets().removeObject(new Location(newX2, newY2, 0), openDoorId2 == 6732 ? 3 : 4, 0); p.getPackets().createObject(DOORS[index], clickedDoor, face, 0); p.getPackets().createObject(DOORS[index2], otherDoor, face, 0); } player.removeTemporaryAttribute("unmovable"); if (!betweenDoors) { player.getPackets().sendConfig(1270, 1); player.setTemporaryAttribute("betweenDoors", true); } else { player.getPackets().sendConfig(1270, 0); player.removeTemporaryAttribute("betweenDoors"); } betweenDoorsEvent.stop(); }); Server.registerEvent(betweenDoorsEvent); }); Server.registerCoordinateEvent(doorsWalkAreaEvent); return true; }
public static void showCanifisSailorDialogue(Player p, int status) { int newStatus = -1; p.getPackets().softCloseInterfaces(); if (p.getTemporaryAttribute("unmovable") != null) { return; } switch(status) { case 280: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("Could you take me back to Oo'glog please?", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 281; break; case 281: p.getPackets().sendNPCHead(1304, 241, 2); p.getPackets().modifyText("Sailor", 241, 3); p.getPackets().modifyText("As you wish, i'll fetch the boat.", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 282; break; case 282: travel(p, 0, true); break; } if (newStatus != -1) { p.setTemporaryAttribute("dialogue", newStatus); } }
public void useDoor(Player p, int doorId) { bool running = p.getWalkingQueue().isRunToggled(); if (doorId == 9369) { // main entrance int y = p.getLocation().getY() >= 5177 ? 5177 : 5175; CoordinateEvent mainEntranceCoordinateEvent = new CoordinateEvent(p, new Location(2399, y, 0)); mainEntranceCoordinateEvent.setAction(() => { p.getWalkingQueue().setRunToggled(false); p.getWalkingQueue().resetWalkingQueue(); p.getPackets().clearMapFlag(); p.setTemporaryAttribute("unmovable", true); p.getWalkingQueue().forceWalk(0, y == 5177 ? -2 : +2); Event useMainDoorEvent = new Event(1000); useMainDoorEvent.setAction(() => { useMainDoorEvent.stop(); p.removeTemporaryAttribute("unmovable"); p.getWalkingQueue().setRunToggled(running); }); Server.registerEvent(useMainDoorEvent); }); Server.registerCoordinateEvent(mainEntranceCoordinateEvent); } else if (doorId == 9368) { // game door int y = p.getLocation().getY() >= 5169 ? 5169 : 5167; CoordinateEvent gameDoorCoordinateEvent = new CoordinateEvent(p, new Location(2399, y, 0)); gameDoorCoordinateEvent.setAction(() => { if (playersPlaying.Count == 1) { sendNPCMessage(p, "Here is some TokKul, as a reward."); p.getInventory().addItemOrGround(6529, tokkulReward); } removePlayingPlayer(p); p.getWalkingQueue().setRunToggled(false); p.getWalkingQueue().resetWalkingQueue(); p.getPackets().clearMapFlag(); if (y == 5167) { p.getWalkingQueue().forceWalk(0, +2); } else { p.getPackets().sendMessage("You are unable to bypass the hot barrier."); return; } p.setTemporaryAttribute("unmovable", true); Event gameDoorEvent = new Event(1000); gameDoorEvent.setAction(() => { gameDoorEvent.stop(); p.removeTemporaryAttribute("unmovable"); p.getWalkingQueue().setRunToggled(running); p.getPackets().sendMessage("You leave the fight pit."); resetVariables(p); }); Server.registerEvent(gameDoorEvent); }); Server.registerCoordinateEvent(gameDoorCoordinateEvent); } }
public static void crossDitch(Player p, int x, int y) { if (p.getTemporaryAttribute("unmovable") != null) { return; } AreaEvent crossDitchAreaEvent = new AreaEvent(p, x, y - 1, x, y + 2); crossDitchAreaEvent.setAction(() => { p.getPackets().closeInterfaces(); p.getWalkingQueue().resetWalkingQueue(); p.setTemporaryAttribute("unmovable", true); int newY = p.getLocation().getY() >= 3523 ? p.getLocation().getY()-3 : p.getLocation().getY()+3; int dir = newY == 3 ? 0 : 4; Location faceLocation = new Location(p.getLocation().getX(), dir == 3 ? 3523 : 3520, 0); p.setFaceLocation(faceLocation); Event crossDitchMoveEvent = new Event(500); crossDitchMoveEvent.setAction(() => { crossDitchMoveEvent.stop(); p.setLastAnimation(new Animation(6132)); int regionX = p.getUpdateFlags().getLastRegion().getRegionX(); int regionY = p.getUpdateFlags().getLastRegion().getRegionY(); int lX = (p.getLocation().getX() - ((regionX - 6) * 8)); int lY = (p.getLocation().getY() - ((regionY - 6) * 8)); ForceMovement movement = new ForceMovement(lX, lY, lX, newY, 33, 60, dir); p.setForceMovement(movement); p.setFaceLocation(new Location(x, y, 0)); Event crossDitchTeleportEvent = new Event(1250); crossDitchTeleportEvent.setAction(() => { crossDitchTeleportEvent.stop(); int playerY = p.getLocation().getY(); int nY = playerY >= 3523 ? 3520 : 3523; p.teleport(new Location(p.getLocation().getX(), nY, 0)); p.removeTemporaryAttribute("unmovable"); }); Server.registerEvent(crossDitchTeleportEvent); }); Server.registerEvent(crossDitchMoveEvent); }); Server.registerCoordinateEvent(crossDitchAreaEvent); }
public static void showJarvaldDialogue(Player p, int status) { int newStatus = -1; p.getPackets().softCloseInterfaces(); if (p.getTemporaryAttribute("unmovable") != null) { return; } switch(status) { case 300: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("Could you take me back to Oo'glog please?", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 301; break; case 301: p.getPackets().sendNPCHead(2436, 241, 2); p.getPackets().modifyText("Jarvald", 241, 3); p.getPackets().modifyText("No problem. Off we go!", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 302; break; case 302: travel(p, 1, true); break; } if (newStatus != -1) { p.setTemporaryAttribute("dialogue", newStatus); } }
public static void doObstacle(Player p, int index) { if (p.getTemporaryAttribute("unmovable") != null) { return; } switch (index) { case 0: // 3 planks, northern (east side) case 1: // 3 planks, middle (east side) case 2: // 3 planks, southern (east side) case 3: // 3 planks, northern (west side) case 4: // 3 planks, middle (west side) case 5: // 3 planks, southern (west side) int logXCoord = index <= 2 ? (int)AGILITY_ARENA_OBJECTS[index][1] + 1 : (int)AGILITY_ARENA_OBJECTS[index][1] - 1; int logDirectionX = index <= 2 ? -7 : +7; CoordinateEvent plankObstaclesCoordinateEvent = new CoordinateEvent(p, new Location(logXCoord, (int)AGILITY_ARENA_OBJECTS[index][2], 3)); plankObstaclesCoordinateEvent.setAction(() => { bool running = p.getWalkingQueue().isRunToggled(); p.getWalkingQueue().setRunToggled(false); p.getWalkingQueue().resetWalkingQueue(); p.getPackets().clearMapFlag(); p.setTemporaryAttribute("unmovable", true); p.getAppearance().setWalkAnimation(155); p.getUpdateFlags().setAppearanceUpdateRequired(true); p.getWalkingQueue().forceWalk(logDirectionX, 0); Event plankObstaclesEvent = new Event(4300); plankObstaclesEvent.setAction(() => { plankObstaclesEvent.stop(); p.removeTemporaryAttribute("unmovable"); p.getAppearance().setWalkAnimation(-1); p.getUpdateFlags().setAppearanceUpdateRequired(true); p.getSkills().addXp(Skills.SKILL.AGILITY, (double)AGILITY_ARENA_OBJECTS[index][3]); p.getWalkingQueue().setRunToggled(running); }); Server.registerEvent(plankObstaclesEvent); }); Server.registerCoordinateEvent(plankObstaclesCoordinateEvent); break; case 6: //Handholds obstacle east of planks. case 7: //Handholds obstacle west of planks. int handHoldsDirectionX = 1; int handHoldsDirectionY = 1; if (index == 6) { handHoldsDirectionX = -1; handHoldsDirectionY = +1; } else if (index == 7) { handHoldsDirectionX = +1; handHoldsDirectionY = -1; } CoordinateEvent handholdsObstacleCoordinateEvent = new CoordinateEvent(p, new Location((int)AGILITY_ARENA_OBJECTS[index][1], (int)AGILITY_ARENA_OBJECTS[index][2], 3)); handholdsObstacleCoordinateEvent.setAction(() => { bool running = p.getWalkingQueue().isRunToggled(); p.getWalkingQueue().setRunToggled(false); p.getWalkingQueue().resetWalkingQueue(); p.getPackets().clearMapFlag(); p.setTemporaryAttribute("unmovable", true); p.setLastAnimation(new Animation(1121)); p.setFaceLocation(new Location(p.getLocation().getX(), p.getLocation().getY() + handHoldsDirectionY, 3)); Event handholdsObstaclesEvent = new Event(700); int handholdsObstaclesCounter = 0; handholdsObstaclesEvent.setAction(() => { p.setLastAnimation(new Animation(1122)); int regionX = p.getUpdateFlags().getLastRegion().getRegionX(); int regionY = p.getUpdateFlags().getLastRegion().getRegionY(); int lX = (p.getLocation().getX() - ((regionX - 6) * 8)); int lY = (p.getLocation().getY() - ((regionY - 6) * 8)); p.setForceMovement(new ForceMovement(lX, lY, lX + handHoldsDirectionX, lY, 0, 5, 0)); if (handholdsObstaclesCounter++ >= 7) { p.setLastAnimation(new Animation(65535)); handholdsObstaclesEvent.stop(); p.removeTemporaryAttribute("unmovable"); p.getSkills().addXp(Skills.SKILL.AGILITY, (double)AGILITY_ARENA_OBJECTS[index][3]); p.getWalkingQueue().setRunToggled(running); return; } Event teleportEvent = new Event(500); teleportEvent.setAction(() => { teleportEvent.stop(); p.teleport(new Location(p.getLocation().getX() + handHoldsDirectionX, p.getLocation().getY(), 3)); }); Server.registerEvent(teleportEvent); }); Server.registerEvent(handholdsObstaclesEvent); }); Server.registerCoordinateEvent(handholdsObstacleCoordinateEvent); break; } }
public static void showSquireDialogue(Player p, int status) { int newStatus = -1; p.getPackets().softCloseInterfaces(); if (p.getTemporaryAttribute("unmovable") != null) { return; } switch(status) { case 340: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("Could you take me back to Oo'glog please?", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 341; break; case 341: p.getPackets().sendNPCHead(3781, 241, 2); p.getPackets().modifyText("Squire", 241, 3); p.getPackets().modifyText("Certainly! Please visit Pest Control again soon.", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 342; break; case 342: travel(p, 2, true); break; } if (newStatus != -1) { p.setTemporaryAttribute("dialogue", newStatus); } }
public static bool useJewellery(Player p, int item, int slot, bool wearingItem) { if (item == 1704 || item == 10362) { // Blank amulets p.getPackets().sendMessage("This amulet has no charges remaining."); return true; } if (p.getTemporaryAttribute("unmovable") != null || p.getTemporaryAttribute("cantDoAnything") != null) { return true; } int index = getItemIndex(item); if (index == -1) { return false; } string s = index == 2 ? "ring" : "amulet"; p.getPackets().sendMessage("You rub the " + s + "..."); p.getPackets().closeInterfaces(); int interfaceId = index == 2 ? 230 : 235; int j = 2; p.getPackets().modifyText("Teleport to where?", interfaceId, 1); for (int i = 0; i < LOCATIONS[index].Length; i++) { p.getPackets().modifyText(LOCATIONS[index][i], interfaceId, (i + j)); } if (index == 2) { p.getPackets().sendChatboxInterface2(interfaceId); } else { p.getPackets().sendChatboxInterface2(interfaceId); } JewellerySlot js = new JewelleryTeleport.JewellerySlot(index, slot, wearingItem); p.setTemporaryAttribute("jewelleryTeleport", js); return true; }
public static void showArnorDialogue(Player p, int status) { int newStatus = -1; p.getPackets().softCloseInterfaces(); if (p.getTemporaryAttribute("unmovable") != null) { return; } switch(status) { case 370: p.getPackets().sendPlayerHead(64, 2); p.getPackets().modifyText(p.getLoginDetails().getUsername(), 64, 3); p.getPackets().modifyText("Could you take me back to Oo'glog please?", 64, 4); p.getPackets().animateInterface(9827, 64, 2); p.getPackets().sendChatboxInterface2(64); newStatus = 371; break; case 371: p.getPackets().sendNPCHead(1361, 241, 2); p.getPackets().modifyText("Arnor", 241, 3); p.getPackets().modifyText("Of course, follow me.", 241, 4); p.getPackets().animateInterface(9827, 241, 2); p.getPackets().sendChatboxInterface2(241); newStatus = 372; break; case 372: travel(p, 3, true); break; } if (newStatus != -1) { p.setTemporaryAttribute("dialogue", newStatus); } }
public void useOrb(Player p, int button) { if (p.getTemporaryAttribute("teleporting") != null) { return; } if (button == -1) { AreaEvent useOrbAreaEvent = new AreaEvent(p, 2398, 5171, 2400, 5173); useOrbAreaEvent.setAction(() => { p.getPackets().displayInventoryInterface(374); p.getAppearance().setInvisible(true); p.getUpdateFlags().setAppearanceUpdateRequired(true); p.setTemporaryAttribute("cantDoAnything", true); p.setTemporaryAttribute("unmovable", true); p.getPackets().setMinimapStatus(2); Event useOrbEvent = new Event(500); useOrbEvent.setAction(() => { useOrbEvent.stop(); int random = misc.random(4); p.teleport(new Location(ORB_COORDINATES[1][random], ORB_COORDINATES[2][random], 0)); }); Server.registerEvent(useOrbEvent); }); Server.registerCoordinateEvent(useOrbAreaEvent); } else { if (p.getTemporaryAttribute("cantDoAnything") != null) { if (button == 5) { Event useOrbTwoEvent = new Event(500); useOrbTwoEvent.setAction(() => { useOrbTwoEvent.stop(); p.getAppearance().setInvisible(false); p.getUpdateFlags().setAppearanceUpdateRequired(true); p.removeTemporaryAttribute("cantDoAnything"); p.removeTemporaryAttribute("unmovable"); teleportToWaitingRoom(p, false); p.getPackets().closeInterfaces(); p.getPackets().setMinimapStatus(0); p.getPackets().clearMapFlag(); }); Server.registerEvent(useOrbTwoEvent); return; } for (int i = 0; i < ORB_COORDINATES[0].Length; i++) { if (button == ORB_COORDINATES[0][i]) { int j = i; p.setTemporaryAttribute("teleporting", true); Event teleportToOrbEvent = new Event(500); teleportToOrbEvent.setAction(() => { teleportToOrbEvent.stop(); p.teleport(new Location(ORB_COORDINATES[1][j], ORB_COORDINATES[2][j], 0)); Teleport.resetTeleport(p); }); Server.registerEvent(teleportToOrbEvent); return; } } } } }
public static bool openCoffin(Player p, int objectId) { if (objectId != 6823 && objectId != 6771 && objectId != 6821 && objectId != 6773 && objectId != 6822 && objectId != 6772) { return false; } int cryptIndex = getCryptIndex(p); if (cryptIndex == -1) { return false; } if (p.getBarrowBrothersKilled(cryptIndex)) { p.getPackets().sendMessage("You don't find anything."); return true; } if (p.getBarrowTunnel() == cryptIndex){ p.getPackets().modifyText("You find a hidden tunnel, do you want to enter?", 210, 1); p.getPackets().sendChatboxInterface(210); p.setTemporaryAttribute("barrowTunnel", 1); return true; } foreach(Npc n in Server.getNpcList()) { if (n.getId() == BROTHER_ID[cryptIndex]) { if (n.getOwner().Equals(p)) { p.getPackets().sendMessage("You don't find anything."); return true; } } } Npc npc = new Npc(BROTHER_ID[cryptIndex]); npc.setLocation(p.getLocation()); npc.setEntityFocus(p.getClientIndex()); npc.setOwner(p); npc.setTarget(p); npc.setCombatTurns(npc.getAttackSpeed()); Server.getNpcList().Add(npc); p.getPackets().setArrowOnEntity(1, npc.getClientIndex()); return true; }