Frictional Games Forum (read-only)

Full Version: Help needed! I can't find error in script.
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Okay, so I'm kinda new to this so bear with me Tongue
I've encountered a problem that makes me unable to enter the map, but I can't seem to find the problem in the script. It says that a ';' is expected in row 29.

Here's my script:

void OnStart()
{
if(ScriptDebugOn())
{
GiveItemFromFile("lantern", "lantern.ent");
}
PlaySoundAtEntity("RockRumble", "general_rock_rumble.snt", "Player", 0, false);
StartScreenShake(0.05f, 1, 0.4, 0.6);
AddTimer("", 1, "StopRockRumble");
SetPlayerCrouching(true);
AddEntityCollideCallback("Player", "ScriptArea_1", "Message1", true, 1);
AddEntityCollideCallback("Player", "ScriptArea_2", "AOESanityDmg", false, 1);
}

void StopRockRumble(string &in asTimer)
{
StopSound("RockRumble", 1);
}

void Message1(string &in asParent, string &in asChild, int alState)
{
SetMessage("Messages", "Popup3", 0);
}

void AOESanityDmg(string &in asParent, string &in asChild, int alState)
{
GiveSanityDamage(5, false);
if(GetEntitiesCollide("Player", "ScriptArea_2"))
{
AddTimer("", 2, "AOESanityDmg");
}
}

What I want AOESanityDmg to do is if the player is located inside ScriptArea_2 he should be damaged with 5 sanity dmg every 2 seconds... I don't think that it is working but it seems like there's something else that is wrong with the script, because I removed some script before so that I didn't have 29 rows of script, but the error still remained... Anyone know how to fix it? Smile

Thx in advance
Sry for English
Bump! Really need help with this. I can't continue until I solve it :/
(02-26-2012, 02:20 PM)Tozken Wrote: [ -> ]Okay, so I'm kinda new to this so bear with me Tongue
I've encountered a problem that makes me unable to enter the map, but I can't seem to find the problem in the script. It says that a ';' is expected in row 29.

Here's my script:

void OnStart()
{
if(ScriptDebugOn())
{
GiveItemFromFile("lantern", "lantern.ent");
}
PlaySoundAtEntity("RockRumble", "general_rock_rumble.snt", "Player", 0, false);
StartScreenShake(0.05f, 1, 0.4, 0.6);
AddTimer("", 1, "StopRockRumble");
SetPlayerCrouching(true);
AddEntityCollideCallback("Player", "ScriptArea_1", "Message1", true, 1);
AddEntityCollideCallback("Player", "ScriptArea_2", "AOESanityDmg", false, 1);
}

void StopRockRumble(string &in asTimer)
{
StopSound("RockRumble", 1);
}

void Message1(string &in asParent, string &in asChild, int alState)
{
SetMessage("Messages", "Popup3", 0);
}

void AOESanityDmg(string &in asParent, string &in asChild, int alState)
{
GiveSanityDamage(5, false);
if(GetEntitiesCollide("Player", "ScriptArea_2"))
{
AddTimer("", 2, "AOESanityDmg");
}
}

What I want AOESanityDmg to do is if the player is located inside ScriptArea_2 he should be damaged with 5 sanity dmg every 2 seconds... I don't think that it is working but it seems like there's something else that is wrong with the script, because I removed some script before so that I didn't have 29 rows of script, but the error still remained... Anyone know how to fix it? Smile

Thx in advance
Sry for English
Hey man!

I'm also new at this, but I know you shouldn't have more that TWO '}' in void OnStart.

Like this

void OnStart()

{
AddEntityCollideCallback....
.......
}

Hope that helps you some? Smile
(02-26-2012, 06:31 PM)Tozken Wrote: [ -> ]Bump! Really need help with this. I can't continue until I solve it :/
Okey, so.. I tested it out and with this following script, everything should do it! Smile


void OnStart()
{
if(ScriptDebugOn())
GiveItemFromFile("lantern", "lantern.ent");
PlaySoundAtEntity("RockRumble", "general_rock_rumble.snt", "Player", 0, false);
StartScreenShake(0.05f, 1, 0.4, 0.6);
AddTimer("", 1, "StopRockRumble");
SetPlayerCrouching(true);
AddEntityCollideCallback("Player", "ScriptArea_1", "Message1", true, 1);
AddEntityCollideCallback("Player", "ScriptArea_2", "AOESanityDmg", false, 1);
}

void StopRockRumble(string &in asTimer)
{
StopSound("RockRumble", 1);
}

void Message1(string &in asParent, string &in asChild, int alState)
{
SetMessage("Messages", "Popup3", 0);
}

void AOESanityDmg(string &in asParent, string &in asChild, int alState)
{
GiveSanityDamage(5, true);

}
Thanks for your help! Unfortunately, it didn't work. It was something with the .map file I think.... I tried creating a new map with the same things and same script and it worked. Thanks again anyway!
(02-26-2012, 02:20 PM)Tozken Wrote: [ -> ]Okay, so I'm kinda new to this so bear with me Tongue
I've encountered a problem that makes me unable to enter the map, but I can't seem to find the problem in the script. It says that a ';' is expected in row 29.

Here's my script:

