Update script_commands.txt
Added documentation for switch statement.
This commit is contained in:
parent
51f26d43d2
commit
7081f0ce7a
@ -1964,6 +1964,64 @@ with this command when a script is parsed.
|
|||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
*switch (expression);
|
||||||
|
|
||||||
|
The switch statement is similar to a series of if statements on the same expression.
|
||||||
|
In many occasions, you may want to compare the same variable (or expression)
|
||||||
|
with many different values, and execute a different piece of code depending
|
||||||
|
on which value it equals to. This is exactly what the switch statement is for.
|
||||||
|
|
||||||
|
It is important to understand how the switch statement is executed in order
|
||||||
|
to avoid mistakes. The switch statement executes line by line (actually, statement by statement).
|
||||||
|
In the beginning, no code is executed. Only when a case statement is found
|
||||||
|
with a value that matches the value of the switch expression the case statement(s)
|
||||||
|
will to executed. The parser continues to execute the statements until the end
|
||||||
|
of the switch block, or the first time it sees a break statement. If you don't
|
||||||
|
write a break statement at the end of a case's statement list, the parser will
|
||||||
|
go on executing the statements of the following case (fall-through).
|
||||||
|
|
||||||
|
Example 1:
|
||||||
|
|
||||||
|
switch(select("Yes:No")) {
|
||||||
|
case 1:
|
||||||
|
mes "You said yes!";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
mes "Aww, why?";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
close;
|
||||||
|
|
||||||
|
The example above would work like a menu and would go to the first case if
|
||||||
|
the user selects option, otherwise, would go to the second one.
|
||||||
|
|
||||||
|
Example 2:
|
||||||
|
|
||||||
|
switch(getgroupid()) {
|
||||||
|
case 1:
|
||||||
|
mes "Wow, you're super!";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
mes "A helping hand!";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
mes "10001010010011";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
mes "Yes, milord?";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
mes "Hello there!";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
The example above would print a message depending on the player's groupid.
|
||||||
|
If there is no statement declared for the corresponding groupid, the script
|
||||||
|
would use the 'default' statement that applies to rest of possible values,
|
||||||
|
similar to 'else' in the if-else statement.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
*while (<condition>) <statement>;
|
*while (<condition>) <statement>;
|
||||||
|
|
||||||
This is probably the simplest and most frequently used loop structure. The 'while'
|
This is probably the simplest and most frequently used loop structure. The 'while'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user