Frictional Games Forum (read-only)

Full Version: Help - Unexpected end of file
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
When I try to open my custom story, there is a fatal error (well, it is normal, but...) that says "Unexpected end of file", but there is NOTHING on the end of the file, just the normal

void OnLeave()
{

}

But it says that there's something beyond the '}'. There is not. HELP PLEASE
Quote:void OnLeave()
{

}
Is this the full script?
If it is, try this:

void OnEnter()
{
}

void OnLeave()
{
}
(12-05-2011, 11:45 PM)GillFrog Wrote: [ -> ]
Quote:void OnLeave()
{

}
Is this the full script?
If it is, try this:

void OnEnter()
{
}

void OnLeave()
{
}
No, this isn't the whole script. There is the OnStart() with all the things I made, but this is the part where the game says that there is something wrong...
(12-06-2011, 01:28 AM)Victor Wrote: [ -> ]No, this isn't the whole script. There is the OnStart() with all the things I made, but this is the part where the game says that there is something wrong...

You have to show us the whole script regardless of what line the engine is reporting.
(12-06-2011, 01:44 AM)Your Computer Wrote: [ -> ]
(12-06-2011, 01:28 AM)Victor Wrote: [ -> ]No, this isn't the whole script. There is the OnStart() with all the things I made, but this is the part where the game says that there is something wrong...

You have to show us the whole script regardless of what line the engine is reporting.
Oh, ok! Big Grin


void OnStart()
{
SetEntityPlayerInteractCallback("button", "func1", true);
wakeUp();
AddEntityCollideCallback("Player", "MonsterArea", "MonsterFunction", true, 1);
AddEntityCollideCallback("servant_grunt_1", "PNScriptArea", "MonsterFunction2", false, 1);
AddEntityCollideCallback("Crowbar_1", "AreaPutCrowbar", "CrowbarAppear", true, 1);
}

void CrowbarAppear(string &in asParent, string &in asChild, int alState)
{
SetEntityActive("Crowbar_joint", true);
RemoveItem("Crowbar_1");
}

void BreakDoor(string &in asParent, string &in asChild, int alState)
{
SetSwingDoorLocked("door", false, false);'
CreateParticleSystemAtEntity("", "ps_hit_wood", "BreakEffect", false);
PlaySoundAtEntity("", "break_wood", "BreakEffect", 0.0, false);
SetEntityActive("Crowbar_joint", false);
SetEntityActive("crowbar_broken_1", true); //THIS SHOULD BE A CROWBAR ENTITY ONLY (NOT ITEM, NOT JOINT (name it crowbar)
}

void MonsterFunction(string &in asParent, string &in asChild, int alState)
{
SetEntityActive("servant_grunt_1", true);
SetEntityActive("block_box_1", true);
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_1", 2, "");
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_2", 0, "");
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_3", 0, "");
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_4", 0, "");
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_5", 5, "");
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_6", 0, "");
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_7", 0, "");
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_8", 0, "");
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_9", 0, "");
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_10", 0, "");
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_11", 0, "");
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_12", 0, "");
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_13", 0, "");
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_14", 0, "");
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_15", 0, "");
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_16", 5, "");
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_17", 0, "");
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_18", 0, "");
for (int i = 1; i <11; i++)
{
int x = i;
if (i == 1)
{
x = 2;
}
if (i = 18)
{
x = 4;
}
if (i != 1 || i != 18)
{
x = 0;
}
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_1"+17, 18, "");
}

SetMoveObjectState("shelf",0.0f);
}

void MonsterFunction2()
{
for (int i = 1; i <6; i++)
{
AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_1"+17, 0, "");
}
}

void wakeUp()
{
PlayMusic("02_amb_strange.ogg", true, 5, 1, 1, true);
FadeOut(0); // Instantly fades the screen out. (Good for starting the game)
FadeIn(20); // Amount of seconds the fade in takes
FadeImageTrailTo(2, 2);
FadeSepiaColorTo(100, 4);
SetPlayerActive(false);
FadePlayerRollTo(50, 220, 220); // "Tilts" the players head
FadeRadialBlurTo(0.15, 2);
SetPlayerCrouching(true); // Simulates being on the ground
AddTimer("trig1", 11.0f, "beginStory"); // Change '11.0f' to however long you want the 'unconciousness' to last
GiveSanityDamage(20, true);
}

void beginStory(string &in asTimer)
{
ChangePlayerStateToNormal();
SetPlayerActive(true);
FadePlayerRollTo(0, 33, 33); // Change all settings to defaults
FadeRadialBlurTo(0.0, 1);
FadeSepiaColorTo(0, 4);
SetPlayerCrouching(false);
FadeImageTrailTo(0,1);
}

void func1(string &in asEntity)
{
SetMoveObjectState("shelf",1.0f);
PlaySoundAtEntity("", "quest_completed.snt", "Player", 0, false);
GiveSanityBoost();
}

void OnEnter()
{
}

