[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Переход с Pawno на Lua. Часть 3
Дата: 17.04.2011, Воскресенье, 12:15:41 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 16
Репутация: 67+
Переход с 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:

Code

if что то         
{     
     код
}     

А вот 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

Дата: 22.04.2011, Пятница, 07:35:44 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 9
Репутация: 4+
Код очень похож на Delphi
  • Страница 1 из 1
  • 1
Поиск: