ФЭНДОМ


Lua (лу́а, с порт. — «луна») — скриптовый язык программирования, разработанный в подразделении Tecgraf (Computer Graphics Technology Group) Католического университета Рио-де-Жанейро (Бразилия). Интерпретатор языка является свободно распространяемым, с открытыми исходными текстами на языке Си.[1]

В данной статье будут даны области применения языка Lua в League of Legends Вики. Для более подробного изучения языка и его синтаксиса читайте следующие статьи:

Введение Править

Язык Lua стал вводиться в русскоязычном сегменте League of Legends Wiki с февраля 2019 года, когда был добавлен и частично локализован первый модуль Модуль:SkinData и хранилище SkinData/data, предназначенный для демонстрации образов чемпионов. Достаточно долгое время он был единственным скриптом, периодически обновлявшимся при выходе новых чемпионов и образов. В дальнейшем развитие получили скрипты для перекрашивания текста. Первым независимым модулем стал Модуль:Stats icon, заменивший сложный код шаблона Statistic icon.

Лавинообразное увеличение роли Lua показе информации об игре произошло зимой 2020 г., когда были созданы Модуль:ChampionData и первый полностью самостоятельный проект Модуль:ItemData, которые переняли сведения о чемпионах и предметах LoL из Data-шаблонов.

Основной задачей при внедрении Lua было уменьшить единовременное число правок при выходе обновлений, а также упрощение получения доступа к различным данным о конкретном чемпионе или предмете. Также стоит отметить, что внешне Lua гораздо ближе к традиционным языкам программирования, чем функции парсера, хотя и не предоставляет практически никакого функционала, который не давали бы вторые (в этом основное отличие от используемого в проектах JavaScript, чьи функции могут быть опасны и посему должны быть обязательно отправляться на проверку перед выпуском в проекте).

Структура Lua на сайте Править

В целом все существующие Lua скрипты можно разделить на два вида по области применения: утилиты и хранилища. Утилиты содержат полезные функции, которые слишком сложно записывать при помощи функций парсера: перекрашивание текста по ключевым словам, вывод иконок и др.

Основные используемые скрипты-утилиты:

  • Модуль:Feature - Общая библиотека стандартных программистских функций, например, сортировка массива, тернарный оператор, проверка на nil и прочее.
  • Модуль:Filename - библиотека для вызова названий файлов
  • Модуль:ImageLink - библиотека для вызова любых иконок игровых объектов.
  • Модуль:Color - библиотека для перекрашивания текста по ключевым словам (используется в шаблоне {{As}})
  • Модуль:Stats icon - библиотека для вызова иконок характеристик (используется в шаблоне {{Sti}})
  • Модуль:RusLocalization - библиотека со специфическими функциями локализации

Модули-хранилища используются как базы данных об определенном классе игровых объектов: чемпионах, их образах, предметах, рассказах. Они состоят из 3 компонентов:

( Для упрощения доступа также у некоторых хранилищ есть геттер (например, Модуль:ItemData/getter), с помощью которого можно получать конкретные поля объектов.

Вызов Править

Вызов многих модулей вставлен в шаблоны, чтобы упростить использование или избежать неверного указания параметров. У модулей практически нет "защиты от дурака" и при любой ошибке работа модуля будет приостановлена.

Основной код для вызова:

{{#invoke:''Название модуля''|Название функции}}
Пример
{{#invoke:ChampionData|getChampionTable}}

Примечания Править

Материалы сообщества доступны в соответствии с условиями лицензии CC-BY-SA , если не указано иное.