Frictional Games Forum (read-only)
Level changing area script not working? - 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: Level changing area script not working? (/thread-7169.html)

Pages: 1 2


Level changing area script not working? - Shoop - 04-02-2011

I want someone to fall down a hole and the level change, whats wrong with this?
Code:
void OnStart()
{
AddUseItemCallback("", "key1", "castle_1", "UsedKeyOnDoor", true);
AddUseItemCallback("", "key2", "metal_1", "UsedKeyOnDoor2", true);
AddEntityCollideCallback("Player" , "ScriptArea_1" , "MonsterFunc1" , true , 1);
}

void UsedKeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("castle_1", false, true);
PlaySoundAtEntity("", "unlock_door", "castle_1", 0, false);
RemoveItem("key1");
}

void UsedKeyOnDoor2(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("metal_1", false, true);
PlaySoundAtEntity("", "unlock_door", "metal_1", 0, false);
RemoveItem("key2");
}

void MonsterFunc1(string &in asParent , string &in asChild , int alState)
{
  SetEntityActive("servant_grunt_1" , true);
}

  ChangeMap("Level2", "PlayerStartArea_1", "break_stairs", "water_lurker_eat");

////////////////////////////
// Run when entering map
void OnEnter()
{

}

////////////////////////////
// Run when leaving map
void OnLeave()
{

}
The last two ones are sound file names... I think thats how you do it. (I put my whole script just in case I did something else wrong that makes it not work)


RE: Level changing area script not working? - MrBigzy - 04-02-2011

You can never have something outsude a function. It has to be inside a function somewhere.


RE: Level changing area script not working? - Shoop - 04-02-2011

How would I do that? I copied this from the script functions wiki page.


RE: Level changing area script not working? - MrBigzy - 04-02-2011

Oh, ok so when you fall down a hole. So you'll have to put an area in the hole, and put an entitycollide function there. It can't tell when you want to change a map if you just stick it randomly in your script. D:


RE: Level changing area script not working? - Shoop - 04-02-2011

Oh true aha. Could you give me an example how to do this?


RE: Level changing area script not working? - Pandemoneus - 04-02-2011

Shoop, learn some scripting.
Start by reading this: http://wiki.frictionalgames.com/hpl2/tutorials/script/entihscript_beginner


RE: Level changing area script not working? - Russ Money - 04-02-2011

(04-02-2011, 08:40 PM)Shoop Wrote: Oh true aha. Could you give me an example how to do this?

It's pretty much the same way you did your monster func. When the player collides with and area, the callback would be the ChangeMap func.


RE: Level changing area script not working? - Shoop - 04-02-2011

Oh, I think I understand this now. Is this correct?
Code:
void OnStart()
{
AddUseItemCallback("", "key1", "castle_1", "UsedKeyOnDoor", true);
AddUseItemCallback("", "key2", "metal_1", "UsedKeyOnDoor2", true);
AddUseItemCallback("", "key2", "castle_3", "UsedKeyOnDoor3", true);
AddEntityCollideCallback("Player" , "ScriptArea_1" , "MonsterFunc1" , true , 1);
AddEntityCollideCallback("Player", "ScriptArea_2", "ChangeMap", true, 1);
}

void UsedKeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("castle_1", false, true);
PlaySoundAtEntity("", "unlock_door", "castle_1", 0, false);
RemoveItem("key1");
}

void UsedKeyOnDoor2(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("metal_1", false, true);
PlaySoundAtEntity("", "unlock_door", "metal_1", 0, false);
RemoveItem("key2");
}

void UsedKeyOnDoor3(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("castle_3", false, true);
PlaySoundAtEntity("", "unlock_door", "castle_3", 0, false);
RemoveItem("key3");
}

void MonsterFunc1(string &in asParent , string &in asChild , int alState)
{
  SetEntityActive("servant_grunt_1" , true);
}

  ChangeMap("Level2", "PlayerStartArea_1", "break_stairs", "water_lurker_eat");



RE: Level changing area script not working? - MrBigzy - 04-02-2011

You forgot to put ChangeMap in the changemap function.


RE: Level changing area script not working? - Shoop - 04-02-2011

I don't understand, where would I need to put this?