Exemple #1
0
        private static void WorldItem(PacketReader p, PacketHandlerEventArgs args)
        {
            Item item = World.FindItem(p.ReadUInt32() & 0x7FFFFFFF);

            if (item == null || item.ItemID != 0x2006 || item.DistanceTo(World.Player) > 2 ||
                items.Find(c => c.ItemID == item.Amount) == null)
            {
                return;
            }

            Item carver = World.FindItem(ConfigEx.GetElement <uint>(0, "BoneCarver"));

            carved.RemoveAll(i => !World.Items.ContainsKey(i));
            if (carver != null && !carved.Contains(item.Serial))
            {
                Targeting.CancelTarget();
                Targeting.QueuedTarget = () =>
                {
                    Targeting.Target(item);
                    carved.Add(item.Serial);
                    return(true);
                };
                WorldEx.SendToServer(new DoubleClick(carver.Serial));
            }
        }
Exemple #2
0
        private static void UseKey()
        {
            lock (list)
            {
                Item item = World.Player.Backpack.FindItem(i => IsKey(i) && !IsLockpick(i) && !list.Contains(i.Serial));
                if (item == null && list.Count > 0)
                {
                    list.Clear();
                    item = World.Player.Backpack.FindItem(i => IsKey(i) && !IsLockpick(i) && !list.Contains(i.Serial));
                }
                if (item == null)
                {
                    item = World.Player.Backpack.FindItem(i => IsKey(i) && !list.Contains(i.Serial));
                }

                if (item != null)
                {
                    door = WorldEx.FindItem(i => i.IsDoor && i.DistanceTo(World.Player) <= 1);
                    if (door != null)
                    {
                        timer.Start();
                    }
                    else
                    {
                        Item item2 = WorldEx.FindItemsG(i => IsSwitch(i) && i.DistanceTo(World.Player) < 3)
                                     .OrderBy(i => Utility.DistanceSqrt(i.Position, World.Player.Position))
                                     .FirstOrDefault();
                        if (item2 != null)
                        {
                            item = item2;
                        }
                    }

                    if (!IsSwitch(item))
                    {
                        list.Add(item.Serial);
                        list.RemoveAll(i => !World.Items.ContainsKey(i));
                    }

                    WorldEx.SendToServer(new DoubleClick(item.Serial));
                }
                else
                {
                    item = WorldEx.FindItemsG(i => IsSwitch(i) && i.DistanceTo(World.Player) < 3)
                           .OrderBy(i => Utility.DistanceSqrt(i.Position, World.Player.Position))
                           .FirstOrDefault();

                    if (item != null)
                    {
                        WorldEx.SendToServer(new DoubleClick(item.Serial));
                    }
                    else
                    {
                        WorldEx.SendMessage("No key found.");
                    }
                }
            }
        }
Exemple #3
0
 private static void Event_PlayerMoved()
 {
     foreach (Item item in WorldEx.FindItems(i => i.ItemID == 0x2006 && i.DistanceTo(World.Player) < 3 && !list.Contains(i.Serial)))
     {
         list.Add(item.Serial);
         list.RemoveAll(i => !World.Items.ContainsKey(i));
         WorldEx.SendToServer(new DoubleClick(item.Serial));
     }
 }
Exemple #4
0
 public override bool PerformWait()
 {
     if (Utility.Distance(position, World.Player.Position) < 5)
     {
         return(true);
     }
     WorldEx.SendToServer(stop);
     return(false);
 }
Exemple #5
0
        private static void UseItem(ItemID itemID, ushort hue)
        {
            Item item = World.Player.Backpack.FindItem(itemID, hue);

            if (item != null)
            {
                WorldEx.SendToServer(new DoubleClick(item.Serial));
            }
        }
Exemple #6
0
 public override bool Perform()
 {
     if (wait.Last != 503172)
     {
         return(true);
     }
     position = World.Player.Position;
     WorldEx.SendToServer(forward);
     return(!PerformWait());
 }
Exemple #7
0
            public override bool Perform()
            {
                Mobile closest = TargetingEx.GetClosest(3, 4);

                if (closest != null)
                {
                    WorldEx.SendToServer(new AttackReq(closest.Serial));
                }
                return(true);
            }
Exemple #8
0
            public override bool Perform()
            {
                Item item = World.FindItem(ConfigEx.GetElement <uint>(0, "BoneCarver"));

                if (item != null)
                {
                    Targeting.CancelTarget();
                    WorldEx.SendToServer(new DoubleClick(item.Serial));
                }
                return(true);
            }
