A .ini file for use in BuildLevel must follow these formats. All lines starting with a ; will be ignored when the .ini is compiled into a .lvz.
; The very first, or highest non-comment line should contain the following:
OutFile=somename.lvz
; The somename.lvz will be the file where the data will be compressed to. If the file already exists, will override that file. The file name should end in a .lvz
; Below that should be the location where you include files into the .lvz. This is where the two BuildLevel programs will be different. I'll first show how priitk's BuildLevel.exe will work for these next two sections.
; { Start BuildLevel.exe }
File=bong200.wa2
File=commands.hlp
; This will tell the compiler to include "bong200.wa2" and "commands.hlp" into the .lvz file.
; After the File='s, the next section requires a header:
[objectimages]
; You now can freely add in the objects to be used later in the other sections. Format:
; IMAGE{number}={name}
; - or -
; IMAGE{number}={name},{x count},{y count},{display time}
; The second option allows you to do animated objects. An example would be if you had ship1.bm2 and you wanted to show the object to rotation, the x count (how many frames are in each row) would be 10, and the y count (how many frames are in each column) would be 4. If you wanted a .1 second delay between each frame of the image, you'd set the display time to 10. DisplayTime's numbers are 100 = 1 second.
IMAGE0=ship1.bm2,10,4,10
; You can have as many image objects defined as you wish.
; Please note, do NOT include the ship1.bm2 into the File= section with BuildLevel, otherwise the file will be included twice.
; { End BuildLevel.exe }
; I'll now show how to use the MakeLevel's method for the above
; { Start MakeLevel.exe }
File=ship1.bm2
File=bong*.wa2
File=commands.*
; If in the same folder this .ini is located has only these files ("new.ini", "ship1.bm2", "ship2.bm2", "bong200.wa2", "bong200.wav", "bong201.wa2", and "commands.hlp"), MakeLevel will include only those that match in the File='s.
; The File=ship1.bm2 will only find the "ship1.bm2" match, and will include that.
; File=bong*.wa2 will find both "bong200.wa2" and "bong201.wa2" and will include that. Since "bong200.wav" didn't match the * seach, won't include that here.
; File=commands.* will find "commands.hlp" and will include that.
; Please note, if you do File=ship1.bm2 and File=*.bm2, the ship1.bm2 WILL be included twice.
; Now that you have the files you want included, you can now defind some objects. Start the image header:
[objectimages]
; Now you'd use the same IMAGE# method that BuildLevel uses. The only different in the [objectimages] section between BuildLevel and MakeLevel is that MakeLevel will not auto-include the files into the .lvz. This will allow you to define all your objects into one .lvz, and have other .lvz include the files. This way you can have all your screen objects defined in one require .lvz file, and have the required images in images.lvz, and have optional images that some clients may not download in images2.lvz, and will work fine.
; { End MakeLevel.exe}
; The next two sections, the different object types, are the same for the two .exe's.
; Start the section:
[mapobjects]
; In both of these object types, they are both defined in the same format in the .ini. Just mapobject's X/Y values are in pixels for the map (0,0 is upper left, 8192,8192 is middle, and 16384,16384 is bottom right). The screen objects are in pixels for each user's own screen. More on screen objects in their section.
; Format:
; {xcoord},{ycoord},IMAGE{number},{layer}
; - or can add on extras at the end upto -
; {xcoord},{ycoord},IMAGE{number},{layer},{mode},{display time},{object id}
; Example for making the ship1.bm2 spin in the middle of the map for 10 seconds after you die:
8192,8192,IMAGE0,AfterTiles,Death,1000
; If you wanted to have it spin whenever a mod does *objon 10, you'd set it to:
8192,8192,IMAGE0,AfterTiles,Death,1000,10
; Display time here is also 100 = 1 second.
; List of all possible Layers, starting from the farthest back, towards the front:
; BelowAll, AfterBackground, AfterTiles, AfterWeapons, AfterShips, AfterGauges, AfterChat, TopMost
; List of all possible Modes:
; ShowAlways: Means will always show, or until timer ends. If you leave off the mode type, will use this.
; EnterZone: Will only begin to show after someone enters zone for the display time.
; EnterArena: Will only show whenever they enter the arena. So if you only want to show last reset's top 5 names to people who only enter zone, not everytime they re-enter arena, use EnterZone.
; Kill: This will only show after they kill someone.
; Death: Shows only after they die.
; ServerControlled: Shows only whenever the zone feels like showing it. Either a mod did a *objon # or a bot did.
; The next section:
[screenobjects]
; In this section, it is the same as above, just the X/Y idea is a bit different. Since everyone doesn't have the same resolutions, you'll need to be able to play off their screens. To do that, you can use the letter C. C stands for 'Center' (or in the actually .lvz, C stands for 20000).
; If you want an image that is 100 pixels wide to be in the very center of their screen in the X direction, you'd set the image's X coords to be: C-50
; If you want the 100 pixel image to be in the very left side of the screen, set X coords to be: 0
; If you want the 100 pixel image to be on the very right side of their screen, set X coords to be: -100
; And thats about all for the quick example. |