Frictional Games Forum (read-only)
[SCRIPT] More scripting help! - 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] More scripting help! (/thread-19047.html)



More scripting help! - mrlego611 - 11-02-2012

So im back with another scripting problem. So I wanted to add a memento script. After adding it, I test the map and this error appears!


FATAL ERROR: Could not load script file 'custom_stories/TheCellar/maps//Applications/Amnesia.app/Contents/Resources/custom_stories/TheCellar/maps/01_cellar.hps'!
ExecuteString (1, 1) : ERR : No matching signatures to 'OnLeave()'
main (23, 1) : ERR : Unexpected token '{'

Always happens when I add a new script. -.- Here's the whole script. It's quite long:

Code:
void OnStart(){    AddUseItemCallback("", "valvekey", "valvedoor", "UsedKeyOnDoor", true);    AddEntityCollideCallback("Player", "Tp_Script1", "tp_male1", true, 1);    AddEntityCollideCallback("Player", "key_quest_area", "GetKeyQuest", true, 1);    AddEntityCollideCallback("Player", "key_complete_area", "FinishKeyQuest", true, 1);}
void UsedKeyOnDoor(string &in asItem, string &in asEntity){    SetSwingDoorLocked("valvedoor", false, true);    PlaySoundAtEntity("", "unlock_door", "valvedoor", 0, false);    RemoveItem("valvekey");}
void tp_male1 (string &in asParent, string &in asChild, int alState){    SetEntityActive("tp_male1", true);    AddPropForce("tp_male1", 0, 0, -10000,"World");    PlaySoundAtEntity("", "24_iron_maiden.snt", "tp_male1", 0, false);}
{    AddUseItemCallback("", "waterkey_1", "level_water", "UsedKeyOnDoor", true);}
void UsedKeyOnDoor(string &in asItem, string &in asEntity){    SetSwingDoorLocked("level_water", false, true);    PlaySoundAtEntity("", "unlock_door", "level_water", 0, false);    RemoveItem("waterkey_1");}
void GetKeyQuest(string &in asParent, string &in asChild, int alState){    AddQuest("keyquest", "KeyQuest");}
void FinishKeyQuest(string &in asParent, string &in asChild, int alState){    CompleteQuest("keyquest", "KeyQuest");}



RE: More scripting help! - The chaser - 11-02-2012

Please, put the script well. It seems a lot of text with some commas and brackets.
I can't help you if you have it that way.


RE: More scripting help! - ZodiaC - 11-02-2012

(11-02-2012, 11:19 AM)mrlego611 Wrote: So im back with another scripting problem. So I wanted to add a memento script. After adding it, I test the map and this error appears!


FATAL ERROR: Could not load script file 'custom_stories/TheCellar/maps//Applications/Amnesia.app/Contents/Resources/custom_stories/TheCellar/maps/01_cellar.hps'!
ExecuteString (1, 1) : ERR : No matching signatures to 'OnLeave()'
main (23, 1) : ERR : Unexpected token '{'

Always happens when I add a new script. -.- Here's the whole script. It's quite long:

Code:
void OnStart(){    AddUseItemCallback("", "valvekey", "valvedoor", "UsedKeyOnDoor", true);    AddEntityCollideCallback("Player", "Tp_Script1", "tp_male1", true, 1);    AddEntityCollideCallback("Player", "key_quest_area", "GetKeyQuest", true, 1);    AddEntityCollideCallback("Player", "key_complete_area", "FinishKeyQuest", true, 1);}
void UsedKeyOnDoor(string &in asItem, string &in asEntity){    SetSwingDoorLocked("valvedoor", false, true);    PlaySoundAtEntity("", "unlock_door", "valvedoor", 0, false);    RemoveItem("valvekey");}
void tp_male1 (string &in asParent, string &in asChild, int alState){    SetEntityActive("tp_male1", true);    AddPropForce("tp_male1", 0, 0, -10000,"World");    PlaySoundAtEntity("", "24_iron_maiden.snt", "tp_male1", 0, false);}
{    AddUseItemCallback("", "waterkey_1", "level_water", "UsedKeyOnDoor", true);}
void UsedKeyOnDoor(string &in asItem, string &in asEntity){    SetSwingDoorLocked("level_water", false, true);    PlaySoundAtEntity("", "unlock_door", "level_water", 0, false);    RemoveItem("waterkey_1");}
void GetKeyQuest(string &in asParent, string &in asChild, int alState){    AddQuest("keyquest", "KeyQuest");}
void FinishKeyQuest(string &in asParent, string &in asChild, int alState){    CompleteQuest("keyquest", "KeyQuest");}
Jesus Christ!
Try this one :

Code:
void OnStart()
{  
AddUseItemCallback("", "valvekey", "valvedoor", "UsedKeyOnDoor", true);  
AddEntityCollideCallback("Player", "Tp_Script1", "tp_male1", true, 1);  
AddEntityCollideCallback("Player", "key_quest_area", "GetKeyQuest", true, 1);  
AddEntityCollideCallback("Player", "key_complete_area", "FinishKeyQuest", true, 1);

}

void UsedKeyOnDoor(string &in asItem, string &in asEntity)
{    
SetSwingDoorLocked("valvedoor", false, true);    
PlaySoundAtEntity("", "unlock_door", "valvedoor", 0, false);
RemoveItem("valvekey");
  
   }
  
void tp_male1 (string &in asParent, string &in asChild, int alState)
{  
SetEntityActive("tp_male1", true);  
AddPropForce("tp_male1", 0, 0, -10000,"World");
PlaySoundAtEntity("", "24_iron_maiden.snt", "tp_male1", 0, false);
  AddUseItemCallback("", "waterkey_1", "level_water", "UsedKeyOnDoor", true);
  
}

void GetKeyQuest(string &in asParent, string &in asChild, int alState)
{    
AddQuest("keyquest", "KeyQuest");

}

void FinishKeyQuest(string &in asParent, string &in asChild, int alState)
{    
CompleteQuest("keyquest", "KeyQuest");
}

And try to keep all you algorithms like this because you won't be able to find your errors...
By the way you had too many "}" and a func used twice. I'm not sure if the "AddUseItemCallback("", "waterkey_1", "level_water", "UsedKeyOnDoor", true);" on start or on tp_male1 anyway i think you will find it.