Call of Duty 5: Exploding barrels

From COD Modding & Mapping Wiki
Jump to navigation Jump to search

By Daevius

Abstract

We select a model (barrel), make it a script_model, assign it targetname = explodable_barrel and script_noteworthy = explodable_barrel. To the .gsc file we add:

maps\mp\_interactive_objects::init();

And to the .csv file we add:

rawfile,maps/mp/_interactive_objects.gsc

fx,destructibles/fx_barrelexp_mp
fx,destructibles/fx_barrel_ignite
fx,destructibles/fx_barrel_fire_top

xmodel,exploding_barrel_test_d

Preparing your map

We first select a barrel model, this can be any model, but I suggest we use a barrel for this.

Right click in the 2D grid and click misc -> model. Now browse to your [root]/raw/xmodel/ directory, select a model that suits you (I advice you to browse to that directory outside the radiant, then perform a search on the word 'barrel'). Once a suitable barrel is found, click Open and the model will appear in the map. Move it around till it's settled.

Now, while having the barrel selected, right click in the 2D grid and select script -> model. This will make your model ready to be accessed by a script.

To tell the game which script, we need to give it a targetname. Still having the barrel selected, press N (or twice) and, in the two text boxes below, fill in the following:

Key: targetname
Value: explodable_barrel
Key: script_noteworthy
Value: explodable_barrel

Calling the script

Now, in our .gsc file, located in [root]/raw/maps/mp/mp_[mapname].gsc, we need to add the following line (you can edit .gsc files using notepad):

maps\mp\_interactive_objects::init();

So, your .gsc file might become:

main()
{
	maps\mp\_interactive_objects::init(); // added line
	maps\mp\_load::main();

	// If the team nationalites change in this file,
	// you must update the team nationality in the level's csc file as well!
	game["allies"] = "marines";
	game["axis"] = "japanese";
	game["attackers"] = "allies";
	game["defenders"] = "axis";
	game["allies_soldiertype"] = "pacific";
	game["axis_soldiertype"] = "pacific";

	setdvar( "r_specularcolorscale", "1" );

	setdvar("compassmaxrange","2100");
	
	// enable new spawning system
	maps\mp\gametypes\_spawning::level_use_unified_spawning(true);
}

Adding it to the FastFile

To use the script we call in out .gsc file, we need to include it into our .ff file. Go to [root]/zone_source/mp_[mapname].csv and open it using notepad. Add the following lines to it (on it's own row!):

rawfile,maps/mp/_interactive_objects.gsc

fx,destructibles/fx_barrelexp_mp
fx,destructibles/fx_barrel_ignite
fx,destructibles/fx_barrel_fire_top

xmodel,exploding_barrel_test_d

A typical .csv file might now look like this (where mp_test is the map name):

ignore,code_post_gfx_mp
ignore,localized_code_post_gfx_mp
ignore,common_mp
ignore,localized_common_mp

col_map_mp,maps/mp/mp_test.d3dbsp

rawfile,maps/mp/mp_test.gsc
rawfile,vision/mp_test.vision
rawfile,maps/mp/_interactive_objects.gsc

fx,destructibles/fx_barrelexp_mp
fx,destructibles/fx_barrel_ignite
fx,destructibles/fx_barrel_fire_top

xmodel,skybox_mak1
xmodel,exploding_barrel_test_d

sound,common,mp_test,!all_mp
sound,generic,mp_test,!all_mp
sound,voiceovers,mp_test,!all_mp
sound,multiplayer,mp_test,!all_mp
sound,destructibles,mp_test,!all_mp

character,char_usa_raider_player_rifle
character,char_usa_raider_player_cqb
character,char_usa_raider_player_assault
character,char_usa_raider_player_lmg
character,char_usa_raider_player_smg
character,char_jap_impinf_player_smg
character,char_jap_impinf_player_rifle
character,char_jap_impinf_player_lmg
character,char_jap_impinf_player_cqb
character,char_jap_impinf_player_assault

Conclusion

When succeed, exploding barrels will look like this: