09-16-2012, 03:44 PM
Have you ever wondered what it is when people talk about a parameter?
Don't you know how it works? Well, I'll tell you.
A parameter is the little amount of text inside these ( Parameter)
They always come after: void function() <-- parameter goes in here
parameters are used to specify what kind of callback you want.
Here are some common examples:
AddEntityCollideCallback
Colliding = (string &in asParent, string &in asChild, int alState)
Because:
asParent = 1st object
asChild = 2nd object
alState = How do they collide? When 1 goes inside? When 1 goes outside? Both?
SetEntityPlayerInteractCallback
Interacting = (string &in asEntity)
Because:
asEntity = The entity you interact with. There can only be 1 thing that is cabable of interacting and that is the player.
AddUseItemCallback
Use Item = (string &in asItem, string &in asEntity)
Because:
asItem = The item you use.
AsEntity = The entity you use it on
SetEntityPlayerLookAtCallback
Look-at function = (string &in asEntity, int alState)
Because:
asEntity = The entity you look at
alState = Defining if you are: Looking at it? Looking away from it? Both?
CheckPoint
Checkpoint function = (string &in asName, int alCount)
Because:
asName = The name of the Checkpoint.
alCount = How many times you have respawned at that checkpoint.
AddTimer
Timer function = (string &in asTimer)
Because:
asTimer = The name of the timer.
SetEntityCallbackFunc
SetEntityCallbackFunc = (string &in asEntity, string &in asType)
Because:
asEntity = The entity you are specifying.
asType = Which kind of callback are you wanting? OnPickup? Break? OnIgnite?
Now these parameters are commonly used in scripts and if-statements.
If you don't know what an if-statement is then you should check that out first, because that will make your scripting even better!
I will give you some function examples for each of the codes i have listed above:
AddEntityCollideCallback("Player", "ScriptArea_1", "CollideFunction", true, 0);
void CollideFunction(string &in asParent, string &in asChild, int alState)
{
if(alState == 1)
{
//Do something if the player is walking into the script area.
//How about a screen effect?
FadeImageTrailTo(1, 1);
}
if(alState == -1)
{
//Do something when the player leaves the script area
FadeImageTrailTo(0, 1);
}
}
SetEntityPlayerInteractCallback("ScriptArea", "InteractFunction", true);
void InteractFunction(string &in asEntity)
{
//First we do stuff
FadeImageTrailTo(1, 1);
//And then we set the entity, that we just interacted with, inactive
SetEntityActive(asEntity, false);
}
**Notice that in the next function there is 2 items, but only 1 script area**
AddUseItemCallback("", "Item_1", "ScriptArea_1", "UseItemFunction", true);
AddUseItemCallback("", "Item_2", "ScriptArea_1", "UseItemFunction", true);
void UseItemFunction(string &in asItem, string &in asEntity)
{
if(asItem == "Item_1")
{
//Do stuff if you used Item_1
}
if(asItem == "Item_2")
{
//Do stuff if you used Item_2
}
}
CheckPoint("", "PlayerStartArea_1", "CheckpointFunction", "DeathHints", "Entry_1");
void CheckpointFunction(string &in asName, int alCount)
{
if(alCount == 5)
{
//Do stuff if you respawned 5 times
}
}
**Notice that "asTimer" is the same as "asName"**
**Also notice that I am calling 2 timers. The first is called in 5 seconds. The second is called in 10 seconds. Both of them is calling the same function, but they have different asName**
AddTimer("Timer_1", 5, "TimerFunction");
AddTimer("Timer_2", 10, "TimerFunction");
void TimerFunction(string &in asTimer)
{
if(asTimer == "Timer_1")
{
//Do stuff after 5 sconds
}
if(asTimer == "Timer_2")
{
//Do stuff after 10 seconds
}
}
**Notice that in this script i am interacting with a candle, but it could have been a lot of other stuff... Though the Onignite only works on candles (I guess)**
SetEntityCallbackFunc("candle_1", "CallbackFunction");
void CallbackFunction(string &in asEntity, string &in asType)
{
if(asType == "OnIgnite")
{
//Do stuff when you light the candle, but only if you light the candle!
}
}
Don't you know how it works? Well, I'll tell you.
A parameter is the little amount of text inside these ( Parameter)
They always come after: void function() <-- parameter goes in here
parameters are used to specify what kind of callback you want.
Here are some common examples:
AddEntityCollideCallback
Colliding = (string &in asParent, string &in asChild, int alState)
Spoiler below!
Because:
asParent = 1st object
asChild = 2nd object
alState = How do they collide? When 1 goes inside? When 1 goes outside? Both?
Interacting = (string &in asEntity)
Spoiler below!
Because:
asEntity = The entity you interact with. There can only be 1 thing that is cabable of interacting and that is the player.
Use Item = (string &in asItem, string &in asEntity)
Spoiler below!
Because:
asItem = The item you use.
AsEntity = The entity you use it on
Look-at function = (string &in asEntity, int alState)
Spoiler below!
Because:
asEntity = The entity you look at
alState = Defining if you are: Looking at it? Looking away from it? Both?
CheckPoint
Checkpoint function = (string &in asName, int alCount)
Spoiler below!
Because:
asName = The name of the Checkpoint.
alCount = How many times you have respawned at that checkpoint.
Timer function = (string &in asTimer)
Spoiler below!
Because:
asTimer = The name of the timer.
SetEntityCallbackFunc = (string &in asEntity, string &in asType)
Spoiler below!
Because:
asEntity = The entity you are specifying.
asType = Which kind of callback are you wanting? OnPickup? Break? OnIgnite?
If you don't know what an if-statement is then you should check that out first, because that will make your scripting even better!
I will give you some function examples for each of the codes i have listed above:
AddEntityCollideCallback("Player", "ScriptArea_1", "CollideFunction", true, 0);
Spoiler below!
void CollideFunction(string &in asParent, string &in asChild, int alState)
{
if(alState == 1)
{
//Do something if the player is walking into the script area.
//How about a screen effect?
FadeImageTrailTo(1, 1);
}
if(alState == -1)
{
//Do something when the player leaves the script area
FadeImageTrailTo(0, 1);
}
}
Spoiler below!
void InteractFunction(string &in asEntity)
{
//First we do stuff
FadeImageTrailTo(1, 1);
//And then we set the entity, that we just interacted with, inactive
SetEntityActive(asEntity, false);
}
AddUseItemCallback("", "Item_1", "ScriptArea_1", "UseItemFunction", true);
AddUseItemCallback("", "Item_2", "ScriptArea_1", "UseItemFunction", true);
Spoiler below!
void UseItemFunction(string &in asItem, string &in asEntity)
{
if(asItem == "Item_1")
{
//Do stuff if you used Item_1
}
if(asItem == "Item_2")
{
//Do stuff if you used Item_2
}
}
Spoiler below!
void CheckpointFunction(string &in asName, int alCount)
{
if(alCount == 5)
{
//Do stuff if you respawned 5 times
}
}
**Also notice that I am calling 2 timers. The first is called in 5 seconds. The second is called in 10 seconds. Both of them is calling the same function, but they have different asName**
AddTimer("Timer_1", 5, "TimerFunction");
AddTimer("Timer_2", 10, "TimerFunction");
Spoiler below!
void TimerFunction(string &in asTimer)
{
if(asTimer == "Timer_1")
{
//Do stuff after 5 sconds
}
if(asTimer == "Timer_2")
{
//Do stuff after 10 seconds
}
}
SetEntityCallbackFunc("candle_1", "CallbackFunction");
Spoiler below!
void CallbackFunction(string &in asEntity, string &in asType)
{
if(asType == "OnIgnite")
{
//Do stuff when you light the candle, but only if you light the candle!
}
}