Frictional Games Forum (read-only)
I need help! D: - 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: I need help! D: (/thread-14747.html)



I need help! D: - 7thProductions - 04-13-2012

Does anyone see anything wrong with this extra_english.lang file?

<LANGUAGE>

<CATEGORY Name="CustomStoryMain">
<Entry Name="Description">test</Entry>
</CATEGORY>

<CATEGORY Name="Inventory">
<Entry Name="ItemName_storagekey">Storage Key</Entry>
<Entry Name="ItemDesc_storagekey">Tag reads: "Key for the upstairs storage room."</Entry>
</CATEGORY>

<CATEGORY Name="DA01Map01">
<Entry Name="AdrianShock">What...what the hell was that..!?</Entry>
</CATEGORY>

<CATEGORY Name="Journal">
</CATEGORY>

<CATEGORY Name="Levels">
</CATEGORY>

</LANGUAGE>

I've used SetMessage for "DA01Map01" and I've tried entering a custom Name and Description for a key, but nothing shows up in game and there doesn't seem to be any problems with the script.

Script:

void OnStart()
{
PlayMusic("general_rain_m.ogg", true, 1, 0, 1, true);
SetPlayerCrouching(true);
SetPlayerActive(false);
SetPlayerSanity(80.0);
SetPlayerLampOil(0.0);
SetInventoryDisabled(true);
FadeOut(0.0f);
FadeIn(5.0f);
SetPlayerSanity(1);
FadePlayerRollTo(-50, 220, 220);
AddTimer("Adrian_cough", 3, "situp");
AddTimer("Adrian_breath", 6, "situp");
AddTimer("Adrian_cough_2", 8, "situp");
AddTimer("Adrian_situp", 10, "situp");
AddTimer("monster_growl", 20, "scare");
AddTimer("father_scream", 21, "scare");
AddTimer("father_scream_cont", 22.5, "scare");
AddTimer("father_scream_cont_2", 23, "scare");
AddTimer("monster_hit", 25, "scare");
AddTimer("monster_growl_2", 27, "scare");
AddTimer("father_whimper", 28.5, "scare");
AddTimer("father_dies", 31.5, "scare");
AddTimer("father_dies_2", 34, "scare");
AddTimer("father_dies_3", 34.5, "scare");
AddTimer("drag", 35, "scare");
AddTimer("monster_leaves", 38, "scare");
AddTimer("endscare", 39.5, "scare");
}
void situp(string &in asTimer)
{
string x = asTimer;
if (x == "Adrian_cough")
{
PlaySoundAtEntity("", "player_cough.snt", "Player", 0, false);
FadeOut(3);
}

else if (x == "Adrian_breath")
{
FadeIn(3);
PlaySoundAtEntity("", "react_breath.snt", "Player", 0, false);
}

else if (x == "Adrian_cough_2")
{
PlaySoundAtEntity("", "player_cough.snt", "Player", 0, false);
FadeOut(3);
}

else if (x == "Adrian_situp")
{
FadeIn(3);
SetPlayerActive(true);
SetInventoryDisabled(false);
GiveSanityBoost();
FadePlayerRollTo(0, 33, 50);
}
}
void scare(string &in asTimer)
{
string x = asTimer;
if (x == "monster_growl")
{
PlaySoundAtEntity("", "react_scare.snt", "Player", 0, false);
PlaySoundAtEntity("", "amb_alert.snt", "Player", 0, false);
StartPlayerLookAt("ScriptArea_1", 5, 50, "");
}

else if (x == "father_scream")
{
PlaySoundAtEntity("", "attack_claw_hit.snt", "Player", 0, false);
PlaySoundAtEntity("", "29_scream.snt", "Player", 0, false);
}

else if (x == "father_scream_cont")
{
PlaySoundAtEntity("", "attack_claw_hit.snt", "Player", 0, false);
}

else if (x == "father_scream_cont_2")
{
PlaySoundAtEntity("", "attack_claw_hit.snt", "Player", 0, false);
}

else if (x == "monster_hit")
{
PlaySoundAtEntity("", "attack_claw_hit.snt", "Player", 0, false);
}

else if (x == "monster_growl_2")
{
PlaySoundAtEntity("", "amb_alert.snt", "Player", 0, false);
}

else if (x == "father_whimper")
{
PlaySoundAtEntity("", "15_prisoner_beg.snt", "Player", 0, false);
}

else if (x == "father_dies")
{
PlaySoundAtEntity("", "attack_claw_hit.snt", "Player", 0, false);
PlaySoundAtEntity("", "15_prisoner_scream.snt", "Player", 0, false);
}

else if (x == "father_dies_2")
{
PlaySoundAtEntity("", "attack_claw_hit.snt", "Player", 0, false);
PlaySoundAtEntity("", "15_prisoner_death.snt", "Player", 0, false);
}

else if (x == "father_dies_3")
{
StopPlayerLookAt();
PlaySoundAtEntity("", "scare_thump.snt", "Player", 0, false);
StartPlayerLookAt("ScriptArea_2", 1, 50, "");
}

else if (x == "drag")
{
PlaySoundAtEntity("", "15_drag_body.snt", "Player", 0, false);
}

else if (x == "monster_leaves")
{
PlaySoundAtEntity("", "door_level_wood_open.snt", "Player", 0, false);
}

else if (x == "endscare")
{
StopPlayerLookAt();
SetMessage("DA01Map01", "AdrianShock", 0);
}
}

