using PSO2SERVER.Json; using PSO2SERVER.Models; using PSO2SERVER.Zone; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; namespace PSO2SERVER.Protocol.Packets { public class MapTransferPacket : Packet { public ObjectHeader map { get; set; } = new ObjectHeader(); public ObjectHeader target { get; set; } = new ObjectHeader(); public ZoneSettings _zonesettings { get; set; } = new ZoneSettings(); public MapTransferPacket(ZoneData zone, uint mapid, uint PlayerId) { //_map = map; map = new ObjectHeader(mapid, ObjectType.Map); target = new ObjectHeader(PlayerId, ObjectType.Player); _zonesettings = zone.Settings; } #region implemented abstract members of Packet public override byte[] Build() { //PacketWriter writer = new PacketWriter(); //writer.WriteStruct(new ObjectHeader(3, ObjectType.Map)); //writer.WriteStruct(target); //writer.Write(0x1); // 8 Zeros //writer.Write(0); // 8 Zeros //writer.Write(~(uint)_map.Type); // F4 FF FF FF //writer.Write(_map.MapID); // Map ID maybe //writer.Write((uint)_map.Flags); //writer.Write(_map.GenerationArgs.seed); // 81 8F E6 19 (Maybe seed) //writer.Write(_map.VariantID); // Randomgen enable / disable maybe //writer.Write(_map.GenerationArgs.xsize); // X Size //writer.Write(_map.GenerationArgs.ysize); // Y Size //writer.Write(1); //writer.Write(1); //writer.Write(~0); // FF FF FF FF FF FF FF FF //writer.Write(0x301); //return writer.ToArray(); PacketWriter pkt = new PacketWriter(); pkt.WriteObjectHeader(map); pkt.WriteObjectHeader(target); pkt.WriteStruct(_zonesettings); return pkt.ToArray(); } public override PacketHeader GetHeader() { return new PacketHeader(0x03, 0x00, PacketFlags.None); } #endregion } }