Have you ever wished pawn wasn't so C-like? Would you much prefer to script in the superior language of unix shell scripting? Well now you can! y_tho brings pawn syntax in to the 22nd century, with new keywords such as esac, fi, and many many more; just take a look:
Before:
for (new i = 0; i != 10; ++i)
{
printf("i is %d", i);
}Now:
for i in {0 .. 10}
do
echo i is %d, i
doneBefore:
if (playerid < 7)
{
SetPlayerPos(playerid, 0.0, 0.0, 4.0);
}Now:
if [ playerid -lt 7 ]
then
SetPlayerPos playerid, 0.0, 0.0, 4.0
fiBefore:
switch (boss)
{
case 5:
{
printf("boss is 5");
}
case 10:
{
printf("boss is 10");
}
}Now:
switch boss of
case 5)
printf("boss is 5");
case 10)
printf("boss is 10");
esacif [ i -gt 5 ]
then
echo "i is %d", i
elif [ i -eq 5 ]
then
echo i is 5
else
echo "i is something else"
fifor j in {7 .. 11}
do
echo j is %d, j
doneNote that this syntax will declare j as new.
for ((k = 10; k != 100; ++k))
do
echo k is %d, k
donewhile [ i -lt 10 ]
do
echo "i is %d", i
++i
doneuntil [ i -eq 15 ]
do
echo "i is %d", i
SetPlayerPos i, 0.0, 0.0, 4.0
++i
doneswitch i of
case 5)
echo i is 5
case 10)
echo i is 5
default)
echo i is %d, i
esacNote that this doesn't QUITE match the bash case syntax for technical reasons :(.
echo Hello world
echo "How are you?"
echo "The answer is %d", 42-lt- Less than.-le- Less than or equal to.-eq- Equal.-ne- Not equal.-ge- Greater than or equal to.-gt- Greater than.
These are now optional:
SetPlayerPos(playerid, 0.0, 0.0, 4.0)If you are using the new (community) compiler (which you really should be - it is available here: https://github.com/pawn-lang/compiler/releases), brackets are also optional:
SetPlayerPos playerid, 0.0, 0.0, 4.0Note that they're never required on echo regardless of your compiler.
y_not?
Because people kept joking about me writing a library called "y_tho", so I did.
I'm slightly apprehensive about even giving you the link to this, but here:
https://github.com/Y-Less/y_tho
It is also available through sampctl (another tool you should get from here: http://sampctl.com/) here:
sampctl package install Y-Less/y_thoInclude in your code and begin using the library:
#include <y_tho>