Facebook Twitter YouTube Frictional Games | Forum | Privacy Policy | Dev Blog | Dev Wiki | Support | Gametee


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Script Help Random Looped Sound
Plazmater Offline
Member

Posts: 122
Threads: 24
Joined: Aug 2013
Reputation: 1
#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
Find
i3670 Offline
Posting Freak

Posts: 1,308
Threads: 74
Joined: Oct 2011
Reputation: 36
#2
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");
}

"What you think is irrelevant" - A character of our time

A Christmas Hunt
(This post was last modified: 07-25-2014, 03:35 PM by i3670.)
07-25-2014, 03:29 PM
Find
Plazmater Offline
Member

Posts: 122
Threads: 24
Joined: Aug 2013
Reputation: 1
#3
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
Find
Mudbill Offline
Muderator

Posts: 3,881
Threads: 59
Joined: Apr 2013
Reputation: 179
#4
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
Find
Plazmater Offline
Member

Posts: 122
Threads: 24
Joined: Aug 2013
Reputation: 1
#5
RE: Random Looped Sound

int iArea = RandInt(1, 3);

Still the same error.
07-25-2014, 05:10 PM
Find
Mudbill Offline
Muderator

Posts: 3,881
Threads: 59
Joined: Apr 2013
Reputation: 179
#6
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
Find
Plazmater Offline
Member

Posts: 122
Threads: 24
Joined: Aug 2013
Reputation: 1
#7
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
Find
Mudbill Offline
Muderator

Posts: 3,881
Threads: 59
Joined: Apr 2013
Reputation: 179
#8
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
Find
Plazmater Offline
Member

Posts: 122
Threads: 24
Joined: Aug 2013
Reputation: 1
#9
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
Find
i3670 Offline
Posting Freak

Posts: 1,308
Threads: 74
Joined: Oct 2011
Reputation: 36
#10
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.

"What you think is irrelevant" - A character of our time

A Christmas Hunt
07-25-2014, 07:28 PM
Find




Users browsing this thread: 3 Guest(s)