Frictional Games Forum (read-only)
[SCRIPT] No sound playing in script area - Printable Version

+- Frictional Games Forum (read-only) (https://www.frictionalgames.com/forum)
+-- Forum: Amnesia: The Dark Descent (https://www.frictionalgames.com/forum/forum-6.html)
+--- Forum: Custom Stories, TCs & Mods - Development (https://www.frictionalgames.com/forum/forum-38.html)
+---- Forum: Development Support (https://www.frictionalgames.com/forum/forum-39.html)
+---- Thread: [SCRIPT] No sound playing in script area (/thread-26621.html)

Pages: 1 2 3


RE: No sound playing in script area - FlawlessHappiness - 10-08-2014

You make me want to create a video for you... I might do ^_^

We'll see.


RE: No sound playing in script area - LDOriginal - 10-08-2014

(10-08-2014, 05:25 PM)FlawlessHappiness Wrote: You make me want to create a video for you... I might do ^_^

We'll see.

Haha, but would you be so kind and show me just one more example on how you would script this. I want to add another script area with another sound. Maybe it would make some sense getting it infront of me so i can see the code myself. I try to rationalize but...yeah....lol

void OnStart()
{

AddEntityCollideCallback("Player", "Ljud", "start", true, 1);
AddUseItemCallback("", "Key", "Door", "UseKeyOnDoor", true);
AddUseItemCallback("", "Nyckel", "Rumpa", "UseKeyOnDoor", true);
AddUseItemCallback("", "Tillskåp", "Skåp", "UseKeyOnDoor", true);
}

void UseKeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked(asEntity, false, true);
PlaySoundAtEntity("", "Unlock_door.snt", asEntity, 10, false);
RemoveItem(asItem);
}

void start(string &in asParent, string &in asChild, int alState)
{
PlaySoundAtEntity("", "25_strain_wood.snt", "Player", 0.0f, false);
}


RE: No sound playing in script area - Viper85626 - 10-08-2014

(10-08-2014, 05:34 PM)LDOriginal Wrote:
(10-08-2014, 05:25 PM)FlawlessHappiness Wrote: You make me want to create a video for you... I might do ^_^

We'll see.

Haha, but would you be so kind and show me just one more example on how you would script this. I want to add another script area with another sound. Maybe it would make some sense getting it infront of me so i can see the code myself. I try to rationalize but...yeah....lol

void OnStart()
{

AddEntityCollideCallback("Player", "Ljud", "start", true, 1);
AddUseItemCallback("", "Key", "Door", "UseKeyOnDoor", true);
AddUseItemCallback("", "Nyckel", "Rumpa", "UseKeyOnDoor", true);
AddUseItemCallback("", "Tillskåp", "Skåp", "UseKeyOnDoor", true);
}

void UseKeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked(asEntity, false, true);
PlaySoundAtEntity("", "Unlock_door.snt", asEntity, 10, false);
RemoveItem(asItem);
}

void start(string &in asParent, string &in asChild, int alState)
{
PlaySoundAtEntity("", "25_strain_wood.snt", "Player", 0.0f, false);
}

Here, let me try to help you. Smile So anything I write in red will be the stuff I add to your script.

Spoiler below!

void OnStart()
{

AddEntityCollideCallback("Player", "SoundArea", "PlaySound", true, 1);
AddEntityCollideCallback("Player", "Ljud", "start", true, 1);
AddUseItemCallback("", "Key", "Door", "UseKeyOnDoor", true);
AddUseItemCallback("", "Nyckel", "Rumpa", "UseKeyOnDoor", true);
AddUseItemCallback("", "Tillskåp", "Skåp", "UseKeyOnDoor", true);
}

void UseKeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked(asEntity, false, true);
PlaySoundAtEntity("", "Unlock_door.snt", asEntity, 10, false);
RemoveItem(asItem);
}

void start(string &in asParent, string &in asChild, int alState)
{
PlaySoundAtEntity("", "25_strain_wood.snt", "Player", 0.0f, false);
}

void PlaySound(string &in asParent, string &in asChild, int alState)
{
PlaySoundAtEntity("", "yoursoundhere.snt", "Player", 1, false);
}



So first, you must add the "AddEntityCollideCallback" somewhere in OnStart so the script knows that there will be an area that can be triggered by the player stepping in it. When "Player" enters "SoundArea" the script will call the function called "PlaySound." The function "PlaySound" is located at the bottom of the script here. Now in the brackets of that function, you can script whatever you want to happen when "PlaySound" is called.


RE: No sound playing in script area - LDOriginal - 10-08-2014

(10-08-2014, 06:25 PM)Viper85626 Wrote:
(10-08-2014, 05:34 PM)LDOriginal Wrote:
(10-08-2014, 05:25 PM)FlawlessHappiness Wrote: You make me want to create a video for you... I might do ^_^

We'll see.

Haha, but would you be so kind and show me just one more example on how you would script this. I want to add another script area with another sound. Maybe it would make some sense getting it infront of me so i can see the code myself. I try to rationalize but...yeah....lol

void OnStart()
{

AddEntityCollideCallback("Player", "Ljud", "start", true, 1);
AddUseItemCallback("", "Key", "Door", "UseKeyOnDoor", true);
AddUseItemCallback("", "Nyckel", "Rumpa", "UseKeyOnDoor", true);
AddUseItemCallback("", "Tillskåp", "Skåp", "UseKeyOnDoor", true);
}

void UseKeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked(asEntity, false, true);
PlaySoundAtEntity("", "Unlock_door.snt", asEntity, 10, false);
RemoveItem(asItem);
}