I've had this problem for quite some time now and I can't (nor can anyone else) figure out what is wrong..I'm really excited about working on my first custom story, but this issue is a real setback and I'm in desperate need of an answer. :/




RE: I need help! D: - Cranky Old Man - 04-13-2012

It would help to know what sort of error we're looking for.
When and how does it not work?
Does it print some kind of error message?

Edit:
As far as I know, that extra_english.lang looks error-free. (I'm assuming that you've named the key "storagekey".)


RE: I need help! D: - 7thProductions - 04-13-2012

There is no error message; the map loads just fine. But SetMessage (which, according to the wiki, should display a message on the screen) won't work when it's supposed to at the end of the timer, the screen just remains blank, and when I use a CustomSubItemTypeName on a key in the level editor it only gets rid of the default name and description instead of showing the custom name and description.

And from what a tutorial told me, the name of the key and the CustomSubItemTypeName can be completely different, but you need to include the CustomSubItemTypeName in the LANG file. Is that wrong?




RE: I need help! D: - Cranky Old Man - 04-13-2012

(04-13-2012, 12:54 AM)7thProductions Wrote: There is no error message; the map loads just fine. But SetMessage (which, according to the wiki, should display a message on the screen) won't work when it's supposed to at the end of the timer, the screen just remains blank, and when I use a CustomSubItemTypeName on a key in the level editor it only gets rid of the default name and description instead of showing the custom name and description.

And from what a tutorial told me, the name of the key and the CustomSubItemTypeName can be completely different, but you need to include the CustomSubItemTypeName in the LANG file. Is that wrong?
Well, your line is probably working just fine.
SetMessage("DA01Map01", "AdrianShock", 0);
should display AdrianShock, in the DA01Map01 category, for 0 seconds.
Try "1.0f" instead. (Edit: Oh, didn't read the part about 0 setting it to text length. Try "0.0f".)

...and as for the key, that's correct: If a CustomSubItemTypeName of a key is "butler", then the entry names for that key should read "ItemName_butler" and "ItemDesc_butler". (The name is of course case sensitive, so "ItemName_Butler" wouldn't work.)


I'm at a loss with this. I'm not experienced enough. It could be that AngelScript has a limitation on the number of "else if" statements. It could be anything. You could test SetMessage outside the code and see if it works then.
Does your story find anything else in your lang file? Maybe the lang file is in a folder it shouldn't be in.




RE: I need help! D: - Putmalk - 04-13-2012

Why not try taking out those unused categories for now (Journal, Levels). Your lang file (besides that) seems normal.

I would also like to help you out with your scripting a bit, to make it a bit more efficient:

Instead of spamming "if-else" statements, try using switch statements.

Code:
void func1(...)
{
//here I declare some timers, like you did, to the same function
}

void func2(string &in asTimer)
{

switch(asTimer)
{
  case "a":
    //stuff happens here
    //no "{" "}" brackets
  break;
  case "b":
  break;
  case "c":
  break;
}

}

That makes your code cleaner and easier to write. Just note that a, b, and c would be replaced by the names of your strings (case "adrian_breath").


RE: I need help! D: - 7thProductions - 04-14-2012

(04-13-2012, 01:37 AM)Cranky Old Man Wrote:
(04-13-2012, 12:54 AM)7thProductions Wrote: There is no error message; the map loads just fine. But SetMessage (which, according to the wiki, should display a message on the screen) won't work when it's supposed to at the end of the timer, the screen just remains blank, and when I use a CustomSubItemTypeName on a key in the level editor it only gets rid of the default name and description instead of showing the custom name and description.

And from what a tutorial told me, the name of the key and the CustomSubItemTypeName can be completely different, but you need to include the CustomSubItemTypeName in the LANG file. Is that wrong?
Well, your line is probably working just fine.
SetMessage("DA01Map01", "AdrianShock", 0);
should display AdrianShock, in the DA01Map01 category, for 0 seconds.
Try "1.0f" instead. (Edit: Oh, didn't read the part about 0 setting it to text length. Try "0.0f".)

...and as for the key, that's correct: If a CustomSubItemTypeName of a key is "butler", then the entry names for that key should read "ItemName_butler" and "ItemDesc_butler". (The name is of course case sensitive, so "ItemName_Butler" wouldn't work.)


I'm at a loss with this. I'm not experienced enough. It could be that AngelScript has a limitation on the number of "else if" statements. It could be anything. You could test SetMessage outside the code and see if it works then.
Does your story find anything else in your lang file? Maybe the lang file is in a folder it shouldn't be in.
which folder does the extra_english.lang file have to be under?




RE: I need help! D: - Datguy5 - 04-14-2012

