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)); } }
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."); } } } }
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)); } }
public override bool PerformWait() { if (Utility.Distance(position, World.Player.Position) < 5) { return(true); } WorldEx.SendToServer(stop); return(false); }
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)); } }
public override bool Perform() { if (wait.Last != 503172) { return(true); } position = World.Player.Position; WorldEx.SendToServer(forward); return(!PerformWait()); }
public override bool Perform() { Mobile closest = TargetingEx.GetClosest(3, 4); if (closest != null) { WorldEx.SendToServer(new AttackReq(closest.Serial)); } return(true); }
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); }
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; }
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!"); } }
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; }
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)); } }
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(); } }
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; } }
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); } }
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."); } }
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); }
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)); } }
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)); } }
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); } } }
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)); } }
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(); } } }
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(); } } }
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; }
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); }
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); }); }
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)); } }
private static void PetCommand(string cmd, ushort keyword) { WorldEx.SendToServer(new EncodedMessage(ConfigEx.GetElement(cmd.Insert(3, " ").ToLower(), "PetCommands", cmd), keyword)); }
private static void Release() { WorldEx.SendToServer(new EncodedMessage(World.Player.Name + " " + ConfigEx.GetElement("release", "PetCommands", "Release"), 0x16D)); }
public override bool Perform() { WorldEx.SendToServer(new SetWarMode(true)); WorldEx.SendToServer(new SetWarMode(false)); return(true); }