Plazmater 
 
 
		
			Member 
			
			
			
 
			
	Posts: 122 
	Threads: 24 
	Joined: Aug 2013
	
 Reputation: 
1
		
	 | 
	
		
			
Random Looped Sound 
			 
			
				Everyone knows that the sound in game is the most important thing for atmosphere. 
 
And its not only PlayMusic or PlaySoundAtEntity (with looped "amb" sound). 
 
What i want to do is to create area from where looped snt. sound will be played with intervals.  
(So it can play randomly between every 15-25 secs in loop). 
 
But i have no idea how to script this. Any idea ?
			 
			
			
			
		 |  
	 
 | 
 
	| 07-25-2014, 03:20 PM  | 
	
		
	 | 
 
 
	
		
		i3670 
 
 
		
			Posting Freak 
			
			
			
 
			
	Posts: 1,308 
	Threads: 74 
	Joined: Oct 2011
	
 Reputation: 
36
		
	 | 
	
		
			
RE: Random Looped Sound 
			 
			
				void FunctionTimer(string &in asTimer) 
{ 
	int iArea = RandFloat(1, 7);	<--- if you want the sound to be played at different areas: insert the number of areas. 
	float fTime = RandFloat(4.5f,7.5f); <--- insert the number of seconds between timers, in your case 15.0f and 25.0f 
		 
	PlaySoundAtEntity("NameOfSoundInGame"+iArea , "NameOfSound.snt", "AreaWhereTheSoundPlays"+iArea , 0.0f, false); 
	 
	AddTimer("TimerName", 5.5f+fTime , "FunctionTimer"); 
}
			 
			
			
 
			
				
(This post was last modified: 07-25-2014, 03:35 PM by i3670.)
 
				
			 
		 |  
	 
 | 
 
	| 07-25-2014, 03:29 PM  | 
	
		
	 | 
 
 
	
		
		Plazmater 
 
 
		
			Member 
			
			
			
 
			
	Posts: 122 
	Threads: 24 
	Joined: Aug 2013
	
 Reputation: 
1
		
	 | 
	
		
			
RE: Random Looped Sound 
			 
			
				"int iArea = RandFloat(1, 7);	<--- if you want the sound to be played at different areas: insert the number of areas." 
 
I cant quite understand that , if i would set it (1, 3) , so it would play sound at original area and 2 others. But at which 2 other areas ? Should I create them and SOMEHOW script it as another areas for the same sound. Or it would randomly found 2 more areas that exist on the map and play it there ? 
  
void FunctionTimer(string &in asTimer) 
{ 
int iArea = RandFloat(1, 3); 
float fTime = RandFloat(5f,7f); 
 
PlaySoundAtEntity("afx_spooky_mansion_whisper"+iArea , "afx_spooky_mansion_whisper.snt", "ScriptArea_1"+iArea , 0.0f, false); 
 
AddTimer("TimerName", 1.0f+fTime , "FunctionTimer"); 
} 
 
I keep getting error: 
 
FATAL ERROR: Could not load script file 'MyFC/maps/Level1.hps'! 
 main (15, 26) : ERR  : Expected ')' or ','
			
			
			
			
				
(This post was last modified: 07-25-2014, 04:54 PM by Plazmater.)
 
				
			 
		 |  
	 
 | 
 
	| 07-25-2014, 04:16 PM  | 
	
		
	 | 
 
 
	
		
		Mudbill 
 
 
		
			Muderator 
			
			
			
 
			
	Posts: 3,881 
	Threads: 59 
	Joined: Apr 2013
	
 Reputation: 
179
		
	 | 
	
		
			
RE: Random Looped Sound 
			 
			
				When you copy an area, it makes a new one with another number at the end. For example ScriptArea_1 and ScriptArea_2. That allows you to write the name "ScriptArea_" because they both have this name, and then you can, through the script, add all the numbers at the end. 
 
In this example, the int variable iArea will add the numbers randomly. If you have 10 areas with the same name, just different numbers at the end, then make iArea = RandFloat(1, 10); 
 
Then when you do "ScriptArea_" + iArea in your script, it will add a random number to the name and thus play the sound at a random area, as long as the names match. 
 