Exemple #9
0
        private StatusBar(Serial serial)
        {
            this.serial              = serial;
            table.Padding            = new Padding(3);
            table.Controls.Add(barHP = new Bar(Color.Red));
            if (serial == Serial.MinusOne || PacketHandlers.Party.Contains(serial))
            {
                table.Controls.Add(barMana    = new Bar(Color.Blue));
                table.Controls.Add(barStamina = new Bar(Color.DarkGoldenrod));
                if (PacketHandlers.Party.Contains(serial))
                {
                    barMana.Text = barStamina.Text = "-";
                }
            }

            if (serial == Serial.MinusOne)
            {
                if (ConfigEx.GetAttribute(false, "ex", "Status"))
                {
                    table.ColumnCount            = 2;
                    table.Controls.Add(labelFoll = new LabelEx("-", margin: 0)
                    {
                        ForeColor = Color.White
                    });
                    table.Controls.Add(labelWeight = new LabelEx("-", margin: 0)
                    {
                        ForeColor = Color.White
                    });
                    table.Controls.Add(labelBands = new LabelEx("-", margin: 0)
                    {
                        ForeColor = Color.White
                    });
                    table.Controls.SetChildIndex(labelFoll, 1);
                    table.Controls.SetChildIndex(labelWeight, 3);
                    table.Controls.SetChildIndex(labelBands, 5);
                    Bandages.Changed += Bandages_Changed;
                }
                ConfigEx.SetAttribute(true, "enabled", "Status");
                BackColor = Color.Purple;
                Location  = new Point(ConfigEx.GetAttribute(Location.X, "locX", "Status"),
                                      ConfigEx.GetAttribute(Location.Y, "locY", "Status"));
                UpdateStats();
            }
            else
            {
                Mobile mobile = World.FindMobile(serial);
                if (mobile != null)
                {
                    WorldEx.SendToServer(new StatusQuery(mobile));
                }
            }
            Event.MobileUpdated += WorldEx_MobileUpdated;
        }
Exemple #10
0
 private static void OnCommand()
 {
     if (responseID != 0)
     {
         ClientCommunication.SendToClient(new CloseGump(gumpID));
         WorldEx.SendToServer(new GumpResponse(responseID, gumpID, 2, new int[0], new GumpTextEntry[0]));
     }
     else
     {
         WorldEx.SendMessage("You are not wielding the Spectral Scimitar!");
     }
 }
Exemple #11
0
 private static void OnTarget(PacketReader p, PacketHandlerEventArgs args)
 {
     if (door != null)
     {
         WorldEx.SendToServer(new TargetResponse(new TargetInfo {
             Serial = door.Serial, X = door.Position.X, Y = door.Position.Y, Z = door.Position.Z, Gfx = door.ItemID
         }));
         WorldEx.SendToServer(new DoubleClick(door.Serial));
         args.Block = true;
     }
     door = null;
 }
Exemple #12
0
        private static void Drink()
        {
            Item item = !PositionCheck.InKhaldun && !PositionCheck.InFire && !PositionCheck.InWisp ?
                        World.Player.Backpack.FindItem(0x0F06, 0x000C) :
                        WorldEx.FindItemG(0x37B9, 0x098F, i => i.DistanceTo(World.Player) <= GetOrbDistance() + 1) ??
                        WorldEx.FindItemG(0x3728, 0x0A58, i => i.DistanceTo(World.Player) <= GetOrbDistance() + 1) ??
                        World.Player.Backpack.FindItem((ItemID)(World.Player.Poisoned ? 0x0F07 : 0x0F0C), 0x0000);

            if (item != null)
            {
                WorldEx.SendToServer(new DoubleClick(item.Serial));
            }
        }
Exemple #13
0
        private static void ContainerContentUpdate(PacketReader p, PacketHandlerEventArgs args)
        {
            Serial serial = p.ReadUInt32();

            p.ReadUInt16();
            p.Seek(7, SeekOrigin.Current);
            Serial container = p.ReadUInt32();

            if (container == World.Player.Backpack.Serial && serial == lastSerial && (Environment.TickCount - lastTime) < 5000)
            {
                Timer.DelayedCallback(TimeSpan.FromSeconds(0.5), () => WorldEx.SendToServer(new DoubleClick(serial))).Start();
            }
        }
Exemple #14
0
 protected override void OnTick()
 {
     if (World.Player.IsGhost || !World.Player.Visible)
     {
         WorldEx.SendToClient(new ToggleMove(403, false));
         Stop();
     }
     else if (!enabled || i++ > 5)
     {
         WorldEx.SendToServer(new CastSpellFromMacro(403));
         i = 0;
     }
 }
