wargamer
Junior Member
Posts: 2
Threads: 1
Joined: Mar 2012
Reputation:
0
|
help with areas and scripting
Alright i am new to scripting and this is my first custom story. In my first room, im trying to make a door open as soon as a person walks into a script area right in front of the door.
however im getting these errors:
main (3,1) : INFO : Compiling void OnStart()
main (16,6) : RR : Expected "("
Here is my script so far:
////////////////////////////
// Run first time starting map
void OnStart()
{
//Add the Lantern and 10 Tinderboxes when in Debug mode
if(ScriptDebugOn())
{
GiveItemFromFile("lantern", "lantern.ent");
for(int i=0;i<10;i++) GiveItemFromFile("potion_oil_large_"+i, "potion_oil_large.ent");
} for(int i=0;i<10;i++) GiveItemFromFile("tinderbox_"+i, "tinderbox.ent");
//Door opens by itself when moving into Trigger_Area1
{
AddEntityCollideCallback("Player", "ScriptArea1", "Collide_Area", true, 1);
}
void Collide_Area(string &in asParent, string &in asChild, int alState)
{
SetSwingDoorClosed("prison_1", false, true);
SetSwingDoorDisableAutoClose("prison_1", true);
AddPropImpulse("prison_1", 900.0f, 0.0f, 0.0f, "");
}
}
(This post was last modified: 03-19-2012, 08:53 PM by wargamer.)
|
|
03-19-2012, 02:31 AM |
|
Apjjm
Is easy to say
Posts: 496
Threads: 18
Joined: Apr 2011
Reputation:
52
|
RE: help with areas and scripting
There seems to be a few issues. I have fixed the bracketing and also merged two for loops based off the assumption that you want to add 10 of both oil and tinderboxes only when in debug mode - the rest of the code looks OK but then again I may have missed something. Try the following:
////////////////////////////
// Run first time starting map
void OnStart()
{
//Add the Lantern and 10 Oil + Tinderboxes when in Debug mode
if(ScriptDebugOn())
{
GiveItemFromFile("lantern", "lantern.ent");
for(int i=0;i<10;i++)
{
GiveItemFromFile("potion_oil_large_"+i, "potion_oil_large.ent");
GiveItemFromFile("tinderbox_"+i, "tinderbox.ent");
}
}
//Door opens by itself when moving into Trigger_Area1
AddEntityCollideCallback("Player", "ScriptArea1", "Collide_Area", true, 1);
}
void Collide_Area(string &in asParent, string &in asChild, int alState)
{
SetSwingDoorClosed("prison_1", false, true);
SetSwingDoorDisableAutoClose("prison_1", true);
AddPropImpulse("prison_1", 900.0f, 0.0f, 0.0f, "");
}
It may just be the formatting when copy-pasting but indenting your code really helps you keep track of what brackets belong where - if you do not already do this.
(This post was last modified: 03-19-2012, 03:48 AM by Apjjm.)
|
|
03-19-2012, 03:47 AM |
|
wargamer
Junior Member
Posts: 2
Threads: 1
Joined: Mar 2012
Reputation:
0
|
RE: help with areas and scripting
(03-19-2012, 03:47 AM)Apjjm Wrote: There seems to be a few issues. I have fixed the bracketing and also merged two for loops based off the assumption that you want to add 10 of both oil and tinderboxes only when in debug mode - the rest of the code looks OK but then again I may have missed something. Try the following:
////////////////////////////
// Run first time starting map
void OnStart()
{
//Add the Lantern and 10 Oil + Tinderboxes when in Debug mode
if(ScriptDebugOn())
{
GiveItemFromFile("lantern", "lantern.ent");
for(int i=0;i<10;i++)
{
GiveItemFromFile("potion_oil_large_"+i, "potion_oil_large.ent");
GiveItemFromFile("tinderbox_"+i, "tinderbox.ent");
}
}
//Door opens by itself when moving into Trigger_Area1
AddEntityCollideCallback("Player", "ScriptArea1", "Collide_Area", true, 1);
}
void Collide_Area(string &in asParent, string &in asChild, int alState)
{
SetSwingDoorClosed("prison_1", false, true);
SetSwingDoorDisableAutoClose("prison_1", true);
AddPropImpulse("prison_1", 900.0f, 0.0f, 0.0f, "");
}
It may just be the formatting when copy-pasting but indenting your code really helps you keep track of what brackets belong where - if you do not already do this.
omg thank you so much! i have trying for two days straight trying to figure it out myself. ill try to learn from the mistakes i have made. thanks again.
|
|
03-19-2012, 08:43 PM |
|
|