void OnStart()
{
if(ScriptDebugOn())
{
GiveItemFromFile("lantern", "lantern.ent");
}
PlaySoundAtEntity("RockRumble", "general_rock_rumble.snt", "Player", 0, false);
StartScreenShake(0.05f, 1, 0.4, 0.6);
AddTimer("", 1, "StopRockRumble");
SetPlayerCrouching(true);
AddEntityCollideCallback("Player", "ScriptArea_1", "Message1", true, 1);
AddEntityCollideCallback("Player", "ScriptArea_2", "AOESanityDmg", false, 1);
}

void StopRockRumble(string &in asTimer)
{
StopSound("RockRumble", 1);
}

void Message1(string &in asParent, string &in asChild, int alState)
{
SetMessage("Messages", "Popup3", 0);
}

void AOESanityDmg(string &in asParent, string &in asChild, int alState)
{
GiveSanityDamage(5, false);
if(GetEntitiesCollide("Player", "ScriptArea_2"))
{
AddTimer("", 2, "AOESanityDmg");
}
}

What I want AOESanityDmg to do is if the player is located inside ScriptArea_2 he should be damaged with 5 sanity dmg every 2 seconds... I don't think that it is working but it seems like there's something else that is wrong with the script, because I removed some script before so that I didn't have 29 rows of script, but the error still remained... Anyone know how to fix it? Smile

Thx in advance
Sry for English
Dude you have this "
AddTimer("", 2, "AOESanityDmg");
}
}"

You should have


{

}
He is using a If statement, he needs the other } there.
(02-28-2012, 10:36 AM)flamez3 Wrote: [ -> ]He is using a If statement, he needs the other } there.
(Y) yepp
(02-26-2012, 02:20 PM)Tozken Wrote: [ -> ]Okay, so I'm kinda new to this so bear with me Tongue
I've encountered a problem that makes me unable to enter the map, but I can't seem to find the problem in the script. It says that a ';' is expected in row 29.

Here's my script:

void OnStart()
{
if(ScriptDebugOn())
}
GiveItemFromFile("lantern", "lantern.ent");
{
PlaySoundAtEntity("RockRumble", "general_rock_rumble.snt", "Player", 0, false);
StartScreenShake(0.05f, 1, 0.4, 0.6);
AddTimer("", 1, "StopRockRumble");
SetPlayerCrouching(true);
AddEntityCollideCallback("Player", "ScriptArea_1", "Message1", true, 1);
AddEntityCollideCallback("Player", "ScriptArea_2", "AOESanityDmg", false, 1);
}

void StopRockRumble(string &in asTimer)
{
StopSound("RockRumble", 1);
}

void Message1(string &in asParent, string &in asChild, int alState)
{
SetMessage("Messages", "Popup3", 0);
}

void AOESanityDmg(string &in asParent, string &in asChild, int alState)
{
GiveSanityDamage(5, false);
if(GetEntitiesCollide("Player", "ScriptArea_2"))
{
AddTimer("", 2, "AOESanityDmg");
}


What I want AOESanityDmg to do is if the player is located inside ScriptArea_2 he should be damaged with 5 sanity dmg every 2 seconds... I don't think that it is working but it seems like there's something else that is wrong with the script, because I removed some script before so that I didn't have 29 rows of script, but the error still remained... Anyone know how to fix it? Smile

Thx in advance
Sry for English
this might work.
void OnStart()
{
if(ScriptDebugOn())
}
GiveItemFromFile("lantern", "lantern.ent");
{
PlaySoundAtEntity("RockRumble", "general_rock_rumble.snt", "Player", 0, false);
StartScreenShake(0.05f, 1, 0.4, 0.6);
AddTimer("", 1, "StopRockRumble");
SetPlayerCrouching(true);
AddEntityCollideCallback("Player", "ScriptArea_1", "Message1", true, 1);
AddEntityCollideCallback("Player", "ScriptArea_2", "AOESanityDmg", false, 1);
}

void StopRockRumble(string &in asTimer)
{
StopSound("RockRumble", 1);
}

void Message1(string &in asParent, string &in asChild, int alState)
{
SetMessage("Messages", "Popup3", 0);
}

void AOESanityDmg(string &in asParent, string &in asChild, int alState)
{
GiveSanityDamage(5, false);
if(GetEntitiesCollide("Player", "ScriptArea_2"))
}
AddTimer("", 2, "AOESanityDmg");
{


I think that the timer at the end of the script is ignored, because a new "part" isn't started like so:

Spoiler below!
void OnStart()
{
if(ScriptDebugOn())
}
GiveItemFromFile("lantern", "lantern.ent");
{
PlaySoundAtEntity("RockRumble", "general_rock_rumble.snt", "Player", 0, false);
StartScreenShake(0.05f, 1, 0.4, 0.6);
AddTimer("", 1, "StopRockRumble");
SetPlayerCrouching(true);
AddEntityCollideCallback("Player", "ScriptArea_1", "Message1", true, 1);
AddEntityCollideCallback("Player", "ScriptArea_2", "AOESanityDmg", false, 1);
}

void StopRockRumble(string &in asTimer)
{
StopSound("RockRumble", 1);
}

void Message1(string &in asParent, string &in asChild, int alState)
{
SetMessage("Messages", "Popup3", 0);
}

void AOESanityDmg(string &in asParent, string &in asChild, int alState)
{
GiveSanityDamage(5, false);
if(GetEntitiesCollide("Player", "ScriptArea_2"))
}
{
AddTimer("", 2, "AOESanityDmg");
}

I'm new to scripting, but wanted to add my 2 cents. Maybe I'll learn something from this thread Smile