Frictional Games Forum (read-only)
Lantern script - 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 (https://www.frictionalgames.com/forum/forum-35.html)
+--- Thread: Lantern script (/thread-5143.html)

Pages: 1 2


Lantern script - Hooumeri - 10-21-2010

Hey.
I'm trying to make a script, which makes some grunts activated when the lantern is activated. When ever the lantern is not activated, the grunts are not active.

I tried a script (if HasItem....) but I couldnt get it to work. Could someone please help in creating it?

I'm calling the area which triggers this action "LightsOutArea_01" So when ever inside the area, this happens
The grunts are from servant_brute_1 to servant_brute_13.

I'm calling the area which brings everything to normal "LightsBackArea_01"


RE: Lantern script - Everlone - 10-21-2010

Why you write a script? You can make them very easy. open the model editor then the path:
Models/hand object/lantern and open the lantern model. there you add the sound and choose the configuration you will. save it and its ready Wink

for more help, ask me Wink


RE: Lantern script - Pandemoneus - 10-21-2010

Code:
OnStart()
{
AddEntityCollideCallback("Player", "AreaNameHere", "GruntLightEventOn", true, 1);
AddEntityCollideCallback("Player", "AreaNameHere", "GruntLightEventOff", true, 1);
}

void GruntLightEventOn(string &in asParent, string &in asChild, int alState)
{
AddTimer("", 0.1f, "GruntLightEvent");
}

void GruntLightEventOff(string &in asParent, string &in asChild, int alState)
{
RemoveTimer("GruntLightEvent");
}

void GruntLightEvent(string &in asTimer)
{
if(GetLanternActive() == true) {
    for(int i=1;i<13;i++) {
         SetEntityActive("servant_brute_" + i, true);
    }
}
else {
    for(int i=1;i<13;i++) {
         SetEntityActive("servant_brute_" + i, false);
    }
}

AddTimer("", 0.1f, "GruntLightEvent");
}

Something like that.


RE: Lantern script - Everlone - 10-21-2010

change my way Wink i change the sound in one minute. my lantern whisper Tongue it was a test ^^


RE: Lantern script - Pandemoneus - 10-21-2010

Everlone, I don't think you get what he wants to do.
He wants monsters active when he holds his latern and inactive when not.

He doesn't want to edit any sounds.


RE: Lantern script - Everlone - 10-21-2010

oh okay ^^ sorry


RE: Lantern script - Hooumeri - 10-22-2010

(10-21-2010, 08:33 PM)Pandemoneus Wrote:
Code:
OnStart()
{
AddEntityCollideCallback("Player", "AreaNameHere", "GruntLightEventOn", true, 1);
AddEntityCollideCallback("Player", "AreaNameHere", "GruntLightEventOff", true, 1);
}

void GruntLightEventOn(string &in asParent, string &in asChild, int alState)
{
AddTimer("", 0.1f, "GruntLightEvent");
}

void GruntLightEventOff(string &in asParent, string &in asChild, int alState)
{
RemoveTimer("GruntLightEvent");
}

void GruntLightEvent(string &in asTimer)
{
if(GetLanternActive() == true) {
    for(int i=1;i<13;i++) {
         SetEntityActive("servant_brute_" + i, true);
    }
}
else {
    for(int i=1;i<13;i++) {
         SetEntityActive("servant_brute_" + i, false);
    }
}

AddTimer("", 0.1f, "GruntLightEvent");
}

Something like that.

Couldnt get this to work. If someone could possibly try it themselves and post a solution? plz Sad


RE: Lantern script - house - 10-22-2010

You ALMOST have a problem like me. Exept, I'm trying to make a door unlock when you PICK UP the lantern. I could never get that to work. Sad


RE: Lantern script - ThePaSch - 10-22-2010

(10-22-2010, 03:12 PM)house Wrote: You ALMOST have a problem like me. Exept, I'm trying to make a door unlock when you PICK UP the lantern. I could never get that to work. Sad

*snip*
Sorry, didn't see your thread.


RE: Lantern script - Mofo - 10-22-2010

(10-22-2010, 03:12 PM)house Wrote: You ALMOST have a problem like me. Exept, I'm trying to make a door unlock when you PICK UP the lantern. I could never get that to work. Sad

Open your map in the level editor and select the lantern. select the entity tab on the right side of the screen and add a callback funtion named: PickLantern.

[Image: 15ygi9f.jpg]


Open the .HPS file and add the following lines:

void PickLantern(string &in asEntity, string &in asType)
{
SetSwingDoorLocked("your_door_here", false, false);
}

(If your door is a Level Door, change SetSwingDoorLocked("your_door_here", false, false); to SetLevelDoorLocked("your_door_here", false);

*EDIT*
Just noticed you had opened a thread about this. http://frictionalgames.com/forum/thread-5152.html