

<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.zeroy.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Arachnofang</id>
	<title>COD Modding &amp; Mapping Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.zeroy.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Arachnofang"/>
	<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Special:Contributions/Arachnofang"/>
	<updated>2026-05-03T20:05:37Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_FXs&amp;diff=7540</id>
		<title>Call of Duty 5: FXs</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_FXs&amp;diff=7540"/>
		<updated>2010-07-07T10:47:40Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Adding lines to your .gsc and zone files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Warning.png]] &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NOTE: This tutorial, taken from the Treyarch Wiki, has been edited as the original code doesnt work&amp;lt;/font color&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Creating your FX ==&lt;br /&gt;
In this tutorial we will be using a very simple but effective way to add effects to your map.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp,&lt;br /&gt;
if you do not have one then you need to create one, once you have created one copy and paste these lines into it,&lt;br /&gt;
you may need to change the team nationalities as well. &lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always&lt;br /&gt;
make sure you make backup copies first. &lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Adding your script origins ==&lt;br /&gt;
The first thing you need to do is decide where you want to put your fx, once you have decided, right click in&lt;br /&gt;
the 2d screen and select...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script/origin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In order to get the correct co-ords you need to deselect your script origin then select it again, press &#039;n&#039; to&lt;br /&gt;
bring up the entity window, and now you will have the correct co-ords, basically what happens is, when you move&lt;br /&gt;
the script origin and then press &#039;n&#039; while keeping it constantly highlighted it remembers the co-ords from its&lt;br /&gt;
last position and retains those, this is why you have to deselect it and reselect it to get the correct co-ords.&lt;br /&gt;
&lt;br /&gt;
when adding script origins I always leave them in, I never delete them from my map, mainly&lt;br /&gt;
because if I have a lot of the same fx in the map and I want to either change an fx or&lt;br /&gt;
delete it then I can just get the co-ords from the script origin and use &#039;find&#039; in my&lt;br /&gt;
fx.gsc file to find that particular fx, if you have too many script origins and script_structs in your map press&lt;br /&gt;
&#039;f&#039; to bring up the filter window and deselect &#039;script origins&#039;, now they will be hidden.&lt;br /&gt;
&lt;br /&gt;
Create a new text document on your desktop called&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fx_co-ords.txt.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copy the co-ords from your cript origin and paste them into your &#039;fx_co-ords.txt file on your desktop,&lt;br /&gt;
Once you have copied and pasted your co-ords into fx_co-ords.txt it should look something like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
48 110 236&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In order for your fx to work properly in your fx.gsc file you need to add comma&#039;s&lt;br /&gt;
&lt;br /&gt;
so now it should look like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
48, 110, 236&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Without these comma&#039;s your fx won&#039;t work.&lt;br /&gt;
&lt;br /&gt;
Now you need to create a &#039;fx.gsc file in...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw/maps/mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now copy and paste these lines in to your newly created fx.gsc file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include maps\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
        precacheFX();&lt;br /&gt;
        spawnFX();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