void start(string &in asParent, string &in asChild, int alState)
{
PlaySoundAtEntity("", "25_strain_wood.snt", "Player", 0.0f, false);
}

Here, let me try to help you. Smile So anything I write in red will be the stuff I add to your script.

Spoiler below!

void OnStart()
{

AddEntityCollideCallback("Player", "SoundArea", "PlaySound", true, 1);
AddEntityCollideCallback("Player", "Ljud", "start", true, 1);
AddUseItemCallback("", "Key", "Door", "UseKeyOnDoor", true);
AddUseItemCallback("", "Nyckel", "Rumpa", "UseKeyOnDoor", true);
AddUseItemCallback("", "Tillskåp", "Skåp", "UseKeyOnDoor", true);
}

void UseKeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked(asEntity, false, true);
PlaySoundAtEntity("", "Unlock_door.snt", asEntity, 10, false);
RemoveItem(asItem);
}

void start(string &in asParent, string &in asChild, int alState)
{
PlaySoundAtEntity("", "25_strain_wood.snt", "Player", 0.0f, false);
}

void PlaySound(string &in asParent, string &in asChild, int alState)
{
PlaySoundAtEntity("", "yoursoundhere.snt", "Player", 1, false);
}



So first, you must add the "AddEntityCollideCallback" somewhere in OnStart so the script knows that there will be an area that can be triggered by the player stepping in it. When "Player" enters "SoundArea" the script will call the function called "PlaySound." The function "PlaySound" is located at the bottom of the script here. Now in the brackets of that function, you can script whatever you want to happen when "PlaySound" is called.


Really kind of you to help out. I will test this and get back with the results!


RE: No sound playing in script area - FlawlessHappiness - 10-08-2014

Ok, I tried creating something in a more... picture-like manner.

Hope you understand






RE: No sound playing in script area - LDOriginal - 10-08-2014

(10-08-2014, 07:09 PM)FlawlessHappiness Wrote: Ok, I tried creating something in a more... picture-like manner.

Hope you understand




Haha dude great tutorial! It does make a whole lot more sense when looking at it that way. Good explanation! Smile

(10-08-2014, 06:59 PM)LDOriginal Wrote:
(10-08-2014, 06:25 PM)Viper85626 Wrote:
(10-08-2014, 05:34 PM)LDOriginal Wrote:
(10-08-2014, 05:25 PM)FlawlessHappiness Wrote: You make me want to create a video for you... I might do ^_^

We'll see.

Haha, but would you be so kind and show me just one more example on how you would script this. I want to add another script area with another sound. Maybe it would make some sense getting it infront of me so i can see the code myself. I try to rationalize but...yeah....lol

void OnStart()
{

AddEntityCollideCallback("Player", "Ljud", "start", true, 1);
AddUseItemCallback("", "Key", "Door", "UseKeyOnDoor", true);
AddUseItemCallback("", "Nyckel", "Rumpa", "UseKeyOnDoor", true);
AddUseItemCallback("", "Tillskåp", "Skåp", "UseKeyOnDoor", true);
}

void UseKeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked(asEntity, false, true);
PlaySoundAtEntity("", "Unlock_door.snt", asEntity, 10, false);
RemoveItem(asItem);
}

void start(string &in asParent, string &in asChild, int alState)
{
PlaySoundAtEntity("", "25_strain_wood.snt", "Player", 0.0f, false);
}

Here, let me try to help you. Smile So anything I write in red will be the stuff I add to your script.

Spoiler below!

void OnStart()
{

AddEntityCollideCallback("Player", "SoundArea", "PlaySound", true, 1);
AddEntityCollideCallback("Player", "Ljud", "start", true, 1);
AddUseItemCallback("", "Key", "Door", "UseKeyOnDoor", true);
AddUseItemCallback("", "Nyckel", "Rumpa", "UseKeyOnDoor", true);
AddUseItemCallback("", "Tillskåp", "Skåp", "UseKeyOnDoor", true);
}

void UseKeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked(asEntity, false, true);
PlaySoundAtEntity("", "Unlock_door.snt", asEntity, 10, false);
RemoveItem(asItem);
}

void start(string &in asParent, string &in asChild, int alState)
{
PlaySoundAtEntity("", "25_strain_wood.snt", "Player", 0.0f, false);
}

void PlaySound(string &in asParent, string &in asChild, int alState)
{
PlaySoundAtEntity("", "yoursoundhere.snt", "Player", 1, false);
}



So first, you must add the "AddEntityCollideCallback" somewhere in OnStart so the script knows that there will be an area that can be triggered by the player stepping in it. When "Player" enters "SoundArea" the script will call the function called "PlaySound." The function "PlaySound" is located at the bottom of the script here. Now in the brackets of that function, you can script whatever you want to happen when "PlaySound" is called.


Really kind of you to help out. I will test this and get back with the results!

It worked! Smile Thank you!


RE: No sound playing in script area - Viper85626 - 10-09-2014

No problem! Glad I could help! Big Grin


RE: No sound playing in script area - MrBehemoth - 10-09-2014

Edit - sorry, ignore me didn't read properly