Hack 56. Remix Multiplayer Levels with Campaign Mode Objects


Use Insolence to inject single-player campaign assets into multiplayer maps.

One of the frustrations you'll run into when hacking your own maps is that campaign mode objects, such as the Fuel Rod Cannon, are challenging to inject into multiplayer maps. For most people, it is simply too much work to use single-player objects in their mods. The Insolence map editor eases this limitation.

Insolence was conceived when Iron_Forge told tjc2k4 that he wanted a program to support IFPs (Iron_Forge plug-ins). Until recently, most modding apps used dynamic plug-in systems based on Extensible Markup Language (XML). Each system was modified to include a few meta tags. The general idea for a plug-in file was that it had a list of entries with some format similar to:

The Name of something to change
The Offset/Location of the value
And The type of value it is

A plug-in was simply a list of entries like these:

   <value>   <type>float</type>   <offset>0x1c</offset>   <name>Max radius</name>  <desc>Maximum radius around the origin that the effect applys</desc>  </value> 

This meant that plug-ins would only allow you to change things for which they had an entry. Sometimes things like vehicles can have 1,000 bytes of data, with approximately 20 30 known values. In the old plug-in systems, less than 3% of the vehicle was actually modifiable. However, an IFP lists the entire structure of a tag. Even fields that are labelled "unknown" are still editable. Essentially, you can change 90% 95% of the data for a given tag. Even if you're not sure what it is, you can change it and, by playing with it, you can figure out what it is and label it.

Once a user makes a number of changes and labels a couple of useful unknowns, they can submit the IFP back to the Insolence plug-in system. Other users can then grab the latest copy of the IFPs by using an "Update Plugins" option within the program.

Based on the clear value of IFPs, tjc2k4 started development of Insolence. He decided that a multiple document interface (MDI) would be a good way to display the information and maps. Later he decided he could do something cool with the MDI, such as drag and drop from one map to another. With some help from the other members of TF6, Insolence became what it is today.

XIU coined the initialism IFP while he was implementing limited support for IFPs in Ch2r [Hack #51]. IFP is short for Iron_Forge plug-in.


Insolence's features include:

  • Drag and drop meta tags from map to map for a recursive move.

  • Imports all raw data from Single Player Shared to local map (prevents linking issues).

  • Right-click tags to duplicate, and then rename them.

  • Automatic Update system for IFP and native plug-ins.

  • Versatile Plug-in System, including IFP, XML, and native plug-ins.

  • Dual Modes for IFPs "Edit Mode" and "Dev Mode."

To demonstrate the abilities of Insolence, you're going to move the Fuel Rod Cannon from a single-player map into the Lockout multiplayer map.

Once Insolence is open, go to the File menu, and select Open Map. You will need to open lockout.map and 04a_gasgiant.map. 04a_gasgiant.map is a single-player map that contains the Fuel Rod Cannon. The metadata tag for the Fuel Rod Cannon is the flak_cannon.weap tag.

In the 04a_gasgiant.map window, locate the flak_cannon.weap tag. If you prefer using the File Path view, the path is objects\weapons\support_highflak_cannonflak_cannon.weap. If you're used to the tags being sorted by their class, there is an option to switch the sorting method under the "Map Options" view. If you're using that view, the flak_cannon.weap will be near the bottom of the [weap] group, as shown in Figure 6-30.

Figure 6-30. The flak_cannon tag shown in Insolence


Once you find the flak_cannon.weap tag, left-click it once to select it. Then right-click and drag and drop the tag into lockout.map. A small status box will pop up to give you information about what the program is doing. The longest part is usually "Relinking," and it may seem as though the program is frozen. It isn't, it just has to do a lot of file reading and writing at this point, so let it be. When the move is complete, this status window will go away.

The tag is now in the multiplayer map, but it was created for single-player, so a few dependencies have to be updated. Locate the flak_cannon.weap again, using either tag class or File Path view. The path is still objects\weapons\support_highflak_cannonflak_cannon.weap, even in Lockout. This time, double-click the tag to open it for editing with its IFP. When a tag is open for editing, you will see tabs at the bottom of the tag editing half of the program.

The first-player models (FP Models) need to be updated. These are dependencies, stored within a reflexive. This particular reflexive is only visible in "Dev Mode" (visibility is set to false in the .ifp). When you open the tag with the IFP "weap" plug-in, a list of reflexives will appear, but not FP Model, which is what we need. At the top of the plug-in area, there is a label which says "Edit Mode" click on it to switch to "Dev Mode."

Dev Mode allows the user to edit a lot more data, but most of it is unknown. Select the "FP Model" reflexive, and a combo box will appear. The combo box allows you to select which chunk of a reflexive you want to edit. The FP Model reflexive will have two chunks. Chunk 0 contains the FP Model and animation information for the Master Chief. Chunk 1 contains the FP Model and animation for an Elite. Select Chunk 0 first (it should be selected by default). If the model says "Nulled Out," double-click to change it. The drop down list will contain all available models in the map. The new models you're looking for will be at the very bottom of the list.

Change the model in chunk 0 to objects\weapons\support_highflak_cannonflak_cannon.mode. Next, change the animation to objects\characters\ masterchief\fp\weapons\support_high\fp_flak_cannon\fp_flak_cannon.jmad.It is important that the reflexive Chunk 0 contains the animation that includes masterchief in the path, and chunk 1 contains the animation that includes dervish in the path (the dervish model is the Arbiter, but shares nearly all animations with the Elite). Once chunk 0 and chunk 1 both contain their appropriate models and animations, you are finished, so close this tag.

Next, the weapon has to be placed into the gameplay somehow. There are many ways to do this. The easiest way to do this is to open an [itmc] tag and change the dependency to the new flak_cannon.weap. I like to swap it with the Shotgun. Locate and open the multiplayer\single_weapons\shotgun.itmc tag by double-clicking on it. Select the Item Permutations reflexive, and then select the visible dependencies option.

Change the dependency to the objects\weapons\support_highflak_ cannonflak_cannon.weap tag. This will change all of the Shotguns on the map to Fuel Rod Cannons (there's only one in Lockout). Changing the Magnum's [itmc] dependency to the flak_cannon would result in all three Magnums in the level becoming flak_cannons.

The last step is to fix the encryption on the map. This just requires selecting "Fix Map Encryption" from the Map Options menu. After that, close the map, and FTP it over to your Xbox [Hack #54]. Your Fuel Rod Cannon will be ready and waiting! (see Figure 6-31)

Figure 6-31. The Fuel Rod Cannon on Lockout




Halo2 Hacks
Halo 2 Hacks: Tips & Tools for Finishing the Fight
ISBN: 0596100590
EAN: 2147483647
Year: 2004
Pages: 166

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net