Call of Duty 5: Exploding barrels
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 prefab, grab one HERE
- Once you have the file, unzip in your COD folder
- Back in Radiant, Right click in the 2D grid and click misc -> prefab. Now browse to your [root]/map_source/_prefabs/interactable_objects/ directory, select the file called explodable_barrel.map, click Open and the prefab will appear in the map. Move it around till it's settled.
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: