Frictional Games Forum (read-only)
Make player look at entity? - 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: Make player look at entity? (/thread-13025.html)

Pages: 1 2


Make player look at entity? - Datguy5 - 02-01-2012

I want that the player turns around and looks at entity when he picks up an item and after that a message appears in the screen saying something like 'You will never be free!' and then the credits would start.How would i do that?
Heres my hps file
////////////////////////////
// Run when the map starts
void OnStart()
{
AddUseItemCallback("", "And", "Locked", "KeyOnDoor", true);
SetEntityCallbackFunc("And", "OnPickup");
SetEntityCallbackFunc("Antidote", "OnPickup2");
AddEntityCollideCallback("Player", "Message_1", "Message1", true, 1);
AddEntityCollideCallback("Player", "End", "Message2", true, 1);
}


void Message1(string &in asChild, string &in asParent, int alState)
{
SetMessage("Messages", "Popup1", 0);
}
void Message2(string &in asChild, string &in asParent, int alState)
{
SetMessage("Messages", "Popup2", 0);
}
void OnPickup(string &in asEntity, string &in type)
{
SetEntityActive("grunt_1", true);
}
void KeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("Locked", false, true);
PlaySoundAtEntity("", "explosion_rock_large.snt", "Locked", 0, false);
RemoveItem("And");
}
void OnPickup2(string &in asEntity, string &in type)
{
SetEntityActive("Master", true);
}
////////////////////////////
// Run when entering map
void OnEnter()
{
}
////////////////////////////
// Run when leaving map
void OnLeave()
{
}



RE: Make player look at entity? - SilentStriker - 02-01-2012

You use a
SetEntityPlayerInteractCallback(string& asName, string& asCallback, bool abRemoveOnInteraction);

then in the void you use

StartPlayerLookAt(string& asEntityName, float afSpeedMul, float afMaxSpeed, string& asAtTargetCallback);

and AddTimer
(string& asName, float afTime, string& asFunction);

then on the void from the timer you use
SetMessage(string& asTextCategory, string& asTextEntry, float afTime);

then maby another timer and then in the other timer void you use
StartCredits(string& asMusic, bool abLoopMusic, string& asTextCat, string& asTextEntry, int alEndNum);


Code:
void OnStart()
{
SetEntityPlayerInteractCallback("NAMEOFENTITY", "NAMEOFCALLBACK", true);
}

void NAMEOFCALLBACK(string &in asEntity)
{
StartPlayerLookAt("NAMEOFWHATHESHOULDLOOKAT", 3, 5, "");
AddTimer("", 1, "Message_func")
}

