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;
	    }
Esempio n. 2
0
        /*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);
	    }
Esempio n. 10
0
        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);
	    }
Esempio n. 13
0
	    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;
        }
Esempio n. 20
0
	    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");
     }
 }
Esempio n. 23
0
	    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;
					    }
				    }
			    }
		    }
	    }
Esempio n. 33
0
	    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;
	    }