Error, unexpected end of file - 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: Error, unexpected end of file (/thread-15685.html) |
Error, unexpected end of file - Hatred - 05-28-2012 Hello again. I've almost completed my new custom story, but a problem has occured. When in-game I try to load lets say "Map4.map", it throws a fatal error right at my face saying: "FATAL ERROR: Couldn't load script file 'custom_stories/MyCustom/maps/Map4.hps' ! Main (405, 2) : ERR : Unexpected end of file. I have tried to fix this problem for over 3 hours and still not working. Strange yes, it did work yesterday and I haven't made any changes to hps.file since when I tested that map and it worked then. Line 405 is the last } in the whole script. Here's my script: //////////////////////////// // Run first time starting map void OnStart() { CompleteQuest("dungeon", "DungeonQuest"); CompleteQuest("cellar", "CellarQuest"); CompleteQuest("demon", "DemonQuest"); AddQuest("mansion", "MansionQuest"); AddQuest("intro", "IntroQuest"); FadeIn(1); PlayMusic("18_amb.ogg", true, 1.0f, 1, 0, true); AddUseItemCallback("", "key_study_1", "mansion_1", "UsedKey", true); AddUseItemCallback("", "key_torture_chamber_1", "work_desk_door_worn_1", "UsedKey2", true); AddUseItemCallback("", "key_tower_1", "mansion_4", "UsedKey3", true); AddEntityCollideCallback("Player", "ScriptArea_1", "CollideScriptArea_1", true, 1); AddEntityCollideCallback("Player", "ScriptArea_2", "CollideScriptArea_2", false, 1); AddEntityCollideCallback("Player", "ScriptArea_3", "CollideScriptArea_3", true, 1); AddEntityCollideCallback("Player", "ScriptArea_4", "CollideScriptArea_4", false, 1); AddEntityCollideCallback("Player", "ScriptArea_5", "CollideScriptArea_5", true, 1); AddEntityCollideCallback("Player", "ScriptArea_6", "CollideScriptArea_6", true, 1); AddEntityCollideCallback("Player", "ScriptArea_7", "CollideScriptArea_7", true, 1); AddEntityCollideCallback("Player", "ScriptArea_8", "CollideScriptArea_8", true, 1); AddEntityCollideCallback("Player", "ScriptArea_9", "CollideScriptArea_9", true, 1); AddEntityCollideCallback("Player", "ScriptArea_10", "CollideScriptArea_10", true, 1); AddEntityCollideCallback("Player", "ScriptArea_11", "CollideScriptArea_11", true, 1); AddEntityCollideCallback("Player", "ScriptArea_12", "CollideScriptArea_12", true, 1); AddEntityCollideCallback("Player", "ScriptArea_13", "CollideScriptArea_13", true, 1); SetEntityConnectionStateChangeCallback("lever_small01_min_1", "func_shelf"); SetEntityPlayerLookAtCallback("corpse_male_1", "SanityDrain", true); SetEntityPlayerInteractCallback("level_celler_1", "VaihdaMap4", true); SetLocalVarInt("CandlesLit", 0); // Sets a variable "CandlesLit" to zero. SetEntityCallbackFunc("candle_floor_1", "CandleLight"); SetEntityCallbackFunc("candle_floor_2", "CandleLight"); SetEntityCallbackFunc("candle_floor_3", "CandleLight"); SetEntityCallbackFunc("candle_floor_4", "CandleLight"); SetEntityCallbackFunc("candle_floor_5", "CandleLight"); // Replace candlename with the names of your candles, and call as many times as there are candles. Could be done under the interactcallback tab of the candle itself. } void CandleLight(string &in asEntity, string &in type) { AddLocalVarInt("CandlesLit", 1); if(GetLocalVarInt("CandlesLit") == 5) // If the variable is equal to five, execute following statement { FadeOut(5); SetPlayerCrouching(true); FadePlayerRollTo(90, 50, 50); PlaySoundAtEntity("", "player_bodyfall.snt", "Player", 0, false); SetPlayerSanity(0); SetEntityActive("key_torture_chamber_1", true); SetEntityActive("enemy_suitor_2", true); AddTimer("ScareTimer", 10, "StopLook"); SetPlayerActive(false); StartPlayerLookAt("enemy_suitor_2", 25, 25, ""); SetEnemyDisableTriggers("enemy_suitor_2", true); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_36", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_37", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_38", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_39", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_40", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_41", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_42", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_43", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_44", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_45", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_46", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_47", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_48", 0, ""); } } void StopLook(string &in asTimer) { FadeIn(3); AddTimer("FaintTimer", 5, "BlackOut"); StopPlayerLookAt(); } void BlackOut(string &in asTimer) { FadeOut(2); AddTimer("DisableLook", 5, "StopLook2"); } void StopLook2(string &in asTimer) { StartPlayerLookAt("key_torture_chamber_1", 10, 10, ""); FadeIn(3); SetPlayerActive(true); StopPlayerLookAt(); AddTimer("RollTimer", 4, "StandUp"); } void StandUp(string &in asTimer) { SetEnemyDisableTriggers("enemy_suitor_2", false); FadePlayerRollTo(0, 50, 50); SetPlayerCrouching(false); } void SanityDrain(string &in asEntity, int alState) { GiveSanityDamage(30, true); PlaySoundAtEntity("", "21_screams.snt", "corpse_male_1", 0, false); SetMessage("ScreenText", "Brother", 2); AddTimer("", 3, "FaintTimer1"); StopMusic(0, 0); PlayMusic("Penumbra Black Plague Main Theme.ogg", false, 1.0f, 0, 0, true); } void FaintTimer1(string &in asTimer) { SetPlayerActive(false); SetPlayerCrouching(true); FadePlayerRollTo(90, 50, 50); FadeOut(2); PlaySoundAtEntity("", "player_bodyfall.snt", "Player", 0, false); SetPlayerSanity(0); AddTimer("FallTimer", 3, "Katso"); } void Katso(string &in asTimer) { FadeIn(2); SetMessage("ScreenText", "Brother2", 3); AddTimer("", 8, "EiKatso"); } void EiKatso(string &in asTimer) { FadeOut(2); AddTimer("", 5, "Katso2"); } void Katso2(string &in asTimer) { FadeIn(2); SetMessage("ScreenText", "Brother3", 3); AddTimer("", 5, "EiKatso2"); } void EiKatso2(string &in asTimer) { FadeOut(2); AddTimer("", 4, "Nouses"); } void Nouses(string &in asTimer) { StopMusic(5, 0); PlayMusic("18_amb.ogg", true, 1.0f, 1, 0, true); SetPlayerActive(true); FadePlayerRollTo(0, 50, 50); FadeIn(1); AddTimer("", 2, QuestTimer"); } void QuestTimer(string &in asTimer) { AddQuest("demon", "DemonQuest"); } void func_shelf(string &in asEntity, int alState) { if (alState == 1) { SetMoveObjectState("shelf_secret_door_rot_1",1.0f); PlaySoundAtEntity("", "quest_completed.snt", "shelf_move_1", 0, false); return; } } void CollideScriptArea_3(string &in asParent, string &in asChild, int alState) { CheckPoint("", "PlayerStartArea_44", "Reload", "DeathHintSuitor", "Silence"); } void Reload(string &in asName, int alCount) { FadeOut(5); SetPlayerCrouching(true); FadePlayerRollTo(90, 50, 50); PlaySoundAtEntity("", "player_bodyfall.snt", "Player", 0, false); SetPlayerSanity(0); SetEntityActive("key_torture_chamber_1", true); SetEntityActive("enemy_suitor_2", true); AddTimer("ScareTimer", 10, "StopLook"); SetPlayerActive(false); StartPlayerLookAt("enemy_suitor_2", 25, 25, ""); SetEnemyDisableTriggers("enemy_suitor_2", true); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_36", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_37", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_38", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_39", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_40", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_41", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_42", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_43", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_44", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_45", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_46", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_47", 0, ""); AddEnemyPatrolNode("enemy_suitor_2", "PathNodeArea_48", 0, ""); SetEntityActive("mansion_1", true); SetEntityActive("mansion_2", true); SetEntityActive("ScriptArea_3", true); } void VaihdaMap4(string &in asParent, string &in asChild, int alState) { FadeOut(2); ChangeMap("Memento5.map", "PlayerStartArea_5", "", ""); SetupLoadScreen("Loadscreen", "EnterMansion", 0, ""); } void UsedKey(string &in asItem, string &in asEntity) { SetSwingDoorLocked("mansion_1", false, true); PlaySoundAtEntity("", "unlock_door", "mansion_1", 0, false); RemoveItem("key_study_1"); } void UsedKey2(string &in asItem, string &in asEntity) { SetSwingDoorLocked("work_desk_door_worn_1", false, true); PlaySoundAtEntity("", "unlock_door", "work_desk_door_worn_1", 0, false); RemoveItem("key_torture_chamber_1"); } void UsedKey3(string &in asItem, string &in asEntity) { SetSwingDoorLocked("mansion_4", false, true); PlaySoundAtEntity("", "unlock_door", "mansion_4", 0, false); RemoveItem("key_tower_1"); } void CollideScriptArea_1(string &in asParent, string &in asChild, int alState) { SetSwingDoorClosed("mansion_1", true, true); SetSwingDoorLocked("mansion_1", true, true); } void CollideScriptArea_2(string &in asParent, string &in asChild, int alState) { AddTimer("ChangeWindow", 15, "Window2"); SetEntityActive("enemy_suitor_1", true); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_1", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_2", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_3", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_4", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_5", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_6", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_7", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_8", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_9", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_10", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_11", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_12", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_13", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_14", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_15", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_16", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_17", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_18", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_19", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_20", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_21", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_22", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_23", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_24", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_25", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_26", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_27", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_28", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_29", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_30", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_31", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_32", 0, ""); AddEnemyPatrolNode("enemy_suitor_1", "PathNodeArea_33", 0, ""); } void Window2(string &in asTimer) { PlaySoundAtEntity("", "break_glass_large.snt", "mb_window_1", 0, false); SetEntityActive("mb_window_1", false); SetEntityActive("mb_window_noglass_1", true); AddTimer("WallTimer", 15, "ActivateWall"); } void ActivateWall(string &in asTimer) { SetEntityActive("block_box_1", true); } void CollideScriptArea_4(string &in asParent, string &in asChild, int alState) { SetEntityActive("ScriptArea_4", false); CheckPoint("", "PlayerStartArea_45", "Reload2", "DeathHintSuitor", "Silence"); } void Reload2(string &in asName, int alCount) { SetEntityActive("mansion_5", true); SetEntityActive("block_box_1", false); SetEntityActive("mb_window_1", true); SetEntityActive("mb_window_noglass_1", false); SetEntityActive("ScriptArea_2", true); SetEntityActive("ScriptArea_4", true); } void CollideScriptArea_5(string &in asParent, string &in asChild, int alState) { PlaySoundAtEntity("", "21_screams.snt", "Player", 0, false); } void CollideScriptArea_6(string &in asParent, string &in asChild, int alState) { PlaySoundAtEntity("", "18_blow_wind.snt", "Player", 0, false); } void CollideScriptArea_7(string &in asParent, string &in asChild, int alState) { PlaySoundAtEntity("", "15_body_impact.snt", "Player", 0, false); SetEntityActive("shield01_13", true); SetEntityActive("shield01_9", false); } void CollideScriptArea_8(string &in asParent, string &in asChild, int alState) { AddPropForce("vase02_ghost_2", 1000, 0, 0, "World"); AddTimer("HeartTimer", 2, "SoundPlay"); } void SoundPlay(string &in asTimer) { PlaySoundAtEntity("", "sanity_heartbeat.snt", "Player", 0, false); } void CollideScriptArea_9(string &in asParent, string &in asChild, int alState) { SetSwingDoorClosed("mansion_4", true, true); AddPropForce("mansion_4", 0, 0, 100, "World"); PlaySoundAtEntity("", "door_mansion_close.snt", "Player", 0, false); AddTimer("HeartTimer2", 1, "PlayHeart"); } void PlayHeart(string &in asTimer) { PlaySoundAtEntity("", "sanity_heartbeat.snt", "Player", 0, false); } void CollideScriptArea_10(string &in asParent, string &in asChild, int alState) { SetEntityActive("enemy_suitor_3", true); StartPlayerLookAt("enemy_suitor_3", 15, 15, ""); SetPlayerActive(false); AddTimer("MorsoScare", 2, "MoveMorso"); AddEnemyPatrolNode("enemy_suitor_3", "PathNodeArea_34", 0, ""); } void MoveMorso(string &in asTimer) { StopPlayerLookAt(); SetEntityActive("enemy_suitor_6", true); PlaySoundAtEntity("", "enemy_hallucination_disappear.ogg", "Player", 0, false); AddTimer("MorsoEnd", 1, "ActivateMovement"); SetEntityActive("enemy_suitor_3", false); AddTimer("MorsoScare2", 1, "MoveMorso2"); } void ActivateMovement(string &in asTimer) { SetPlayerActive(true); } void CollideScriptArea_11(string &in asParent, string &in asChild, int alState) { SetEntityActive("armour_nice_complete_14", true); SetEntityActive("armour_nice_complete_13", false); } void CollideScriptArea_12(string &in asParent, string &in asChild, int alState) { FadeOut(2); ChangeMap("Memento5.map", "PlayerStartArea_5", "", ""); SetupLoadScreen("Loadscreen", "EnterMansion", 1, ""); } void CollideScriptArea_13(string &in asParent, string &in asChild, int alState) { SetEntityActive("enemy_suitor_1", false); } ///////////////////// // Run when leaving the map void OnLeave() { } Help appreciated! RE: Error, unexpected end of file - Putmalk - 05-28-2012 You forgot to close a pair of {, " or (. Your error is on line 155. QuestTimer" instead of "QuestTimer" <3 Programmer's Notepad, gives you a long purple line where you forget to close something. RE: Error, unexpected end of file - Hatred - 05-28-2012 Unbelievable, how did I miss that. Thank you sir! RE: Error, unexpected end of file - Putmalk - 05-28-2012 You're welcome. Glad it works. |