Frictional Games Forum (read-only)
Help needed! I can't find error in script. - 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: Help needed! I can't find error in script. (/thread-13598.html)



Help needed! I can't find error in script. - Tozken - 02-26-2012

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


RE: Help needed! I can't find error in script. - Tozken - 02-26-2012

Bump! Really need help with this. I can't continue until I solve it :/


RE: Help needed! I can't find error in script. - Alento - 02-26-2012

(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);

}


RE: Help needed! I can't find error in script. - Tozken - 02-26-2012

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!


RE: Help needed! I can't find error in script. - jessehmusic - 02-28-2012

(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


{

}



RE: Help needed! I can't find error in script. - flamez3 - 02-28-2012

He is using a If statement, he needs the other } there.


RE: Help needed! I can't find error in script. - Alento - 02-28-2012

(02-28-2012, 10:36 AM)flamez3 Wrote: He is using a If statement, he needs the other } there.
(Y) yepp


RE: Help needed! I can't find error in script. - jessehmusic - 02-28-2012

(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");
{





RE: Help needed! I can't find error in script. - Asphex - 02-28-2012

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