public void Dispatch(ISession session, IPacket packet) { BinaryReader reader = packet.CreateReader(); byte castCount = reader.ReadByte(); uint spellId = reader.ReadUInt32(); byte unklags = reader.ReadByte(); IPacket pkt = WorldPacketFactory.Create(WMSG.SMSG_SPELL_START); BinaryWriter writer = pkt.CreateWriter(); writer.WritePackGuid(session.Player.Guid); writer.WritePackGuid(session.Player.Guid); writer.Write(castCount); writer.Write(spellId); writer.Write(0); //cast flags writer.Write(0); //ticks count writer.Write(0); //targetflags session.Send(pkt); Thread.Sleep(5000); pkt = WorldPacketFactory.Create(WMSG.SMSG_SPELL_GO); writer = pkt.CreateWriter(); writer.WritePackGuid(session.Player.Guid); writer.WritePackGuid(session.Player.Guid); writer.Write(castCount); writer.Write(spellId); writer.Write(0); //cast flags writer.Write(0); //ticks count writer.Write((byte)1); //hit count writer.Write(session.Player.Guid); writer.Write((byte)0); //miss count writer.Write(0); // targetflags session.Send(pkt); }
private static IPacket GetUpdateAccountDataCompletePkt(AccountDataType type) { IPacket packet = WorldPacketFactory.Create(WMSG.SMSG_UPDATE_ACCOUNT_DATA_COMPLETE); BinaryWriter writer = packet.CreateWriter(); writer.Write((uint)type); writer.Write(0); return(packet); }
private IPacket GetPowerUpdatePkt(uint value) { IPacket packet = WorldPacketFactory.Create(WMSG.SMSG_POWER_UPDATE); BinaryWriter writer = packet.CreateWriter(); writer.WritePackGuid(Guid); writer.Write((byte)PowerType); writer.Write(value); return(packet); }
public IPacket GetCharEnumPkt() { IPacket p = WorldPacketFactory.Create(WMSG.SMSG_CHAR_ENUM); BinaryWriter w = p.CreateWriter(); w.Write((byte)players.Count); foreach (Player player in players) { w.Write(player.Guid); w.WriteCString(player.Name); w.Write((byte)player.Race); w.Write((byte)player.Classe); w.Write((byte)player.Gender); w.Write(player.Skin); w.Write(player.Face); w.Write(player.HairStyle); w.Write(player.HairColor); w.Write(player.FacialHair); w.Write((byte)player.Level); w.Write(player.ZoneId); w.Write(player.MapId); w.Write(player.PosX); w.Write(player.PosY); w.Write(player.PosZ); w.Write(player.GuildMember.With(x => x.Guild.Id)); uint flag = 0x00000000; w.Write(flag); w.Write((byte)0); w.Write(player.PetDisplayId); w.Write(player.PetLevel); w.Write(player.PetCreatureFamily); w.Write(0); for (int i = 0; i < 23; i++) { Item item = player.Inventory[i]; if (item != null) { w.Write(item.Template.DisplayId); w.Write((byte)item.Template.InventoryType); w.Write(0); } else { w.Write(0); w.Write((byte)0); w.Write(0); } } } return(p); }
public IPacket Build() { IPacket result = WorldPacketFactory.Create(WMSG.SMSG_UPDATE_OBJECT); BinaryWriter writer = result.CreateWriter(); writer.Write(updateBlocks.Count); foreach (IUpdateBlock updater in updateBlocks) { writer.Write((byte)updater.UpdateType); updater.Write(writer); } return(result); }
private static IPacket GetUpdateAccountDataPkt(AccpuntData accpuntData) { IPacket packet = WorldPacketFactory.Create(WMSG.SMSG_UPDATE_ACCOUNT_DATA); BinaryWriter writer = packet.CreateWriter(); writer.Write(accpuntData.Guid); writer.Write((uint)accpuntData.Type); writer.Write(accpuntData.Time.ToUnixTimestamp()); writer = new BinaryWriter(new DeflaterOutputStream(writer.BaseStream)); writer.WriteCString(accpuntData.Data); writer.Flush(); return(packet); }
private static IPacket GetCorpseQuery(Corpse corpse) { IPacket pkt = WorldPacketFactory.Create(WMSG.MSG_CORPSE_QUERY); BinaryWriter writer = pkt.CreateWriter(); writer.Write((byte)1); writer.Write(corpse.MapId); writer.Write(corpse.PosX); writer.Write(corpse.PosY); writer.Write(corpse.PosZ); writer.Write(corpse.MapId); return(pkt); }
private static IPacket GetMoveResponce(IPacket packet) { BinaryReader reader = packet.CreateReader(); reader.BaseStream.Seek(0, SeekOrigin.Begin); byte[] bytes = reader.ReadBytes(packet.Size); IPacket responce = WorldPacketFactory.Create((WMSG)packet.Code); BinaryWriter w = responce.CreateWriter(); w.Write(bytes); return(responce); }
public void Dispatch(ISession session, IPacket packet) { JoinChannelMsg msg = packet.Read(reader => new JoinChannelMsg { ChannelId = reader.ReadUInt32(), Unk1 = reader.ReadByte(), Unk2 = reader.ReadByte(), ChanneName = reader.ReadCString(), Password = reader.ReadCString() }); var pkt = WorldPacketFactory.Create(WMSG.SMSG_CHANNEL_NOTIFY); var writer = pkt.CreateWriter(); writer.Write((byte)ChannelNotification.YouJoined); writer.WriteCString(msg.ChanneName); writer.Write((byte)0); writer.Write(msg.ChannelId); writer.Write(0); session.Send(pkt); Console.WriteLine("{0} {1} {2} {3} {4}", msg.ChannelId, msg.Unk1, msg.Unk2, msg.ChanneName, msg.Password); }
public void Dispatch(ISession session, IPacket packet) { BinaryReader reader = packet.CreateReader(); var type = (MessageType)reader.ReadUInt32(); uint language = reader.ReadUInt32(); string channel = type == MessageType.Channel || type == MessageType.Whisper ? reader.ReadCString() : string.Empty; string message = reader.ReadCString(); var pkt = WorldPacketFactory.Create(WMSG.SMSG_MESSAGECHAT); var writer = pkt.CreateWriter(); writer.Write((byte)type); writer.Write((uint)0); writer.Write(session.Player.Guid); writer.Write(0); /* * if (target != null) * writer.WritePascalString(target); */ writer.Write((ulong)0); writer.WritePascalString(message); writer.Write((byte)0); var players = ObjectManager.GetPlayersNear(session.Player); foreach (var player in players) { player.Session.Send(pkt); } Console.WriteLine("{0} {1} {2} {3}", type, language, channel, message); }