Exemple #15
0
        private static void ClientDoubleClick(PacketReader p, PacketHandlerEventArgs args)
        {
            Serial serial = p.ReadUInt32();

            if (items.ContainsKey(serial))
            {
                args.Block = true;
                WorldEx.SendToServer(new DoubleClick(items[serial].List.Last()));
            }
            else
            {
                args.Block = PacketHandler.ProcessViewers(clientDoubleClick, p);
            }
        }
Exemple #16
0
        private static void Bank(string[] args)
        {
            Item item = World.Player.Backpack.FindItem(0x1F1C, 0x0489) ??
                        WorldEx.FindItemG(0x1F1C, 0x0489, i => i.DistanceTo(World.Player) < 5);

            if (item != null)
            {
                WorldEx.SendToServer(new DoubleClick(item.Serial));
            }
            else
            {
                WorldEx.SendMessage("No bank crystal found.");
            }
        }
Exemple #17
0
            public override bool Perform()
            {
                Targeting.CancelTarget();
                Item item = World.Player.GetItemOnLayer(Layer.RightHand);

                if (item == null || item.ItemID != 0x0DC0)
                {
                    item = World.Player.Backpack.FindItem(0x0DC0);
                }
                if (item != null)
                {
                    WorldEx.SendToServer(new DoubleClick(item.Serial));
                }
                wait.Recieved = false;
                return(true);
            }
Exemple #18
0
        private static void Carve(Item item)
        {
            Item carver = World.FindItem(ConfigEx.GetElement <uint>(0, "BoneCarver"));

            carved.RemoveAll(i => !World.Items.ContainsKey(i));
            if (carver != null && !carved.Contains(item.Serial))
            {
                Targeting.CancelTarget();
                Targeting.QueuedTarget = () =>
                {
                    Targeting.Target(item);
                    carved.Add(item.Serial);
                    return(true);
                };
                WorldEx.SendToServer(new DoubleClick(carver.Serial));
            }
        }
Exemple #19
0
        private static void ContainerContentUpdate(PacketReader p, PacketHandlerEventArgs args)
        {
            Serial serial  = p.ReadUInt32();
            ushort graphic = p.ReadUInt16();

            p.Seek(7, SeekOrigin.Current);
            Serial container = p.ReadUInt32();

            if (serial == DragDropManager.m_Holding)
            {
                return;
            }
            if (Bag != 0 && container == bag && (graphic == 0x0E76 || graphic == 0x0ECF))
            {
                WorldEx.SendToServer(new DoubleClick(serial));
            }
        }
Exemple #20
0
 private static void BuffIcons_Added(BuffIcon buffId, BuffInfo info)
 {
     if (buffId == BuffIcon.BloodOathCurse)
     {
         Mobile mobile = World.FindMobile(lastSerial);
         if (mobile == null)
         {
             return;
         }
         lastOath = lastSerial;
         if (Utility.Distance(mobile.Position, World.Player.Position) < 2)
         {
             WorldEx.SendToServer(new SetWarMode(true));
             WorldEx.SendToServer(new SetWarMode(false));
             WorldEx.OverHeadMessage("!Blood Oath!", 0x0017);
         }
     }
 }
Exemple #21
0
        private static void OnNear(string[] args)
        {
            Serial closest = Serial.Zero;

            foreach (Item sos in World.Player.Backpack.FindItems(0x14ED))
            {
                SOSInfo info;
                if (list.TryGetValue(sos.Serial, out info) && (!list.ContainsKey(closest) || info.Distance(World.Player.Position) < list[closest].Distance(World.Player.Position)))
                {
                    closest = sos.Serial;
                }
            }

            if (World.Items.ContainsKey(closest))
            {
                WorldEx.SendToServer(new DoubleClick(closest));
            }
        }
Exemple #22
0
 private static void Event_MobileUpdated(Serial serial)
 {
     if (manaReq != -1 && World.Player.Mana >= manaReq && serial == World.Player.Serial)
     {
         manaReq = -1;
         if (Current == MoveType.PrimaryAbility)
         {
             WorldEx.SendToServer(new SetAbility(WeaponAbilities.Primary));
         }
         else if (Current == MoveType.SecondaryAbility)
         {
             WorldEx.SendToServer(new SetAbility(WeaponAbilities.Secondary));
         }
         else if (Current != MoveType.None)
         {
             new ExtCastSpellAction((int)Current, Serial.Zero).Perform();
         }
     }
 }
