Frictional Games Forum (read-only)

Full Version: I need help with my coding.
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I'm very new at Amnesia custom stories, and VERY new at coding. All I'm trying to do is make a key unlock a door (for now, maybe more help will be needed in the future). This is my work. The error I keep getting is that it won't let me unlock the door, it just says "Item cannot be used that way" please proofread and help me out.


////////////////////////////
// Run when entering map
void OnEnter()
{
AddUseItemCallback("", "Bedroom Key", "Bedroom Door", "UsedKeyOnDoor", true);
}

void UsedDoorKey(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("Bedroom Door", false, true);
PlaySoundAtEntity("", "unlock_door", "Bedroom Door", 0, false);
RemoveItem("Bedroom Key");
}

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

}
In your callback, you made the function "UsedKeyOnDoor" but the function you have is called "UsedDoorKey"; they're supposed to be the same. Also, you should never use spaces in coding (unless you're adding a debug message). Use underscores instead, they look like this --> "_"

Here's a revised version (be sure to change the names of the items in the level editor to match the ones in the script):


void OnStart()
{
AddUseItemCallback("", "Bedroom_Key", "Bedroom_Door", "UsedKeyOnDoor", true);
}

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

void OnEnter()
{

}

void OnLeave()
{

}
(08-02-2012, 07:43 PM)andyrockin123 Wrote: [ -> ]In your callback, you made the function "UsedKeyOnDoor" but the function you have is called "UsedDoorKey"; they're supposed to be the same. Also, you should never use spaces in coding (unless you're adding a debug message). Use underscores instead, they look like this --> "_"

Here's a revised version (be sure to change the names of the items in the level editor to match the ones in the script):


void OnStart()
{
AddUseItemCallback("", "Bedroom_Key", "Bedroom_Door", "UsedKeyOnDoor", true);
}

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

void OnEnter()
{

}

void OnLeave()
{

}
Thank you very much! I hope I can rely on people like you in the future.