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


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

Do you know what I mean by a function? A function performs a set number of tasks, and all the code it does is enclosed in { and }. Each function declaration starts with void (in general for this game), followed by the function name, which would be ChangeMap for this one, and then the parameters, which would be the parameters of the entitycollide you put. So the function would be:
Code:
void Changemap(string &in asParent, string &in asChild, int alStates)
{
   ChangeMap blahblah your changemap thing here;
}

So remember, everything (for this scripting language in this game) has to be in a function.


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

The map works now, but when I jump into the hole I just fall through the script area and it doesn't change the map. Here is the script:

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_3" , "MonsterFunc2" , 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);
}

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

void Changemap(string &in asParent, string &in asChild, int alStates)
{
  ChangeMap("Level2", "PlayerStartArea_1", "break_stairs", "water_lurker_eat");
}



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

You'll need to put .map at the end of Level2.


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

Oh, okay thanks everyone so much.