Facebook Twitter YouTube Frictional Games | Forum | Privacy Policy | Dev Blog | Dev Wiki | Support | Gametee


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
help with areas and scripting
wargamer Offline
Junior Member

Posts: 2
Threads: 1
Joined: Mar 2012
Reputation: 0
#1
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
Find
Apjjm Offline
Is easy to say

Posts: 496
Threads: 18
Joined: Apr 2011
Reputation: 52
#2
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
Find
wargamer Offline
Junior Member

Posts: 2
Threads: 1
Joined: Mar 2012
Reputation: 0
#3
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
Find




Users browsing this thread: 2 Guest(s)