League of Legends Wiki
Регистрация
Advertisement
League of Legends Wiki
Jhin OriginalCircle
▶️   Мир жесток. Но безобразным он быть не должен.
Данная статья содержит наставления по написанию статей. Они не являются нерушимыми правилами, и читатель волен использовать их по своему усмотрению.
Zoe CyberPopCircle

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

Информация ниже изобилует техническими терминами из информатики и программирования. Вас предупредили.
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 - библиотека со специфическими функциями локализации

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

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

Вызов[ | ]

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

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

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

Примечания[ | ]

Advertisement