Exemple #23
0
        private static void OnServer(PacketReader p, PacketHandlerEventArgs args)
        {
            short id = p.ReadInt16();

            if (id == 0x21)
            {
                args.Block = true;
                if (manaReq != -1)
                {
                    return;
                }
                if (Current == MoveType.PrimaryAbility)
                {
                    WorldEx.SendToServer(new SetAbility(WeaponAbilities.Primary));
                }
                else if (Current == MoveType.SecondaryAbility)
                {
                    WorldEx.SendToServer(new SetAbility(WeaponAbilities.Secondary));
                }
                else
                {
                    args.Block = false;
                }
            }
            else if (id == 0x25)
            {
                int move = p.ReadUInt16();
                if (!Enum.IsDefined(typeof(MoveType), move))
                {
                    return;
                }
                byte use = p.ReadByte();
                if (use == 1)
                {
                    Current = (MoveType)move;
                }
                else if (use == 0 && (int)Current == move)
                {
                    args.Block = manaReq != -1 || new ExtCastSpellAction(move, Serial.Zero).Perform();
                }
            }
        }
Exemple #24
0
        private static void OnParty(Packet p, PacketHandlerEventArgs args)
        {
            p.MoveToData();
            if (p.ReadUInt16() != 6 || p.ReadByte() != 7)
            {
                return;
            }
            Mobile mobile = World.FindMobile(p.ReadUInt32());

            if (responseID != 0 && mobile != null && mobile.Notoriety == 2)
            {
                WorldEx.SendToServer(new GumpResponse(responseID, gumpID, 1, new int[0], new GumpTextEntry[0]));
            }
            else
            {
                WorldEx.SendToClient(packet);
            }
            responseID = 0;
            packet     = null;
        }
Exemple #25
0
 protected override void OnMouseDoubleClick(MouseEventArgs e)
 {
     if (serial != Serial.MinusOne)
     {
         if (World.Player.Warmode)
         {
             WorldEx.SendToServer(new AttackReq(serial));
         }
         else
         {
             WorldEx.SendToServer(new DoubleClick(serial));
         }
     }
     else
     {
         ConfigEx.SetAttribute(!ConfigEx.GetAttribute(false, "ex", "Status"), "ex", "Status");
         Close();
         new StatusBar(Serial.MinusOne).Show();
     }
     base.OnMouseDoubleClick(e);
 }
Exemple #26
0
        public static void OnInit()
        {
            MacroEx mirroring = new MacroEx();

            mirroring.Insert(-1, new WaitForSlot(2));
            mirroring.Insert(-1, new MacroCastSpellAction(508));
            mirroring.Insert(-1, new PauseAction(500));

            MacroEx naturesking = new MacroEx();

            naturesking.Insert(-1, new WaitForSlot(1));
            naturesking.Insert(-1, new MacroCastSpellAction(606));
            naturesking.Insert(-1, new TargetSelf());

            Core.AddHotkey("Naturesking", () => MacroManager.HotKeyPlay(naturesking));
            Core.AddHotkey("Mirroring", () =>
            {
                if (World.Player != null && World.Player.GetItemOnLayer(Layer.Mount) != null)
                {
                    WorldEx.SendToServer(new DoubleClick(World.Player.Serial));
                }
                MacroManager.HotKeyPlay(mirroring);
            });
        }
Exemple #27
0
        private static void DoIt(Item item)
        {
            Item tool = null;

            if (item.IsElementalBody())
            {
                tool = World.FindItem(ConfigEx.GetElement <uint>(0, "LegendaryPickaxe"));
            }
            else if (item.IsSomeTreeishBody())
            {
                tool = World.FindItem(ConfigEx.GetElement <uint>(0, "LegendaryHatchet"));
            }

            if (tool != null)
            {
                Targeting.CancelTarget();
                Targeting.QueuedTarget = () =>
                {
                    Targeting.Target(item);
                    return(true);
                };
                WorldEx.SendToServer(new DoubleClick(tool.Serial));
            }
        }
Exemple #28
0
 private static void PetCommand(string cmd, ushort keyword)
 {
     WorldEx.SendToServer(new EncodedMessage(ConfigEx.GetElement(cmd.Insert(3, " ").ToLower(), "PetCommands", cmd), keyword));
 }
Exemple #29
0
 private static void Release()
 {
     WorldEx.SendToServer(new EncodedMessage(World.Player.Name + " " + ConfigEx.GetElement("release", "PetCommands", "Release"), 0x16D));
 }
Exemple #30
0
 public override bool Perform()
 {
     WorldEx.SendToServer(new SetWarMode(true));
     WorldEx.SendToServer(new SetWarMode(false));
     return(true);
 }