RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

UO Screenshot Renderer

Varchild

Wanderer
Another fault :(

Code:
<CONFIG>
    <UO>
		<!-- Your UO Path -->
		<MULPATH>c:\Games\MondainLegacy</MULPATH>

		<!-- Rendering Area -->
		<MINX>791</MINX>
		<MINY>1927</MINY>
		<MAXX>792</MAXX>
		<MAXY>1928</MAXY>

		<!-- Output File (Windows Bitmap) -->
 		<OUTPUT>test.bmp</OUTPUT>

		<!-- Worldfile Patch (_not_ an emu worldfile) -->
		<PATCHES>worldfile.dif</PATCHES>

		<!-- Detail level: 0 = best, be careful with this! ;) -->
		<DETAIL>5</DETAIL>

		<!-- choose Map Numer --> 
		<!-- 0 - Trammel --> 
		<!-- 1 - Felucca --> 
		<!-- 2 - Ilshenar --> 
		<!-- 3 - Malas -->
		<!-- 4 - Tokuno -->
		<MAP_NUMBER>0</MAP_NUMBER>

		<!-- Cache sizes: lower = less memory usage, more cpu usage -->
		<CACHE_ART>15000</CACHE_ART>
		<CACHE_TEXTURE>13000</CACHE_TEXTURE>
		<CACHE_GROUND>13000</CACHE_GROUND>
		<CACHE_BLOCK>110000</CACHE_BLOCK>
    </UO>
</CONFIG>

Code:
MAP: c:\Giochi\MondainLegacy/map0.mul
SYS | Loading UO Files....
SYS | Initializing renderer....
Warning (src/loaders/LocalMapPatches.cpp,175): File not found (worldfile.dif) in
 LocalMapPatches::Load(char *)
Bitmap Size: 27818 25932
Creating Bitmap (872/812): 2124192 bytes (Zoom 1/32)....
Rendering Area (791/1927) to (792/1928)
Rendering 728 blocks ...0...1...2...3...4...5...6...7...8...9...10...11...12...1
3...14...15...16...17...18...19...20...21...22...23...24...25...26...27...28...2
9...30...31...32...33...34...35...36...37...38...39...40...41...42...43...44...4
5...46...47...48...49...50...51...52...53...54...55...56...57...58...59...60...6
1...62...63...64...65...66...67...68...69...70...71...72...73...74...75...76...7
7...78...79...80...81...82...83...84...85...86...87...88...89...90...91...92...9
3...94...95...96...97...98...99...100...101...102...103...104...105...106...107.
..108...109...110...111...112...113...114...115...116...117...118...119...120...
121...122...123...124...125...126...127...128...129...130...131...132...133...13
4...135...136...137...138...139...140...141...142...143...144...145...146...147.
..148...149...150...151...152...153...154...155...156...157...158...159...160...
161...162...163...164...165...166...167...168...169...170...171...172...173...17
4...175...176...177...178...179...180...181...182...183...184...185...186...187.
..188...189...190...191...192...193...194...195...196...197...198...199...200...
201...202...203...204...205...206...207...208...209...210...211...212...213...21
4...215...216...217...218...219...220...221...222...223...224...225...226...227.
..228...229...230...231...232...233...234...235...236...237...238...239...240...
241...242...243...244...245...246...247...248...249...250...251...252...253...25
4...255...256...257...258...259...260...261...262...263...264...265...266...267.
..268...269...270...271...272...273...274...275...276...277...278...279...280...
281...282...283...284...285...286...287...288...289...290...291...292...293...29
4...295...296...297...298...299...300...301...302...303...304...305...306...307.
..308...309...310...311...312...313...314...315...316...317...318...319...320...
321...322...323...324...325...326...327...328...329...330...331...332...333...33
4...335...336...337...338...339...340...341...342...343...344...345...346...347.
..348...349...350...351...352...353...354...355...356...357...358...359...360...
361...362...363...364...365...366...367...368...369...370...371...372...373...37
4...375...376...377...378...379...380...381...382...383...384...385...386...387.
..388...389...390...391...392...393...394...395...396...397...398...399...400...
401...402...403...404...405...406...407...408...409...410...411...412...413...41
4...415...416...417...418...419...420...421...422...423...424...425...426...427.
..428...429...430...431...432...433...434...435...436...437...438...439...440...
441...442...443...444...445...446...447...448...449...450...451...452...453...45
4...455...456...457...458...459...460...461...462...463...464...465...466...467.
..468...469...470...471...472...473...474...475...476...477...478...479...480...
481...482...483...484...485...486...487...488...489...490...491...492...493...49
4...495...496...497...498...499...500...501...502...503...504...505...506...507.
..508...509...510...511...512...513...514...515...516...517...518...519...520...
521...522...523...524...525...526...527...528...529...530...531...532...533...53
4...535...536...537...538...539...540...541...542...543...544...545...546...547.
..548...549...550...551...552...553...554...555...556...557...558...559...560...
561...562...563...564...565...566...567...568...569...570...571...572...573...57
4...575...576...577...578...579...580...581...582...583...584...585...586...587.
..588...589...590...591...592...593...594...595...596...597...598...599...600...
601...602...603...604...605...606...607...608...609...610...611...612...613...61
4...615...616Fatal signal: Segmentation Fault (SDL Parachute Deployed)