precacheFX()&lt;br /&gt;
{&lt;br /&gt;
        level._effect[&amp;quot;mp_fire_medium&amp;quot;] = loadfx(&amp;quot;maps/mp_maps/fx_mp_fire_medium&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
spawnFX()&lt;br /&gt;
{&lt;br /&gt;
        playLoopedFx(level._effect[&amp;quot;mp_fire_medium&amp;quot;], 4, (0,0,0), 0, anglestoforward ((270,0,0)), anglestoup((270,0,0)));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now save it.&lt;br /&gt;
&lt;br /&gt;
== Adding lines to your .gsc and zone files ==&lt;br /&gt;
Now we need to edit your mp_yourmapsname.gsc file which you will find in..&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw\maps\mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now add this line...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\mp_yourmapname_fx::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add the line directly below&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\_load::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So now it should look like this...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\_load::main();&lt;br /&gt;
maps\mp\mp_yourmapname_fx::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now we need to edit your mp_yourmapsname.csv file which you will find in...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw\zone_source&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now add these two lines... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,maps\mp\mp_yourmapname_fx.gsc&lt;br /&gt;
&lt;br /&gt;
fx,maps/mp_maps/fx_mp_fire_medium&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thats it! Now if you compile and run your map and you should now see your fire effect.&lt;br /&gt;
&lt;br /&gt;
== Description of your FX GSC ==&lt;br /&gt;
1. Your main function.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
        precacheFX();&lt;br /&gt;
        spawnFX();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This can do everything if you want but for organization purposes it is advised you have at least both these&lt;br /&gt;
functions to separate the steps. &lt;br /&gt;
&lt;br /&gt;
2. precacheFX() and spawnFX() functions. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
precacheFX()&lt;br /&gt;
{&lt;br /&gt;
        level._effect[&amp;quot;mp_fire_medium&amp;quot;] = loadfx(&amp;quot;maps/mp_maps/fx_mp_fire_medium&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(level._effect[&amp;quot;mp_fire_medium&amp;quot;]) the name &amp;quot;mp_fire_medium&amp;quot; will be referenced by all your scripts, this can be&lt;br /&gt;
anything. &lt;br /&gt;
&lt;br /&gt;
3.spawnFX() function &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
spawnFX()&lt;br /&gt;
{&lt;br /&gt;
        playLoopedFx(level._effect[&amp;quot;mp_fire_medium&amp;quot;], 4, (0,0,0), 0, anglestoforward ((270,0,0)), anglestoup((270,0,0)));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Add FX.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
== Description of functions ==&lt;br /&gt;
playLoopedFx(level._effect[&amp;quot;FX Name&amp;quot;], Repeat Rate in seconds, (position XYZ), 0, anglestoforward((Front direction XYZ)), anglestoup((Up direction XYZ)));&lt;br /&gt;
&lt;br /&gt;
== Introduction into scripting ==&lt;br /&gt;
[[Call of Duty 5: Scripting Syntax And Grammar|Intro To Scripting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sources: [http://wiki.treyarch.com/wiki/FX_In_A_Map Treyarch&#039;s Wiki]&lt;br /&gt;
&lt;br /&gt;
[[Category:Call of Duty 5]]&lt;br /&gt;
[[Category:Mapping]]&lt;br /&gt;
[[Category:FXs]]&lt;br /&gt;
[[Category:Advanced Editing]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Arachnofang|arachnofang]] 10:36, 7 July 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_FXs&amp;diff=7539</id>
		<title>Call of Duty 5: FXs</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_FXs&amp;diff=7539"/>
		<updated>2010-07-07T10:40:34Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Description of functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Warning.png]] &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NOTE: This tutorial, taken from the Treyarch Wiki, has been edited as the original code doesnt work&amp;lt;/font color&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Creating your FX ==&lt;br /&gt;
In this tutorial we will be using a very simple but effective way to add effects to your map.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp,&lt;br /&gt;
if you do not have one then you need to create one, once you have created one copy and paste these lines into it,&lt;br /&gt;
you may need to change the team nationalities as well. &lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always&lt;br /&gt;
make sure you make backup copies first. &lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Adding your script origins ==&lt;br /&gt;
The first thing you need to do is decide where you want to put your fx, once you have decided, right click in&lt;br /&gt;
the 2d screen and select...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script/origin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In order to get the correct co-ords you need to deselect your script origin then select it again, press &#039;n&#039; to&lt;br /&gt;
bring up the entity window, and now you will have the correct co-ords, basically what happens is, when you move&lt;br /&gt;
the script origin and then press &#039;n&#039; while keeping it constantly highlighted it remembers the co-ords from its&lt;br /&gt;
last position and retains those, this is why you have to deselect it and reselect it to get the correct co-ords.&lt;br /&gt;
&lt;br /&gt;
when adding script origins I always leave them in, I never delete them from my map, mainly&lt;br /&gt;
because if I have a lot of the same fx in the map and I want to either change an fx or&lt;br /&gt;
delete it then I can just get the co-ords from the script origin and use &#039;find&#039; in my&lt;br /&gt;
fx.gsc file to find that particular fx, if you have too many script origins and script_structs in your map press&lt;br /&gt;
&#039;f&#039; to bring up the filter window and deselect &#039;script origins&#039;, now they will be hidden.&lt;br /&gt;
&lt;br /&gt;
Create a new text document on your desktop called&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fx_co-ords.txt.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copy the co-ords from your cript origin and paste them into your &#039;fx_co-ords.txt file on your desktop,&lt;br /&gt;
Once you have copied and pasted your co-ords into fx_co-ords.txt it should look something like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
48 110 236&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In order for your fx to work properly in your fx.gsc file you need to add comma&#039;s&lt;br /&gt;
&lt;br /&gt;
so now it should look like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
48, 110, 236&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Without these comma&#039;s your fx won&#039;t work.&lt;br /&gt;
&lt;br /&gt;
Now you need to create a &#039;fx.gsc file in...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw/maps/mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now copy and paste these lines in to your newly created fx.gsc file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include maps\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
        precacheFX();&lt;br /&gt;
        spawnFX();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
precacheFX()&lt;br /&gt;
{&lt;br /&gt;
        level._effect[&amp;quot;mp_fire_medium&amp;quot;] = loadfx(&amp;quot;maps/mp_maps/fx_mp_fire_medium&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
spawnFX()&lt;br /&gt;
{&lt;br /&gt;
        playLoopedFx(level._effect[&amp;quot;mp_fire_medium&amp;quot;], 4, (0,0,0), 0, anglestoforward ((270,0,0)), anglestoup((270,0,0)));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now save it.&lt;br /&gt;
&lt;br /&gt;
== Adding lines to your .gsc and zone files ==&lt;br /&gt;
Now we need to add this line to your mp_yourmapsname.gsc file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\mp_yourmapname_fx::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add the line directly below&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\_load::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So now it should look like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\_load::main();&lt;br /&gt;
maps\mp\mp_yourmapname_fx::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now we need to Update your zone file which you will find in...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw\zone_source&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
with these two lines &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,maps\mp\mp_yourmapname_fx.gsc&lt;br /&gt;
&lt;br /&gt;
fx,maps/mp_maps/fx_mp_fire_medium&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thats it! Now if you compile and run your map and you should now see your fire effect.&lt;br /&gt;
 &lt;br /&gt;
== Description of your FX GSC ==&lt;br /&gt;
1. Your main function.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
        precacheFX();&lt;br /&gt;
        spawnFX();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This can do everything if you want but for organization purposes it is advised you have at least both these&lt;br /&gt;
functions to separate the steps. &lt;br /&gt;
&lt;br /&gt;
2. precacheFX() and spawnFX() functions. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
precacheFX()&lt;br /&gt;
{&lt;br /&gt;
        level._effect[&amp;quot;mp_fire_medium&amp;quot;] = loadfx(&amp;quot;maps/mp_maps/fx_mp_fire_medium&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(level._effect[&amp;quot;mp_fire_medium&amp;quot;]) the name &amp;quot;mp_fire_medium&amp;quot; will be referenced by all your scripts, this can be&lt;br /&gt;
anything. &lt;br /&gt;
&lt;br /&gt;
3.spawnFX() function &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
spawnFX()&lt;br /&gt;
{&lt;br /&gt;
        playLoopedFx(level._effect[&amp;quot;mp_fire_medium&amp;quot;], 4, (0,0,0), 0, anglestoforward ((270,0,0)), anglestoup((270,0,0)));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Add FX.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
== Description of functions ==&lt;br /&gt;
playLoopedFx(level._effect[&amp;quot;FX Name&amp;quot;], Repeat Rate in seconds, (position XYZ), 0, anglestoforward((Front direction XYZ)), anglestoup((Up direction XYZ)));&lt;br /&gt;
&lt;br /&gt;
== Introduction into scripting ==&lt;br /&gt;
[[Call of Duty 5: Scripting Syntax And Grammar|Intro To Scripting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sources: [http://wiki.treyarch.com/wiki/FX_In_A_Map Treyarch&#039;s Wiki]&lt;br /&gt;
&lt;br /&gt;
[[Category:Call of Duty 5]]&lt;br /&gt;
[[Category:Mapping]]&lt;br /&gt;
[[Category:FXs]]&lt;br /&gt;
[[Category:Advanced Editing]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Arachnofang|arachnofang]] 10:36, 7 July 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_FXs&amp;diff=7538</id>
		<title>Call of Duty 5: FXs</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_FXs&amp;diff=7538"/>
		<updated>2010-07-07T10:36:27Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* spawnFX() function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Warning.png]] &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NOTE: This tutorial, taken from the Treyarch Wiki, has been edited as the original code doesnt work&amp;lt;/font color&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Creating your FX ==&lt;br /&gt;
In this tutorial we will be using a very simple but effective way to add effects to your map.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp,&lt;br /&gt;
if you do not have one then you need to create one, once you have created one copy and paste these lines into it,&lt;br /&gt;
you may need to change the team nationalities as well. &lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always&lt;br /&gt;
make sure you make backup copies first. &lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Adding your script origins ==&lt;br /&gt;
The first thing you need to do is decide where you want to put your fx, once you have decided, right click in&lt;br /&gt;
the 2d screen and select...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script/origin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In order to get the correct co-ords you need to deselect your script origin then select it again, press &#039;n&#039; to&lt;br /&gt;
bring up the entity window, and now you will have the correct co-ords, basically what happens is, when you move&lt;br /&gt;
the script origin and then press &#039;n&#039; while keeping it constantly highlighted it remembers the co-ords from its&lt;br /&gt;
last position and retains those, this is why you have to deselect it and reselect it to get the correct co-ords.&lt;br /&gt;
&lt;br /&gt;
when adding script origins I always leave them in, I never delete them from my map, mainly&lt;br /&gt;
because if I have a lot of the same fx in the map and I want to either change an fx or&lt;br /&gt;
delete it then I can just get the co-ords from the script origin and use &#039;find&#039; in my&lt;br /&gt;
fx.gsc file to find that particular fx, if you have too many script origins and script_structs in your map press&lt;br /&gt;
&#039;f&#039; to bring up the filter window and deselect &#039;script origins&#039;, now they will be hidden.&lt;br /&gt;
&lt;br /&gt;
Create a new text document on your desktop called&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fx_co-ords.txt.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copy the co-ords from your cript origin and paste them into your &#039;fx_co-ords.txt file on your desktop,&lt;br /&gt;
Once you have copied and pasted your co-ords into fx_co-ords.txt it should look something like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
48 110 236&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In order for your fx to work properly in your fx.gsc file you need to add comma&#039;s&lt;br /&gt;
&lt;br /&gt;
so now it should look like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
48, 110, 236&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Without these comma&#039;s your fx won&#039;t work.&lt;br /&gt;
&lt;br /&gt;
Now you need to create a &#039;fx.gsc file in...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw/maps/mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now copy and paste these lines in to your newly created fx.gsc file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include maps\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
        precacheFX();&lt;br /&gt;
        spawnFX();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
precacheFX()&lt;br /&gt;
{&lt;br /&gt;
        level._effect[&amp;quot;mp_fire_medium&amp;quot;] = loadfx(&amp;quot;maps/mp_maps/fx_mp_fire_medium&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
spawnFX()&lt;br /&gt;
{&lt;br /&gt;
        playLoopedFx(level._effect[&amp;quot;mp_fire_medium&amp;quot;], 4, (0,0,0), 0, anglestoforward ((270,0,0)), anglestoup((270,0,0)));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now save it.&lt;br /&gt;
&lt;br /&gt;
== Adding lines to your .gsc and zone files ==&lt;br /&gt;
Now we need to add this line to your mp_yourmapsname.gsc file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\mp_yourmapname_fx::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add the line directly below&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\_load::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So now it should look like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\_load::main();&lt;br /&gt;
maps\mp\mp_yourmapname_fx::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now we need to Update your zone file which you will find in...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw\zone_source&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
with these two lines &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,maps\mp\mp_yourmapname_fx.gsc&lt;br /&gt;
&lt;br /&gt;
fx,maps/mp_maps/fx_mp_fire_medium&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thats it! Now if you compile and run your map and you should now see your fire effect.&lt;br /&gt;
 &lt;br /&gt;
== Description of your FX GSC ==&lt;br /&gt;
1. Your main function.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
        precacheFX();&lt;br /&gt;
        spawnFX();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This can do everything if you want but for organization purposes it is advised you have at least both these&lt;br /&gt;
functions to separate the steps. &lt;br /&gt;
&lt;br /&gt;
2. precacheFX() and spawnFX() functions. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
precacheFX()&lt;br /&gt;
{&lt;br /&gt;
        level._effect[&amp;quot;mp_fire_medium&amp;quot;] = loadfx(&amp;quot;maps/mp_maps/fx_mp_fire_medium&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(level._effect[&amp;quot;mp_fire_medium&amp;quot;]) the name &amp;quot;mp_fire_medium&amp;quot; will be referenced by all your scripts, this can be&lt;br /&gt;
anything. &lt;br /&gt;
&lt;br /&gt;
3.spawnFX() function &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
spawnFX()&lt;br /&gt;
{&lt;br /&gt;
        playLoopedFx(level._effect[&amp;quot;mp_fire_medium&amp;quot;], 4, (0,0,0), 0, anglestoforward ((270,0,0)), anglestoup((270,0,0)));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Add FX.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
== Description of functions ==&lt;br /&gt;
playLoopedFx(level._effect[&amp;quot;FX Name&amp;quot;], Repeat Rate in seconds, (position XYZ), 0, anglestoforward((Front direction XYZ)), anglestoup((Up direction XYZ)));&lt;br /&gt;
&lt;br /&gt;
Sources: [http://wiki.treyarch.com/wiki/FX_In_A_Map Treyarch&#039;s Wiki]&lt;br /&gt;
&lt;br /&gt;
[[Category:Call of Duty 5]]&lt;br /&gt;
[[Category:Mapping]]&lt;br /&gt;
[[Category:FXs]]&lt;br /&gt;
[[Category:Advanced Editing]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Arachnofang|arachnofang]] 10:36, 7 July 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_FXs&amp;diff=7537</id>
		<title>Call of Duty 5: FXs</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_FXs&amp;diff=7537"/>
		<updated>2010-07-07T10:34:37Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Description of your FX GSC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Warning.png]] &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NOTE: This tutorial, taken from the Treyarch Wiki, has been edited as the original code doesnt work&amp;lt;/font color&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Creating your FX ==&lt;br /&gt;
In this tutorial we will be using a very simple but effective way to add effects to your map.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp,&lt;br /&gt;
if you do not have one then you need to create one, once you have created one copy and paste these lines into it,&lt;br /&gt;
you may need to change the team nationalities as well. &lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always&lt;br /&gt;
make sure you make backup copies first. &lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Adding your script origins ==&lt;br /&gt;
The first thing you need to do is decide where you want to put your fx, once you have decided, right click in&lt;br /&gt;
the 2d screen and select...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script/origin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In order to get the correct co-ords you need to deselect your script origin then select it again, press &#039;n&#039; to&lt;br /&gt;
bring up the entity window, and now you will have the correct co-ords, basically what happens is, when you move&lt;br /&gt;
the script origin and then press &#039;n&#039; while keeping it constantly highlighted it remembers the co-ords from its&lt;br /&gt;
last position and retains those, this is why you have to deselect it and reselect it to get the correct co-ords.&lt;br /&gt;
&lt;br /&gt;
when adding script origins I always leave them in, I never delete them from my map, mainly&lt;br /&gt;
because if I have a lot of the same fx in the map and I want to either change an fx or&lt;br /&gt;
delete it then I can just get the co-ords from the script origin and use &#039;find&#039; in my&lt;br /&gt;
fx.gsc file to find that particular fx, if you have too many script origins and script_structs in your map press&lt;br /&gt;
&#039;f&#039; to bring up the filter window and deselect &#039;script origins&#039;, now they will be hidden.&lt;br /&gt;
&lt;br /&gt;
Create a new text document on your desktop called&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fx_co-ords.txt.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copy the co-ords from your cript origin and paste them into your &#039;fx_co-ords.txt file on your desktop,&lt;br /&gt;
Once you have copied and pasted your co-ords into fx_co-ords.txt it should look something like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
48 110 236&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In order for your fx to work properly in your fx.gsc file you need to add comma&#039;s&lt;br /&gt;
&lt;br /&gt;
so now it should look like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
48, 110, 236&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Without these comma&#039;s your fx won&#039;t work.&lt;br /&gt;
&lt;br /&gt;
Now you need to create a &#039;fx.gsc file in...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw/maps/mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now copy and paste these lines in to your newly created fx.gsc file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include maps\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
        precacheFX();&lt;br /&gt;
        spawnFX();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
precacheFX()&lt;br /&gt;
{&lt;br /&gt;
        level._effect[&amp;quot;mp_fire_medium&amp;quot;] = loadfx(&amp;quot;maps/mp_maps/fx_mp_fire_medium&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
spawnFX()&lt;br /&gt;
{&lt;br /&gt;
        playLoopedFx(level._effect[&amp;quot;mp_fire_medium&amp;quot;], 4, (0,0,0), 0, anglestoforward ((270,0,0)), anglestoup((270,0,0)));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now save it.&lt;br /&gt;
&lt;br /&gt;
== Adding lines to your .gsc and zone files ==&lt;br /&gt;
Now we need to add this line to your mp_yourmapsname.gsc file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\mp_yourmapname_fx::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add the line directly below&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\_load::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So now it should look like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\_load::main();&lt;br /&gt;
maps\mp\mp_yourmapname_fx::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now we need to Update your zone file which you will find in...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw\zone_source&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
with these two lines &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,maps\mp\mp_yourmapname_fx.gsc&lt;br /&gt;
&lt;br /&gt;
fx,maps/mp_maps/fx_mp_fire_medium&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thats it! Now if you compile and run your map and you should now see your fire effect.&lt;br /&gt;
 &lt;br /&gt;
== Description of your FX GSC ==&lt;br /&gt;
1. Your main function.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
        precacheFX();&lt;br /&gt;
        spawnFX();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This can do everything if you want but for organization purposes it is advised you have at least both these&lt;br /&gt;
functions to separate the steps. &lt;br /&gt;
&lt;br /&gt;
2. precacheFX() and spawnFX() functions. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
precacheFX()&lt;br /&gt;
{&lt;br /&gt;
        level._effect[&amp;quot;mp_fire_medium&amp;quot;] = loadfx(&amp;quot;maps/mp_maps/fx_mp_fire_medium&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(level._effect[&amp;quot;mp_fire_medium&amp;quot;]) the name &amp;quot;mp_fire_medium&amp;quot; will be referenced by all your scripts, this can be&lt;br /&gt;
anything. &lt;br /&gt;
&lt;br /&gt;
3.spawnFX() function &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
spawnFX()&lt;br /&gt;
{&lt;br /&gt;
        playLoopedFx(level._effect[&amp;quot;mp_fire_medium&amp;quot;], 4, (0,0,0), 0, anglestoforward ((270,0,0)), anglestoup((270,0,0)));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Add FX.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
== Description of functions ==&lt;br /&gt;
playLoopedFx(level._effect[&amp;quot;FX Name&amp;quot;], Repeat Rate in seconds, (position XYZ), 0, anglestoforward((Front direction XYZ)), anglestoup((Up direction XYZ)));&lt;br /&gt;
&lt;br /&gt;
== spawnFX() function ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
spawnFX()&lt;br /&gt;
{&lt;br /&gt;
        playLoopedFx(level._effect[&amp;quot;mp_fire_medium&amp;quot;], 4, (0,0,0), 0, anglestoforward ((270,0,0)), anglestoup((270,0,0)));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*playLoopedFx(level._effect[&amp;quot;&#039;&#039;&#039;FX Name&#039;&#039;&#039;&amp;quot;], &#039;&#039;&#039;Repeat Rate in seconds&#039;&#039;&#039;, (&#039;&#039;&#039;position XYZ&#039;&#039;&#039;), 0, anglestoforward((&#039;&#039;&#039;Front direction XYZ&#039;&#039;&#039;)), anglestoup((&#039;&#039;&#039;Up direction XYZ&#039;&#039;&#039;)));&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Add FX.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sources: [http://wiki.treyarch.com/wiki/FX_In_A_Map Treyarch&#039;s Wiki]&lt;br /&gt;
&lt;br /&gt;
[[Category:Call of Duty 5]]&lt;br /&gt;
[[Category:Mapping]]&lt;br /&gt;
[[Category:FXs]]&lt;br /&gt;
[[Category:Advanced Editing]]&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_FXs&amp;diff=7536</id>
		<title>Call of Duty 5: FXs</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_FXs&amp;diff=7536"/>
		<updated>2010-07-07T10:32:01Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Description of your FX GSC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Warning.png]] &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NOTE: This tutorial, taken from the Treyarch Wiki, has been edited as the original code doesnt work&amp;lt;/font color&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Creating your FX ==&lt;br /&gt;
In this tutorial we will be using a very simple but effective way to add effects to your map.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp,&lt;br /&gt;
if you do not have one then you need to create one, once you have created one copy and paste these lines into it,&lt;br /&gt;
you may need to change the team nationalities as well. &lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always&lt;br /&gt;
make sure you make backup copies first. &lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Adding your script origins ==&lt;br /&gt;
The first thing you need to do is decide where you want to put your fx, once you have decided, right click in&lt;br /&gt;
the 2d screen and select...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script/origin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In order to get the correct co-ords you need to deselect your script origin then select it again, press &#039;n&#039; to&lt;br /&gt;
bring up the entity window, and now you will have the correct co-ords, basically what happens is, when you move&lt;br /&gt;
the script origin and then press &#039;n&#039; while keeping it constantly highlighted it remembers the co-ords from its&lt;br /&gt;
last position and retains those, this is why you have to deselect it and reselect it to get the correct co-ords.&lt;br /&gt;
&lt;br /&gt;
when adding script origins I always leave them in, I never delete them from my map, mainly&lt;br /&gt;
because if I have a lot of the same fx in the map and I want to either change an fx or&lt;br /&gt;
delete it then I can just get the co-ords from the script origin and use &#039;find&#039; in my&lt;br /&gt;
fx.gsc file to find that particular fx, if you have too many script origins and script_structs in your map press&lt;br /&gt;
&#039;f&#039; to bring up the filter window and deselect &#039;script origins&#039;, now they will be hidden.&lt;br /&gt;
&lt;br /&gt;
Create a new text document on your desktop called&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fx_co-ords.txt.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copy the co-ords from your cript origin and paste them into your &#039;fx_co-ords.txt file on your desktop,&lt;br /&gt;
Once you have copied and pasted your co-ords into fx_co-ords.txt it should look something like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
48 110 236&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In order for your fx to work properly in your fx.gsc file you need to add comma&#039;s&lt;br /&gt;
&lt;br /&gt;
so now it should look like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
48, 110, 236&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Without these comma&#039;s your fx won&#039;t work.&lt;br /&gt;
&lt;br /&gt;
Now you need to create a &#039;fx.gsc file in...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw/maps/mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now copy and paste these lines in to your newly created fx.gsc file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include maps\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
        precacheFX();&lt;br /&gt;
        spawnFX();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
precacheFX()&lt;br /&gt;
{&lt;br /&gt;
        level._effect[&amp;quot;mp_fire_medium&amp;quot;] = loadfx(&amp;quot;maps/mp_maps/fx_mp_fire_medium&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
spawnFX()&lt;br /&gt;
{&lt;br /&gt;
        playLoopedFx(level._effect[&amp;quot;mp_fire_medium&amp;quot;], 4, (0,0,0), 0, anglestoforward ((270,0,0)), anglestoup((270,0,0)));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now save it.&lt;br /&gt;
&lt;br /&gt;
== Adding lines to your .gsc and zone files ==&lt;br /&gt;
Now we need to add this line to your mp_yourmapsname.gsc file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\mp_yourmapname_fx::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add the line directly below&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\_load::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So now it should look like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\_load::main();&lt;br /&gt;
maps\mp\mp_yourmapname_fx::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now we need to Update your zone file which you will find in...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw\zone_source&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
with these two lines &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,maps\mp\mp_yourmapname_fx.gsc&lt;br /&gt;
&lt;br /&gt;
fx,maps/mp_maps/fx_mp_fire_medium&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thats it! Now if you compile and run your map and you should now see your fire effect.&lt;br /&gt;
 &lt;br /&gt;
== Description of your FX GSC ==&lt;br /&gt;
1. Your main function.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
        precacheFX();&lt;br /&gt;
        spawnFX();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This can do everything if you want but for organization purposes it is advised you have at least both these&lt;br /&gt;
functions to separate the steps. &lt;br /&gt;
&lt;br /&gt;
2. precacheFX() and spawnFX() functions. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
precacheFX()&lt;br /&gt;
{&lt;br /&gt;
        level._effect[&amp;quot;mp_fire_medium&amp;quot;] = loadfx(&amp;quot;maps/mp_maps/fx_mp_fire_medium&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(level._effect[&amp;quot;mp_fire_medium&amp;quot;]) the name &amp;quot;mp_fire_medium&amp;quot; will be referenced by all your scripts, this can be&lt;br /&gt;
anything. &lt;br /&gt;
&lt;br /&gt;
3.spawnFX() function &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
spawnFX()&lt;br /&gt;
{&lt;br /&gt;
        playLoopedFx(level._effect[&amp;quot;mp_fire_medium&amp;quot;], 4, (0,0,0), 0, anglestoforward ((270,0,0)), anglestoup((270,0,0)));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Description of functions ==&lt;br /&gt;
playLoopedFx(level._effect[&amp;quot;FX Name&amp;quot;], Repeat Rate in seconds, (position XYZ), 0, anglestoforward((Front direction XYZ)), anglestoup((Up direction XYZ)));&lt;br /&gt;
&lt;br /&gt;
== spawnFX() function ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
spawnFX()&lt;br /&gt;
{&lt;br /&gt;
        playLoopedFx(level._effect[&amp;quot;mp_fire_medium&amp;quot;], 4, (0,0,0), 0, anglestoforward ((270,0,0)), anglestoup((270,0,0)));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*playLoopedFx(level._effect[&amp;quot;&#039;&#039;&#039;FX Name&#039;&#039;&#039;&amp;quot;], &#039;&#039;&#039;Repeat Rate in seconds&#039;&#039;&#039;, (&#039;&#039;&#039;position XYZ&#039;&#039;&#039;), 0, anglestoforward((&#039;&#039;&#039;Front direction XYZ&#039;&#039;&#039;)), anglestoup((&#039;&#039;&#039;Up direction XYZ&#039;&#039;&#039;)));&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Add FX.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sources: [http://wiki.treyarch.com/wiki/FX_In_A_Map Treyarch&#039;s Wiki]&lt;br /&gt;
&lt;br /&gt;
[[Category:Call of Duty 5]]&lt;br /&gt;
[[Category:Mapping]]&lt;br /&gt;
[[Category:FXs]]&lt;br /&gt;
[[Category:Advanced Editing]]&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_FXs&amp;diff=7535</id>
		<title>Call of Duty 5: FXs</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_FXs&amp;diff=7535"/>
		<updated>2010-07-07T10:19:07Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Description of your FX GSC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Warning.png]] &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NOTE: This tutorial, taken from the Treyarch Wiki, has been edited as the original code doesnt work&amp;lt;/font color&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Creating your FX ==&lt;br /&gt;
In this tutorial we will be using a very simple but effective way to add effects to your map.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp,&lt;br /&gt;
if you do not have one then you need to create one, once you have created one copy and paste these lines into it,&lt;br /&gt;
you may need to change the team nationalities as well. &lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always&lt;br /&gt;
make sure you make backup copies first. &lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Adding your script origins ==&lt;br /&gt;
The first thing you need to do is decide where you want to put your fx, once you have decided, right click in&lt;br /&gt;
the 2d screen and select...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script/origin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In order to get the correct co-ords you need to deselect your script origin then select it again, press &#039;n&#039; to&lt;br /&gt;
bring up the entity window, and now you will have the correct co-ords, basically what happens is, when you move&lt;br /&gt;
the script origin and then press &#039;n&#039; while keeping it constantly highlighted it remembers the co-ords from its&lt;br /&gt;
last position and retains those, this is why you have to deselect it and reselect it to get the correct co-ords.&lt;br /&gt;
&lt;br /&gt;
when adding script origins I always leave them in, I never delete them from my map, mainly&lt;br /&gt;
because if I have a lot of the same fx in the map and I want to either change an fx or&lt;br /&gt;
delete it then I can just get the co-ords from the script origin and use &#039;find&#039; in my&lt;br /&gt;
fx.gsc file to find that particular fx, if you have too many script origins and script_structs in your map press&lt;br /&gt;
&#039;f&#039; to bring up the filter window and deselect &#039;script origins&#039;, now they will be hidden.&lt;br /&gt;
&lt;br /&gt;
Create a new text document on your desktop called&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fx_co-ords.txt.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copy the co-ords from your cript origin and paste them into your &#039;fx_co-ords.txt file on your desktop,&lt;br /&gt;
Once you have copied and pasted your co-ords into fx_co-ords.txt it should look something like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
48 110 236&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In order for your fx to work properly in your fx.gsc file you need to add comma&#039;s&lt;br /&gt;
&lt;br /&gt;
so now it should look like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
48, 110, 236&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Without these comma&#039;s your fx won&#039;t work.&lt;br /&gt;
&lt;br /&gt;
Now you need to create a &#039;fx.gsc file in...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw/maps/mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now copy and paste these lines in to your newly created fx.gsc file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include maps\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
        precacheFX();&lt;br /&gt;
        spawnFX();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
precacheFX()&lt;br /&gt;
{&lt;br /&gt;
        level._effect[&amp;quot;mp_fire_medium&amp;quot;] = loadfx(&amp;quot;maps/mp_maps/fx_mp_fire_medium&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
spawnFX()&lt;br /&gt;
{&lt;br /&gt;
        playLoopedFx(level._effect[&amp;quot;mp_fire_medium&amp;quot;], 4, (0,0,0), 0, anglestoforward ((270,0,0)), anglestoup((270,0,0)));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now save it.&lt;br /&gt;
&lt;br /&gt;
== Adding lines to your .gsc and zone files ==&lt;br /&gt;
Now we need to add this line to your mp_yourmapsname.gsc file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\mp_yourmapname_fx::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add the line directly below&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\_load::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So now it should look like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\_load::main();&lt;br /&gt;
maps\mp\mp_yourmapname_fx::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now we need to Update your zone file which you will find in...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw\zone_source&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
with these two lines &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,maps\mp\mp_yourmapname_fx.gsc&lt;br /&gt;
&lt;br /&gt;
fx,maps/mp_maps/fx_mp_fire_medium&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thats it! Now if you compile and run your map and you should now see your fire effect.&lt;br /&gt;
 &lt;br /&gt;
== Description of your FX GSC ==&lt;br /&gt;
1. Your main function.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
        precacheFX();&lt;br /&gt;
        spawnFX();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This can do everything if you want but for organization purposes it is advised you have at least both these&lt;br /&gt;
functions to separate the steps. &lt;br /&gt;
2. precacheFX() and spawnFX() functions. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
precacheFX()&lt;br /&gt;
{&lt;br /&gt;
        level._effect[&amp;quot;mp_fire_medium&amp;quot;] = loadfx(&amp;quot;maps/mp_maps/fx_mp_fire_medium&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3. level._effect[&amp;quot;mp_fire_medium&amp;quot;] the name &amp;quot;mp_fire_medium&amp;quot; will be referenced by all your scripts, this can be&lt;br /&gt;
anything. &lt;br /&gt;
4. loadfx(&amp;quot;maps/mp_maps/fx_mp_fire_medium&amp;quot;) is the path to the tagged FX, notice that there is no extension on&lt;br /&gt;
the end of the path. &lt;br /&gt;
[edit] spawnFX() function &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
spawnFX()&lt;br /&gt;
{&lt;br /&gt;
        playLoopedFx(level._effect[&amp;quot;mp_fire_medium&amp;quot;], 4, (0,0,0), 0, anglestoforward ((270,0,0)), anglestoup((270,0,0)));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
playLoopedFx(level._effect[&amp;quot;FX Name&amp;quot;], Repeat Rate in seconds, (position XYZ), 0, anglestoforward((Front direction XYZ)), anglestoup((Up direction XYZ)));&lt;br /&gt;
&lt;br /&gt;
== spawnFX() function ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
spawnFX()&lt;br /&gt;
{&lt;br /&gt;
        playLoopedFx(level._effect[&amp;quot;mp_fire_medium&amp;quot;], 4, (0,0,0), 0, anglestoforward ((270,0,0)), anglestoup((270,0,0)));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*playLoopedFx(level._effect[&amp;quot;&#039;&#039;&#039;FX Name&#039;&#039;&#039;&amp;quot;], &#039;&#039;&#039;Repeat Rate in seconds&#039;&#039;&#039;, (&#039;&#039;&#039;position XYZ&#039;&#039;&#039;), 0, anglestoforward((&#039;&#039;&#039;Front direction XYZ&#039;&#039;&#039;)), anglestoup((&#039;&#039;&#039;Up direction XYZ&#039;&#039;&#039;)));&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Add FX.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sources: [http://wiki.treyarch.com/wiki/FX_In_A_Map Treyarch&#039;s Wiki]&lt;br /&gt;
&lt;br /&gt;
[[Category:Call of Duty 5]]&lt;br /&gt;
[[Category:Mapping]]&lt;br /&gt;
[[Category:FXs]]&lt;br /&gt;
[[Category:Advanced Editing]]&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_FXs&amp;diff=7534</id>
		<title>Call of Duty 5: FXs</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_FXs&amp;diff=7534"/>
		<updated>2010-07-07T10:18:01Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Creating your FX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Warning.png]] &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;NOTE: This tutorial, taken from the Treyarch Wiki, has been edited as the original code doesnt work&amp;lt;/font color&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Creating your FX ==&lt;br /&gt;
In this tutorial we will be using a very simple but effective way to add effects to your map.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp,&lt;br /&gt;
if you do not have one then you need to create one, once you have created one copy and paste these lines into it,&lt;br /&gt;
you may need to change the team nationalities as well. &lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always&lt;br /&gt;
make sure you make backup copies first. &lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Adding your script origins ==&lt;br /&gt;
The first thing you need to do is decide where you want to put your fx, once you have decided, right click in&lt;br /&gt;
the 2d screen and select...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
script/origin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In order to get the correct co-ords you need to deselect your script origin then select it again, press &#039;n&#039; to&lt;br /&gt;
bring up the entity window, and now you will have the correct co-ords, basically what happens is, when you move&lt;br /&gt;
the script origin and then press &#039;n&#039; while keeping it constantly highlighted it remembers the co-ords from its&lt;br /&gt;
last position and retains those, this is why you have to deselect it and reselect it to get the correct co-ords.&lt;br /&gt;
&lt;br /&gt;
when adding script origins I always leave them in, I never delete them from my map, mainly&lt;br /&gt;
because if I have a lot of the same fx in the map and I want to either change an fx or&lt;br /&gt;
delete it then I can just get the co-ords from the script origin and use &#039;find&#039; in my&lt;br /&gt;
fx.gsc file to find that particular fx, if you have too many script origins and script_structs in your map press&lt;br /&gt;
&#039;f&#039; to bring up the filter window and deselect &#039;script origins&#039;, now they will be hidden.&lt;br /&gt;
&lt;br /&gt;
Create a new text document on your desktop called&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fx_co-ords.txt.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copy the co-ords from your cript origin and paste them into your &#039;fx_co-ords.txt file on your desktop,&lt;br /&gt;
Once you have copied and pasted your co-ords into fx_co-ords.txt it should look something like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
48 110 236&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In order for your fx to work properly in your fx.gsc file you need to add comma&#039;s&lt;br /&gt;
&lt;br /&gt;
so now it should look like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
48, 110, 236&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Without these comma&#039;s your fx won&#039;t work.&lt;br /&gt;
&lt;br /&gt;
Now you need to create a &#039;fx.gsc file in...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw/maps/mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now copy and paste these lines in to your newly created fx.gsc file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include maps\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
        precacheFX();&lt;br /&gt;
        spawnFX();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
precacheFX()&lt;br /&gt;
{&lt;br /&gt;
        level._effect[&amp;quot;mp_fire_medium&amp;quot;] = loadfx(&amp;quot;maps/mp_maps/fx_mp_fire_medium&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
spawnFX()&lt;br /&gt;
{&lt;br /&gt;
        playLoopedFx(level._effect[&amp;quot;mp_fire_medium&amp;quot;], 4, (0,0,0), 0, anglestoforward ((270,0,0)), anglestoup((270,0,0)));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now save it.&lt;br /&gt;
&lt;br /&gt;
== Adding lines to your .gsc and zone files ==&lt;br /&gt;
Now we need to add this line to your mp_yourmapsname.gsc file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\mp_yourmapname_fx::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add the line directly below&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\_load::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So now it should look like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maps\mp\_load::main();&lt;br /&gt;
maps\mp\mp_yourmapname_fx::main();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now we need to Update your zone file which you will find in...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw\zone_source&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
with these two lines &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,maps\mp\mp_yourmapname_fx.gsc&lt;br /&gt;
&lt;br /&gt;
fx,maps/mp_maps/fx_mp_fire_medium&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thats it! Now if you compile and run your map and you should now see your fire effect.&lt;br /&gt;
 &lt;br /&gt;
== Description of your FX GSC ==&lt;br /&gt;
1. Your main function.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
        precacheFX();&lt;br /&gt;
        spawnFX();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This can do everything if you want but for organization purposes it is advised you have at least both these&lt;br /&gt;
functions to separate the steps. &lt;br /&gt;
2. precacheFX() and spawnFX() functions. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
precacheFX()&lt;br /&gt;
{&lt;br /&gt;
        level._effect[&amp;quot;mp_fire_medium&amp;quot;] = loadfx(&amp;quot;maps/mp_maps/fx_mp_fire_medium&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3. level._effect[&amp;quot;mp_fire_medium&amp;quot;] the name &amp;quot;mp_fire_medium&amp;quot; will be referenced by all your scripts, this can be&lt;br /&gt;
anything. &lt;br /&gt;
4. loadfx(&amp;quot;maps/mp_maps/fx_mp_fire_medium&amp;quot;) is the path to the tagged FX, notice that there is no extension on&lt;br /&gt;
the end of the path. &lt;br /&gt;
[edit] spawnFX() function &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
spawnFX()&lt;br /&gt;
{&lt;br /&gt;
        playLoopedFx(level._effect[&amp;quot;mp_fire_medium&amp;quot;], 4, (0,0,0), 0, anglestoforward ((270,0,0)), anglestoup((270,0,0)));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
playLoopedFx(level._effect[&amp;quot;FX Name&amp;quot;], Repeat Rate in seconds, (position XYZ), 0, anglestoforward((Front direction XYZ)), anglestoup((Up direction XYZ)));&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Call of Duty 5: Scripting Syntax And Grammar|Intro To Scripting]]&lt;br /&gt;
&lt;br /&gt;
== spawnFX() function ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
spawnFX()&lt;br /&gt;
{&lt;br /&gt;
        playLoopedFx(level._effect[&amp;quot;mp_fire_medium&amp;quot;], 4, (0,0,0), 0, anglestoforward ((270,0,0)), anglestoup((270,0,0)));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*playLoopedFx(level._effect[&amp;quot;&#039;&#039;&#039;FX Name&#039;&#039;&#039;&amp;quot;], &#039;&#039;&#039;Repeat Rate in seconds&#039;&#039;&#039;, (&#039;&#039;&#039;position XYZ&#039;&#039;&#039;), 0, anglestoforward((&#039;&#039;&#039;Front direction XYZ&#039;&#039;&#039;)), anglestoup((&#039;&#039;&#039;Up direction XYZ&#039;&#039;&#039;)));&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Add FX.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sources: [http://wiki.treyarch.com/wiki/FX_In_A_Map Treyarch&#039;s Wiki]&lt;br /&gt;
&lt;br /&gt;
[[Category:Call of Duty 5]]&lt;br /&gt;
[[Category:Mapping]]&lt;br /&gt;
[[Category:FXs]]&lt;br /&gt;
[[Category:Advanced Editing]]&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7533</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7533"/>
		<updated>2010-07-05T00:07:10Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Final note (Important) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first.&lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
1.Crickets = ground&lt;br /&gt;
&lt;br /&gt;
2.flies = air&lt;br /&gt;
&lt;br /&gt;
3.Birds = trees, air&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
== Playing multiple sounds from a single script_struct ==&lt;br /&gt;
&lt;br /&gt;
Please ensure that you have followed steps 2, 3, 4 and 5 at the top of this page, everything is the same untill it comes to editing your soundalias &amp;amp; script struct.&lt;br /&gt;
&lt;br /&gt;
Your script struct for this example would have the label &amp;quot;fauna&amp;quot; Like so!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                VALUE&lt;br /&gt;
&lt;br /&gt;
targetname            fauna&lt;br /&gt;
script_sound          fauna&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you look at the first line and the line below that one you will see there are two differences, the number&lt;br /&gt;
one has been added at the beginning of the line and the sound effect is a different one, but all use the same&lt;br /&gt;
label &#039;fauna&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fauna,,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&lt;br /&gt;
fauna,1,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
     /\                          /\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And this is how you would play several different sounds using a single script struct, using crickets as an&lt;br /&gt;
example, this is what it would look like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fauna,1,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,2,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,3,SFX\amb\birds\random\bird_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,4,SFX\amb\birds\tawny\tawny_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So now! Your soundalias would look like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
fauna,1,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,2,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,3,SFX\amb\birds\random\bird_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,4,SFX\amb\birds\tawny\tawny_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You now know how to add sounds using script_structs, as I said earlier it is fairly easy and straight forward, but I can assure you, when you have done it once you can do it time &amp;amp; time again.&lt;br /&gt;
&lt;br /&gt;
== Custom sounds ==&lt;br /&gt;
&lt;br /&gt;
If you use custom sounds they need to be a certain format,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm uncompressed&lt;br /&gt;
44100hz 8bits mono&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also! You will need to make a folder called &#039;custom&#039;&lt;br /&gt;
&lt;br /&gt;
raw/sound/SFX/custom&lt;br /&gt;
&lt;br /&gt;
Any custom sounds you use are to go in this folder, the main reason is to keep your custom&lt;br /&gt;
sounds seperate from the stock ones, this makes it less confusing as you will always know&lt;br /&gt;
where your custom sounds are.&lt;br /&gt;
&lt;br /&gt;
Personally I use a program called Wavepad.&lt;br /&gt;
&lt;br /&gt;
[http://www.soft82.com/download/Windows/WavePad Get Windows Wavepad]&lt;br /&gt;
&lt;br /&gt;
== Final note (Important)==&lt;br /&gt;
&lt;br /&gt;
One thing to remember is! when adding sounds to your soundalias DO NOT use the same line for your script_struct sound and your line emitter sound, it will not work.&lt;br /&gt;
&lt;br /&gt;
Script_struct&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Line emitter&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see! From !wii onwards the two lines are totally different.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Arachnofang|arachnofang]] 00:07, 5 July 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Adding_Voiceovers&amp;diff=7532</id>
		<title>Call of Duty 5: Adding Voiceovers</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Adding_Voiceovers&amp;diff=7532"/>
		<updated>2010-07-05T00:06:36Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Adding the voiceovers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding voiceovers to your map ==&lt;br /&gt;
&lt;br /&gt;
Adding voiceovers to your map is probably the easiest sounds to add as there is very little involved in the way of editing.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first. &lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== zone file ==&lt;br /&gt;
&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adding the voiceovers ==&lt;br /&gt;
&lt;br /&gt;
The first thing to do is open up your multiplayer.csv file in notepad, or wichever text editor you prefer, you will find this file in...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw/soundalias&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So for US/JAP scroll down till you find &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Voiceover&lt;br /&gt;
# US Announcer USED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The next line down has a list of map names and the first one is mp_airfield, and thats the one &lt;br /&gt;
we want to change. it looks like this...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
US_1mc_freeforall,1,voiceovers\mp\us\US_1mc_freeforall_00.wav,,0.9,0.9,,,360,600,,,,,,voice,2d,streamed,,,,mp_airfield  mp_beachhead mp_castle mp_courtyard mp_hangar mp_kneedeep mp_makin mp_shrine,,,,,,,,,,,0,,1,,,,,,,,,,,,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you move the slider along a bit you will see mp_airfield is the first one, but we need it to look like this.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
US_1mc_freeforall,1,voiceovers\mp\us\US_1mc_freeforall_00.wav,,0.9,0.9,,,360,600,,,,,,voice,2d,streamed,,,,mp_yourmapsname  mp_beachhead mp_castle mp_courtyard mp_hangar mp_kneedeep mp_makin mp_shrine,,,,,,,,,,,0,,1,,,,,,,,,,,,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
AND! Every other line that has mp_airfield in it, so now go to menu at the top and select edit/replace.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
First box = mp_airfield&lt;br /&gt;
second box = mp_yourmapsname&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;replace all&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Thats the first half done.&lt;br /&gt;
&lt;br /&gt;
Now scroll down till you find... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#RU Announcer USED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Repeat the above steps with mp_asylum.&lt;br /&gt;
&lt;br /&gt;
now save and copy it to raw/soundaliases replacing the old one with your new one.&lt;br /&gt;
&lt;br /&gt;
Thats it! You now have voiceovers in your map.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Arachnofang|arachnofang]] 00:06, 5 July 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7531</id>
		<title>Call of Duty 5: Sounds with Line Emitter</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7531"/>
		<updated>2010-07-05T00:05:41Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding sound using a line emitter ==&lt;br /&gt;
&lt;br /&gt;
Line emitters play a continuous looping sound. Good for rivers, rain, waterfalls etc, the other good thing about using a line emitter is that as you get closer to it the sound gets louder and as you walk away from it it gets quieter, which adds a certain realism to the sound as this is what would happen in real life.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first.&lt;br /&gt;
&lt;br /&gt;
==csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work. &lt;br /&gt;
==zone file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Adding the line emitter ==&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the first script struct where you want the line to start.&lt;br /&gt;
&lt;br /&gt;
3.   Right click in the 2d screen again and select script struct.&lt;br /&gt;
&lt;br /&gt;
4.   Now place the second one where you want the line to end.&lt;br /&gt;
&lt;br /&gt;
5.   Now deselect everything by pressing Esc.&lt;br /&gt;
&lt;br /&gt;
Now you need to join them together.&lt;br /&gt;
&lt;br /&gt;
1.   High light the first script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Now high light the second script struct.&lt;br /&gt;
&lt;br /&gt;
3.   With both of them high lighted press &#039;w&#039;.&lt;br /&gt;
&lt;br /&gt;
You should now see a red line appear with little arrows on it linking the two script structs together, that&lt;br /&gt;
is your line emitter now created.&lt;br /&gt;
&lt;br /&gt;
4.   Press esc to deselect everything and save your map.&lt;br /&gt;
&lt;br /&gt;
Now you need to decide what sound effect you want to use, for this example we are going to use &#039;brook_00.wav&#039;&lt;br /&gt;
we also need to add a label to point to the sound effect, so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you&lt;br /&gt;
will see that I have used the label &#039;brookrun&#039; its better to use a label associated with the SFX sample you&lt;br /&gt;
are going to use, because its a small stream I have labeled it &#039;brookrun&#039;.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the first script struct which will play a specified sound&lt;br /&gt;
effect from your &#039;soundalias&#039; file High light the first script struct, the one with the red arrows pointing away from it and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the four you need to add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY             VALUE&lt;br /&gt;
&lt;br /&gt;
script_label       line_emitter&lt;br /&gt;
targetname         brookrun&lt;br /&gt;
script_sound       brookrun&lt;br /&gt;
script_looping     1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These four are generated automatically&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname          script_struct&lt;br /&gt;
target             auto113&lt;br /&gt;
angles             0 2.50448e-006 0&lt;br /&gt;
struct             -1651 1204.7 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the second script_struct these four are generated automatically so there is no need to do anything to this one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  KEY              VALUE&lt;br /&gt;
&lt;br /&gt;
angles           0 2.50448e-006 0&lt;br /&gt;
classname        script_struct&lt;br /&gt;
targetname       auto113&lt;br /&gt;
struct           -1651 1910 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;brookrun&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;br /&gt;
&lt;br /&gt;
== Using a single line emitter to randomly play multiple sounds ==&lt;br /&gt;
&lt;br /&gt;
Using a line emitter in this way will not change the sound randomly in-game, but what it will do,&lt;br /&gt;
is each time you load the map it will pick a sound from the list and play it, so as you can imagine&lt;br /&gt;
this adds a whole new dimension to your map inasmuch you can go to the same location each time the&lt;br /&gt;
map is loaded and it will be playing a different sound than the last time it was loaded.&lt;br /&gt;
&lt;br /&gt;
To add a line emitter refer to &#039;Adding sound using a line emitter&#039; at the top of this page, everything is the same untill it comes to editing your &#039;soundalias&#039; and &#039;script_structs&lt;br /&gt;
&lt;br /&gt;
The label &#039;animals&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effects then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
animals,1,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,2,SFX\amb\animals\dog\dog_09.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,3,SFX\amb\birds\random\bird_00.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,4,SFX\amb\animals\odd_bug\odd_bug_00.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;br /&gt;
&lt;br /&gt;
To hear the different sound fx you would have to leave the game and reload it then go back to the bush, also! &lt;br /&gt;
because it is selecting a sound from a list of four there is always the possibility it will load the same&lt;br /&gt;
sound the next time you go into your map, its hit and miss I&#039;m afraid :-)&lt;br /&gt;
&lt;br /&gt;
==  Final note (Important) ==&lt;br /&gt;
One thing to remember is! when adding sounds to your soundalias DO NOT use the same line for your script_struct sound and your line emitter sound, it will not work. &lt;br /&gt;
&lt;br /&gt;
Script_struct &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Line emitter &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As you can see! From !wii onwards the two lines are totally different.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Arachnofang|arachnofang]] 00:05, 5 July 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7530</id>
		<title>Call of Duty 5: Sounds with Line Emitter</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7530"/>
		<updated>2010-07-04T11:18:45Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Final note (Important) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding sound using a line emitter ==&lt;br /&gt;
&lt;br /&gt;
Line emitters play a continuous looping sound. Good for rivers, rain, waterfalls etc, the other good thing about using a line emitter is that as you get closer to it the sound gets louder and as you walk away from it it gets quieter, which adds a certain realism to the sound as this is what would happen in real life.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first.&lt;br /&gt;
&lt;br /&gt;
==csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work. &lt;br /&gt;
==zone file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Adding the line emitter ==&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the first script struct where you want the line to start.&lt;br /&gt;
&lt;br /&gt;
3.   Right click in the 2d screen again and select script struct.&lt;br /&gt;
&lt;br /&gt;
4.   Now place the second one where you want the line to end.&lt;br /&gt;
&lt;br /&gt;
5.   Now deselect everything by pressing Esc.&lt;br /&gt;
&lt;br /&gt;
Now you need to join them together.&lt;br /&gt;
&lt;br /&gt;
1.   High light the first script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Now high light the second script struct.&lt;br /&gt;
&lt;br /&gt;
3.   With both of them high lighted press &#039;w&#039;.&lt;br /&gt;
&lt;br /&gt;
You should now see a red line appear with little arrows on it linking the two script structs together, that&lt;br /&gt;
is your line emitter now created.&lt;br /&gt;
&lt;br /&gt;
4.   Press esc to deselect everything and save your map.&lt;br /&gt;
&lt;br /&gt;
Now you need to decide what sound effect you want to use, for this example we are going to use &#039;brook_00.wav&#039;&lt;br /&gt;
we also need to add a label to point to the sound effect, so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you&lt;br /&gt;
will see that I have used the label &#039;brookrun&#039; its better to use a label associated with the SFX sample you&lt;br /&gt;
are going to use, because its a small stream I have labeled it &#039;brookrun&#039;.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the first script struct which will play a specified sound&lt;br /&gt;
effect from your &#039;soundalias&#039; file High light the first script struct, the one with the red arrows pointing away from it and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the four you need to add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY             VALUE&lt;br /&gt;
&lt;br /&gt;
script_label       line_emitter&lt;br /&gt;
targetname         brookrun&lt;br /&gt;
script_sound       brookrun&lt;br /&gt;
script_looping     1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These four are generated automatically&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname          script_struct&lt;br /&gt;
target             auto113&lt;br /&gt;
angles             0 2.50448e-006 0&lt;br /&gt;
struct             -1651 1204.7 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the second script_struct these four are generated automatically so there is no need to do anything to this one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  KEY              VALUE&lt;br /&gt;
&lt;br /&gt;
angles           0 2.50448e-006 0&lt;br /&gt;
classname        script_struct&lt;br /&gt;
targetname       auto113&lt;br /&gt;
struct           -1651 1910 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;brookrun&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;br /&gt;
&lt;br /&gt;
== Using a single line emitter to randomly play multiple sounds ==&lt;br /&gt;
&lt;br /&gt;
Using a line emitter in this way will not change the sound randomly in-game, but what it will do,&lt;br /&gt;
is each time you load the map it will pick a sound from the list and play it, so as you can imagine&lt;br /&gt;
this adds a whole new dimension to your map inasmuch you can go to the same location each time the&lt;br /&gt;
map is loaded and it will be playing a different sound than the last time it was loaded.&lt;br /&gt;
&lt;br /&gt;
To add a line emitter refer to &#039;Adding sound using a line emitter&#039; at the top of this page, everything is the same untill it comes to editing your &#039;soundalias&#039; and &#039;script_structs&lt;br /&gt;
&lt;br /&gt;
The label &#039;animals&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effects then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
animals,1,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,2,SFX\amb\animals\dog\dog_09.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,3,SFX\amb\birds\random\bird_00.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,4,SFX\amb\animals\odd_bug\odd_bug_00.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;br /&gt;
&lt;br /&gt;
To hear the different sound fx you would have to leave the game and reload it then go back to the bush, also! &lt;br /&gt;
because it is selecting a sound from a list of four there is always the possibility it will load the same&lt;br /&gt;
sound the next time you go into your map, its hit and miss I&#039;m afraid :-)&lt;br /&gt;
&lt;br /&gt;
==  Final note (Important) ==&lt;br /&gt;
One thing to remember is! when adding sounds to your soundalias DO NOT use the same line for your script_struct sound and your line emitter sound, it will not work. &lt;br /&gt;
&lt;br /&gt;
Script_struct &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Line emitter &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As you can see! From !wii onwards the two lines are totally different.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
arachnofang&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7529</id>
		<title>Call of Duty 5: Sounds with Line Emitter</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7529"/>
		<updated>2010-07-04T11:18:20Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Using a single line emitter to randomly play multiple sounds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding sound using a line emitter ==&lt;br /&gt;
&lt;br /&gt;
Line emitters play a continuous looping sound. Good for rivers, rain, waterfalls etc, the other good thing about using a line emitter is that as you get closer to it the sound gets louder and as you walk away from it it gets quieter, which adds a certain realism to the sound as this is what would happen in real life.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first.&lt;br /&gt;
&lt;br /&gt;
==csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work. &lt;br /&gt;
==zone file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Adding the line emitter ==&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the first script struct where you want the line to start.&lt;br /&gt;
&lt;br /&gt;
3.   Right click in the 2d screen again and select script struct.&lt;br /&gt;
&lt;br /&gt;
4.   Now place the second one where you want the line to end.&lt;br /&gt;
&lt;br /&gt;
5.   Now deselect everything by pressing Esc.&lt;br /&gt;
&lt;br /&gt;
Now you need to join them together.&lt;br /&gt;
&lt;br /&gt;
1.   High light the first script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Now high light the second script struct.&lt;br /&gt;
&lt;br /&gt;
3.   With both of them high lighted press &#039;w&#039;.&lt;br /&gt;
&lt;br /&gt;
You should now see a red line appear with little arrows on it linking the two script structs together, that&lt;br /&gt;
is your line emitter now created.&lt;br /&gt;
&lt;br /&gt;
4.   Press esc to deselect everything and save your map.&lt;br /&gt;
&lt;br /&gt;
Now you need to decide what sound effect you want to use, for this example we are going to use &#039;brook_00.wav&#039;&lt;br /&gt;
we also need to add a label to point to the sound effect, so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you&lt;br /&gt;
will see that I have used the label &#039;brookrun&#039; its better to use a label associated with the SFX sample you&lt;br /&gt;
are going to use, because its a small stream I have labeled it &#039;brookrun&#039;.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the first script struct which will play a specified sound&lt;br /&gt;
effect from your &#039;soundalias&#039; file High light the first script struct, the one with the red arrows pointing away from it and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the four you need to add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY             VALUE&lt;br /&gt;
&lt;br /&gt;
script_label       line_emitter&lt;br /&gt;
targetname         brookrun&lt;br /&gt;
script_sound       brookrun&lt;br /&gt;
script_looping     1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These four are generated automatically&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname          script_struct&lt;br /&gt;
target             auto113&lt;br /&gt;
angles             0 2.50448e-006 0&lt;br /&gt;
struct             -1651 1204.7 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the second script_struct these four are generated automatically so there is no need to do anything to this one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  KEY              VALUE&lt;br /&gt;
&lt;br /&gt;
angles           0 2.50448e-006 0&lt;br /&gt;
classname        script_struct&lt;br /&gt;
targetname       auto113&lt;br /&gt;
struct           -1651 1910 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;brookrun&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;br /&gt;
&lt;br /&gt;
== Using a single line emitter to randomly play multiple sounds ==&lt;br /&gt;
&lt;br /&gt;
Using a line emitter in this way will not change the sound randomly in-game, but what it will do,&lt;br /&gt;
is each time you load the map it will pick a sound from the list and play it, so as you can imagine&lt;br /&gt;
this adds a whole new dimension to your map inasmuch you can go to the same location each time the&lt;br /&gt;
map is loaded and it will be playing a different sound than the last time it was loaded.&lt;br /&gt;
&lt;br /&gt;
To add a line emitter refer to &#039;Adding sound using a line emitter&#039; at the top of this page, everything is the same untill it comes to editing your &#039;soundalias&#039; and &#039;script_structs&lt;br /&gt;
&lt;br /&gt;
The label &#039;animals&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effects then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
animals,1,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,2,SFX\amb\animals\dog\dog_09.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,3,SFX\amb\birds\random\bird_00.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,4,SFX\amb\animals\odd_bug\odd_bug_00.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;br /&gt;
&lt;br /&gt;
To hear the different sound fx you would have to leave the game and reload it then go back to the bush, also! &lt;br /&gt;
because it is selecting a sound from a list of four there is always the possibility it will load the same&lt;br /&gt;
sound the next time you go into your map, its hit and miss I&#039;m afraid :-)&lt;br /&gt;
&lt;br /&gt;
==  Final note (Important) ==&lt;br /&gt;
One thing to remember is! when adding sounds to your soundalias DO NOT use the same line for your script_struct sound and your line emitter sound, it will not work. &lt;br /&gt;
&lt;br /&gt;
Script_struct &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Line emitter &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As you can see! From !wii onwards the two lines are totally different.&lt;br /&gt;
&lt;br /&gt;
arachnofang&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7528</id>
		<title>Call of Duty 5: Sounds with Line Emitter</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7528"/>
		<updated>2010-07-04T11:14:24Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Using a single line emitter to randomly play multiple sounds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding sound using a line emitter ==&lt;br /&gt;
&lt;br /&gt;
Line emitters play a continuous looping sound. Good for rivers, rain, waterfalls etc, the other good thing about using a line emitter is that as you get closer to it the sound gets louder and as you walk away from it it gets quieter, which adds a certain realism to the sound as this is what would happen in real life.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first.&lt;br /&gt;
&lt;br /&gt;
==csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work. &lt;br /&gt;
==zone file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Adding the line emitter ==&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the first script struct where you want the line to start.&lt;br /&gt;
&lt;br /&gt;
3.   Right click in the 2d screen again and select script struct.&lt;br /&gt;
&lt;br /&gt;
4.   Now place the second one where you want the line to end.&lt;br /&gt;
&lt;br /&gt;
5.   Now deselect everything by pressing Esc.&lt;br /&gt;
&lt;br /&gt;
Now you need to join them together.&lt;br /&gt;
&lt;br /&gt;
1.   High light the first script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Now high light the second script struct.&lt;br /&gt;
&lt;br /&gt;
3.   With both of them high lighted press &#039;w&#039;.&lt;br /&gt;
&lt;br /&gt;
You should now see a red line appear with little arrows on it linking the two script structs together, that&lt;br /&gt;
is your line emitter now created.&lt;br /&gt;
&lt;br /&gt;
4.   Press esc to deselect everything and save your map.&lt;br /&gt;
&lt;br /&gt;
Now you need to decide what sound effect you want to use, for this example we are going to use &#039;brook_00.wav&#039;&lt;br /&gt;
we also need to add a label to point to the sound effect, so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you&lt;br /&gt;
will see that I have used the label &#039;brookrun&#039; its better to use a label associated with the SFX sample you&lt;br /&gt;
are going to use, because its a small stream I have labeled it &#039;brookrun&#039;.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the first script struct which will play a specified sound&lt;br /&gt;
effect from your &#039;soundalias&#039; file High light the first script struct, the one with the red arrows pointing away from it and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the four you need to add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY             VALUE&lt;br /&gt;
&lt;br /&gt;
script_label       line_emitter&lt;br /&gt;
targetname         brookrun&lt;br /&gt;
script_sound       brookrun&lt;br /&gt;
script_looping     1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These four are generated automatically&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname          script_struct&lt;br /&gt;
target             auto113&lt;br /&gt;
angles             0 2.50448e-006 0&lt;br /&gt;
struct             -1651 1204.7 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the second script_struct these four are generated automatically so there is no need to do anything to this one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  KEY              VALUE&lt;br /&gt;
&lt;br /&gt;
angles           0 2.50448e-006 0&lt;br /&gt;
classname        script_struct&lt;br /&gt;
targetname       auto113&lt;br /&gt;
struct           -1651 1910 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;brookrun&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;br /&gt;
&lt;br /&gt;
== Using a single line emitter to randomly play multiple sounds ==&lt;br /&gt;
&lt;br /&gt;
Using a line emitter in this way will not change the sound randomly in-game, but what it will do,&lt;br /&gt;
is each time you load the map it will pick a sound from the list and play it, so as you can imagine&lt;br /&gt;
this adds a whole new dimension to your map inasmuch you can go to the same location each time the&lt;br /&gt;
map is loaded and it will be playing a different sound than the last time it was loaded.&lt;br /&gt;
&lt;br /&gt;
To add a line emitter refer to &#039;Adding sound using a line emitter&#039; at the top of this page, everything is the same untill it comes to editing your &#039;soundalias&#039; and &#039;script_structs&lt;br /&gt;
&lt;br /&gt;
The label &#039;animals&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effects then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
animals,1,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,2,SFX\amb\animals\dog\dog_09.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,3,SFX\amb\birds\random\bird_00.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,4,SFX\amb\animals\odd_bug\odd_bug_00.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;br /&gt;
&lt;br /&gt;
To hear the different sound fx you would have to leave the game and reload it then go back to the bush, also! &lt;br /&gt;
because it is selecting a sound from a list of four there is always the possibility it will load the same&lt;br /&gt;
sound the next time you go into your map, its hit and miss I&#039;m afraid :-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
arachnofang&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7527</id>
		<title>Call of Duty 5: Sounds with Line Emitter</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7527"/>
		<updated>2010-07-04T11:12:49Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Using a single line emitter to randomly play multiple sounds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding sound using a line emitter ==&lt;br /&gt;
&lt;br /&gt;
Line emitters play a continuous looping sound. Good for rivers, rain, waterfalls etc, the other good thing about using a line emitter is that as you get closer to it the sound gets louder and as you walk away from it it gets quieter, which adds a certain realism to the sound as this is what would happen in real life.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first.&lt;br /&gt;
&lt;br /&gt;
==csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work. &lt;br /&gt;
==zone file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Adding the line emitter ==&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the first script struct where you want the line to start.&lt;br /&gt;
&lt;br /&gt;
3.   Right click in the 2d screen again and select script struct.&lt;br /&gt;
&lt;br /&gt;
4.   Now place the second one where you want the line to end.&lt;br /&gt;
&lt;br /&gt;
5.   Now deselect everything by pressing Esc.&lt;br /&gt;
&lt;br /&gt;
Now you need to join them together.&lt;br /&gt;
&lt;br /&gt;
1.   High light the first script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Now high light the second script struct.&lt;br /&gt;
&lt;br /&gt;
3.   With both of them high lighted press &#039;w&#039;.&lt;br /&gt;
&lt;br /&gt;
You should now see a red line appear with little arrows on it linking the two script structs together, that&lt;br /&gt;
is your line emitter now created.&lt;br /&gt;
&lt;br /&gt;
4.   Press esc to deselect everything and save your map.&lt;br /&gt;
&lt;br /&gt;
Now you need to decide what sound effect you want to use, for this example we are going to use &#039;brook_00.wav&#039;&lt;br /&gt;
we also need to add a label to point to the sound effect, so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you&lt;br /&gt;
will see that I have used the label &#039;brookrun&#039; its better to use a label associated with the SFX sample you&lt;br /&gt;
are going to use, because its a small stream I have labeled it &#039;brookrun&#039;.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the first script struct which will play a specified sound&lt;br /&gt;
effect from your &#039;soundalias&#039; file High light the first script struct, the one with the red arrows pointing away from it and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the four you need to add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY             VALUE&lt;br /&gt;
&lt;br /&gt;
script_label       line_emitter&lt;br /&gt;
targetname         brookrun&lt;br /&gt;
script_sound       brookrun&lt;br /&gt;
script_looping     1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These four are generated automatically&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname          script_struct&lt;br /&gt;
target             auto113&lt;br /&gt;
angles             0 2.50448e-006 0&lt;br /&gt;
struct             -1651 1204.7 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the second script_struct these four are generated automatically so there is no need to do anything to this one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  KEY              VALUE&lt;br /&gt;
&lt;br /&gt;
angles           0 2.50448e-006 0&lt;br /&gt;
classname        script_struct&lt;br /&gt;
targetname       auto113&lt;br /&gt;
struct           -1651 1910 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;brookrun&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;br /&gt;
&lt;br /&gt;
== Using a single line emitter to randomly play multiple sounds ==&lt;br /&gt;
&lt;br /&gt;
Using a line emitter in this way will not change the sound randomly in-game, but what it will do,&lt;br /&gt;
is each time you load the map it will pick a sound from the list and play it, so as you can imagine&lt;br /&gt;
this adds a whole new dimension to your map inasmuch you can go to the same location each time the&lt;br /&gt;
map is loaded and it will be playing a different sound than the last time it was loaded.&lt;br /&gt;
&lt;br /&gt;
To add a line emitter refer to &#039;Adding sound using a line emitter&#039; at the top of this page, everything is the same untill it comes to editing your &#039;soundalias&#039; and &#039;script_structs&lt;br /&gt;
&lt;br /&gt;
The label &#039;animals&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effects then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
animals,1,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,2,SFX\amb\animals\dog\dog_09.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,3,SFX\amb\birds\random\bird_00.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,4,SFX\amb\animals\odd_bug\odd_bug_00.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;br /&gt;
&lt;br /&gt;
To hear the different sound fx you would have to leave the game and reload it then go back to the bush, also! &lt;br /&gt;
because it is selecting a sound from a list of four there is always the possibility it will load the same&lt;br /&gt;
sound the next time you go into your map, its hit and miss I&#039;m afraid :-)&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7526</id>
		<title>Call of Duty 5: Sounds with Line Emitter</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7526"/>
		<updated>2010-07-04T11:12:34Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Using a single line emitter to randomly play multiple sounds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding sound using a line emitter ==&lt;br /&gt;
&lt;br /&gt;
Line emitters play a continuous looping sound. Good for rivers, rain, waterfalls etc, the other good thing about using a line emitter is that as you get closer to it the sound gets louder and as you walk away from it it gets quieter, which adds a certain realism to the sound as this is what would happen in real life.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first.&lt;br /&gt;
&lt;br /&gt;
==csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work. &lt;br /&gt;
==zone file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Adding the line emitter ==&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the first script struct where you want the line to start.&lt;br /&gt;
&lt;br /&gt;
3.   Right click in the 2d screen again and select script struct.&lt;br /&gt;
&lt;br /&gt;
4.   Now place the second one where you want the line to end.&lt;br /&gt;
&lt;br /&gt;
5.   Now deselect everything by pressing Esc.&lt;br /&gt;
&lt;br /&gt;
Now you need to join them together.&lt;br /&gt;
&lt;br /&gt;
1.   High light the first script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Now high light the second script struct.&lt;br /&gt;
&lt;br /&gt;
3.   With both of them high lighted press &#039;w&#039;.&lt;br /&gt;
&lt;br /&gt;
You should now see a red line appear with little arrows on it linking the two script structs together, that&lt;br /&gt;
is your line emitter now created.&lt;br /&gt;
&lt;br /&gt;
4.   Press esc to deselect everything and save your map.&lt;br /&gt;
&lt;br /&gt;
Now you need to decide what sound effect you want to use, for this example we are going to use &#039;brook_00.wav&#039;&lt;br /&gt;
we also need to add a label to point to the sound effect, so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you&lt;br /&gt;
will see that I have used the label &#039;brookrun&#039; its better to use a label associated with the SFX sample you&lt;br /&gt;
are going to use, because its a small stream I have labeled it &#039;brookrun&#039;.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the first script struct which will play a specified sound&lt;br /&gt;
effect from your &#039;soundalias&#039; file High light the first script struct, the one with the red arrows pointing away from it and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the four you need to add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY             VALUE&lt;br /&gt;
&lt;br /&gt;
script_label       line_emitter&lt;br /&gt;
targetname         brookrun&lt;br /&gt;
script_sound       brookrun&lt;br /&gt;
script_looping     1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These four are generated automatically&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname          script_struct&lt;br /&gt;
target             auto113&lt;br /&gt;
angles             0 2.50448e-006 0&lt;br /&gt;
struct             -1651 1204.7 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the second script_struct these four are generated automatically so there is no need to do anything to this one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  KEY              VALUE&lt;br /&gt;
&lt;br /&gt;
angles           0 2.50448e-006 0&lt;br /&gt;
classname        script_struct&lt;br /&gt;
targetname       auto113&lt;br /&gt;
struct           -1651 1910 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;brookrun&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;br /&gt;
&lt;br /&gt;
== Using a single line emitter to randomly play multiple sounds ==&lt;br /&gt;
&lt;br /&gt;
Using a line emitter in this way will not change the sound randomly in-game, but what it will do,&lt;br /&gt;
is each time you load the map it will pick a sound from the list and play it, so as you can imagine&lt;br /&gt;
this adds a whole new dimension to your map inasmuch you can go to the same location each time the&lt;br /&gt;
map is loaded and it will be playing a different sound than the last time it was loaded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add a line emitter refer to &#039;Adding sound using a line emitter&#039; at the top of this page, everything is the same untill it comes to editing your &#039;soundalias&#039; and &#039;script_structs&lt;br /&gt;
&lt;br /&gt;
The label &#039;animals&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effects then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
animals,1,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,2,SFX\amb\animals\dog\dog_09.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,3,SFX\amb\birds\random\bird_00.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,4,SFX\amb\animals\odd_bug\odd_bug_00.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;br /&gt;
&lt;br /&gt;
To hear the different sound fx you would have to leave the game and reload it then go back to the bush, also! &lt;br /&gt;
because it is selecting a sound from a list of four there is always the possibility it will load the same&lt;br /&gt;
sound the next time you go into your map, its hit and miss I&#039;m afraid :-)&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7525</id>
		<title>Call of Duty 5: Sounds with Line Emitter</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7525"/>
		<updated>2010-07-04T11:10:59Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Using a single line emitter to randomly play multiple sounds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding sound using a line emitter ==&lt;br /&gt;
&lt;br /&gt;
Line emitters play a continuous looping sound. Good for rivers, rain, waterfalls etc, the other good thing about using a line emitter is that as you get closer to it the sound gets louder and as you walk away from it it gets quieter, which adds a certain realism to the sound as this is what would happen in real life.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first.&lt;br /&gt;
&lt;br /&gt;
==csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work. &lt;br /&gt;
==zone file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Adding the line emitter ==&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the first script struct where you want the line to start.&lt;br /&gt;
&lt;br /&gt;
3.   Right click in the 2d screen again and select script struct.&lt;br /&gt;
&lt;br /&gt;
4.   Now place the second one where you want the line to end.&lt;br /&gt;
&lt;br /&gt;
5.   Now deselect everything by pressing Esc.&lt;br /&gt;
&lt;br /&gt;
Now you need to join them together.&lt;br /&gt;
&lt;br /&gt;
1.   High light the first script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Now high light the second script struct.&lt;br /&gt;
&lt;br /&gt;
3.   With both of them high lighted press &#039;w&#039;.&lt;br /&gt;
&lt;br /&gt;
You should now see a red line appear with little arrows on it linking the two script structs together, that&lt;br /&gt;
is your line emitter now created.&lt;br /&gt;
&lt;br /&gt;
4.   Press esc to deselect everything and save your map.&lt;br /&gt;
&lt;br /&gt;
Now you need to decide what sound effect you want to use, for this example we are going to use &#039;brook_00.wav&#039;&lt;br /&gt;
we also need to add a label to point to the sound effect, so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you&lt;br /&gt;
will see that I have used the label &#039;brookrun&#039; its better to use a label associated with the SFX sample you&lt;br /&gt;
are going to use, because its a small stream I have labeled it &#039;brookrun&#039;.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the first script struct which will play a specified sound&lt;br /&gt;
effect from your &#039;soundalias&#039; file High light the first script struct, the one with the red arrows pointing away from it and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the four you need to add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY             VALUE&lt;br /&gt;
&lt;br /&gt;
script_label       line_emitter&lt;br /&gt;
targetname         brookrun&lt;br /&gt;
script_sound       brookrun&lt;br /&gt;
script_looping     1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These four are generated automatically&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname          script_struct&lt;br /&gt;
target             auto113&lt;br /&gt;
angles             0 2.50448e-006 0&lt;br /&gt;
struct             -1651 1204.7 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the second script_struct these four are generated automatically so there is no need to do anything to this one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  KEY              VALUE&lt;br /&gt;
&lt;br /&gt;
angles           0 2.50448e-006 0&lt;br /&gt;
classname        script_struct&lt;br /&gt;
targetname       auto113&lt;br /&gt;
struct           -1651 1910 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;brookrun&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;br /&gt;
&lt;br /&gt;
== Using a single line emitter to randomly play multiple sounds ==&lt;br /&gt;
&lt;br /&gt;
Using a line emitter in this way will not change the sound randomly in-game, but what it will do,&lt;br /&gt;
is each time you load the map it will pick a sound from the list and play it, so as you can imagine&lt;br /&gt;
this adds a whole new dimension to your map inasmuch you can go to the same location each time the&lt;br /&gt;
map is loaded and it will be playing a different sound than the last time it was loaded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add a line emitter refer to &#039;Adding sound using a line emitter&#039;, everything is the same untill it comes to&lt;br /&gt;
editing your &#039;soundalias&#039; and &#039;script_structs&lt;br /&gt;
&lt;br /&gt;
The label &#039;animals&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effects then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
animals,1,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,2,SFX\amb\animals\dog\dog_09.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,3,SFX\amb\birds\random\bird_00.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,4,SFX\amb\animals\odd_bug\odd_bug_00.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;br /&gt;
&lt;br /&gt;
To hear the different sound fx you would have to leave the game and reload it then go back to the bush, also! &lt;br /&gt;
because it is selecting a sound from a list of four there is always the possibility it will load the same&lt;br /&gt;
sound the next time you go into your map, its hit and miss I&#039;m afraid :-)&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7524</id>
		<title>Call of Duty 5: Sounds with Line Emitter</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7524"/>
		<updated>2010-07-04T11:10:03Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Adding the line emitter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding sound using a line emitter ==&lt;br /&gt;
&lt;br /&gt;
Line emitters play a continuous looping sound. Good for rivers, rain, waterfalls etc, the other good thing about using a line emitter is that as you get closer to it the sound gets louder and as you walk away from it it gets quieter, which adds a certain realism to the sound as this is what would happen in real life.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first.&lt;br /&gt;
&lt;br /&gt;
==csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work. &lt;br /&gt;
==zone file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Adding the line emitter ==&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the first script struct where you want the line to start.&lt;br /&gt;
&lt;br /&gt;
3.   Right click in the 2d screen again and select script struct.&lt;br /&gt;
&lt;br /&gt;
4.   Now place the second one where you want the line to end.&lt;br /&gt;
&lt;br /&gt;
5.   Now deselect everything by pressing Esc.&lt;br /&gt;
&lt;br /&gt;
Now you need to join them together.&lt;br /&gt;
&lt;br /&gt;
1.   High light the first script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Now high light the second script struct.&lt;br /&gt;
&lt;br /&gt;
3.   With both of them high lighted press &#039;w&#039;.&lt;br /&gt;
&lt;br /&gt;
You should now see a red line appear with little arrows on it linking the two script structs together, that&lt;br /&gt;
is your line emitter now created.&lt;br /&gt;
&lt;br /&gt;
4.   Press esc to deselect everything and save your map.&lt;br /&gt;
&lt;br /&gt;
Now you need to decide what sound effect you want to use, for this example we are going to use &#039;brook_00.wav&#039;&lt;br /&gt;
we also need to add a label to point to the sound effect, so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you&lt;br /&gt;
will see that I have used the label &#039;brookrun&#039; its better to use a label associated with the SFX sample you&lt;br /&gt;
are going to use, because its a small stream I have labeled it &#039;brookrun&#039;.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the first script struct which will play a specified sound&lt;br /&gt;
effect from your &#039;soundalias&#039; file High light the first script struct, the one with the red arrows pointing away from it and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the four you need to add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY             VALUE&lt;br /&gt;
&lt;br /&gt;
script_label       line_emitter&lt;br /&gt;
targetname         brookrun&lt;br /&gt;
script_sound       brookrun&lt;br /&gt;
script_looping     1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These four are generated automatically&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname          script_struct&lt;br /&gt;
target             auto113&lt;br /&gt;
angles             0 2.50448e-006 0&lt;br /&gt;
struct             -1651 1204.7 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the second script_struct these four are generated automatically so there is no need to do anything to this one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  KEY              VALUE&lt;br /&gt;
&lt;br /&gt;
angles           0 2.50448e-006 0&lt;br /&gt;
classname        script_struct&lt;br /&gt;
targetname       auto113&lt;br /&gt;
struct           -1651 1910 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;brookrun&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;br /&gt;
&lt;br /&gt;
== Using a single line emitter to randomly play multiple sounds ==&lt;br /&gt;
&lt;br /&gt;
Using a line emitter in this way will not change the sound randomly in-game, but what it will do,&lt;br /&gt;
is each time you load the map it will pick a sound from the list and play it, so as you can imagine&lt;br /&gt;
this adds a whole new dimension to your map inasmuch you can go to the same location each time the&lt;br /&gt;
map is loaded and it will be playing a different sound than the last time it was loaded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add a line emitter refer to &#039;Adding the line emitter&#039;, everything is the same untill it comes to&lt;br /&gt;
editing your &#039;soundalias&#039; and &#039;script_structs&lt;br /&gt;
&lt;br /&gt;
The label &#039;animals&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effects then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
animals,1,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,2,SFX\amb\animals\dog\dog_09.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,3,SFX\amb\birds\random\bird_00.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
animals,4,SFX\amb\animals\odd_bug\odd_bug_00.wav,!wii,1,1,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;br /&gt;
&lt;br /&gt;
To hear the different sound fx you would have to leave the game and reload it then go back to the bush, also! &lt;br /&gt;
because it is selecting a sound from a list of four there is always the possibility it will load the same&lt;br /&gt;
sound the next time you go into your map, its hit and miss I&#039;m afraid :-)&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7523</id>
		<title>Call of Duty 5: Sounds with Line Emitter</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7523"/>
		<updated>2010-07-04T11:02:57Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Adding the script structs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding sound using a line emitter ==&lt;br /&gt;
&lt;br /&gt;
Line emitters play a continuous looping sound. Good for rivers, rain, waterfalls etc, the other good thing about using a line emitter is that as you get closer to it the sound gets louder and as you walk away from it it gets quieter, which adds a certain realism to the sound as this is what would happen in real life.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first.&lt;br /&gt;
&lt;br /&gt;
==csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work. &lt;br /&gt;
==zone file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Adding the line emitter ==&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the first script struct where you want the line to start.&lt;br /&gt;
&lt;br /&gt;
3.   Right click in the 2d screen again and select script struct.&lt;br /&gt;
&lt;br /&gt;
4.   Now place the second one where you want the line to end.&lt;br /&gt;
&lt;br /&gt;
5.   Now deselect everything by pressing Esc.&lt;br /&gt;
&lt;br /&gt;
Now you need to join them together.&lt;br /&gt;
&lt;br /&gt;
1.   High light the first script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Now high light the second script struct.&lt;br /&gt;
&lt;br /&gt;
3.   With both of them high lighted press &#039;w&#039;.&lt;br /&gt;
&lt;br /&gt;
You should now see a red line appear with little arrows on it linking the two script structs together, that&lt;br /&gt;
is your line emitter now created.&lt;br /&gt;
&lt;br /&gt;
4.   Press esc to deselect everything and save your map.&lt;br /&gt;
&lt;br /&gt;
Now you need to decide what sound effect you want to use, for this example we are going to use &#039;brook_00.wav&#039;&lt;br /&gt;
we also need to add a label to point to the sound effect, so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you&lt;br /&gt;
will see that I have used the label &#039;brookrun&#039; its better to use a label associated with the SFX sample you&lt;br /&gt;
are going to use, because its a small stream I have labeled it &#039;brookrun&#039;.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the first script struct which will play a specified sound&lt;br /&gt;
effect from your &#039;soundalias&#039; file High light the first script struct, the one with the red arrows pointing away from it and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the four you need to add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY             VALUE&lt;br /&gt;
&lt;br /&gt;
script_label       line_emitter&lt;br /&gt;
targetname         brookrun&lt;br /&gt;
script_sound       brookrun&lt;br /&gt;
script_looping     1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These four are generated automatically&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname          script_struct&lt;br /&gt;
target             auto113&lt;br /&gt;
angles             0 2.50448e-006 0&lt;br /&gt;
struct             -1651 1204.7 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the second script_struct these four are generated automatically so there is no need to do anything to this one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  KEY              VALUE&lt;br /&gt;
&lt;br /&gt;
angles           0 2.50448e-006 0&lt;br /&gt;
classname        script_struct&lt;br /&gt;
targetname       auto113&lt;br /&gt;
struct           -1651 1910 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;brookrun&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7522</id>
		<title>Call of Duty 5: Sounds with Line Emitter</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7522"/>
		<updated>2010-07-04T11:00:23Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* zone file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding sound using a line emitter ==&lt;br /&gt;
&lt;br /&gt;
Line emitters play a continuous looping sound. Good for rivers, rain, waterfalls etc, the other good thing about using a line emitter is that as you get closer to it the sound gets louder and as you walk away from it it gets quieter, which adds a certain realism to the sound as this is what would happen in real life.&lt;br /&gt;
&lt;br /&gt;
== Adding the script structs ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first.&lt;br /&gt;
&lt;br /&gt;
==csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work. &lt;br /&gt;
==zone file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Adding the line emitter ==&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the first script struct where you want the line to start.&lt;br /&gt;
&lt;br /&gt;
3.   Right click in the 2d screen again and select script struct.&lt;br /&gt;
&lt;br /&gt;
4.   Now place the second one where you want the line to end.&lt;br /&gt;
&lt;br /&gt;
5.   Now deselect everything by pressing Esc.&lt;br /&gt;
&lt;br /&gt;
Now you need to join them together.&lt;br /&gt;
&lt;br /&gt;
1.   High light the first script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Now high light the second script struct.&lt;br /&gt;
&lt;br /&gt;
3.   With both of them high lighted press &#039;w&#039;.&lt;br /&gt;
&lt;br /&gt;
You should now see a red line appear with little arrows on it linking the two script structs together, that&lt;br /&gt;
is your line emitter now created.&lt;br /&gt;
&lt;br /&gt;
4.   Press esc to deselect everything and save your map.&lt;br /&gt;
&lt;br /&gt;
Now you need to decide what sound effect you want to use, for this example we are going to use &#039;brook_00.wav&#039;&lt;br /&gt;
we also need to add a label to point to the sound effect, so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you&lt;br /&gt;
will see that I have used the label &#039;brookrun&#039; its better to use a label associated with the SFX sample you&lt;br /&gt;
are going to use, because its a small stream I have labeled it &#039;brookrun&#039;.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the first script struct which will play a specified sound&lt;br /&gt;
effect from your &#039;soundalias&#039; file High light the first script struct, the one with the red arrows pointing away from it and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the four you need to add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY             VALUE&lt;br /&gt;
&lt;br /&gt;
script_label       line_emitter&lt;br /&gt;
targetname         brookrun&lt;br /&gt;
script_sound       brookrun&lt;br /&gt;
script_looping     1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These four are generated automatically&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname          script_struct&lt;br /&gt;
target             auto113&lt;br /&gt;
angles             0 2.50448e-006 0&lt;br /&gt;
struct             -1651 1204.7 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the second script_struct these four are generated automatically so there is no need to do anything to this one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  KEY              VALUE&lt;br /&gt;
&lt;br /&gt;
angles           0 2.50448e-006 0&lt;br /&gt;
classname        script_struct&lt;br /&gt;
targetname       auto113&lt;br /&gt;
struct           -1651 1910 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;brookrun&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7521</id>
		<title>Call of Duty 5: Sounds with Line Emitter</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7521"/>
		<updated>2010-07-04T10:55:13Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Adding the script structs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding sound using a line emitter ==&lt;br /&gt;
&lt;br /&gt;
Line emitters play a continuous looping sound. Good for rivers, rain, waterfalls etc, the other good thing about using a line emitter is that as you get closer to it the sound gets louder and as you walk away from it it gets quieter, which adds a certain realism to the sound as this is what would happen in real life.&lt;br /&gt;
&lt;br /&gt;
== Adding the script structs ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first.&lt;br /&gt;
&lt;br /&gt;
==csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work. &lt;br /&gt;
==zone file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the first script struct where you want the line to start.&lt;br /&gt;
&lt;br /&gt;
3.   Right click in the 2d screen again and select script struct.&lt;br /&gt;
&lt;br /&gt;
4.   Now place the second one where you want the line to end.&lt;br /&gt;
&lt;br /&gt;
5.   Now deselect everything by pressing Esc.&lt;br /&gt;
&lt;br /&gt;
Now you need to join them together.&lt;br /&gt;
&lt;br /&gt;
1.   High light the first script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Now high light the second script struct.&lt;br /&gt;
&lt;br /&gt;
3.   With both of them high lighted press &#039;w&#039;.&lt;br /&gt;
&lt;br /&gt;
You should now see a red line appear with little arrows on it linking the two script structs together, that&lt;br /&gt;
is your line emitter now created.&lt;br /&gt;
&lt;br /&gt;
4.   Press esc to deselect everything and save your map.&lt;br /&gt;
&lt;br /&gt;
Now you need to decide what sound effect you want to use, for this example we are going to use &#039;brook_00.wav&#039;&lt;br /&gt;
we also need to add a label to point to the sound effect, so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you&lt;br /&gt;
will see that I have used the label &#039;brookrun&#039; its better to use a label associated with the SFX sample you&lt;br /&gt;
are going to use, because its a small stream I have labeled it &#039;brookrun&#039;.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the first script struct which will play a specified sound&lt;br /&gt;
effect from your &#039;soundalias&#039; file High light the first script struct, the one with the red arrows pointing away from it and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the four you need to add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY             VALUE&lt;br /&gt;
&lt;br /&gt;
script_label       line_emitter&lt;br /&gt;
targetname         brookrun&lt;br /&gt;
script_sound       brookrun&lt;br /&gt;
script_looping     1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These four are generated automatically&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname          script_struct&lt;br /&gt;
target             auto113&lt;br /&gt;
angles             0 2.50448e-006 0&lt;br /&gt;
struct             -1651 1204.7 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the second script_struct these four are generated automatically so there is no need to do anything to this one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  KEY              VALUE&lt;br /&gt;
&lt;br /&gt;
angles           0 2.50448e-006 0&lt;br /&gt;
classname        script_struct&lt;br /&gt;
targetname       auto113&lt;br /&gt;
struct           -1651 1910 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;brookrun&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7520</id>
		<title>Call of Duty 5: Sounds with Line Emitter</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7520"/>
		<updated>2010-07-04T10:53:25Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Adding sound using a line emitter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding sound using a line emitter ==&lt;br /&gt;
&lt;br /&gt;
Line emitters play a continuous looping sound. Good for rivers, rain, waterfalls etc, the other good thing about using a line emitter is that as you get closer to it the sound gets louder and as you walk away from it it gets quieter, which adds a certain realism to the sound as this is what would happen in real life.&lt;br /&gt;
&lt;br /&gt;
== Adding the script structs ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
==csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work. &lt;br /&gt;
==zone file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the first script struct where you want the line to start.&lt;br /&gt;
&lt;br /&gt;
3.   Right click in the 2d screen again and select script struct.&lt;br /&gt;
&lt;br /&gt;
4.   Now place the second one where you want the line to end.&lt;br /&gt;
&lt;br /&gt;
5.   Now deselect everything by pressing Esc.&lt;br /&gt;
&lt;br /&gt;
Now you need to join them together.&lt;br /&gt;
&lt;br /&gt;
1.   High light the first script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Now high light the second script struct.&lt;br /&gt;
&lt;br /&gt;
3.   With both of them high lighted press &#039;w&#039;.&lt;br /&gt;
&lt;br /&gt;
You should now see a red line appear with little arrows on it linking the two script structs together, that&lt;br /&gt;
is your line emitter now created.&lt;br /&gt;
&lt;br /&gt;
4.   Press esc to deselect everything and save your map.&lt;br /&gt;
&lt;br /&gt;
Now you need to decide what sound effect you want to use, for this example we are going to use &#039;brook_00.wav&#039;&lt;br /&gt;
we also need to add a label to point to the sound effect, so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you&lt;br /&gt;
will see that I have used the label &#039;brookrun&#039; its better to use a label associated with the SFX sample you&lt;br /&gt;
are going to use, because its a small stream I have labeled it &#039;brookrun&#039;.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the first script struct which will play a specified sound&lt;br /&gt;
effect from your &#039;soundalias&#039; file High light the first script struct, the one with the red arrows pointing away from it and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the four you need to add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY             VALUE&lt;br /&gt;
&lt;br /&gt;
script_label       line_emitter&lt;br /&gt;
targetname         brookrun&lt;br /&gt;
script_sound       brookrun&lt;br /&gt;
script_looping     1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These four are generated automatically&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname          script_struct&lt;br /&gt;
target             auto113&lt;br /&gt;
angles             0 2.50448e-006 0&lt;br /&gt;
struct             -1651 1204.7 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the second script_struct these four are generated automatically so there is no need to do anything to this one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  KEY              VALUE&lt;br /&gt;
&lt;br /&gt;
angles           0 2.50448e-006 0&lt;br /&gt;
classname        script_struct&lt;br /&gt;
targetname       auto113&lt;br /&gt;
struct           -1651 1910 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;brookrun&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7519</id>
		<title>Call of Duty 5: Sounds with Line Emitter</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7519"/>
		<updated>2010-07-04T10:50:47Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Adding the script structs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding sound using a line emitter ==&lt;br /&gt;
&lt;br /&gt;
Line emitters play a continuous looping sound. Good for rivers, rain, waterfalls etc&lt;br /&gt;
&lt;br /&gt;
== Adding the script structs ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
==csc file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work. &lt;br /&gt;
==zone file ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the first script struct where you want the line to start.&lt;br /&gt;
&lt;br /&gt;
3.   Right click in the 2d screen again and select script struct.&lt;br /&gt;
&lt;br /&gt;
4.   Now place the second one where you want the line to end.&lt;br /&gt;
&lt;br /&gt;
5.   Now deselect everything by pressing Esc.&lt;br /&gt;
&lt;br /&gt;
Now you need to join them together.&lt;br /&gt;
&lt;br /&gt;
1.   High light the first script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Now high light the second script struct.&lt;br /&gt;
&lt;br /&gt;
3.   With both of them high lighted press &#039;w&#039;.&lt;br /&gt;
&lt;br /&gt;
You should now see a red line appear with little arrows on it linking the two script structs together, that&lt;br /&gt;
is your line emitter now created.&lt;br /&gt;
&lt;br /&gt;
4.   Press esc to deselect everything and save your map.&lt;br /&gt;
&lt;br /&gt;
Now you need to decide what sound effect you want to use, for this example we are going to use &#039;brook_00.wav&#039;&lt;br /&gt;
we also need to add a label to point to the sound effect, so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you&lt;br /&gt;
will see that I have used the label &#039;brookrun&#039; its better to use a label associated with the SFX sample you&lt;br /&gt;
are going to use, because its a small stream I have labeled it &#039;brookrun&#039;.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the first script struct which will play a specified sound&lt;br /&gt;
effect from your &#039;soundalias&#039; file High light the first script struct, the one with the red arrows pointing away from it and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the four you need to add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY             VALUE&lt;br /&gt;
&lt;br /&gt;
script_label       line_emitter&lt;br /&gt;
targetname         brookrun&lt;br /&gt;
script_sound       brookrun&lt;br /&gt;
script_looping     1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These four are generated automatically&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname          script_struct&lt;br /&gt;
target             auto113&lt;br /&gt;
angles             0 2.50448e-006 0&lt;br /&gt;
struct             -1651 1204.7 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the second script_struct these four are generated automatically so there is no need to do anything to this one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  KEY              VALUE&lt;br /&gt;
&lt;br /&gt;
angles           0 2.50448e-006 0&lt;br /&gt;
classname        script_struct&lt;br /&gt;
targetname       auto113&lt;br /&gt;
struct           -1651 1910 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;brookrun&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7518</id>
		<title>Call of Duty 5: Sounds with Line Emitter</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7518"/>
		<updated>2010-07-04T10:45:57Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Adding the script structs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding sound using a line emitter ==&lt;br /&gt;
&lt;br /&gt;
Line emitters play a continuous looping sound. Good for rivers, rain, waterfalls etc&lt;br /&gt;
&lt;br /&gt;
== Adding the script structs ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the first script struct where you want the line to start.&lt;br /&gt;
&lt;br /&gt;
3.   Right click in the 2d screen again and select script struct.&lt;br /&gt;
&lt;br /&gt;
4.   Now place the second one where you want the line to end.&lt;br /&gt;
&lt;br /&gt;
5.   Now deselect everything by pressing Esc.&lt;br /&gt;
&lt;br /&gt;
Now you need to join them together.&lt;br /&gt;
&lt;br /&gt;
1.   High light the first script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Now high light the second script struct.&lt;br /&gt;
&lt;br /&gt;
3.   With both of them high lighted press &#039;w&#039;.&lt;br /&gt;
&lt;br /&gt;
You should now see a red line appear with little arrows on it linking the two script structs together, that&lt;br /&gt;
is your line emitter now created.&lt;br /&gt;
&lt;br /&gt;
4.   Press esc to deselect everything and save your map.&lt;br /&gt;
&lt;br /&gt;
Now you need to decide what sound effect you want to use, for this example we are going to use &#039;brook_00.wav&#039;&lt;br /&gt;
we also need to add a label to point to the sound effect, so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you&lt;br /&gt;
will see that I have used the label &#039;brookrun&#039; its better to use a label associated with the SFX sample you&lt;br /&gt;
are going to use, because its a small stream I have labeled it &#039;brookrun&#039;.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the first script struct which will play a specified sound&lt;br /&gt;
effect from your &#039;soundalias&#039; file High light the first script struct, the one with the red arrows pointing away from it and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the four you need to add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY             VALUE&lt;br /&gt;
&lt;br /&gt;
script_label       line_emitter&lt;br /&gt;
targetname         brookrun&lt;br /&gt;
script_sound       brookrun&lt;br /&gt;
script_looping     1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These four are generated automatically&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname          script_struct&lt;br /&gt;
target             auto113&lt;br /&gt;
angles             0 2.50448e-006 0&lt;br /&gt;
struct             -1651 1204.7 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the second script_struct these four are generated automatically so there is no need to do anything to this one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  KEY              VALUE&lt;br /&gt;
&lt;br /&gt;
angles           0 2.50448e-006 0&lt;br /&gt;
classname        script_struct&lt;br /&gt;
targetname       auto113&lt;br /&gt;
struct           -1651 1910 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;brookrun&#039; is the first thing in the line, this is what the script_struct is looking for so it knows&lt;br /&gt;
to play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, remember to&lt;br /&gt;
replace &#039;yourmapsname&#039; with the name of your map.&lt;br /&gt;
&lt;br /&gt;
Now copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That is your line emitter all done, Now! If you compile your map you should have a fully working line emitter.&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7517</id>
		<title>Call of Duty 5: Sounds with Line Emitter</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Line_Emitter&amp;diff=7517"/>
		<updated>2010-07-04T10:42:12Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding sound using a line emitter ==&lt;br /&gt;
&lt;br /&gt;
Line emitters play a continuous looping sound. Good for rivers, rain, waterfalls etc&lt;br /&gt;
&lt;br /&gt;
== Adding the script structs ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the first script struct where you want the line to start.&lt;br /&gt;
&lt;br /&gt;
3.   Right click in the 2d screen again and select script struct.&lt;br /&gt;
&lt;br /&gt;
4.   Now place the second one where you want the line to end.&lt;br /&gt;
&lt;br /&gt;
5.   Now deselect everything by pressing Esc.&lt;br /&gt;
&lt;br /&gt;
Now you need to join them together.&lt;br /&gt;
&lt;br /&gt;
1.   High light the first script struct.&lt;br /&gt;
&lt;br /&gt;
2.   Now high light the second script struct.&lt;br /&gt;
&lt;br /&gt;
3.   With both of them high lighted press &#039;w&#039;.&lt;br /&gt;
&lt;br /&gt;
You should now see a red line appear with little arrows on it linking the two script structs together, that&lt;br /&gt;
is your line emitter now created.&lt;br /&gt;
&lt;br /&gt;
4.   Press esc to deselect everything and save your map.&lt;br /&gt;
&lt;br /&gt;
Now you need to decide what sound effect you want to use, for this example we are going to use &#039;brook_00.wav&#039;&lt;br /&gt;
we also need to add a label to point to the sound effect, so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you&lt;br /&gt;
will see that I have used the label &#039;brookrun&#039; its better to use a label associated with the SFX sample you&lt;br /&gt;
are going to use, because its a small stream I have labeled it &#039;brookrun&#039;.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the first script struct which will play a specified sound&lt;br /&gt;
effect from your &#039;soundalias&#039; file High light the first script struct, the one with the red arrows pointing away from it and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the four you need to add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY             VALUE&lt;br /&gt;
&lt;br /&gt;
script_label       line_emitter&lt;br /&gt;
targetname         brookrun&lt;br /&gt;
script_sound       brookrun&lt;br /&gt;
script_looping     1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These four are generated automatically&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname          script_struct&lt;br /&gt;
target             auto113&lt;br /&gt;
angles             0 2.50448e-006 0&lt;br /&gt;
struct             -1651 1204.7 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the second script_struct these four are generated automatically so there is no need to do anything to this one.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  KEY              VALUE&lt;br /&gt;
&lt;br /&gt;
angles           0 2.50448e-006 0&lt;br /&gt;
classname        script_struct&lt;br /&gt;
targetname       auto113&lt;br /&gt;
struct           -1651 1910 24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Adding_Voiceovers&amp;diff=7514</id>
		<title>Call of Duty 5: Adding Voiceovers</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Adding_Voiceovers&amp;diff=7514"/>
		<updated>2010-07-04T04:00:03Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Adding the voiceovers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding voiceovers to your map ==&lt;br /&gt;
&lt;br /&gt;
Adding voiceovers to your map is probably the easiest sounds to add as there is very little involved in the way of editing.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first. &lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== zone file ==&lt;br /&gt;
&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adding the voiceovers ==&lt;br /&gt;
&lt;br /&gt;
The first thing to do is open up your multiplayer.csv file in notepad, or wichever text editor you prefer, you will find this file in...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw/soundalias&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So for US/JAP scroll down till you find &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Voiceover&lt;br /&gt;
# US Announcer USED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The next line down has a list of map names and the first one is mp_airfield, and thats the one &lt;br /&gt;
we want to change. it looks like this...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
US_1mc_freeforall,1,voiceovers\mp\us\US_1mc_freeforall_00.wav,,0.9,0.9,,,360,600,,,,,,voice,2d,streamed,,,,mp_airfield  mp_beachhead mp_castle mp_courtyard mp_hangar mp_kneedeep mp_makin mp_shrine,,,,,,,,,,,0,,1,,,,,,,,,,,,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you move the slider along a bit you will see mp_airfield is the first one, but we need it to look like this.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
US_1mc_freeforall,1,voiceovers\mp\us\US_1mc_freeforall_00.wav,,0.9,0.9,,,360,600,,,,,,voice,2d,streamed,,,,mp_yourmapsname  mp_beachhead mp_castle mp_courtyard mp_hangar mp_kneedeep mp_makin mp_shrine,,,,,,,,,,,0,,1,,,,,,,,,,,,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
AND! Every other line that has mp_airfield in it, so now go to menu at the top and select edit/replace.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
First box = mp_airfield&lt;br /&gt;
second box = mp_yourmapsname&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;replace all&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Thats the first half done.&lt;br /&gt;
&lt;br /&gt;
Now scroll down till you find... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#RU Announcer USED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Repeat the above steps with mp_asylum.&lt;br /&gt;
&lt;br /&gt;
now save and copy it to raw/soundaliases replacing the old one with your new one.&lt;br /&gt;
&lt;br /&gt;
Thats it! You now have voiceovers in your map.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
arachnofang&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Adding_Voiceovers&amp;diff=7513</id>
		<title>Call of Duty 5: Adding Voiceovers</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Adding_Voiceovers&amp;diff=7513"/>
		<updated>2010-07-04T03:59:08Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Adding the voiceovers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding voiceovers to your map ==&lt;br /&gt;
&lt;br /&gt;
Adding voiceovers to your map is probably the easiest sounds to add as there is very little involved in the way of editing.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first. &lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== zone file ==&lt;br /&gt;
&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adding the voiceovers ==&lt;br /&gt;
&lt;br /&gt;
The first thing to do is open up your multiplayer.csv file in notepad, or wichever text editor you prefer, you will find this file in...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw/soundalias&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So for US/JAP scroll down till you find &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Voiceover&lt;br /&gt;
# US Announcer USED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The next line down has a list of map names and the first one is mp_airfield, and thats the one &lt;br /&gt;
we want to change. it looks like this...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
US_1mc_freeforall,1,voiceovers\mp\us\US_1mc_freeforall_00.wav,,0.9,0.9,,,360,600,,,,,,voice,2d,streamed,,,,mp_airfield  mp_beachhead mp_castle mp_courtyard mp_hangar mp_kneedeep mp_makin mp_shrine,,,,,,,,,,,0,,1,,,,,,,,,,,,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you move the slider along a bit you will see mp_airfield is the first one, but we need it to look like this.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
US_1mc_freeforall,1,voiceovers\mp\us\US_1mc_freeforall_00.wav,,0.9,0.9,,,360,600,,,,,,voice,2d,streamed,,,,mp_yourmapsname  mp_beachhead mp_castle mp_courtyard mp_hangar mp_kneedeep mp_makin mp_shrine,,,,,,,,,,,0,,1,,,,,,,,,,,,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
AND! Every other line that has mp_airfield in it, so now go to menu at the top and select edit/replace.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
First box = mp_airfield&lt;br /&gt;
second box = mp_yourmapsname&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;replace all&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Thats the first half done.&lt;br /&gt;
&lt;br /&gt;
Now scroll down till you find... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#RU Announcer USED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Repeat the above steps with mp_asylum.&lt;br /&gt;
&lt;br /&gt;
now save and copy it to raw/soundaliases replacing the old one with your new one.&lt;br /&gt;
&lt;br /&gt;
Thats it! You now have voiceovers in your map.&lt;br /&gt;
&lt;br /&gt;
arachnofang&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7512</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7512"/>
		<updated>2010-07-04T03:58:16Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Zone file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first.&lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
1.Crickets = ground&lt;br /&gt;
&lt;br /&gt;
2.flies = air&lt;br /&gt;
&lt;br /&gt;
3.Birds = trees, air&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
== Playing multiple sounds from a single script_struct ==&lt;br /&gt;
&lt;br /&gt;
Please ensure that you have followed steps 2, 3, 4 and 5 at the top of this page, everything is the same untill it comes to editing your soundalias &amp;amp; script struct.&lt;br /&gt;
&lt;br /&gt;
Your script struct for this example would have the label &amp;quot;fauna&amp;quot; Like so!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                VALUE&lt;br /&gt;
&lt;br /&gt;
targetname            fauna&lt;br /&gt;
script_sound          fauna&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you look at the first line and the line below that one you will see there are two differences, the number&lt;br /&gt;
one has been added at the beginning of the line and the sound effect is a different one, but all use the same&lt;br /&gt;
label &#039;fauna&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fauna,,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&lt;br /&gt;
fauna,1,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
     /\                          /\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And this is how you would play several different sounds using a single script struct, using crickets as an&lt;br /&gt;
example, this is what it would look like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fauna,1,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,2,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,3,SFX\amb\birds\random\bird_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,4,SFX\amb\birds\tawny\tawny_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So now! Your soundalias would look like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
fauna,1,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,2,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,3,SFX\amb\birds\random\bird_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,4,SFX\amb\birds\tawny\tawny_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You now know how to add sounds using script_structs, as I said earlier it is fairly easy and straight forward, but I can assure you, when you have done it once you can do it time &amp;amp; time again.&lt;br /&gt;
&lt;br /&gt;
== Custom sounds ==&lt;br /&gt;
&lt;br /&gt;
If you use custom sounds they need to be a certain format,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm uncompressed&lt;br /&gt;
44100hz 8bits mono&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also! You will need to make a folder called &#039;custom&#039;&lt;br /&gt;
&lt;br /&gt;
raw/sound/SFX/custom&lt;br /&gt;
&lt;br /&gt;
Any custom sounds you use are to go in this folder, the main reason is to keep your custom&lt;br /&gt;
sounds seperate from the stock ones, this makes it less confusing as you will always know&lt;br /&gt;
where your custom sounds are.&lt;br /&gt;
&lt;br /&gt;
Personally I use a program called Wavepad.&lt;br /&gt;
&lt;br /&gt;
[http://www.soft82.com/download/Windows/WavePad Get Windows Wavepad]&lt;br /&gt;
&lt;br /&gt;
== Final note (Important)==&lt;br /&gt;
&lt;br /&gt;
One thing to remember is! when adding sounds to your soundalias DO NOT use the same line for your script_struct sound and your line emitter sound, it will not work.&lt;br /&gt;
&lt;br /&gt;
Script_struct&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Line emitter&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see! From !wii onwards the two lines are totally different.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
arachnofang.&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Adding_Voiceovers&amp;diff=7511</id>
		<title>Call of Duty 5: Adding Voiceovers</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Adding_Voiceovers&amp;diff=7511"/>
		<updated>2010-07-04T03:57:02Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* zone file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding voiceovers to your map ==&lt;br /&gt;
&lt;br /&gt;
Adding voiceovers to your map is probably the easiest sounds to add as there is very little involved in the way of editing.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first. &lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== zone file ==&lt;br /&gt;
&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one! Your sounds will not work. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adding the voiceovers ==&lt;br /&gt;
&lt;br /&gt;
The first thing to do is open up your multiplayer.csv file in notepad, or wichever text editor you prefer, you will find this file in...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw/soundalias&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So for US/JAP scroll down till you find &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Voiceover&lt;br /&gt;
# US Announcer USED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The next line down has a list of map names and the first one is mp_airfield, and thats the one &lt;br /&gt;
we want to change. it looks like this...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
US_1mc_freeforall,1,voiceovers\mp\us\US_1mc_freeforall_00.wav,,0.9,0.9,,,360,600,,,,,,voice,2d,streamed,,,,mp_airfield  mp_beachhead mp_castle mp_courtyard mp_hangar mp_kneedeep mp_makin mp_shrine,,,,,,,,,,,0,,1,,,,,,,,,,,,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you move the slider along a bit you will see mp_airfield is the first one, but we need it to look like this.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
US_1mc_freeforall,1,voiceovers\mp\us\US_1mc_freeforall_00.wav,,0.9,0.9,,,360,600,,,,,,voice,2d,streamed,,,,mp_yourmapsname  mp_beachhead mp_castle mp_courtyard mp_hangar mp_kneedeep mp_makin mp_shrine,,,,,,,,,,,0,,1,,,,,,,,,,,,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
AND! Every other line that has mp_airfield in it, so now go to menu at the top and select edit/replace.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
First box = mp_airfield&lt;br /&gt;
second box = mp_yourmapsname&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;replace all&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Thats the first half done.&lt;br /&gt;
&lt;br /&gt;
Now scroll down till you find... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#RU Announcer USED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Repeat the above steps with mp_asylum.&lt;br /&gt;
&lt;br /&gt;
now save and copy it to raw/soundaliases replacing the old one with your new one.&lt;br /&gt;
&lt;br /&gt;
Thats it, you now have voiceovers in your map.&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Adding_Voiceovers&amp;diff=7510</id>
		<title>Call of Duty 5: Adding Voiceovers</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Adding_Voiceovers&amp;diff=7510"/>
		<updated>2010-07-04T03:53:58Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* csc file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding voiceovers to your map ==&lt;br /&gt;
&lt;br /&gt;
Adding voiceovers to your map is probably the easiest sounds to add as there is very little involved in the way of editing.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first. &lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== zone file ==&lt;br /&gt;
&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adding the voiceovers ==&lt;br /&gt;
&lt;br /&gt;
The first thing to do is open up your multiplayer.csv file in notepad, or wichever text editor you prefer, you will find this file in...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
raw/soundalias&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So for US/JAP scroll down till you find &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Voiceover&lt;br /&gt;
# US Announcer USED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The next line down has a list of map names and the first one is mp_airfield, and thats the one &lt;br /&gt;
we want to change. it looks like this...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
US_1mc_freeforall,1,voiceovers\mp\us\US_1mc_freeforall_00.wav,,0.9,0.9,,,360,600,,,,,,voice,2d,streamed,,,,mp_airfield  mp_beachhead mp_castle mp_courtyard mp_hangar mp_kneedeep mp_makin mp_shrine,,,,,,,,,,,0,,1,,,,,,,,,,,,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you move the slider along a bit you will see mp_airfield is the first one, but we need it to look like this.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
US_1mc_freeforall,1,voiceovers\mp\us\US_1mc_freeforall_00.wav,,0.9,0.9,,,360,600,,,,,,voice,2d,streamed,,,,mp_yourmapsname  mp_beachhead mp_castle mp_courtyard mp_hangar mp_kneedeep mp_makin mp_shrine,,,,,,,,,,,0,,1,,,,,,,,,,,,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
AND! Every other line that has mp_airfield in it, so now go to menu at the top and select edit/replace.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
First box = mp_airfield&lt;br /&gt;
second box = mp_yourmapsname&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;replace all&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Thats the first half done.&lt;br /&gt;
&lt;br /&gt;
Now scroll down till you find... &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#RU Announcer USED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Repeat the above steps with mp_asylum.&lt;br /&gt;
&lt;br /&gt;
now save and copy it to raw/soundaliases replacing the old one with your new one.&lt;br /&gt;
&lt;br /&gt;
Thats it, you now have voiceovers in your map.&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Adding_Voiceovers&amp;diff=7509</id>
		<title>Call of Duty 5: Adding Voiceovers</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Adding_Voiceovers&amp;diff=7509"/>
		<updated>2010-07-04T03:28:01Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* csc file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding voiceovers to your map ==&lt;br /&gt;
&lt;br /&gt;
Adding voiceovers to your map is probably the easiest sounds to add as there is very little involved in the way of editing.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first. &lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Adding_Voiceovers&amp;diff=7508</id>
		<title>Call of Duty 5: Adding Voiceovers</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Adding_Voiceovers&amp;diff=7508"/>
		<updated>2010-07-04T03:26:16Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Adding voiceovers to your map */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding voiceovers to your map ==&lt;br /&gt;
&lt;br /&gt;
Adding voiceovers to your map is probably the easiest sounds to add as there is very little involved in the way of editing.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first. &lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Adding_Voiceovers&amp;diff=7507</id>
		<title>Call of Duty 5: Adding Voiceovers</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Adding_Voiceovers&amp;diff=7507"/>
		<updated>2010-07-04T03:24:29Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding voiceovers to your map ==&lt;br /&gt;
&lt;br /&gt;
Adding voiceovers to your map is probably the easiest sounds to add as there is very little involved in the way of editing.&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7501</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7501"/>
		<updated>2010-07-03T11:23:27Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Zone file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first.&lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
1.Crickets = ground&lt;br /&gt;
&lt;br /&gt;
2.flies = air&lt;br /&gt;
&lt;br /&gt;
3.Birds = trees, air&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
== Playing multiple sounds from a single script_struct ==&lt;br /&gt;
&lt;br /&gt;
Please ensure that you have followed steps 2, 3, 4 and 5 at the top of this page, everything is the same untill it comes to editing your soundalias &amp;amp; script struct.&lt;br /&gt;
&lt;br /&gt;
Your script struct for this example would have the label &amp;quot;fauna&amp;quot; Like so!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                VALUE&lt;br /&gt;
&lt;br /&gt;
targetname            fauna&lt;br /&gt;
script_sound          fauna&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you look at the first line and the line below that one you will see there are two differences, the number&lt;br /&gt;
one has been added at the beginning of the line and the sound effect is a different one, but all use the same&lt;br /&gt;
label &#039;fauna&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fauna,,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&lt;br /&gt;
fauna,1,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
     /\                          /\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And this is how you would play several different sounds using a single script struct, using crickets as an&lt;br /&gt;
example, this is what it would look like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fauna,1,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,2,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,3,SFX\amb\birds\random\bird_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,4,SFX\amb\birds\tawny\tawny_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So now! Your soundalias would look like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
fauna,1,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,2,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,3,SFX\amb\birds\random\bird_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,4,SFX\amb\birds\tawny\tawny_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You now know how to add sounds using script_structs, as I said earlier it is fairly easy and straight forward, but I can assure you, when you have done it once you can do it time &amp;amp; time again.&lt;br /&gt;
&lt;br /&gt;
== Custom sounds ==&lt;br /&gt;
&lt;br /&gt;
If you use custom sounds they need to be a certain format,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm uncompressed&lt;br /&gt;
44100hz 8bits mono&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also! You will need to make a folder called &#039;custom&#039;&lt;br /&gt;
&lt;br /&gt;
raw/sound/SFX/custom&lt;br /&gt;
&lt;br /&gt;
Any custom sounds you use are to go in this folder, the main reason is to keep your custom&lt;br /&gt;
sounds seperate from the stock ones, this makes it less confusing as you will always know&lt;br /&gt;
where your custom sounds are.&lt;br /&gt;
&lt;br /&gt;
Personally I use a program called Wavepad.&lt;br /&gt;
&lt;br /&gt;
[http://www.soft82.com/download/Windows/WavePad Get Windows Wavepad]&lt;br /&gt;
&lt;br /&gt;
== Final note (Important)==&lt;br /&gt;
&lt;br /&gt;
One thing to remember is! when adding sounds to your soundalias DO NOT use the same line for your script_struct sound and your line emitter sound, it will not work.&lt;br /&gt;
&lt;br /&gt;
Script_struct&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Line emitter&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see! From !wii onwards the two lines are totally different.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
arachnofang.&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7500</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7500"/>
		<updated>2010-07-03T11:16:33Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Playing a single sound using a script_struct */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map, also! When editing files always make sure you make backup copies first.&lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
crickets  = ground&lt;br /&gt;
flies      = in the air&lt;br /&gt;
birds     = in the trees&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
== Playing multiple sounds from a single script_struct ==&lt;br /&gt;
&lt;br /&gt;
Please ensure that you have followed steps 2, 3, 4 and 5 at the top of this page, everything is the same untill it comes to editing your soundalias &amp;amp; script struct.&lt;br /&gt;
&lt;br /&gt;
Your script struct for this example would have the label &amp;quot;fauna&amp;quot; Like so!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                VALUE&lt;br /&gt;
&lt;br /&gt;
targetname            fauna&lt;br /&gt;
script_sound          fauna&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you look at the first line and the line below that one you will see there are two differences, the number&lt;br /&gt;
one has been added at the beginning of the line and the sound effect is a different one, but all use the same&lt;br /&gt;
label &#039;fauna&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fauna,,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&lt;br /&gt;
fauna,1,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
     /\                          /\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And this is how you would play several different sounds using a single script struct, using crickets as an&lt;br /&gt;
example, this is what it would look like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fauna,1,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,2,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,3,SFX\amb\birds\random\bird_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,4,SFX\amb\birds\tawny\tawny_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So now! Your soundalias would look like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
fauna,1,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,2,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,3,SFX\amb\birds\random\bird_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,4,SFX\amb\birds\tawny\tawny_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You now know how to add sounds using script_structs, as I said earlier it is fairly easy and straight forward, but I can assure you, when you have done it once you can do it time &amp;amp; time again.&lt;br /&gt;
&lt;br /&gt;
== Custom sounds ==&lt;br /&gt;
&lt;br /&gt;
If you use custom sounds they need to be a certain format,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm uncompressed&lt;br /&gt;
44100hz 8bits mono&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also! You will need to make a folder called &#039;custom&#039;&lt;br /&gt;
&lt;br /&gt;
raw/sound/SFX/custom&lt;br /&gt;
&lt;br /&gt;
Any custom sounds you use are to go in this folder, the main reason is to keep your custom&lt;br /&gt;
sounds seperate from the stock ones, this makes it less confusing as you will always know&lt;br /&gt;
where your custom sounds are.&lt;br /&gt;
&lt;br /&gt;
Personally I use a program called Wavepad.&lt;br /&gt;
&lt;br /&gt;
[http://www.soft82.com/download/Windows/WavePad Get Windows Wavepad]&lt;br /&gt;
&lt;br /&gt;
== Final note (Important)==&lt;br /&gt;
&lt;br /&gt;
One thing to remember is! when adding sounds to your soundalias DO NOT use the same line for your script_struct sound and your line emitter sound, it will not work.&lt;br /&gt;
&lt;br /&gt;
Script_struct&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Line emitter&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see! From !wii onwards the two lines are totally different.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
arachnofang.&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7498</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7498"/>
		<updated>2010-07-02T17:07:39Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Final note */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map.&lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
crickets  = ground&lt;br /&gt;
flies      = in the air&lt;br /&gt;
birds     = in the trees&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
== Playing multiple sounds from a single script_struct ==&lt;br /&gt;
&lt;br /&gt;
Please ensure that you have followed steps 2, 3, 4 and 5 at the top of this page, everything is the same untill it comes to editing your soundalias &amp;amp; script struct.&lt;br /&gt;
&lt;br /&gt;
Your script struct for this example would have the label &amp;quot;fauna&amp;quot; Like so!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                VALUE&lt;br /&gt;
&lt;br /&gt;
targetname            fauna&lt;br /&gt;
script_sound          fauna&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you look at the first line and the line below that one you will see there are two differences, the number&lt;br /&gt;
one has been added at the beginning of the line and the sound effect is a different one, but all use the same&lt;br /&gt;
label &#039;fauna&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fauna,,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&lt;br /&gt;
fauna,1,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
     /\                          /\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And this is how you would play several different sounds using a single script struct, using crickets as an&lt;br /&gt;
example, this is what it would look like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fauna,1,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,2,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,3,SFX\amb\birds\random\bird_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,4,SFX\amb\birds\tawny\tawny_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So now! Your soundalias would look like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
fauna,1,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,2,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,3,SFX\amb\birds\random\bird_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,4,SFX\amb\birds\tawny\tawny_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You now know how to add sounds using script_structs, as I said earlier it is fairly easy and straight forward, but I can assure you, when you have done it once you can do it time &amp;amp; time again.&lt;br /&gt;
&lt;br /&gt;
== Custom sounds ==&lt;br /&gt;
&lt;br /&gt;
If you use custom sounds they need to be a certain format,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm uncompressed&lt;br /&gt;
44100hz 8bits mono&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also! You will need to make a folder called &#039;custom&#039;&lt;br /&gt;
&lt;br /&gt;
raw/sound/SFX/custom&lt;br /&gt;
&lt;br /&gt;
Any custom sounds you use are to go in this folder, the main reason is to keep your custom&lt;br /&gt;
sounds seperate from the stock ones, this makes it less confusing as you will always know&lt;br /&gt;
where your custom sounds are.&lt;br /&gt;
&lt;br /&gt;
Personally I use a program called Wavepad.&lt;br /&gt;
&lt;br /&gt;
[http://www.soft82.com/download/Windows/WavePad Get Windows Wavepad]&lt;br /&gt;
&lt;br /&gt;
== Final note (Important)==&lt;br /&gt;
&lt;br /&gt;
One thing to remember is! when adding sounds to your soundalias DO NOT use the same line for your script_struct sound and your line emitter sound, it will not work.&lt;br /&gt;
&lt;br /&gt;
Script_struct&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Line emitter&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see! From !wii onwards the two lines are totally different.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
arachnofang.&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7497</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7497"/>
		<updated>2010-07-02T17:06:10Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Playing multiple sounds from a single script_struct */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map.&lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
crickets  = ground&lt;br /&gt;
flies      = in the air&lt;br /&gt;
birds     = in the trees&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
== Playing multiple sounds from a single script_struct ==&lt;br /&gt;
&lt;br /&gt;
Please ensure that you have followed steps 2, 3, 4 and 5 at the top of this page, everything is the same untill it comes to editing your soundalias &amp;amp; script struct.&lt;br /&gt;
&lt;br /&gt;
Your script struct for this example would have the label &amp;quot;fauna&amp;quot; Like so!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                VALUE&lt;br /&gt;
&lt;br /&gt;
targetname            fauna&lt;br /&gt;
script_sound          fauna&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you look at the first line and the line below that one you will see there are two differences, the number&lt;br /&gt;
one has been added at the beginning of the line and the sound effect is a different one, but all use the same&lt;br /&gt;
label &#039;fauna&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fauna,,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&lt;br /&gt;
fauna,1,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
     /\                          /\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And this is how you would play several different sounds using a single script struct, using crickets as an&lt;br /&gt;
example, this is what it would look like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fauna,1,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,2,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,3,SFX\amb\birds\random\bird_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,4,SFX\amb\birds\tawny\tawny_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So now! Your soundalias would look like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
fauna,1,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,2,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,3,SFX\amb\birds\random\bird_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,4,SFX\amb\birds\tawny\tawny_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You now know how to add sounds using script_structs, as I said earlier it is fairly easy and straight forward, but I can assure you, when you have done it once you can do it time &amp;amp; time again.&lt;br /&gt;
&lt;br /&gt;
== Custom sounds ==&lt;br /&gt;
&lt;br /&gt;
If you use custom sounds they need to be a certain format,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm uncompressed&lt;br /&gt;
44100hz 8bits mono&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also! You will need to make a folder called &#039;custom&#039;&lt;br /&gt;
&lt;br /&gt;
raw/sound/SFX/custom&lt;br /&gt;
&lt;br /&gt;
Any custom sounds you use are to go in this folder, the main reason is to keep your custom&lt;br /&gt;
sounds seperate from the stock ones, this makes it less confusing as you will always know&lt;br /&gt;
where your custom sounds are.&lt;br /&gt;
&lt;br /&gt;
Personally I use a program called Wavepad.&lt;br /&gt;
&lt;br /&gt;
[http://www.soft82.com/download/Windows/WavePad Get Windows Wavepad]&lt;br /&gt;
&lt;br /&gt;
== Final note ==&lt;br /&gt;
&lt;br /&gt;
One thing to remember is! when adding sounds to your soundalias DO NOT use the same line for your script_struct sound and your line emitter sound, it will not work.&lt;br /&gt;
&lt;br /&gt;
Script_struct&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Line emitter&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see! From !wii onwards the two lines are totally different.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
arachnofang.&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7496</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7496"/>
		<updated>2010-07-02T17:04:29Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Playing multiple sounds from a single script_struct */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map.&lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
crickets  = ground&lt;br /&gt;
flies      = in the air&lt;br /&gt;
birds     = in the trees&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
== Playing multiple sounds from a single script_struct ==&lt;br /&gt;
&lt;br /&gt;
Please ensure that you have followed steps 2, 3, 4 and 5 at the top of this page, everything is the same untill it comes to editing your soundalias &amp;amp; script struct.&lt;br /&gt;
&lt;br /&gt;
Your script struct for this example would have the label &amp;quot;fauna&amp;quot; Like so!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you look at the first line and the line below that one you will see there are two differences, the number&lt;br /&gt;
one has been added at the beginning of the line and the sound effect is a different one, but all use the same&lt;br /&gt;
label &#039;fauna&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fauna,,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&lt;br /&gt;
fauna,1,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
     /\                          /\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And this is how you would play several different sounds using a single script struct, using crickets as an&lt;br /&gt;
example, this is what it would look like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fauna,1,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,2,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,3,SFX\amb\birds\random\bird_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,4,SFX\amb\birds\tawny\tawny_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So now! Your soundalias would look like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
fauna,1,SFX\amb\birds\owl\owl_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,2,SFX\amb\birds\random\bird_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,3,SFX\amb\birds\random\bird_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
fauna,4,SFX\amb\birds\tawny\tawny_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You now know how to add sounds using script_structs, as I said earlier it is fairly easy and straight forward, but I can assure you, when you have done it once you can do it time &amp;amp; time again.&lt;br /&gt;
&lt;br /&gt;
== Custom sounds ==&lt;br /&gt;
&lt;br /&gt;
If you use custom sounds they need to be a certain format,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm uncompressed&lt;br /&gt;
44100hz 8bits mono&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also! You will need to make a folder called &#039;custom&#039;&lt;br /&gt;
&lt;br /&gt;
raw/sound/SFX/custom&lt;br /&gt;
&lt;br /&gt;
Any custom sounds you use are to go in this folder, the main reason is to keep your custom&lt;br /&gt;
sounds seperate from the stock ones, this makes it less confusing as you will always know&lt;br /&gt;
where your custom sounds are.&lt;br /&gt;
&lt;br /&gt;
Personally I use a program called Wavepad.&lt;br /&gt;
&lt;br /&gt;
[http://www.soft82.com/download/Windows/WavePad Get Windows Wavepad]&lt;br /&gt;
&lt;br /&gt;
== Final note ==&lt;br /&gt;
&lt;br /&gt;
One thing to remember is! when adding sounds to your soundalias DO NOT use the same line for your script_struct sound and your line emitter sound, it will not work.&lt;br /&gt;
&lt;br /&gt;
Script_struct&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Line emitter&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see! From !wii onwards the two lines are totally different.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
arachnofang.&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7495</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7495"/>
		<updated>2010-07-02T16:35:54Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Final note */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map.&lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
crickets  = ground&lt;br /&gt;
flies      = in the air&lt;br /&gt;
birds     = in the trees&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
== Playing multiple sounds from a single script_struct ==&lt;br /&gt;
&lt;br /&gt;
Please ensure that you have followed steps 2, 3, 4 and 5 at the top of this page, everything is the same untill it comes to editing your soundalias.&lt;br /&gt;
&lt;br /&gt;
If you look at the first line and the line below that one you will see there are two differences, the number&lt;br /&gt;
one has been added at the beginning of the line and the sound effect is a different one, but all use the same&lt;br /&gt;
label &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_01.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
    /\                                /\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And this is how you would play several different sounds using a single script struct, using crickets as an&lt;br /&gt;
example, this is what it would look like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,2,SFX\amb\animals\crickets\crickets_01.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,3,SFX\amb\animals\crickets\crickets_02.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,4,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So now! Your soundalias would look like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,2,SFX\amb\animals\crickets\crickets_01.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,3,SFX\amb\animals\crickets\crickets_02.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,4,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You now know how to add sounds using script_structs, as I said earlier it is fairly easy and straight forward, but I can assure you, when you have done it once you can do it time &amp;amp; time again.&lt;br /&gt;
&lt;br /&gt;
== Custom sounds ==&lt;br /&gt;
&lt;br /&gt;
If you use custom sounds they need to be a certain format,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm uncompressed&lt;br /&gt;
44100hz 8bits mono&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also! You will need to make a folder called &#039;custom&#039;&lt;br /&gt;
&lt;br /&gt;
raw/sound/SFX/custom&lt;br /&gt;
&lt;br /&gt;
Any custom sounds you use are to go in this folder, the main reason is to keep your custom&lt;br /&gt;
sounds seperate from the stock ones, this makes it less confusing as you will always know&lt;br /&gt;
where your custom sounds are.&lt;br /&gt;
&lt;br /&gt;
Personally I use a program called Wavepad.&lt;br /&gt;
&lt;br /&gt;
[http://www.soft82.com/download/Windows/WavePad Get Windows Wavepad]&lt;br /&gt;
&lt;br /&gt;
== Final note ==&lt;br /&gt;
&lt;br /&gt;
One thing to remember is! when adding sounds to your soundalias DO NOT use the same line for your script_struct sound and your line emitter sound, it will not work.&lt;br /&gt;
&lt;br /&gt;
Script_struct&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Line emitter&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see! From !wii onwards the two lines are totally different.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
arachnofang.&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7494</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7494"/>
		<updated>2010-07-02T16:27:49Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Custom sounds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map.&lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
crickets  = ground&lt;br /&gt;
flies      = in the air&lt;br /&gt;
birds     = in the trees&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
== Playing multiple sounds from a single script_struct ==&lt;br /&gt;
&lt;br /&gt;
Please ensure that you have followed steps 2, 3, 4 and 5 at the top of this page, everything is the same untill it comes to editing your soundalias.&lt;br /&gt;
&lt;br /&gt;
If you look at the first line and the line below that one you will see there are two differences, the number&lt;br /&gt;
one has been added at the beginning of the line and the sound effect is a different one, but all use the same&lt;br /&gt;
label &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_01.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
    /\                                /\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And this is how you would play several different sounds using a single script struct, using crickets as an&lt;br /&gt;
example, this is what it would look like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,2,SFX\amb\animals\crickets\crickets_01.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,3,SFX\amb\animals\crickets\crickets_02.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,4,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So now! Your soundalias would look like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,2,SFX\amb\animals\crickets\crickets_01.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,3,SFX\amb\animals\crickets\crickets_02.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,4,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You now know how to add sounds using script_structs, as I said earlier it is fairly easy and straight forward, but I can assure you, when you have done it once you can do it time &amp;amp; time again.&lt;br /&gt;
&lt;br /&gt;
== Custom sounds ==&lt;br /&gt;
&lt;br /&gt;
If you use custom sounds they need to be a certain format,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm uncompressed&lt;br /&gt;
44100hz 8bits mono&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also! You will need to make a folder called &#039;custom&#039;&lt;br /&gt;
&lt;br /&gt;
raw/sound/SFX/custom&lt;br /&gt;
&lt;br /&gt;
Any custom sounds you use are to go in this folder, the main reason is to keep your custom&lt;br /&gt;
sounds seperate from the stock ones, this makes it less confusing as you will always know&lt;br /&gt;
where your custom sounds are.&lt;br /&gt;
&lt;br /&gt;
Personally I use a program called Wavepad.&lt;br /&gt;
&lt;br /&gt;
[http://www.soft82.com/download/Windows/WavePad Get Windows Wavepad]&lt;br /&gt;
&lt;br /&gt;
== Final note ==&lt;br /&gt;
&lt;br /&gt;
One thing to remember is! when adding sounds to your soundalias DO NOT use the same line for your script_struct sound and your line emitter sound, it will not work.&lt;br /&gt;
&lt;br /&gt;
Script_struct&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Line emitter&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
brookrun,,SFX\amb\brook\brook_00.wav,!wii,0.3,0.4,,,10,250,400,,,,,ambience,90,3d,,,looping,,,curve2,,,,,,curve2,,,,,,,50,100,0.7,0.6,20,80,0.25,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see! From !wii onwards the two lines are totally different.&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7493</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7493"/>
		<updated>2010-07-02T16:19:48Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Playing multiple sounds from a single script_struct */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map.&lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
crickets  = ground&lt;br /&gt;
flies      = in the air&lt;br /&gt;
birds     = in the trees&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
== Playing multiple sounds from a single script_struct ==&lt;br /&gt;
&lt;br /&gt;
Please ensure that you have followed steps 2, 3, 4 and 5 at the top of this page, everything is the same untill it comes to editing your soundalias.&lt;br /&gt;
&lt;br /&gt;
If you look at the first line and the line below that one you will see there are two differences, the number&lt;br /&gt;
one has been added at the beginning of the line and the sound effect is a different one, but all use the same&lt;br /&gt;
label &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_01.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
    /\                                /\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And this is how you would play several different sounds using a single script struct, using crickets as an&lt;br /&gt;
example, this is what it would look like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,2,SFX\amb\animals\crickets\crickets_01.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,3,SFX\amb\animals\crickets\crickets_02.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,4,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So now! Your soundalias would look like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,2,SFX\amb\animals\crickets\crickets_01.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,3,SFX\amb\animals\crickets\crickets_02.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,4,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it! You now know how to add sounds using script_structs, as I said earlier it is fairly easy and straight forward, but I can assure you, when you have done it once you can do it time &amp;amp; time again.&lt;br /&gt;
&lt;br /&gt;
== Custom sounds ==&lt;br /&gt;
&lt;br /&gt;
If you use custom sounds they need to be a certain format,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm uncompressed&lt;br /&gt;
44100hz 8bits mono&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also! You will need to make a folder called &#039;custom&#039;&lt;br /&gt;
&lt;br /&gt;
raw/sound/SFX/custom&lt;br /&gt;
&lt;br /&gt;
Any custom sounds you use are to go in this folder, the main reason is to keep your custom&lt;br /&gt;
sounds seperate from the stock ones, this makes it less confusing as you will always know&lt;br /&gt;
where your custom sounds are.&lt;br /&gt;
&lt;br /&gt;
Personally I use a program called Wavepad.&lt;br /&gt;
&lt;br /&gt;
[http://www.soft82.com/download/Windows/WavePad Get Windows Wavepad]&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7492</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7492"/>
		<updated>2010-07-02T16:15:32Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Playing multiple souds from a single script_struct */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map.&lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
crickets  = ground&lt;br /&gt;
flies      = in the air&lt;br /&gt;
birds     = in the trees&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
== Playing multiple sounds from a single script_struct ==&lt;br /&gt;
&lt;br /&gt;
Please ensure that you have followed steps 2, 3, 4 and 5 at the top of this page, everything is the same untill it comes to editing your soundalias.&lt;br /&gt;
&lt;br /&gt;
If you look at the first line and the line below that one you will see there are two differences, the number&lt;br /&gt;
one has been added at the beginning of the line and the sound effect is a different one, but all use the same&lt;br /&gt;
label &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_01.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
    /\                                /\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And this is how you would play several different sounds using a single script struct, using crickets as an&lt;br /&gt;
example, this is what it would look like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,2,SFX\amb\animals\crickets\crickets_01.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,3,SFX\amb\animals\crickets\crickets_02.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,4,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So now! Your soundalias would look like this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,1,SFX\amb\animals\crickets\crickets_00.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,2,SFX\amb\animals\crickets\crickets_01.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,3,SFX\amb\animals\crickets\crickets_02.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
cric,4,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Custom sounds ==&lt;br /&gt;
&lt;br /&gt;
If you use custom sounds they need to be a certain format,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm uncompressed&lt;br /&gt;
44100hz 8bits mono&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also! You will need to make a folder called &#039;custom&#039;&lt;br /&gt;
&lt;br /&gt;
raw/sound/SFX/custom&lt;br /&gt;
&lt;br /&gt;
Any custom sounds you use are to go in this folder, the main reason is to keep your custom&lt;br /&gt;
sounds seperate from the stock ones, this makes it less confusing as you will always know&lt;br /&gt;
where your custom sounds are.&lt;br /&gt;
&lt;br /&gt;
Personally I use a program called Wavepad.&lt;br /&gt;
&lt;br /&gt;
[http://www.soft82.com/download/Windows/WavePad Get Windows Wavepad]&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7491</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7491"/>
		<updated>2010-07-02T16:04:43Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Playing multiple souds from a single script_struct */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map.&lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
crickets  = ground&lt;br /&gt;
flies      = in the air&lt;br /&gt;
birds     = in the trees&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
== Playing multiple souds from a single script_struct ==&lt;br /&gt;
&lt;br /&gt;
Please ensure that you have followed steps 2, 3, 4 and 5.&lt;br /&gt;
&lt;br /&gt;
== Custom sounds ==&lt;br /&gt;
&lt;br /&gt;
If you use custom sounds they need to be a certain format,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm uncompressed&lt;br /&gt;
44100hz 8bits mono&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also! You will need to make a folder called &#039;custom&#039;&lt;br /&gt;
&lt;br /&gt;
raw/sound/SFX/custom&lt;br /&gt;
&lt;br /&gt;
Any custom sounds you use are to go in this folder, the main reason is to keep your custom&lt;br /&gt;
sounds seperate from the stock ones, this makes it less confusing as you will always know&lt;br /&gt;
where your custom sounds are.&lt;br /&gt;
&lt;br /&gt;
Personally I use a program called Wavepad.&lt;br /&gt;
&lt;br /&gt;
[http://www.soft82.com/download/Windows/WavePad Get Windows Wavepad]&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7490</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7490"/>
		<updated>2010-07-02T16:03:04Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Chapter 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map.&lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
crickets  = ground&lt;br /&gt;
flies      = in the air&lt;br /&gt;
birds     = in the trees&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
== Playing multiple souds from a single script_struct ==&lt;br /&gt;
&lt;br /&gt;
And so it goes ....&lt;br /&gt;
&lt;br /&gt;
== Custom sounds ==&lt;br /&gt;
&lt;br /&gt;
If you use custom sounds they need to be a certain format,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm uncompressed&lt;br /&gt;
44100hz 8bits mono&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also! You will need to make a folder called &#039;custom&#039;&lt;br /&gt;
&lt;br /&gt;
raw/sound/SFX/custom&lt;br /&gt;
&lt;br /&gt;
Any custom sounds you use are to go in this folder, the main reason is to keep your custom&lt;br /&gt;
sounds seperate from the stock ones, this makes it less confusing as you will always know&lt;br /&gt;
where your custom sounds are.&lt;br /&gt;
&lt;br /&gt;
Personally I use a program called Wavepad.&lt;br /&gt;
&lt;br /&gt;
[http://www.soft82.com/download/Windows/WavePad Get Windows Wavepad]&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7486</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7486"/>
		<updated>2010-07-02T14:36:35Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Playing a single sound using a script_struct */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map.&lt;br /&gt;
&lt;br /&gt;
== csc file ==&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
crickets  = ground&lt;br /&gt;
flies      = in the air&lt;br /&gt;
birds     = in the trees&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
=== sub chapter 1 ===&lt;br /&gt;
&lt;br /&gt;
=== sub chapter 2 ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;BOLD&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;Italic&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
And so it goes ....&lt;br /&gt;
&lt;br /&gt;
== Custom sounds ==&lt;br /&gt;
&lt;br /&gt;
If you use custom sounds they need to be a certain format,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm uncompressed&lt;br /&gt;
44100hz 8bits mono&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also! You will need to make a folder called &#039;custom&#039;&lt;br /&gt;
&lt;br /&gt;
raw/sound/SFX/custom&lt;br /&gt;
&lt;br /&gt;
Any custom sounds you use are to go in this folder, the main reason is to keep your custom&lt;br /&gt;
sounds seperate from the stock ones, this makes it less confusing as you will always know&lt;br /&gt;
where your custom sounds are.&lt;br /&gt;
&lt;br /&gt;
Personally I use a program called Wavepad.&lt;br /&gt;
&lt;br /&gt;
== http://www.soft82.com/download/Windows/WavePad ==&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7485</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7485"/>
		<updated>2010-07-02T14:30:36Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Custom sounds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
crickets  = ground&lt;br /&gt;
flies      = in the air&lt;br /&gt;
birds     = in the trees&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
=== sub chapter 1 ===&lt;br /&gt;
&lt;br /&gt;
=== sub chapter 2 ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;BOLD&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;Italic&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
And so it goes ....&lt;br /&gt;
&lt;br /&gt;
== Custom sounds ==&lt;br /&gt;
&lt;br /&gt;
If you use custom sounds they need to be a certain format,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm uncompressed&lt;br /&gt;
44100hz 8bits mono&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also! You will need to make a folder called &#039;custom&#039;&lt;br /&gt;
&lt;br /&gt;
raw/sound/SFX/custom&lt;br /&gt;
&lt;br /&gt;
Any custom sounds you use are to go in this folder, the main reason is to keep your custom&lt;br /&gt;
sounds seperate from the stock ones, this makes it less confusing as you will always know&lt;br /&gt;
where your custom sounds are.&lt;br /&gt;
&lt;br /&gt;
Personally I use a program called Wavepad.&lt;br /&gt;
&lt;br /&gt;
== http://www.soft82.com/download/Windows/WavePad ==&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7484</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7484"/>
		<updated>2010-07-02T14:28:17Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Custom sounds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
crickets  = ground&lt;br /&gt;
flies      = in the air&lt;br /&gt;
birds     = in the trees&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
=== sub chapter 1 ===&lt;br /&gt;
&lt;br /&gt;
=== sub chapter 2 ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;BOLD&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;Italic&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
And so it goes ....&lt;br /&gt;
&lt;br /&gt;
== Custom sounds ==&lt;br /&gt;
&lt;br /&gt;
If you use custom sounds they need to be a certain format,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm uncompressed&lt;br /&gt;
44100hz 8bits mono&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also! You will need to make a folder called &#039;custom&#039;&lt;br /&gt;
&lt;br /&gt;
raw/sound/SFX/custom&lt;br /&gt;
&lt;br /&gt;
Any custom sounds you use are to go in this folder, the main reason is to keep your custom&lt;br /&gt;
sounds seperate from the stock ones, this makes it less confusing as you will always know&lt;br /&gt;
where your custom sounds are.&lt;br /&gt;
&lt;br /&gt;
Personally I use a program called Wavepad.&lt;br /&gt;
&lt;br /&gt;
http://www.soft82.com/download/Windows/WavePad&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7483</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7483"/>
		<updated>2010-07-02T14:26:28Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Chapter 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
crickets  = ground&lt;br /&gt;
flies      = in the air&lt;br /&gt;
birds     = in the trees&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
=== sub chapter 1 ===&lt;br /&gt;
&lt;br /&gt;
=== sub chapter 2 ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;BOLD&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;Italic&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
And so it goes ....&lt;br /&gt;
&lt;br /&gt;
== Custom sounds ==&lt;br /&gt;
&lt;br /&gt;
If you use custom sounds they need to be a certain format,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm uncompressed&lt;br /&gt;
44100hz 8bits mono&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also! You will need to make a folder called &#039;custom&#039;&lt;br /&gt;
&lt;br /&gt;
raw/sound/SFX/custom&lt;br /&gt;
&lt;br /&gt;
Any custom sounds you use are to go in this folder, the main reason is to keep your custom&lt;br /&gt;
sounds seperate from the stock ones, this makes it less confusing as you will always know&lt;br /&gt;
where your custom sounds are.&lt;br /&gt;
&lt;br /&gt;
Personally I use a program called Wavepad.&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7482</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7482"/>
		<updated>2010-07-02T14:25:14Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Custom sounds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
crickets  = ground&lt;br /&gt;
flies      = in the air&lt;br /&gt;
birds     = in the trees&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
=== sub chapter 1 ===&lt;br /&gt;
&lt;br /&gt;
=== sub chapter 2 ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;BOLD&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;Italic&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
And so it goes ....&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7481</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7481"/>
		<updated>2010-07-02T14:23:48Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* Custom sounds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
crickets  = ground&lt;br /&gt;
flies      = in the air&lt;br /&gt;
birds     = in the trees&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
=== Custom sounds ===&lt;br /&gt;
&lt;br /&gt;
If you use custom sounds they need to be a certain format,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pcm uncompressed&lt;br /&gt;
44100hz 8bits mono&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also! You will need to make a folder called &#039;custom&#039;&lt;br /&gt;
&lt;br /&gt;
raw/sound/SFX/custom&lt;br /&gt;
&lt;br /&gt;
Any custom sounds you use are to go in this folder, the main reason is to keep your custom&lt;br /&gt;
sounds seperate from the stock ones, this makes it less confusing as you will always know&lt;br /&gt;
where your custom sounds are.&lt;br /&gt;
&lt;br /&gt;
Personally I use a program called Wavepad.&lt;br /&gt;
&lt;br /&gt;
=== sub chapter 2 ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;BOLD&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;Italic&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
And so it goes ....&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7480</id>
		<title>Call of Duty 5: Sounds with Struct</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Sounds_with_Struct&amp;diff=7480"/>
		<updated>2010-07-02T14:19:51Z</updated>

		<summary type="html">&lt;p&gt;Arachnofang: /* sub chapter 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Nutshell.png]] This tutorial describe an alternative method to add Sound in a map using Radiant and a few scripts.&lt;br /&gt;
&lt;br /&gt;
== Playing a single sound using a script_struct ==&lt;br /&gt;
&lt;br /&gt;
The way I&#039;m going to show you how to use script_structs is basically the same way they did it in mp_castle.&lt;br /&gt;
Its actually very easy and straight forward, we are going to start by adding one sound to your map then we will move on to adding several sounds.&lt;br /&gt;
&lt;br /&gt;
Make sure you replace any reference to mp_yourmapsname with the name of your map.&lt;br /&gt;
&lt;br /&gt;
The very first thing we need to do, is to make sure that you have a mp_yourmapsname.csc in raw/clientscripts/mp, if you do not have one then you need to create one, once you have created one copy and paste these lines into it, you may need to change the team nationalities as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; #include clientscripts\mp\_utility;&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	// If the team nationalites change in this level&#039;s gsc file,&lt;br /&gt;
	// you must update the team nationality here!&lt;br /&gt;
	level.allies_team = &amp;quot;marines&amp;quot;;&lt;br /&gt;
	level.axis_team   = &amp;quot;german&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	// _load!&lt;br /&gt;
	clientscripts\mp\_load::main();&lt;br /&gt;
&lt;br /&gt;
        // clientscripts\mp\mp_yourmapsname_fx::main();&lt;br /&gt;
&lt;br /&gt;
	thread clientscripts\mp\_fx::fx_init(0);&lt;br /&gt;
	thread clientscripts\mp\_audio::audio_init(0);&lt;br /&gt;
&lt;br /&gt;
	// thread clientscripts\mp\mp_yourmapsname_amb::main();&lt;br /&gt;
&lt;br /&gt;
	// This needs to be called after all systems have been registered.&lt;br /&gt;
	thread waitforclient(0);&lt;br /&gt;
&lt;br /&gt;
	println(&amp;quot;*** Client : mp_yourmapsname running...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone file ==&lt;br /&gt;
The next thing to check is you have these lines in your zone file, without these lines, especially the top one your sounds will not work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rawfile,clientscripts/mp/mp_yourmapsname.csc&lt;br /&gt;
&lt;br /&gt;
sound,common,mp_yourmapsname,all_mp&lt;br /&gt;
sound,generic,mp_yourmapsname,all_mp&lt;br /&gt;
sound,voiceovers,mp_yourmapsname,all_mp&lt;br /&gt;
sound,multiplayer,mp_yourmapsname,all_mp&lt;br /&gt;
sound,mp_yourmapsname,mp_yourmapsname,all_mp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Putting script structs in the right place will make the overall ambience a lot more atmospheric.&lt;br /&gt;
&lt;br /&gt;
crickets  = ground&lt;br /&gt;
flies      = in the air&lt;br /&gt;
birds     = in the trees&lt;br /&gt;
&lt;br /&gt;
and so on&lt;br /&gt;
&lt;br /&gt;
For this example we are going to use &#039;crickets_03.wav&#039; we also need to add a label to point to the sound effect,&lt;br /&gt;
so if you look at &#039;targetname&#039; &amp;amp; &#039;script_sound&#039; you will see that I have used the label &#039;cric&#039; its better to use&lt;br /&gt;
a label associated with the SFX sample you are going to use, because its crickets I want to use, I have labeled&lt;br /&gt;
it &#039;cric&#039;.&lt;br /&gt;
&lt;br /&gt;
== Adding the script struct ==&lt;br /&gt;
&lt;br /&gt;
1.   Right click in the 2d screen, scroll down and select script/struct.&lt;br /&gt;
&lt;br /&gt;
2.   Place the script struct where you want the sound effect to play from.&lt;br /&gt;
&lt;br /&gt;
The next thing to do is to add the key/values to the script struct which will play a specified sound effect from&lt;br /&gt;
your &#039;soundalias&#039; file.&lt;br /&gt;
&lt;br /&gt;
High light the script struct and press the &#039;n&#039; key to bring up the entity window.&lt;br /&gt;
&lt;br /&gt;
These are the five you need to add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   KEY                  VALUE&lt;br /&gt;
&lt;br /&gt;
script_label          random&lt;br /&gt;
targetname            cric&lt;br /&gt;
script_sound          cric&lt;br /&gt;
script_wait_min       10&lt;br /&gt;
script_wait_max       20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These two are generated automatically&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classname            script_struct&lt;br /&gt;
origin               334.3 335.3 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that each script_struct should have its own unique targetname &amp;amp; script_sound, this way it doesn&#039;t get&lt;br /&gt;
confused and try to play several different SFX at the same time, as you can imagine, if every script_struct had&lt;br /&gt;
the same ones and you added a different sound effect for each one in your soundalias it would try to play all of&lt;br /&gt;
them at the same time.&lt;br /&gt;
&lt;br /&gt;
The label &#039;cric&#039; is the first thing in the line, this is what the script_struct is looking for so it knows to&lt;br /&gt;
play the right sound effect, once you have chosen your sound effect then you would change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
== Soundalias ==&lt;br /&gt;
&lt;br /&gt;
Now we need to make the &#039;soundalias&#039; make a file in &#039;raw/soundaliases called mp_yourmapsname.csv, once you have done that copy and paste these lines into your soundalias then save it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name,sequence,file,platform,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,dist_reverb_max,limit_count,limit_type,entity_limit_count,entity_limit_type,bus,priority,spatialized,type,probability,loop,masterslave,loadspec,reverb_falloff_curve,subtitle,compression,randomize_type,secondaryaliasname,chainaliasname,volumefalloffcurve,startdelay,speakermap,reverb_send,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage,occlusion_level,min_priority,max_priority,min_priority_threshold,max_priority_threshold&lt;br /&gt;
&lt;br /&gt;
# Ambient SFX - Static,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&lt;br /&gt;
cric,,SFX\amb\animals\crickets\crickets_03.wav,!wii,1,1,1,1,500,800,1200,,,,,ambience,60,3d,,0.8,,,,curve3,,,,,,curve2,,,,,,,,,,0.5,30,50,0.2,1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That is your single script_struct all done, Now! If you compile your map you should have a fully working&lt;br /&gt;
script struct playing a sound of a cricket.&lt;br /&gt;
&lt;br /&gt;
=== Custom sounds ===&lt;br /&gt;
&lt;br /&gt;
* line 1&lt;br /&gt;
&lt;br /&gt;
=== sub chapter 2 ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;BOLD&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;Italic&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
And so it goes ....&lt;/div&gt;</summary>
		<author><name>Arachnofang</name></author>
	</entry>
</feed>