public void SendMessage(UInt16 Oid, string NameSender, string Text, SystemData.ChatLogFilters Filter) { if (Text.IndexOf("<LINK") >= 0 && Text.IndexOf("ITEM:") > 0) { int Pos = Text.IndexOf("ITEM:") + 5; int LastPos = Text.IndexOf(" ", Pos) - 1; string Value = Text.Substring(Pos, LastPos - Pos); uint ItemId = uint.Parse(Value); Item_Info Info = WorldMgr.GetItem_Info(ItemId); if (Info != null) { } } PacketOut Out = new PacketOut((byte)Opcodes.F_CHAT); Out.WriteUInt16(Oid); Out.WriteByte((byte)Filter); Out.Fill(0, 4); Out.WritePascalString(NameSender); Out.WriteByte(0); Out.WritePascalString(Text); Out.WriteByte(0); SendPacket(Out); }
public void SendMail(Character_mail Mail) { if (Mail == null) { return; } PacketOut Out = new PacketOut((byte)Opcodes.F_MAIL); Out.WriteByte(0x0D); Out.WriteByte(0); BuildPreMail(Out, Mail); Out.WriteUInt16((ushort)(Mail.Content.Length + 1)); Out.WriteStringBytes(Mail.Content); Out.WriteByte(0); Out.WriteByte((byte)Mail.Items.Count); foreach (KeyValuePair <uint, ushort> item in Mail.Items) { Item_Info Req = WorldMgr.GetItem_Info(item.Key); Item.BuildItem(ref Out, null, Req, 0, item.Value); } GetPlayer().SendPacket(Out); }
public Item_Info GetTalisman(byte SlotId) { if (CharItem == null) { return(null); } if (CharItem._Talismans.Count <= SlotId) { return(null); } return(WorldMgr.GetItem_Info(CharItem._Talismans[SlotId])); }
public void SendMessage(UInt16 Oid, string NameSender, string Text, SystemData.ChatLogFilters Filter) { PacketOut Out = new PacketOut((byte)Opcodes.F_CHAT); Out.WriteUInt16(Oid); Out.WriteByte((byte)Filter); Out.Fill(0, 4); Out.WritePascalString(NameSender); Out.WriteUInt16((ushort)(Text.Length + 1)); Out.WriteStringBytes(Text); Out.WriteByte(0); int a = Text.IndexOf("<LINK"); int b = Text.IndexOf("ITEM:"); if (a >= 0 && b > 0) { Out.WriteByte(1); long p = Out.Position; Out.WriteByte(0); int Count = 0; while (a >= 0 && b >= 0) { int Pos = b + 5; int LastPos = Text.IndexOf(" ", Pos) - 1; string Value = Text.Substring(Pos, LastPos - Pos); uint ItemId = uint.Parse(Value); Item_Info Info = WorldMgr.GetItem_Info(ItemId); if (Info != null) { ++Count; Out.WriteByte(3); Item.BuildItem(ref Out, null, Info, 0, 1); } a = Text.IndexOf("<LINK", Pos); b = Text.IndexOf("ITEM:", Pos); } Out.Position = p; Out.WriteByte((byte)Count); Out.Position = Out.Length; } SendPacket(Out); }
public bool Load(Character_items Item) { if (Item == null) { return(false); } Info = WorldMgr.GetItem_Info(Item.Entry); if (Info == null) { Log.Error("ItemInterface", "Load : Info==null,Entry=" + Item.Entry); return(false); } CharItem = Item; return(true); }
public void BuildPreMail(PacketOut Out, Character_mail Mail) { if (Mail == null) { return; } Out.WriteUInt32(0); Out.WriteUInt32((UInt32)Mail.Guid); Out.WriteUInt16((UInt16)(Mail.Opened ? 1 : 0)); Out.WriteByte((byte)(Mail.AuctionType == 0 ? 100 : 0)); // Icon ID Out.WriteUInt32(Mail.SendDate); // Time Out.WriteUInt32(Mail.SendDate); // Sent time Out.WriteUInt32((UInt32)Mail.CharacterIdSender); // Sender ID Out.WriteByte(0); // 1 = localized name Out.WriteByte(0); Out.WriteStringToZero(Mail.SenderName); Out.WriteByte(0); Out.WriteStringToZero(Mail.ReceiverName); Out.WriteByte(0); Out.WriteStringToZero(Mail.Title); Out.WriteUInt32(0); Out.WriteUInt32(Mail.Money); Out.WriteUInt16((ushort)Mail.Items.Count); if (Mail.Items.Count > 0) { Out.WriteByte(0); } if (Mail.Items.Count > 8) { Out.WriteByte(0); } foreach (KeyValuePair <uint, ushort> item in Mail.Items) { Out.WriteUInt32(WorldMgr.GetItem_Info(item.Key).ModelId); } }
public bool Load(uint Entry, UInt16 SlotId, UInt16 Count) { Info = WorldMgr.GetItem_Info(Entry); if (Info == null) { return(false); } if (Count <= 0) { Count = 1; } _SlotId = SlotId; _ModelId = Info.ModelId; _Count = Count; return(true); }
public ItemError CreateItem(UInt32 ItemId, UInt16 Count) { Item_Info Info = WorldMgr.GetItem_Info(ItemId); return(CreateItem(Info, Count)); }