Exemplo n.º 1
0
        private static void WriteOtbm(string otbmFileName, string houseFileName, string spawnFileName, Version version, IEnumerable <OtMapTile> mapTiles)
        {
            OtbmMapWriter mapWriter = new OtbmMapWriter(otbmFileName);

            mapWriter.WriteHeader(version);
            mapWriter.WriteMapStart(houseFileName, spawnFileName);
            foreach (OtMapTile tile in mapTiles)
            {
                mapWriter.WriteNodeStart(NodeType.TileArea);
                mapWriter.WriteTileAreaCoords(tile.Location);
                mapWriter.WriteNodeStart(NodeType.Tile);
                mapWriter.WriteTileCoords(tile.Location);

                if (tile.TileId > 0)
                {
                    mapWriter.WriteAttrType(AttrType.Item);
                    mapWriter.WriteUInt16(tile.TileId);
                }

                foreach (OtMapItem item in tile.Items)
                {
                    mapWriter.WriteNodeStart(NodeType.Item);
                    mapWriter.WriteUInt16(item.ItemId);
                    if (item.AttrType != AttrType.None)
                    {
                        mapWriter.WriteAttrType(item.AttrType);
                        mapWriter.WriteByte(item.Extra);
                    }
                    mapWriter.WriteNodeEnd();
                }

                mapWriter.WriteNodeEnd();
                mapWriter.WriteNodeEnd();
            }
            mapWriter.WriteNodeEnd(); // Map Data node
            mapWriter.WriteNodeEnd(); // Root node
            mapWriter.Close();
        }
Exemplo n.º 2
0
        private void uxWrite_Click(object sender, EventArgs e)
        {
            IEnumerable <PacketCreature> creatures;

            if (uxTrackSpawns.Checked)
            {
                creatures = mapCreatures.Values.Where(c => c != null);
            }
            else
            {
                creatures = new List <PacketCreature>();
            }

            if (mapTiles.Count > 0)
            {
                string file = OtbmMapWriter.WriteMapTilesToFile(
                    mapTiles.Values,
                    creatures,
                    Constants.GetMapVersion(client.VersionNumber)
                    );
                Log("All map data written to " + file);
            }
        }
Exemplo n.º 3
0
        private static void WriteOtbm(string otbmFileName, string houseFileName, string spawnFileName, Version version, IEnumerable<OtMapTile> mapTiles)
        {
            OtbmMapWriter mapWriter = new OtbmMapWriter(otbmFileName);
            mapWriter.WriteHeader(version);
            mapWriter.WriteMapStart(houseFileName, spawnFileName);
            foreach (OtMapTile tile in mapTiles)
            {
                mapWriter.WriteNodeStart(NodeType.TileArea);
                mapWriter.WriteTileAreaCoords(tile.Location);
                mapWriter.WriteNodeStart(NodeType.Tile);
                mapWriter.WriteTileCoords(tile.Location);

                if (tile.TileId > 0)
                {
                    mapWriter.WriteAttrType(AttrType.Item);
                    mapWriter.WriteUInt16(tile.TileId);
                }

                foreach (OtMapItem item in tile.Items)
                {
                    mapWriter.WriteNodeStart(NodeType.Item);
                    mapWriter.WriteUInt16(item.ItemId);
                    if (item.AttrType != AttrType.None)
                    {
                        mapWriter.WriteAttrType(item.AttrType);
                        mapWriter.WriteByte(item.Extra);
                    }
                    mapWriter.WriteNodeEnd();
                }

                mapWriter.WriteNodeEnd();
                mapWriter.WriteNodeEnd();
            }
            mapWriter.WriteNodeEnd(); // Map Data node
            mapWriter.WriteNodeEnd(); // Root node
            mapWriter.Close();
        }