Facebook Twitter YouTube Frictional Games | Forum | Privacy Policy | Dev Blog | Dev Wiki | Support | Gametee


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
No matching signatures to OnLeave?
Efendi Offline
Junior Member

Posts: 13
Threads: 7
Joined: Sep 2013
Reputation: 0
#1
Question  No matching signatures to OnLeave?

Hello, i'm new here in forums, and also started recently learning to script for amnesia the dark descent.

I have encountered one little problem, that i don't know what to with.

I have one level first, where i spawn, then, i want to go to a level door, that brings me to 2:nd level, that worked first just fine. I then created a door, that should open by itself (That door is located in the 2:nd level), but now i get an error message: (This error message appeared when i opened the 2:nd level door)

FATAL ERROR: Could not load script file (The location of the script file, is in the right place, too lazy to write it down.)
ExecuteString (1,1): ERR : No matching signatures to OnLeave()' main (49,1): ERR : Unexpected end of file
.

Here is the codes:

2:nd map script codes

Spoiler below!
void OnStart()
{
AddEntityCollideCallback("Player", "DoorOpenSelf", "EventDoor", true, 1);
}

void Area51(string &in asEntity)
{
FadeOut(2);
AddTimer("", 2, "LoadMap");
}

void LoadMap(string &in asTimer)
{
ChangeMap("Tutorial.map", "Spawn", "", "");
}

void EventDoor(string &in asParent, string &in asChild, int alState)
{
SetSwingDoorClosed("DoorOpen", false, false);
SetSwingDoorDisableAutoClose("DoorOpen", true);
PlaySoundAtEntity("creak", "joint_door_move_special", "DoorOpen", 1, false);

AddTimer("", 2, "TimerStopSound");
AddTimer("DoorOpen", 0, "TimerMoveDoor");

}