PS: I think int iArea needs to use RandInt and not RandFloat because it is an int and not a float.
			 
			
			
 
			
				
(This post was last modified: 07-25-2014, 05:05 PM by Mudbill.)
 
				
			 
		 |  
	 
 | 
 
	| 07-25-2014, 05:04 PM  | 
	
		
	 | 
 
 
	
		
		Plazmater 
 
 
		
			Member 
			
			
			
 
			
	Posts: 122 
	Threads: 24 
	Joined: Aug 2013
	
 Reputation: 
1
		
	 | 
	
		
			
RE: Random Looped Sound 
			 
			
				int iArea = RandInt(1, 3); 
 
Still the same error.
			 
			
			
			
		 |  
	 
 | 
 
	| 07-25-2014, 05:10 PM  | 
	
		
	 | 
 
 
	
		
		Mudbill 
 
 
		
			Muderator 
			
			
			
 
			
	Posts: 3,881 
	Threads: 59 
	Joined: Apr 2013
	
 Reputation: 
179
		
	 | 
	
		
			
RE: Random Looped Sound 
			 
			
				What's your whole script? 
 
By the way, do not do "ScriptArea_1"+iArea because that will result in ScriptArea_11.
			 
			
			
 
			
		 |  
	 
 | 
 
	| 07-25-2014, 05:13 PM  | 
	
		
	 | 
 
 
	
		
		Plazmater 
 
 
		
			Member 
			
			
			
 
			
	Posts: 122 
	Threads: 24 
	Joined: Aug 2013
	
 Reputation: 
1
		
	 | 
	
		
			
RE: Random Looped Sound 
			 
			
				void FunctionTimer(string &in asTimer) 
{ 
int iArea = RandInt(1, 3); 
float fTime = RandFloat(5f, 7f); 
 
PlaySoundAtEntity("afx_spooky_mansion_whisper"+iArea, "afx_spooky_mansion_whisper.snt", "ScriptArea_"+iArea, 0.0f, false); 
 
AddTimer("TimerName", 1.0f+fTime, "FunctionTimer"); 
}
			 
			
			
			
		 |  
	 
 | 
 
	| 07-25-2014, 05:17 PM  | 
	
		
	 | 
 
 
	
		
		Mudbill 
 
 
		
			Muderator 
			
			
			
 
			
	Posts: 3,881 
	Threads: 59 
	Joined: Apr 2013
	
 Reputation: 
179
		
	 | 
	
		
			
RE: Random Looped Sound 
			 
			
				Your error says you have something wrong at line 15. This can't be your whole script because this isn't even 15 lines.
			 
			
			
 
			
		 |  
	 
 | 
 
	| 07-25-2014, 05:20 PM  | 
	
		
	 | 
 
 
	
		
		Plazmater 
 
 
		
			Member 
			
			
			
 
			
	Posts: 122 
	Threads: 24 
	Joined: Aug 2013
	
 Reputation: 
1
		
	 | 
	
		
			
RE: Random Looped Sound 
			 
			
				This is from start: 
 
 
void LanternEvent(string &in asEntity, string &in type) 
{ 
    AddPlayerLampOil(70.0f); 
 
    SetSwingDoorLocked("mansion_6", false, false);	 
    PlayMusic("music_mansion_lanternpickup.ogg", false, 1.0f, 0, 0, true); 
} 
 
 
void FunctionTimer(string &in asTimer) 
{ 
int iArea = RandInt(1, 3); 
float fTime = RandFloat(5f, 7f); 
 
PlaySoundAtEntity("afx_spooky_mansion_whisper"+iArea, "afx_spooky_mansion_whisper.snt", "ScriptArea_"+iArea, 0.0f, false); 
 
AddTimer("TimerName", 1.0f+fTime, "FunctionTimer"); 
}
			 
			
			
			
		 |  
	 
 | 
 
	| 07-25-2014, 05:23 PM  | 
	
		
	 | 
 
 
	
		
		i3670 
 
 
		
			Posting Freak 
			
			
			
 
			
	Posts: 1,308 
	Threads: 74 
	Joined: Oct 2011
	
 Reputation: 
36
		
	 | 
	
		
			
RE: Random Looped Sound 
			 
			
				try 
 
float fTime = RandFloat(5.0f, 7.0f); 
 
Also, don't forget to add the timer in the OnStart or else it won't trigger.
			 
			
			
 
			
		 |  
	 
 | 
 
	| 07-25-2014, 07:28 PM  | 
	
		
	 | 
 
 
	 
 |