Добавлен , опубликован
Раздел:
Триггеры и объекты
Содержание:
Эта статья для тех, кто знаком хотя бы с jass. И пытается научиться программированию по lua.

Немного о Lua

Lua ([луа], порт. «луна») — интерпретируемый язык программирования, разработанный подразделением Tecgraf Католического университета Рио-де-Жанейро.
По возможностям, идеологии и реализации язык ближе всего к JavaScript, однако Lua отличается более мощными и гораздо более гибкими конструкциями. Хотя Lua не содержит понятия класса и объекта в явном виде, механизмы ООП, включая множественное наследование, легко реализуются с использованием метатаблиц.
Язык широко используется для создания тиражируемого программного обеспечения (на нём написан графический интерфейс пакета Adobe Lightroom). Также получил известность как язык программирования уровней и расширений во многих играх (например, World of Warcraft) из-за удобства встраивания, скорости исполнения кода и лёгкости обучения.

Источники

Здесь приложены очень хорошие источники. Скажу, что в интернете очень много хороших примеров и источников. Можно и самим найти. Но здесь, я дам ссылки на хорошие источники
учебник по луа => очень хороший и подробный учебник. Тут больше, чем нужно для информации. Для начинающего может быть сложно. это более подробная инфа, мб кому-то лень читать
справочник луа => краткий справочник для тех кому лень. хорошие примеры по луа. много библиотек с примерами, функциями и пр.
небольшой мануал по луа => это еще один справочник по луа
буржуйский справочник на англ
в интернете полно онлайн-программ для проверки кода
онлайн демо-луа => жалко, что не показывает номер строки и не привычный дизайн оформление немного отталкивает. долго грузится. хотя все онлайн кажется грузятся.
еще одна
самая неплохая

Скрипты в Lua

Написанный на Lua скрипт не имеет какой-либо специальной функции, с которой начиналось бы его выполнение. Скрипт можно рассматривать просто как набор команд (инструкций), который выполняется, начиная с первой инструкции.
Скрипт может быть как очень простым, состоящим всего из одной команды, так и весьма сложным, содержащим десятки, сотни и даже тысячи инструкций. Следующие друг за другом инструкции могут разделяться точкой с запятой (;). Однако это требование не является обязательным, поэтому весь приведённый ниже код является корректным с точки зрения синтаксиса:
a = 1; b = 2
a = 1 b = 2
a = 1;
b = 2;
a = 1
b = 2

`
ОЖИДАНИЕ РЕКЛАМЫ...
1
17
3 месяца назад
1
Для того чтобы легко поддерживать хоть сколько то большой проект на lua необходимы подсказки типов. А те typechecker которые есть сейчас не имеют возможности описывать generic типы.
Из за того что стандартный тип `table` имеет разные порядок при обходе через `pairs()` на разных ПК, это критически требует создания собственных коллекций просто чтобы начать хранить данные, а без generic типов поддержка коллекций быстро превратится в ад
1
26
3 месяца назад
Отредактирован Hate
1
Для того чтобы легко поддерживать хоть сколько то большой проект на lua необходимы подсказки типов. А те typechecker которые есть сейчас не имеют возможности описывать generic типы.
Из за того что стандартный тип `table` имеет разные порядок при обходе через `pairs()` на разных ПК, это критически требует создания собственных коллекций просто чтобы начать хранить данные, а без generic типов поддержка коллекций быстро превратится в ад
у меня довольно объёмный проект на луа, как то справляюсь без коллекций и пейрсов
из плагинов только EmmyLua
0
37
3 месяца назад
0
Vlod, да кстати дичь полнейшая, что близзы не делают, получается калашников неюзабельное

Hate, а как справляешься с десинками?
0
26
3 месяца назад
0
Vlod, да кстати дичь полнейшая, что близзы не делают, получается калашников неюзабельное

Hate, а как справляешься с десинками?
какими десинками?) их нет
0
37
3 месяца назад
0
У меня реджектят наработки на хайве из-за наличия pairs, патч как раз выпустил
0
26
3 месяца назад
0
У меня реджектят наработки на хайве из-за наличия pairs, патч как раз выпустил
если не использовать pairs для логики игры, то и десинкать не будет

у меня наверное pairs и ipairs в паре мест используется, но не для логики
Чтобы оставить комментарий, пожалуйста, войдите на сайт.