void TimerMoveDoor(string &in asTimer)
{
if(GetLocalVarInt("VarDoor") == 10) return;
AddLocalVarInt("VarDoor", 1);

AddTimer(asTimer, 0.03, ""TimerMoveDoor");

AddPropForce(asTimer, -70, 0, 0, "world");
}

void TimerStopSound(string &in asTimer)
{
StopSound("creak", 0.4);
}


first map script codes

Spoiler below!
void OnStart()

{

SetPlayerSanity(50);

AddUseItemCallback("", "key1", "door1", "UseKeyOnDoor", true);
AddUseItemCallback("", "keytest", "level1", "UseKeyOnDoor2", true);
AddUseItemCallback("", "BottleDone", "AreaUseItem", "UseItemOnTable", true);
AddUseItemCallback("", "crowbar", "door20", "UseCrowbarOnDoor", true);
AddEntityCollideCallback("Joint", "AreaBreak", "BreakDoor", true, 1);


AddEntityCollideCallback("Player", "AreaMemento", "AreaEvent", true, 1);
}

void UseKeyOnDoor(string &in asItem, string &in asEntity)
{

SetSwingDoorLocked("door1", false, true);
PlaySoundAtEntity("", "unlock_door.snt", asEntity, 0, false);
RemoveItem(asItem);


SetLocalVarInt("Check", 1);

//Quest disappears from the Journal
CompleteQuest("door", "memento3");
}
void UseKeyOnDoor2(string &in asItem, string &in asEntity)
{
SetLevelDoorLocked(asEntity, false);
PlaySoundAtEntity("", "unlock_door.snt", asEntity, 0, false);
RemoveItem(asItem);
GiveSanityBoostSmall();
}
void UseItemOnTable(string &in asItem, string &in asEntity)
{
RemoveItem(asItem);


SetEntityActive("BottleDoneStatic", true);
}
void PickKey(string &in asEntity, string &in type)
{

AddQuest("Key", "memento1");
}
void AreaEvent(string &in asParent, string &in asChild, int alState)
{
AddQuest("area", "memento2");
}
void DoorMemento(string &in asEntity)
{
if(GetLocalVarInt("Check") == 0)
{
AddQuest("door", "memento4");
}
}
void UseCrowbarOnDoor(string &in asItem, string &in asEntity)
{
RemoveItem(asItem);
PlaySoundAtEntity("", "player_crouch.snt", "Player", 0.05, false);
AddTimer(asEntity, 0.2, "TimerPlaceCrowbar");
}

void TimerPlaceCrowbar(string &in asTimer)
{
SetEntityActive("Joint", true);
PlaySoundAtEntity("", "puzzle_place_jar.snt", asTimer, 0, false);
}

void BreakDoor(string &in asParent, string &in asChild, int alState)
{
SetEntityActive("Joint", false);
SetEntityActive("Broken", true);

SetSwingDoorLocked("door20", false, false);
SetSwingDoorClosed("door20", false, false);
SetSwingDoorDisableAutoClose("door20", true);

AddPropImpulse("door20", 0, 0, 3, "world");

CreateParticleSystemAtEntity("", "ps_hit_wood.ps", "AreaEffect", false);
PlaySoundAtEntity("", "break_wood_metal", "AreaEffect", 0, false);

GiveSanityBoostSmall();

PlayMusic("10_puzzle01.ogg", false, 0.7, 0.1, 10, false);

AddTimer("", 0.1, "TimerPushDoor");
}

void TimerPushDoor(string &in asTimer)
{
AddPropImpulse("door20", -4, 2, 1, "world");
AddTimer("", 1.1, "TimerDoorCanClose");
}

void TimerDoorCanClose(string &in asTimer)
{
SetSwingDoorDisableAutoClose("door20", false);
}

Inventory.hps script file

Spoiler below!
void OnGameStart()
{

AddCombineCallback("bottle", "BottleA", "BottleB", "CombineBottles", true);
}

void CombineBottles(string &in asItemA, string &in asItemB)
{
RemoveItem(asItemA);
RemoveItem(asItemB);

GiveSanityBoost();


PlayGuiSound("12_make_drill", 1);


GiveItem("BottleDone", "Puzzle", "BottleDone", "glass_container_mix_done.tga", 1);
}



If someone could help me on this, i would be really grateful. Probably there is just one tiny wrong bit in this code, but i just can't see it Sad

Thanks in advance!!

EDIT: Forgot to mention that the Fatal Error screen comes when i try to open the 2:nd level door. The custom story launches correctly, when i have my player spawn at the first level. I don't think it is necessary for me to give the script codes to the first level, because everything works just fine at the first level. But anyone wants to see the codes to first level, i can post it here Smile
(This post was last modified: 09-19-2013, 03:53 PM by Efendi.)
09-19-2013, 10:53 AM
Find
PutraenusAlivius Offline
Posting Freak

Posts: 4,713
Threads: 75
Joined: Dec 2012
Reputation: 119
#2
RE: No matching signatures to OnLeave?

How about you give us the whole code? A small fraction is not enough.

Also, if it's that big, put it in spoiler tags.
Like this:
[spoiler]*INSERT MESSAGE HERE*[/spoiler]

That code will appear as..
Spoiler below!
*INSERT MESSAGE HERE*

"Veni, vidi, vici."
"I came, I saw, I conquered."
09-19-2013, 02:02 PM
Find
Efendi Offline
Junior Member

Posts: 13
Threads: 7
Joined: Sep 2013
Reputation: 0
#3
RE: No matching signatures to OnLeave?

Edited. Thanks for the tip!
09-19-2013, 03:50 PM
Find
Daemian Offline
Posting Freak

Posts: 1,129
Threads: 42
Joined: Dec 2012
Reputation: 49
#4
RE: No matching signatures to OnLeave?

Here:
Quote:void TimerMoveDoor(string &in asTimer)
{
if(GetLocalVarInt("VarDoor") == 10) return;
AddLocalVarInt("VarDoor", 1);

AddTimer(asTimer, 0.03, ""TimerMoveDoor");

AddPropForce(asTimer, -70, 0, 0, "world");
}

Put return between { }
And remove the extra "

I think that's all.

09-19-2013, 04:04 PM
Find
Efendi Offline
Junior Member

Posts: 13
Threads: 7
Joined: Sep 2013
Reputation: 0
#5
RE: No matching signatures to OnLeave?

Thank you for your help! It was enough by removing the extra ", my poor lazy eyes Tongue
09-19-2013, 06:05 PM
Find




Users browsing this thread: 1 Guest(s)