Переход с Pawno на Lua. Часть 3 — синтаксические различия. Lua и PAWN – это совершенно разные языки, а значит и синтаксис у них разный. Давайте разберем несколько примеров различия.
Функции
Как мы все знаем, в PAWN используется примерно такая конструкция:
Code
#include <a_samp>
forward что-то();
public что-то()
{
код
}
В Lua это дело будет выглядеть так:
Code
function что-то()
код
end
Что изменилось?
1. нету include
2. нету forward
3. заместо public используется function
4. нету ; (хотя можно и использовать)
5. нету { и }, а заместо этого, для закрытия функции, используется end
Условия
Просто if в PAWN:
А вот if в Lua:
Code
if что то then
код
end
Что изменилось? Правильно, добавился then.
Else в PAWN:
Code
if
{
что то
}
else if
{
что то
}
в Lua:
Code
if что то then
код
elseif что то then
код
end
Что изменилось?
1. elseif в Lua пишется слитно
2. if не надо закрывать
Цикл
Обычная конструкция похожа, поэтому мы и посмотрим на наиболее часто нужную вещь, то есть на получение всех игроков.
PAWN:
Code
for(new i = 0; i < MAX_PLAYERS; i++)
{
код
}
где:
i - переменная,
1 < MAX_PLAYERS - выход из цикла.
Lua:
Code
for theKey,thePlayer in ipairs(getElementsByType ( "player" ) ) do
код
end
Вот что значит...
...theKey – ид игрока
...thePlayer – сам игрок
...getElementByType ( “player” ) - получение всех элементов типа «игрок»
...ipairs – незнаю, мб получить что то из этого, в общем надо профессионалов спрашивать.
Кстати, вот еще что можно получить с помошью getElementsByType:
"player" - игрок
"ped" - NPC
"vehicle" — транспортное средство
"object" - обьект
"pickup" - пикап
"marker" - чекпоинт
"blip" — иконка на карте
И еще несколько вещей, которые вы можете посмотреть на вики.
Еще различия:
в Lua ~=, а в PAWN != (спасибо за подсказку ZZiGGi), например:
Code
if a ~= 0 then
a = 0
end
в Lua для комментариев используется -- и вроде еще что то, я не помню Это вроде бы все основные синтаксические различия, если вспомните еще что нибудь, то напишите сюда.
Если с моими примерами павна что то не так, то напишите пожалуйста, а то я совершенно его забыл
P.S. Этот, и все остальные мои уроки написанны так, как я понимаю Lua и как мне удобно в нем работать
Ссылки:
getElementsByType
Русская документация по Lua