Stop a looping sound - Jordo76 - 09-29-2010
Hi i'm doing my next map and wanted to know : "How to stop a looping sound ?"
I tried StopSound but failed and failed...
Can someone help me please ?
RE: Stop a looping sound - Equil - 09-30-2010
Open the .snt file of the sound you want looping stop on with notepad or a similar text program, find the value "Loop=" and change it to false.
RE: Stop a looping sound - Jordo76 - 09-30-2010
No i want the sound to be looped (already is) but stop when i want it
RE: Stop a looping sound - Equil - 09-30-2010
You need to use a timerloop such as this:
Code:
void BeginCreak(string &in asTimer)
{
int iCreak = RandFloat(1, 4);
float fCreak = RandFloat(5.5f, 12.5f);
PlaySoundAtEntity("creak1"+iCreak, "scare_wood_creak_mix.snt", "AreaCreak_"+iCreak, 0.0f, false);
AddTimer("creak", 15.0f+fCreak, "BeginCreak");
AddDebugMessage("Now Creaking in AreaCreak_: "+iCreak, false);
}
This will randomize when the sound plays and it's location, assuming you have setup several script areas(1 to 4) named "AreaCreak_#".
RE: Stop a looping sound - Jordo76 - 09-30-2010
Thx for the information but it's not the awnser :/
I will try another explication :
I made a script that make a flashback and start a sound (set to loop in the .snt) so it's looping but i can't stop it when the flashback is over...
RE: Stop a looping sound - Pandemoneus - 09-30-2010
Show your code.
RE: Stop a looping sound - Jordo76 - 09-30-2010
Here it is (May contain spoilers on the last level from the Darkness,because it's the script from the last map of "The Darkness",i wanted to try)
Spoiler below!
Code:
void OnStart()
{
AddEntityCollideCallback("Player", "AreaFlashback", "CollideAreaFlashback", true, 1);
AddEntityCollideCallback("crowbar_joint_1", "BreakDoor", "CollideAreaBreakDoor", true, 1);
AddUseItemCallback("crowbarondoor", "crowbar_1", "UseCrowbar","UseCrowbarOnDoor", true);
}
void CollideAreaFlashback(string &in asParent, string &in asChild, int alState)
{
StartEffectFlash(2,1,2);
AddTimer("FlashbackTimer",2.0f,"FlashbackTimer");
SetSwingDoorLocked("DoorFlashback",true,false);
}
void FlashbackTimer(string &in asTimer)
{
if(asTimer == "FlashbackTimer")
{
SetEntityActive("crowbar_1", true);
SetEntityActive("TortureMan", true);
for(int i=1;i<=4;i++)
SetLampLit("candle_floor_" + i, true, false);
AddTimer("FlashbackTimer2",2.0f,"FlashbackTimer");
}
if(asTimer == "FlashbackTimer2")
{
PlaySoundAtEntity("24mb01","24_mb_01", "AreaBreakEffect", 0, false);
}
if(asTimer == "FlashbackTimer3")
{
SetEntityActive("TortureMan", false);
SetEntityActive("crowbar_dyn_1", false);
for(int i=1;i<=4;i++)
SetLampLit("candle_floor_" + i, false, false);
DestroyParticleSystem("breakps");
}
}
void UseCrowbarOnDoor(string &in asItem, string &in asEntity)
{
StopSound("24mb01",1);
AddTimer(asEntity, 0.2, "TimerSwitchShovel");
PlayPropAnimation("TortureMan", "squirm", 0.2f, true, "PrisonerSquirmOver");
PlaySoundAtEntity("pickupcrow","attack_claw_hit01.snt", "Player", 0.05, false);
CreateParticleSystemAtEntity("breakps", "ps_blood_tiny_splash", "AreaBreakEffect", false);
RemoveItem(asItem);
PlaySoundAtEntity("24mb03","24_mb_03", "AreaBreakEffect", 0, false);
}
void TimerSwitchShovel(string &in asTimer)
{
PlaySoundAtEntity("attachshovel","puzzle_place_jar.snt", asTimer, 0, false);
SetEntityActive("crowbar_joint_1", true);
}
void CollideAreaBreakDoor(string &in asParent, string &in asChild, int alState)
{
StopSound("24mb03",1);
PlaySoundAtEntity("break","attack_claw_hit03", "AreaBreakEffect", 0, false);
PlaySoundAtEntity("24mb","24_mb_04", "AreaBreakEffect", 0, false);
CreateParticleSystemAtEntity("breakps", "ps_blood_big_splash", "AreaBreakEffect", false);
CreateParticleSystemAtEntity("breakps", "ps_blood_constant_splash", "AreaBreakEffect", false);
SetEntityActive("crowbar_joint_1", false);
SetEntityActive("crowbar_dyn_1", true);
StartEffectFlash(2,1,3);
AddTimer("FlashbackTimer3",3.0f,"FlashbackTimer");
}
As you can see after "void UseCrowbarOnDoor" and "void CollideAreaBreakDoor" i tried the sound string name for stopsound,it didn't worked,
I tried string name
.snt name
sound name with .ogg
sound name without .snt
Area Name
Nothing worked
RE: Stop a looping sound - Pandemoneus - 09-30-2010
Hm... looks fine. No idea what is wrong.
RE: Stop a looping sound - Equil - 10-01-2010
Try this:
Code:
void CollideAreaBreakDoor(string &in asParent, string &in asChild, int alState)
{
if(alState == 1) {
StopSound(asChild+"24mb03", 1);
PlaySoundAtEntity("break","attack_claw_hit03", "AreaBreakEffect", 0, false);
PlaySoundAtEntity("24mb","24_mb_04", "AreaBreakEffect", 0, false);
CreateParticleSystemAtEntity("breakps", "ps_blood_big_splash", "AreaBreakEffect", false);
CreateParticleSystemAtEntity("breakps", "ps_blood_constant_splash", "AreaBreakEffect", false);
SetEntityActive("crowbar_joint_1", false);
SetEntityActive("crowbar_dyn_1", true);
StartEffectFlash(2,1,3);
AddTimer("FlashbackTimer3",3.0f,"FlashbackTimer");
}
}
RE: Stop a looping sound - Jordo76 - 10-01-2010
It don't work,the crowbar don't collide with BreakDoor anymore :/
I don't know what is wrong
Edit : I make it worked,it collide,but don't stop the sound,like there wasn't aschild and alstate,like before