Frictional Games Forum (read-only)

Full Version: creating lots of helpfull functions?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
hello,

I want to create pre-made functions that i will use again and again inside my script file. For example, i want to create the function WaitOneSec(which will obviously permit me to place a timer of 1 second wherever i want), and then WaitTwoSec, WaitThreeSec etc..

The problem is that i am not sure how to put it, because AddTimer demands a function as parameter. Should i do it like that :

Code:
void WaitOneSec(string& asFunction)
{
AddTimer("", 1.0f, asFunction);
}

and then in my main code, whenever i want to add a timer before a function, i would do the following(for example wait 1 sec then kill player) :
Code:
WaitOneSec("KillPlayer");

This is assuming 1.0f is equal to one second.

What do you think ?

EDit :
Also, is it possible to insert a function inside another function as parameter with this scripting language, like this :
Code:
AddEntityCollideCallback("Player", "AreaChairFly", AddPropImpulse("MyChair", 0.0, 7, 0.0, "world"), false, 0);

Thanks!
(09-18-2010, 07:57 AM)gosseyn Wrote: [ -> ]hello,

I want to create pre-made functions that i will use again and again inside my script file. For example, i want to create the function WaitOneSec(which will obviously permit me to place a timer of 1 second wherever i want), and then WaitTwoSec, WaitThreeSec etc..

The problem is that i am not sure how to put it, because AddTimer demands a function as parameter. Should i do it like that :

Code:
void WaitOneSec(string& asFunction)
{
AddTimer("", 1.0f, asFunction);
}

and then in my main code, whenever i want to add a timer before a function, i would do the following(for example wait 1 sec then kill player) :
Code:
WaitOneSec("KillPlayer");

This is assuming 1.0f is equal to one second.

What do you think ?

This would indeed work.

(09-18-2010, 07:57 AM)gosseyn Wrote: [ -> ]EDit :
Also, is it possible to insert a function inside another function as parameter with this scripting language, like this :
Code:
AddEntityCollideCallback("Player", "AreaChairFly", AddPropImpulse("MyChair", 0.0, 7, 0.0, "world"), false, 0);
Nope, this wouldn't work, cos the AddEntityCollideCallback expects a collide callback function name only (meaning a function with 3 parameters - String parent_name, String child_name, int state_of_collision). You can always create a function that works just like an alias for that call, like:

Code:
AddEntityCollideCallback("Player", "AreaChairFly", "CollideWithAreaChairFly", false, 0);

...

void CollideWithAreaChairFly(String &in asParent, String &in asChild, int alState)
{
      AddPropImpulse("MyChair", 0.0, 7, 0.0, "world");
}

(09-18-2010, 07:57 AM)gosseyn Wrote: [ -> ]Thanks!

You're welcome Smile
(09-18-2010, 09:51 AM)Luis Wrote: [ -> ]Nope, this wouldn't work, cos the AddEntityCollideCallback expects a collide callback function name only (meaning a function with 3 parameters - String parent_name, String child_name, int state_of_collision). You can always create a function that works just like an alias for that call, like:

Code:
AddEntityCollideCallback("Player", "AreaChairFly", "CollideWithAreaChairFly", false, 0);

...

void CollideWithAreaChairFly(String &in asParent, String &in asChild, int alState)
{
      AddPropImpulse("MyChair", 0.0, 7, 0.0, "world");
}

I do believe he wants anonymous functions, which would be very convenient. I'm not too familiar with AngelScript, but from what I could gather it doesn't seem to support anonymous functions.