Any suggestion?
 

Grom09

Sorceror
i dont know how this works,
i do have the map area that i want. i try drawing .bmp and it says mapfile not found
how can i get a picture so i can post here what i got
 

evilgoat

Wanderer
First off thanks for the nifty tool.

I rendered part of our custom map but it looked dodgy without doors to buildings etc.

MapRenderer already has support for patches to apply to the map, so I wrote this runuo command to make a file that can be used with MapRenderer.

It writes all (visible) items and also renderers the components of multis, but will only show the foundation for customized houses (My shard doesnt use customized houses), but it shouldn't be too hard for someone to add support for that.

When you type [writeitems in game it will create a 'worldfile.dif' file in your runuo directory, default config for MapRenderer uses this file name so just copy it over to your MapRenderer directory.

Finally, I'm not a very good programmer so I'm noway claiming this script is bug free or the most appropriate way to do it.

Code:
using System;
using System.Collections.Generic;
using System.Text;
using Server;
using Server.Items;
using System.IO;

namespace Server.Commands
{
    public class WriteItems
    {
        public static void Initialize()
        {
            CommandSystem.Register("WriteItems", AccessLevel.GameMaster, new CommandEventHandler(WriteItems_OnCommand));
        }

        public static void WriteItems_OnCommand(CommandEventArgs e)
        {
            Map m = e.Mobile.Map;
            FileStream m_Stream = new FileStream("worldfile.dif", FileMode.Create);
            BinaryWriter br = new BinaryWriter(m_Stream);
            br.Seek(0, SeekOrigin.Begin);
            string id = "CP#1";
            br.Write(id.ToCharArray(), 0, 4);
            br.Write((int)0);
            br.Write((int)100);
            br.Write((int)0);
            br.Write((int)0);
            byte[] reserved = new byte[36];
            br.Write(reserved, 0, 36);

            br.Seek(100, SeekOrigin.Begin);

            IPooledEnumerable eable = m.GetItemsInBounds(new Rectangle2D(0, 0, m.Width, m.Height));

            int count = 0;

            foreach (Item i in eable)
            {
                if (i is BaseMulti)
                {
                    MultiComponentList mcl = MultiData.Load(i.ItemID - 0x4000);

                    for (int x = 0; x < mcl.Width; x++)
                    {
                        for (int y = 0; y < mcl.Height; y++)
                        {
                            if (mcl.Tiles[x][y].Length == 0)
                                continue;

                            for (int t = 0; t < mcl.Tiles[x][y].Length; t++)
                            {
                                int realx = (i.X + mcl.Min.X) + x;
                                int realy = (i.Y + mcl.Min.Y) + y;
                                br.Write((byte)2);
                                br.Write((uint)count + 1);
                                br.Write((ushort)(mcl.Tiles[x][y][t].ID - 0x4000));
                                br.Write((byte)(realx % 8));
                                br.Write((byte)(realy % 8));
                                br.Write((ushort)(realx / 8));
                                br.Write((ushort)(realy / 8));
                                br.Write((short)(i.Z + mcl.Tiles[x][y][t].Z));
                                count++;
                                br.Seek(100 + (count * 15), SeekOrigin.Begin);
                            }
                        }
                    }
                }
                else if (i.Visible)
                {
                    br.Write((byte)2);
                    br.Write((uint)count + 1);
                    br.Write((ushort)i.ItemID);
                    br.Write((byte)(i.X % 8));
                    br.Write((byte)(i.Y % 8));
                    br.Write((ushort)(i.X / 8));
                    br.Write((ushort)(i.Y / 8));
                    br.Write((short)i.Z);
                    count++;
                    br.Seek(100 + (count * 15), SeekOrigin.Begin);
                }
            }

            eable.Free();

            br.Seek(4, SeekOrigin.Begin);
            br.Write((uint)count);

            br.Close();
            m_Stream.Close();


        }
    }
}
 

Attachments

  • maprenderer.jpg
    maprenderer.jpg
    123.6 KB · Views: 94
Top