Error, unexpected end of file
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!
(This post was last modified: 05-28-2012, 06:39 PM by Hatred.)
|