コード例 #1
0
ファイル: NPCInteract.cs プロジェクト: Rut0/RSPS-CSharp
        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;
            }
        }
コード例 #2
0
        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;
            }
        }
コード例 #3
0
        private void Slayer2_Click(object sender, RoutedEventArgs e)
        {
            // MessageBox.Show("Slayer");
            this.Hide();
            Slayer slayer = new Slayer();

            slayer.ShowDialog();
            this.Show();
        }
コード例 #4
0
        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;
            }
        }
コード例 #5
0
ファイル: Tree.cs プロジェクト: jpgdev/TownSimulator
        public override void Update(GameTime gameTime)
        {
            if (Slayer != null)
            {
                if (Health == 0)
                {
                    Slayer.Warn(EnvironmentEvent.TreeCutted);
                }
                else
                {
                    Health--;
                }
            }

            CalculateWind(gameTime);
            base.Update(gameTime);
        }
コード例 #6
0
ファイル: NPCInteract.cs プロジェクト: Rut0/RSPS-CSharp
        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;
            }
        }
コード例 #7
0
        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;
            }
        }
コード例 #8
0
ファイル: NPCInteract.cs プロジェクト: Rut0/RSPS-CSharp
        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;
            }
        }
コード例 #9
0
 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);
             }
         }
     }
 }
コード例 #10
0
ファイル: HFDied.cs プロジェクト: piperlolot/LegendsViewer
        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);
        }
コード例 #11
0
ファイル: HFDied.cs プロジェクト: piperlolot/LegendsViewer
        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);
        }
コード例 #12
0
        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;
                }
            }
        }