internal void SendReactorDetails(Player pPlayer) { int slot = 0; foreach (Reactor reactor in mReactors) { Packet packet = new Packet(EOpcode.SMSG_REACTOR_DETAILS); packet.WriteInt(slot++); packet.WriteInt(reactor.Data.ReactorIdentifier); packet.WriteByte(reactor.State); packet.WriteShort(reactor.Data.X); packet.WriteShort(reactor.Data.Y); packet.WriteByte(0x00); pPlayer.SendPacket(packet); } }
internal void SendNPCDetails(Player pPlayer) { int index = 0; foreach (NPC npc in mNPCs) { Packet packet = new Packet(EOpcode.SMSG_NPC_DETAILS); packet.WriteInt(index + 0x64); packet.WriteInt(npc.Data.NPCIdentifier); packet.WriteShort(npc.Data.X); packet.WriteShort(npc.Data.Y); packet.WriteBool((npc.Data.Flags & MapData.MapNPCData.EMapNPCFlags.FacesLeft) != MapData.MapNPCData.EMapNPCFlags.None); packet.WriteUShort(npc.Data.Foothold); packet.WriteShort(npc.Data.MinClickX); packet.WriteShort(npc.Data.MaxClickX); packet.WriteBool(true); pPlayer.SendPacket(packet); packet = new Packet(EOpcode.SMSG_NPC_CONTROL); packet.WriteBool(true); packet.WriteInt(index + 0x64); packet.WriteInt(npc.Data.NPCIdentifier); packet.WriteShort(npc.Data.X); packet.WriteShort(npc.Data.Y); packet.WriteBool((npc.Data.Flags & MapData.MapNPCData.EMapNPCFlags.FacesLeft) != MapData.MapNPCData.EMapNPCFlags.None); packet.WriteUShort(npc.Data.Foothold); packet.WriteShort(npc.Data.MinClickX); packet.WriteShort(npc.Data.MaxClickX); packet.WriteBool(true); pPlayer.SendPacket(packet); ++index; } }
internal void SendPlayerDetails(Player pPlayer) { SendPacketToAllExcept(pPlayer.GetPlayerDetails(), pPlayer); mPlayers.ForEach(p => { if (p != pPlayer) pPlayer.SendPacket(p.GetPlayerDetails()); }); }
internal void SendMobDetails(Player pPlayer) { foreach (Mob mob in mMobs) { Packet packet = new Packet(EOpcode.SMSG_MOB_DETAILS); packet.WriteInt(mob.UniqueIdentifier); packet.WriteByte(0x00); packet.WriteInt(mob.Data.MobIdentifier); mob.WriteStatus(packet); packet.WriteCoordinates(mob.Position); byte bits = 0x02; if (mob.FacingLeft) bits |= 0x01; packet.WriteByte(bits); packet.WriteUShort(mob.Foothold); packet.WriteUShort(mob.Data.Foothold); packet.WriteSByte(-1); packet.WriteSByte(0); packet.WriteInt(0); pPlayer.SendPacket(packet); } }