private void handleFourthClickNPC(Player player, Packet packet) { int npcIndex = packet.readUShort(); if (npcIndex < 0 || npcIndex > Constants.MAX_NPCS || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null) { return; } Npc npc = Server.getNpcList()[npcIndex]; if (npc == null || npc.isDestroyed()) { return; } Console.WriteLine("Fourth click NPC " + npc.getId()); SkillHandler.resetAllSkills(player); if (Slayer.openSlayerShop(player, npc)) { return; } switch (npc.getId()) { case 553: // Aubury HomeArea.interactWithAubury(player, npc, 3); break; } }
public static void HandleAbnormalityEnd(S_ABNORMALITY_END p) { AbnormalityManager.EndAbnormality(p.TargetId, p.AbnormalityId); if (!SettingsManager.ClassWindowSettings.Enabled) { return; } switch (SessionManager.CurrentPlayer.Class) { case Class.Archer: Archer.CheckFocusEnd(p); Archer.CheckSniperEyeEnd(p); break; case Class.Warrior: Warrior.CheckBuffEnd(p); break; case Class.Lancer: Lancer.CheckLineHeldEnd(p); Lancer.CheckArushEnd(p); Lancer.CheckGshoutEnd(p); break; case Class.Mystic: Mystic.CheckBuffEnd(p); break; case Class.Brawler: Brawler.CheckBrawlerAbnormalEnd(p); break; case Class.Ninja: Ninja.CheckFocusEnd(p); break; case Class.Priest: Priest.CheckBuffEnd(p); break; case Class.Sorcerer: Sorcerer.CheckBuffEnd(p); break; case Class.Reaper: Reaper.CheckBuffEnd(p); break; case Class.Slayer: Slayer.CheckBuffEnd(p); break; case Class.Berserker: Berserker.CheckBuffEnd(p); break; } }
private void Slayer2_Click(object sender, RoutedEventArgs e) { // MessageBox.Show("Slayer"); this.Hide(); Slayer slayer = new Slayer(); slayer.ShowDialog(); this.Show(); }
public static void HandleAbnormalityRefresh(S_ABNORMALITY_REFRESH p) { AbnormalityManager.BeginAbnormality(p.AbnormalityId, p.TargetId, p.Duration, p.Stacks); if (!SettingsManager.ClassWindowSettings.Enabled) { return; } switch (SessionManager.CurrentPlayer.Class) { case Class.Warrior: Warrior.CheckBuff(p); break; case Class.Archer: Archer.CheckFocus(p); Archer.CheckFocusX(p); Archer.CheckSniperEye(p); break; case Class.Lancer: Lancer.CheckLineHeld(p); break; case Class.Priest: Priest.CheckBuff(p); break; case Class.Mystic: Mystic.CheckBuff(p); break; case Class.Sorcerer: Sorcerer.CheckBuff(p); break; case Class.Reaper: Reaper.CheckBuff(p); break; case Class.Slayer: Slayer.CheckBuff(p); break; case Class.Berserker: Berserker.CheckBuff(p); break; case Class.Brawler: Brawler.CheckBrawlerAbnormal(p); break; } }
public override void Update(GameTime gameTime) { if (Slayer != null) { if (Health == 0) { Slayer.Warn(EnvironmentEvent.TreeCutted); } else { Health--; } } CalculateWind(gameTime); base.Update(gameTime); }
private void handleFifthClickNPC(Player player, Packet packet) { int npcIndex = packet.readLEShort(); if (npcIndex < 0 || npcIndex > Constants.MAX_NPCS || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null) { return; } Npc npc = Server.getNpcList()[npcIndex]; if (npc == null || npc.isDestroyed()) { return; } Console.WriteLine("Fifth click NPC " + npc.getId()); SkillHandler.resetAllSkills(player); if (Slayer.openPointsInterface(player, npc)) { return; } }
public static void HandleAbnormalityBegin(S_ABNORMALITY_BEGIN p) { AbnormalityManager.BeginAbnormality(p.AbnormalityId, p.TargetId, p.Duration, p.Stacks); if (!SettingsManager.ClassWindowSettings.Enabled) { return; } switch (SessionManager.CurrentPlayer.Class) { case Class.Mystic: Mystic.CheckHurricane(p); Mystic.CheckBuff(p); break; case Class.Warrior: Warrior.CheckBuff(p); break; case Class.Valkyrie: Valkyrie.CheckRagnarok(p); break; case Class.Archer: Archer.CheckFocus(p); Archer.CheckFocusX(p); Archer.CheckSniperEye(p); break; case Class.Lancer: Lancer.CheckArush(p); Lancer.CheckGshout(p); Lancer.CheckLineHeld(p); break; case Class.Priest: Priest.CheckBuff(p); break; case Class.Brawler: Brawler.CheckBrawlerAbnormal(p); break; case Class.Ninja: Ninja.CheckFocus(p); break; case Class.Sorcerer: Sorcerer.CheckBuff(p); break; case Class.Reaper: Reaper.CheckBuff(p); break; case Class.Slayer: Slayer.CheckBuff(p); break; case Class.Berserker: Berserker.CheckBuff(p); break; } }
private void handleSecondClickNPC(Player player, Packet packet) { int npcIndex = packet.readLEShort(); if (npcIndex < 0 || npcIndex > Constants.MAX_NPCS || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null) { return; } Npc npc = Server.getNpcList()[npcIndex]; if (npc == null || npc.isDestroyed()) { return; } Console.WriteLine("Second click NPC " + npc.getId()); SkillHandler.resetAllSkills(player); if (Fishing.wantToFish(player, npc, false)) { return; } else if (Slayer.talkToMaster(player, npc)) { return; } else if (AgilityArena.dialogue(player, npc, false)) { return; } else if (TzHaar.interactTzhaarNPC(player, npc, 1)) { return; } else if (WarriorGuild.talkToWarriorGuildNPC(player, npc, 1)) { return; } else if (BoatOptions.interactWithBoatNPC(player, npc)) { return; } switch (npc.getId()) { case 519: // Bob BrokenBarrows.talkToBob(player, npc, -1, 1); break; case 553: // Aubury HomeArea.interactWithAubury(player, npc, 1); break; case 1862: // Ali morisanne if (npc.getLocation().inArea(2319, 3177, 2321, 3182)) { // Home Ali HomeArea.interactWithAliMorissaae(player, npc); break; } else if (npc.getLocation().inArea(3311, 3198, 3316, 3199)) { // Al Kharid Ali AlKharid.interactWithAliMorissaae(player, npc); break; } break; } }
public DeathEvent(Entity entity) : base(entity is Player ? 6000 : (((Npc)entity).getDeathTime())) { this.entity = entity; this.firstNpcStage = false; this.entity.setEntityFocus(65535); this.entity.setLastAnimation(new Animation(entity.getDeathAnimation(), 50)); this.lastAttacker = entity.getAttacker() == null ? null : entity.getAttacker(); entity.setPoisonAmount(0); if (entity.getFollow() != null) { entity.getFollow().setFollowing(null); } if (entity.getTarget() != null) { if (entity.getTarget().getAttacker() == null || entity.getTarget().getAttacker().Equals(entity)) { Combat.resetCombat(entity.getTarget(), 1); } } if (entity.getAttacker() != null) { if (entity.getAttacker().getTarget() == null || entity.getAttacker().getTarget().Equals(entity)) { Combat.resetCombat(entity.getAttacker(), 1); } } entity.setTarget(null); entity.setAttacker(null); if (entity.getKiller() != null) { if (entity is Npc) { if (((Npc)this.entity).getId() >= 2025 && ((Npc)this.entity).getId() <= 2030) { Barrows.killBrother((Player)entity.getKiller(), ((Npc)this.entity).getId()); } if (entity.getKiller() is Player) { Slayer.checkSlayerKill((Player)entity.getKiller(), (Npc)entity); } } } if (entity is Player) { if (((Player)entity).getPrayers().getHeadIcon() == PrayerData.PrayerHeadIcon.RETRIBUTION) { doRedemption((Player)entity); } ((Player)entity).setDistanceEvent(null); ((Player)entity).getWalkingQueue().resetWalkingQueue(); ((Player)entity).getPackets().clearMapFlag(); ((Player)entity).removeTemporaryAttribute("autoCasting"); if (((Player)entity).getDuel() == null) { if (!Location.inFightPits(entity.getLocation()) && !Location.inFightCave(entity.getLocation())) { ((Player)entity).getPackets().sendMessage("Oh dear, you are dead!"); } else { ((Player)entity).getPackets().sendMessage("You have been defeated!"); } } ((Player)entity).setTemporaryAttribute("unmovable", true); if (((Player)entity).getDuel() != null) { ((Player)entity).getDuel().getPlayer2().setTemporaryAttribute("unmovable", true); } SkillHandler.resetAllSkills((Player)entity); if ((entity.getKiller() is Player)) { Player killer = (Player)entity.getKiller(); if (killer.getDuel() == null) { int id = misc.random(DEATH_MESSAGES.Length - 1); string deathMessage = DEATH_MESSAGES[id]; if (id <= 4) { killer.getPackets().sendMessage(deathMessage + " " + ((Player)entity).getLoginDetails().getUsername() + "."); } else { killer.getPackets().sendMessage(((Player)entity).getLoginDetails().getUsername() + " " + deathMessage + "."); } } else { killer.setPoisonAmount(0); } } } }
public HfDied(List <Property> properties, World world) : base(properties, world) { ItemId = -1; ShooterItemId = -1; SlayerItemId = -1; SlayerShooterItemId = -1; SlayerRace = "UNKNOWN"; SlayerCaste = "UNKNOWN"; Cause = DeathCause.Unknown; foreach (Property property in properties) { switch (property.Name) { case "slayer_item_id": SlayerItemId = Convert.ToInt32(property.Value); break; case "slayer_shooter_item_id": SlayerShooterItemId = Convert.ToInt32(property.Value); break; case "cause": switch (property.Value) { case "hunger": Cause = DeathCause.Starved; break; case "struck": Cause = DeathCause.Struck; break; case "murdered": Cause = DeathCause.Murdered; break; case "old age": Cause = DeathCause.OldAge; break; case "dragonfire": Cause = DeathCause.DragonsFire; break; case "shot": Cause = DeathCause.Shot; break; case "fire": Cause = DeathCause.Burned; break; case "thirst": Cause = DeathCause.Thirst; break; case "air": Cause = DeathCause.Suffocated; break; case "blood": Cause = DeathCause.Bled; break; case "cold": Cause = DeathCause.Cold; break; case "crushed bridge": Cause = DeathCause.CrushedByABridge; break; case "drown": Cause = DeathCause.Drowned; break; case "infection": Cause = DeathCause.Infection; break; case "obstacle": Cause = DeathCause.CollidedWithAnObstacle; break; case "put to rest": Cause = DeathCause.PutToRest; break; case "quitdead": Cause = DeathCause.StarvedQuit; break; case "trap": Cause = DeathCause.Trap; break; case "crushed": Cause = DeathCause.CaveIn; break; case "cage blasted": Cause = DeathCause.InACage; break; case "freezing water": Cause = DeathCause.FrozenInWater; break; case "exec generic": Cause = DeathCause.ExecutedGeneric; break; case "exec fed to beasts": Cause = DeathCause.ExecutedFedToBeasts; break; case "exec burned alive": Cause = DeathCause.ExecutedBurnedAlive; break; case "exec crucified": Cause = DeathCause.ExecutedCrucified; break; case "exec drowned": Cause = DeathCause.ExecutedDrowned; break; case "exec hacked to pieces": Cause = DeathCause.ExecutedHackedToPieces; break; case "exec buried alive": Cause = DeathCause.ExecutedBuriedAlive; break; case "exec beheaded": Cause = DeathCause.ExecutedBeheaded; break; case "blood drained": Cause = DeathCause.DrainedBlood; break; case "collapsed": Cause = DeathCause.Collapsed; break; case "scared to death": Cause = DeathCause.ScaredToDeath; break; case "scuttled": Cause = DeathCause.Scuttled; break; case "flying object": Cause = DeathCause.FlyingObject; break; case "slaughtered": Cause = DeathCause.Slaughtered; break; case "melt": Cause = DeathCause.Melted; break; case "spikes": Cause = DeathCause.Spikes; break; case "heat": Cause = DeathCause.Heat; break; case "vanish": Cause = DeathCause.Vanish; break; case "cooling magma": Cause = DeathCause.CoolingMagma; break; case "vehicle": Cause = DeathCause.Vehicle; break; case "suicide drowned": Cause = DeathCause.SuicideDrowned; break; case "suicide leaping": Cause = DeathCause.SuicideLeaping; break; case "chasm": Cause = DeathCause.Chasm; break; default: Cause = DeathCause.Unknown; UnknownCause = property.Value; world.ParsingErrors.Report("|==> Events 'hf died'/ \nUnknown Death Cause: " + UnknownCause); break; } break; case "slayer_race": SlayerRace = Formatting.FormatRace(property.Value); break; case "slayer_caste": SlayerCaste = property.Value; break; case "hfid": HistoricalFigure = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break; case "slayer_hfid": Slayer = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break; case "site_id": Site = world.GetSite(Convert.ToInt32(property.Value)); break; case "subregion_id": Region = world.GetRegion(Convert.ToInt32(property.Value)); break; case "feature_layer_id": UndergroundRegion = world.GetUndergroundRegion(Convert.ToInt32(property.Value)); break; case "victim_hf": if (HistoricalFigure == null) { HistoricalFigure = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); } else { property.Known = true; } break; case "slayer_hf": if (Slayer == null) { Slayer = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); } else { property.Known = true; } break; case "site": if (Site == null) { Site = world.GetSite(Convert.ToInt32(property.Value)); } else { property.Known = true; } break; case "death_cause": property.Known = true; break; case "item": ItemId = Convert.ToInt32(property.Value); break; case "item_type": ItemType = property.Value; break; case "item_subtype": ItemSubType = property.Value; break; case "mat": ItemMaterial = property.Value; break; case "artifact_id": Artifact = world.GetArtifact(Convert.ToInt32(property.Value)); break; case "shooter_item": ShooterItemId = Convert.ToInt32(property.Value); break; case "shooter_item_type": ShooterItemType = property.Value; break; case "shooter_item_subtype": ShooterItemSubType = property.Value; break; case "shooter_mat": ShooterItemMaterial = property.Value; break; case "shooter_artifact_id": ShooterArtifact = world.GetArtifact(Convert.ToInt32(property.Value)); break; } } HistoricalFigure.AddEvent(this); if (HistoricalFigure.DeathCause == DeathCause.None) { HistoricalFigure.DeathCause = Cause; } if (Slayer != null) { if (HistoricalFigure != Slayer) { Slayer.AddEvent(this); } Slayer.NotableKills.Add(this); } Site.AddEvent(this); Region.AddEvent(this); UndergroundRegion.AddEvent(this); Artifact.AddEvent(this); }
private string GetDeathString(bool link = true, DwarfObject pov = null) { string eventString = ""; eventString += HistoricalFigure.ToLink(link, pov, this) + " "; string deathString = ""; if (Slayer != null || SlayerRace != "UNKNOWN" && SlayerRace != "-1") { string slayerString; if (Slayer == null) { slayerString = " a " + SlayerRace.ToLower(); } else { slayerString = Slayer.ToLink(link, pov, this); } switch (Cause) { case DeathCause.DragonsFire: deathString = "burned up in " + slayerString + "'s dragon fire"; break; case DeathCause.Burned: deathString = "was burned to death by " + slayerString + "'s fire"; break; case DeathCause.Murdered: deathString = "was murdered by " + slayerString; break; case DeathCause.Shot: deathString = "was shot and killed by " + slayerString; break; case DeathCause.Struck: deathString = "was struck down by " + slayerString; break; case DeathCause.ExecutedGeneric: deathString = "was executed by " + slayerString; break; case DeathCause.ExecutedBuriedAlive: deathString = "was buried alive by " + slayerString; break; case DeathCause.ExecutedBurnedAlive: deathString = "was burned alive by " + slayerString; break; case DeathCause.ExecutedCrucified: deathString = "was crucified by " + slayerString; break; case DeathCause.ExecutedDrowned: deathString = "was drowned by " + slayerString; break; case DeathCause.ExecutedFedToBeasts: deathString = "was fed to beasts by " + slayerString; break; case DeathCause.ExecutedHackedToPieces: deathString = "was hacked to pieces by " + slayerString; break; case DeathCause.ExecutedBeheaded: deathString = "was beheaded by " + slayerString; break; case DeathCause.DrainedBlood: deathString = "was drained of blood by " + slayerString; break; case DeathCause.Collapsed: deathString = "collapsed, struck down by " + slayerString; break; case DeathCause.ScaredToDeath: deathString = " was scared to death by " + slayerString; break; case DeathCause.Bled: deathString = " bled to death, slain by " + slayerString; break; case DeathCause.Spikes: deathString = " was impaled by " + slayerString; break; default: deathString += ", slain by " + slayerString; break; } } else { switch (Cause) { case DeathCause.Thirst: deathString = "died of thirst"; break; case DeathCause.OldAge: deathString = "died of old age"; break; case DeathCause.Suffocated: deathString = "suffocated"; break; case DeathCause.Bled: deathString = "bled to death"; break; case DeathCause.Cold: deathString = "froze to death"; break; case DeathCause.CrushedByABridge: deathString = "was crushed by a drawbridge"; break; case DeathCause.Drowned: deathString = "drowned"; break; case DeathCause.Starved: deathString = "starved to death"; break; case DeathCause.Infection: deathString = "succumbed to infection"; break; case DeathCause.CollidedWithAnObstacle: deathString = "died after colliding with an obstacle"; break; case DeathCause.PutToRest: deathString = "was put to rest"; break; case DeathCause.StarvedQuit: deathString = "starved"; break; case DeathCause.Trap: deathString = "was killed by a trap"; break; case DeathCause.CaveIn: deathString = "was crushed under a collapsing ceiling"; break; case DeathCause.InACage: deathString = "died in a cage"; break; case DeathCause.FrozenInWater: deathString = "was incased in ice"; break; case DeathCause.Scuttled: deathString = "was scuttled"; break; case DeathCause.Slaughtered: deathString = "was slaughtered"; break; case DeathCause.FlyingObject: deathString = "was killed by a flying object"; break; case DeathCause.ExecutedGeneric: deathString = "was executed"; break; case DeathCause.ExecutedBuriedAlive: deathString = "was buried alive"; break; case DeathCause.ExecutedBurnedAlive: deathString = "was burned alive"; break; case DeathCause.ExecutedCrucified: deathString = "was crucified"; break; case DeathCause.ExecutedDrowned: deathString = "was drowned"; break; case DeathCause.ExecutedFedToBeasts: deathString = "was fed to beasts"; break; case DeathCause.ExecutedHackedToPieces: deathString = "was hacked to pieces"; break; case DeathCause.ExecutedBeheaded: deathString = "was beheaded"; break; case DeathCause.Melted: deathString = "melted"; break; case DeathCause.Spikes: deathString = "was impaled"; break; case DeathCause.Heat: deathString = "died in the heat"; break; case DeathCause.Vanish: deathString = "vanished"; break; case DeathCause.CoolingMagma: deathString = "was encased in cooling magma"; break; case DeathCause.Vehicle: deathString = "was killed by a vehicle"; break; case DeathCause.SuicideDrowned: deathString = "drowned "; switch (HistoricalFigure.Caste) { case "Female": deathString += "herself "; break; case "Male": deathString += "himself "; break; default: deathString += "itself "; break; } break; case DeathCause.SuicideLeaping: deathString = "leapt from a great height"; break; case DeathCause.Chasm: deathString = "fell into a deep chasm"; break; case DeathCause.Unknown: deathString = "died (" + UnknownCause + ")"; break; } } eventString += deathString; if (ItemId >= 0) { if (Artifact != null) { eventString += " with " + Artifact.ToLink(link, pov, this); } else if (!string.IsNullOrWhiteSpace(ItemType) || !string.IsNullOrWhiteSpace(ItemSubType)) { eventString += " with a "; eventString += !string.IsNullOrWhiteSpace(ItemMaterial) ? ItemMaterial + " " : " "; eventString += !string.IsNullOrWhiteSpace(ItemSubType) ? ItemSubType : ItemType; } } else if (ShooterItemId >= 0) { if (ShooterArtifact != null) { eventString += " (shot) with " + ShooterArtifact.ToLink(link, pov, this); } else if (!string.IsNullOrWhiteSpace(ShooterItemType) || !string.IsNullOrWhiteSpace(ShooterItemSubType)) { eventString += " (shot) with a "; eventString += !string.IsNullOrWhiteSpace(ShooterItemMaterial) ? ShooterItemMaterial + " " : " "; eventString += !string.IsNullOrWhiteSpace(ShooterItemSubType) ? ShooterItemSubType : ShooterItemType; } } else if (SlayerItemId >= 0) { eventString += " with a (" + SlayerItemId + ")"; } else if (SlayerShooterItemId >= 0) { eventString += " (shot) with a (" + SlayerShooterItemId + ")"; } if (Site != null) { eventString += " in " + Site.ToLink(link, pov, this); } else if (Region != null) { eventString += " in " + Region.ToLink(link, pov, this); } else if (UndergroundRegion != null) { eventString += " in " + UndergroundRegion.ToLink(link, pov, this); } return(eventString); }
private void handleInvenClickItem(Player player, Packet packet) { int slot = packet.readLEShortA(); int item = packet.readShortA(); int childId = packet.readLEShort(); int interfaceId = packet.readLEShort(); if (slot > 28 || slot < 0 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null) { return; } SkillHandler.resetAllSkills(player); if (player.getInventory().getItemInSlot(slot) == item) { player.getPackets().closeInterfaces(); if (Consumables.isEating(player, player.getInventory().getItemInSlot(slot), slot)) { return; } else if (Herblore.idHerb(player, player.getInventory().getItemInSlot(slot))) { return; } else if (RuneCraft.fillPouch(player, (RuneCraftData.POUCHES)player.getInventory().getItemInSlot(slot))) { return; } else if (Prayer.wantToBury(player, player.getInventory().getItemInSlot(slot), slot)) { return; } else if (Teleport.useTeletab(player, player.getInventory().getItemInSlot(slot), slot)) { return; } else if (FarmingAmulet.showOptions(player, player.getInventory().getItemInSlot(slot))) { return; } switch (item) { case 4155: // Slayer gem Slayer.doDialogue(player, 1051); break; case 6: // Dwarf multicannon if (player.getCannon() != null) { player.getPackets().sendMessage("You already have a cannon set up!"); break; } player.setCannon(new DwarfCannon(player)); break; case 5073: // Nest with seeds. case 5074: // Nest with jewellery. Woodcutting.randomNestItem(player, item); break; case 952: // Spade player.setLastAnimation(new Animation(830)); if (Barrows.enterCrypt(player)) { player.getPackets().sendMessage("You've broken into a crypt!"); break; } player.getPackets().sendMessage("You find nothing."); break; } } }