(04-14-2012, 12:32 PM)7thProductions Wrote:
(04-13-2012, 01:37 AM)Cranky Old Man Wrote:
(04-13-2012, 12:54 AM)7thProductions Wrote: There is no error message; the map loads just fine. But SetMessage (which, according to the wiki, should display a message on the screen) won't work when it's supposed to at the end of the timer, the screen just remains blank, and when I use a CustomSubItemTypeName on a key in the level editor it only gets rid of the default name and description instead of showing the custom name and description.

And from what a tutorial told me, the name of the key and the CustomSubItemTypeName can be completely different, but you need to include the CustomSubItemTypeName in the LANG file. Is that wrong?
Well, your line is probably working just fine.
SetMessage("DA01Map01", "AdrianShock", 0);
should display AdrianShock, in the DA01Map01 category, for 0 seconds.
Try "1.0f" instead. (Edit: Oh, didn't read the part about 0 setting it to text length. Try "0.0f".)

...and as for the key, that's correct: If a CustomSubItemTypeName of a key is "butler", then the entry names for that key should read "ItemName_butler" and "ItemDesc_butler". (The name is of course case sensitive, so "ItemName_Butler" wouldn't work.)


I'm at a loss with this. I'm not experienced enough. It could be that AngelScript has a limitation on the number of "else if" statements. It could be anything. You could test SetMessage outside the code and see if it works then.
Does your story find anything else in your lang file? Maybe the lang file is in a folder it shouldn't be in.
which folder does the extra_english.lang file have to be under?
It has to be in your custom story folder.Not in the maps.(The same as custom story settings.cfg)




RE: I need help! D: - 7thProductions - 04-14-2012

(04-14-2012, 12:41 PM)Datguy5 Wrote:
(04-14-2012, 12:32 PM)7thProductions Wrote:
(04-13-2012, 01:37 AM)Cranky Old Man Wrote:
(04-13-2012, 12:54 AM)7thProductions Wrote: There is no error message; the map loads just fine. But SetMessage (which, according to the wiki, should display a message on the screen) won't work when it's supposed to at the end of the timer, the screen just remains blank, and when I use a CustomSubItemTypeName on a key in the level editor it only gets rid of the default name and description instead of showing the custom name and description.

And from what a tutorial told me, the name of the key and the CustomSubItemTypeName can be completely different, but you need to include the CustomSubItemTypeName in the LANG file. Is that wrong?
Well, your line is probably working just fine.
SetMessage("DA01Map01", "AdrianShock", 0);
should display AdrianShock, in the DA01Map01 category, for 0 seconds.
Try "1.0f" instead. (Edit: Oh, didn't read the part about 0 setting it to text length. Try "0.0f".)

...and as for the key, that's correct: If a CustomSubItemTypeName of a key is "butler", then the entry names for that key should read "ItemName_butler" and "ItemDesc_butler". (The name is of course case sensitive, so "ItemName_Butler" wouldn't work.)


I'm at a loss with this. I'm not experienced enough. It could be that AngelScript has a limitation on the number of "else if" statements. It could be anything. You could test SetMessage outside the code and see if it works then.
Does your story find anything else in your lang file? Maybe the lang file is in a folder it shouldn't be in.
which folder does the extra_english.lang file have to be under?
It has to be in your custom story folder.Not in the maps.(The same as custom story settings.cfg)
thank you so much! Big Grin




RE: I need help! D: - Datguy5 - 04-14-2012

(04-14-2012, 01:10 PM)7thProductions Wrote:
(04-14-2012, 12:41 PM)Datguy5 Wrote:
(04-14-2012, 12:32 PM)7thProductions Wrote:
(04-13-2012, 01:37 AM)Cranky Old Man Wrote:
(04-13-2012, 12:54 AM)7thProductions Wrote: There is no error message; the map loads just fine. But SetMessage (which, according to the wiki, should display a message on the screen) won't work when it's supposed to at the end of the timer, the screen just remains blank, and when I use a CustomSubItemTypeName on a key in the level editor it only gets rid of the default name and description instead of showing the custom name and description.

And from what a tutorial told me, the name of the key and the CustomSubItemTypeName can be completely different, but you need to include the CustomSubItemTypeName in the LANG file. Is that wrong?
Well, your line is probably working just fine.
SetMessage("DA01Map01", "AdrianShock", 0);
should display AdrianShock, in the DA01Map01 category, for 0 seconds.
Try "1.0f" instead. (Edit: Oh, didn't read the part about 0 setting it to text length. Try "0.0f".)

...and as for the key, that's correct: If a CustomSubItemTypeName of a key is "butler", then the entry names for that key should read "ItemName_butler" and "ItemDesc_butler". (The name is of course case sensitive, so "ItemName_Butler" wouldn't work.)


I'm at a loss with this. I'm not experienced enough. It could be that AngelScript has a limitation on the number of "else if" statements. It could be anything. You could test SetMessage outside the code and see if it works then.
Does your story find anything else in your lang file? Maybe the lang file is in a folder it shouldn't be in.
which folder does the extra_english.lang file have to be under?
It has to be in your custom story folder.Not in the maps.(The same as custom story settings.cfg)
thank you so much! Big Grin
Np dude