void OnLeave()
{

}
You have a dangling apostrophe within the BreakDoor function at the end of SetSwingDoorLocked.
(12-06-2011, 02:13 AM)Your Computer Wrote: [ -> ]You have a dangling apostrophe within the BreakDoor function at the end of SetSwingDoorLocked.
Thanks a lot!
(12-06-2011, 02:13 AM)Your Computer Wrote: [ -> ]You have a dangling apostrophe within the BreakDoor function at the end of SetSwingDoorLocked.
It worked, but now the crash log says that in the "AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_16", 5, "");", expression must be of boolean type. I don't know what that means...
Boolean means true or false. It's a data type, so you have to write either of them to work. (But AddEnemyPatrolNode doesn't use bool, so i don't know whats wrong...)

Also, to avoid future mishaps, download Notepad++, it will be alot easier to code in this program.
You mistyped the boolean operator in if(i = 18) where it should be if(i == 18).

Also, by doing:
PHP Code:
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_1"+1718""); 
you are repeatdly adding a pathnode to the pathnodearea_117. I suppose you want what's bellow:
Correct code:

PHP Code:
void OnStart()
{
    
SetEntityPlayerInteractCallback("button""func1"true);
    
wakeUp();
    
AddEntityCollideCallback("Player""MonsterArea""MonsterFunction"true1);
    
AddEntityCollideCallback("servant_grunt_1""PNScriptArea""MonsterFunction2"false1);
    
AddEntityCollideCallback("Crowbar_1""AreaPutCrowbar""CrowbarAppear"true1);
}

void CrowbarAppear(string &in asParentstring &in asChildint alState)
{
    
SetEntityActive("Crowbar_joint"true);
    
RemoveItem("Crowbar_1");
}

void BreakDoor(string &in asParentstring &in asChildint alState)
{
    
SetSwingDoorLocked("door"falsefalse);
    
CreateParticleSystemAtEntity("""ps_hit_wood""BreakEffect"false);
    
PlaySoundAtEntity("""break_wood""BreakEffect"0.0false);
    
SetEntityActive("Crowbar_joint"false);
    
SetEntityActive("crowbar_broken_1"true); //THIS SHOULD BE A CROWBAR ENTITY ONLY (NOT ITEM, NOT JOINT (name it crowbar)
}

    
void MonsterFunction(string &in asParentstring &in asChildint alState)
    {
    
SetEntityActive("servant_grunt_1"true);
    
SetEntityActive("block_box_1"true);
    
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_1"2"");
    
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_2"0"");
    
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_3"0"");
    
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_4"0"");
    
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_5"5"");
    
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_6"0"");
    
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_7"0"");
    
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_8"0"");
    
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_9"0"");
    
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_10"0"");
    
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_11"0"");
    
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_12"0"");
    
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_13"0"");
    
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_14"0"");
    
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_15"0"");
    
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_16"5"");
    
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_17"0"");
    
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_18"0"");
    for (
int i 1<11i++)
    {
        
int x i;
        if (
== 1)
        {
            
2;
        }
        if (
== 18)
        {
            
4;
        }
        if (
!= || != 18)
        {
            
0;
        }
        
//AddEnemyPatrolNode("servant_grunt_1", "PathNodeArea_"+17, 18, "");
    
}
    
SetMoveObjectState("shelf",0.0f);
}

        
void MonsterFunction2()
    {
        for (
int i 1<6i++)
        {
            
AddEnemyPatrolNode("servant_grunt_1""PathNodeArea_"+i0"");
        }        
    }

    
void wakeUp()
    {
        
PlayMusic("02_amb_strange.ogg"true511true);
        
FadeOut(0); // Instantly fades the screen out. (Good for starting the game)
        
FadeIn(20); // Amount of seconds the fade in takes
        
FadeImageTrailTo(22);
        
FadeSepiaColorTo(1004);
        
SetPlayerActive(false);
        
FadePlayerRollTo(50220220); // "Tilts" the players head
        
FadeRadialBlurTo(0.152);
        
SetPlayerCrouching(true); // Simulates being on the ground
        
AddTimer("trig1"11.0f"beginStory"); // Change ' 11.0f' to however long you want the 'unconciousness' to last
        
GiveSanityDamage(20true);
}

    
void beginStory(string &in asTimer)
    {
    
ChangePlayerStateToNormal();
    
SetPlayerActive(true);
    
FadePlayerRollTo(03333); // Change all settings to defaults
    
FadeRadialBlurTo(0.01);
    
FadeSepiaColorTo(04);
    
SetPlayerCrouching(false);
    
FadeImageTrailTo(0,1);
}

    
void func1(string &in asEntity)
    {
    
SetMoveObjectState("shelf",1.0f);
    
PlaySoundAtEntity("""quest_completed.snt""Player"0false);
    
GiveSanityBoost();
}

    
void OnEnter()
    {
}

    
void OnLeave()
    {



Your script, though is is bad organized and has useless stuff inside.