void Message_func(string &in asTimer)
{
SetMessage("CATEGORY", "ENTRY", 2);
AddTimer("", 2, "CreditStart);
}

void CreditStart(string &in asTimer)
{
StartCredits("NAMEOFMUSIC.ogg", LOOP? true or false, string& asTextCat, string& asTextEntry, int alEndNum);
//Starts the end credits screen.    asMusic - the music to play (including .ogg)
  abLoopMusic - determines whether the music should loop
  asTextCat - the category to be used in the .lang file (must be “Ending”)
  asTextEntry - the entry in the .lang file (must be “MainCredits”)
  alEndNum - Amnesia has 3 different endings and displays a code  at the bottom. Determines which code is displayed. 0-2 will display  codes, any other integer will not.//
}



RE: Make player look at entity? - Datguy5 - 02-01-2012

(02-01-2012, 08:03 PM)SilentStriker Wrote: You use a
SetEntityPlayerInteractCallback(string& asName, string& asCallback, bool abRemoveOnInteraction);

then in the void you use

StartPlayerLookAt(string& asEntityName, float afSpeedMul, float afMaxSpeed, string& asAtTargetCallback);

and AddTimer
(string& asName, float afTime, string& asFunction);

then on the void from the timer you use
SetMessage(string& asTextCategory, string& asTextEntry, float afTime);

then maby another timer and then in the other timer void you use
StartCredits(string& asMusic, bool abLoopMusic, string& asTextCat, string& asTextEntry, int alEndNum);


Code:
void OnStart()
{
SetEntityPlayerInteractCallback("NAMEOFENTITY", "NAMEOFCALLBACK", true);
}

void NAMEOFCALLBACK(string &in asEntity)
{
StartPlayerLookAt("NAMEOFWHATHESHOULDLOOKAT", 3, 5, "");
AddTimer("", 1, "Message_func")
}

void Message_func(string &in asTimer)
{
SetMessage("CATEGORY", "ENTRY", 2);
AddTimer("", 2, "CreditStart);
}

void CreditStart(string &in asTimer)
{
StartCredits("NAMEOFMUSIC.ogg", LOOP? true or false, string& asTextCat, string& asTextEntry, int alEndNum);
//Starts the end credits screen.    asMusic - the music to play (including .ogg)
  abLoopMusic - determines whether the music should loop
  asTextCat - the category to be used in the .lang file (must be “Ending”)
  asTextEntry - the entry in the .lang file (must be “MainCredits”)
  alEndNum - Amnesia has 3 different endings and displays a code  at the bottom. Determines which code is displayed. 0-2 will display  codes, any other integer will not.//
}
Ok,lets test!

Aww not working.Crash report says something about unexpected end of file. Heres my hps file

////////////////////////////
// Run when the map starts
void OnStart()
{
AddUseItemCallback("", "And", "Locked", "KeyOnDoor", true);
SetEntityCallbackFunc("And", "OnPickup");
SetEntityCallbackFunc("Antidote", "OnPickup2");
SetEntityPlayerInteractCallback("Antidote", "Win", true);
AddEntityCollideCallback("Player", "Message_1", "Message1", true, 1);
AddEntityCollideCallback("Player", "End", "Message2", true, 1);
}


void Message1(string &in asChild, string &in asParent, int alState)
{
SetMessage("Messages", "Popup1", 0);
}
void Message2(string &in asChild, string &in asParent, int alState)
{
SetMessage("Messages", "Popup2", 0);
}
void OnPickup(string &in asEntity, string &in type)
{
SetEntityActive("grunt_1", true);
}
void KeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("Locked", false, true);
PlaySoundAtEntity("", "explosion_rock_large.snt", "Locked", 0, false);
RemoveItem("And");
}
void OnPickup2(string &in asEntity, string &in type)
{
SetEntityActive("Master", true);
}
void Win(string &in asEntity)
{
StartPlayerLookAt("Master", 3, 5, "");
AddTimer("", 1, "Message_func")
}
void Message_func(string &in asTimer)
{
SetMessage("Messages", "Popup3", 2);
AddTimer("", 2, "CreditStart);
}
void CreditStart(string &in asTimer)
{
StartCredits("ending_daniel.ogg", true, , "Ending", 1);
}
////////////////////////////
// Run when entering map
void OnEnter()
{
}
////////////////////////////
// Run when leaving map
void OnLeave()
{
}


RE: Make player look at entity? - FinBanana - 02-01-2012


I think the AddTimer line needs a ';'
Example below:
void Win(string &in asEntity)
{
StartPlayerLookAt("Master", 3, 5, "");
AddTimer("", 1, "Message_func");
}




I'm not 100 % sure if this works, but I'd give it a try.




RE: Make player look at entity? - SilentStriker - 02-01-2012

(02-01-2012, 09:29 PM)FinBanana Wrote: I think the AddTimer line needs a ';'
Example below:
void Win(string &in asEntity)
{
StartPlayerLookAt("Master", 3, 5, "");
AddTimer("", 1, "Message_func");
}




I'm not 100 % sure if this works, but I'd give it a try.
It should have a ; I forgot it when making the code for him xD





RE: Make player look at entity? - Datguy5 - 02-02-2012

Ohh lets see that then Big Grin
Still not working >.< it still says unexpected end of file.
////////////////////////////
// Run when the map starts
void OnStart()
{
AddUseItemCallback("", "And", "Locked", "KeyOnDoor", true);
SetEntityCallbackFunc("And", "OnPickup");
SetEntityCallbackFunc("Antidote", "OnPickup2");
SetEntityPlayerInteractCallback("Antidote", "Win", true);
AddEntityCollideCallback("Player", "Message_1", "Message1", true, 1);
AddEntityCollideCallback("Player", "End", "Message2", true, 1);
}


void Message1(string &in asChild, string &in asParent, int alState)
{
SetMessage("Messages", "Popup1", 0);
}
void Message2(string &in asChild, string &in asParent, int alState)
{
SetMessage("Messages", "Popup2", 0);
}
void OnPickup(string &in asEntity, string &in type)
{
SetEntityActive("grunt_1", true);
}
void KeyOnDoor(string &in asItem, string &in asEntity)
{
SetSwingDoorLocked("Locked", false, true);
PlaySoundAtEntity("", "explosion_rock_large.snt", "Locked", 0, false);
RemoveItem("And");
}
void OnPickup2(string &in asEntity, string &in type)
{
SetEntityActive("Master", true);
}
void Win(string &in asEntity)
{
StartPlayerLookAt("Master", 3, 5, "");
AddTimer("", 1, "Message_func");
}
void Message_func(string &in asTimer)
{
SetMessage("Messages", "Popup3", 2);
AddTimer("", 2, "CreditStart);
}
void CreditStart(string &in asTimer)
{
StartCredits("ending_daniel.ogg", true, , "Ending", 1);
}
////////////////////////////
// Run when entering map
void OnEnter()
{
}
////////////////////////////
// Run when leaving map
void OnLeave()
{
}




RE: Make player look at entity? - Datguy5 - 02-02-2012

Help would be appreciated!
This is the last obstacle in my custom story.When i solve this i can finally release it!


RE: Make player look at entity? - Datguy5 - 02-03-2012

Still not solved Sad


RE: Make player look at entity? - Inurias - 02-03-2012

By taking a short look I noticed two things:

fix:
Code:
AddTimer("", 2, "CreditStart);
to:
Code:
AddTimer("", 2, "CreditStart");

And add a third parameter to this:
Code:
StartCredits("ending_daniel.ogg", true, , "Ending", 1);

-Inurias


RE: Make player look at entity? - Datguy5 - 02-03-2012

Now it says expected expression value.
Wtf?!