Lua scripts: примери за инсталиране и изпълнение

Lua не е интерпретиран език и генерира байт-код от друга програма, например Java. Тази програма работи на виртуалната машина Lua VM. Повечето от тези устройства се наричат ​​стекове, но Lua се различава по това, че се основава на регистри и е една от първите широко използвани VM в сектора на игрите. Предимството на регистърната архитектура е, че избягва голямо количество копирани данни и намалява обхвата на инструкциите за функцията. Lua VM има автоматично управление на паметта и ненужно извличане на данни, като осигурява перфектна конфигурация за бързи прототипи.

Накратко за Лува

Lua е лесен за научаване и бърз скриптов език с паскалов синтаксис. Това позволява на начинаещите програмисти да пишат свои собствени програми. Той се използва в много игри и приложения за разширяване на съществуващите функционалности и последователности от програмисти. Има много програми за обучение в интернет, които ви помагат да работите на този език, включително много информация за началната страница на Lua.


Този език за програмиране е създаден през 1993 г. от програмистите Роберто Йерусалим, Луис Енрике де Фигуеридо и Валдемар Целес от Университета в Рио де Жанейро, където се намира офисът на LabLua. Името идва от португалския, което означава "месец" в превода. Един от предшествениците е SOL (Simple Object Language). Тъй като името Луа е съществително, не е съкращениене трябва да се пише като LUA, а именно Lua. Той е гъвкав език, използва се по няколко начина:
  • Уикипедия използва Lua за шаблони за скриптове.
  • VLC Media Player работи с Lua скриптове за quik скриптове.
  • Lua се използва в промишлени приложения като Adobe Lightroom.
  • Програми за вградени системи, като например междинната Ginga за цифрова телевизия.
  • Gry е водеща игра за скриптове, например, използвана за създаване на World of Warcraft и Angry Birds.
  • Всеки може да се опита да използва онлайн кода в демо Lua с интересен начин да изследва и използва двигателя на играта.
  • Функционалността на тази програма може да се използва в L? VE, Defold и, разбира се, в Pico-8.


    Основи на синтаксиса

    Lua използва много опростен синтаксис. Потребителят не трябва да използва разделени със запетая точки или големи пропуски, защото тези знаци се интерпретират от самата програма. Всички променливи в скриптовете Lua за quik са глобални глобални. Ето защо винаги е необходимо да се уточни кога са необходими местни стойности за настоящия регион и да се обявят предварително. Всъщност на практика има много малко случаи, в които глобалните стойности наистина са необходими. Можете да дефинирате локална променлива с ключовата дума local. В същото време не е необходимо да се декларира неговата стойност. Глобалните променливи означават контекста на настоящия сценарий и следователно не са за всеки отделен сценарий в играта, който работи независимо и автономно.
    Променливите могат да съдържат каквато и да е последователност от цифри, букви и подчертания, но не сатрябва да започва с номера. Null представлява ключова дума, когато променливите не са дефинирани. Непубликуваните се различават от декларираните променливи, които нямат значение. Примери за скриптове на Lua:

    Кодови блокове и оператори, ако

    Блоковете се дефинират от определени ключови думи, последвани от "край". Условията в операторите if трябва да бъдат последвани от бутона "then". Ако операторите използват "elseif", а не "else if". Можете да създадете нова празна област с блок "doend". Lua използва специален тип данни, наречен таблица, предназначена за създаване на масиви, речници, хеш-таблици, обекти на други езици .Таблицата е просто списък от двойки ключ-стойност, която може да бъде всякакъв тип данни, дори и други таблица. Можете да използвате логическа стойност като ключ. Тъй като Lua е динамично въведен, можете да имате всякаква комбинация от типове данни както в ключовете, така и в потребителските селекции, които трябва да бъдат определени преди инсталирането на Lua скриптове. Стойностите на таблиците могат да бъдат дефинирани както вътрешно, така и индивидуално. Обикновено има два начина да получите и зададете техните стойности, синтаксис "точка", например "myTable.a", и синтаксиса на скобата, например "myTable [" a "]". При използване на низове може да се използва само синтаксисът на точката и не може да се използва, ако низът започва от номера.
    Всяка стойност в таблицата се взема под внимание, нула - ако не е зададена. Това означава, че е невъзможно да се определи дали стойността е декларирана в таблицата или е само нула, ако никога не е била дефинирана преди. Това означава, че ако ключовете в таблицатапосочено и настроено на нула, то няма да има никакъв ефект, или по-скоро ще бъде същото, както ако изобщо не е било определено. В Lua цифровите клавиатури започват с индекс 1, а не с 0. Това е причината за голямото главоболие за програмистите. Можете да разделите вградените елементи на таблицата със запетая или точка и запетая.

    Сложен тип данни

    Таблиците се считат за сложен тип данни в Lua - това означава, че променливите в тях просто се отнасят до един и същ обект в паметта, така че не можете директно да сравнявате двете стойности и да очаквате, че те ще направят нещо. Линиите, цифрите, буквите и други примитивни типове данни обаче могат да се сравняват директно. Цифрите в Lua се използват само в една форма - техният собствен номер. Няма такива типове като int, float, long, double и други, както в други езици, и това трябва да се вземе предвид, преди да се инсталират Lua скриптове. Технически, всички стойности в Lua са числа с плаваща запетая.
    Lua има само "=" оператор за определяне и увеличаване. Той няма "+ =", "- =", "++" или нещо друго. Операторът на конкатенацията е "". Можете да приложите тази операция върху линии и номера без никакви проблеми. Не можете обаче да комбинирате други типове данни - логически или таблични. Можете да получите дължината на таблица или низ с оператор "#" и това работи само за масиви с числови индекси. Например, кодът няма да работи с таблици, които имат низови индекси.

    Типове контури Loops

    Има четири вида цикли Loop, които в превод означават цикъл или завой. Докато (междинно) е най-простата формацикъл и функции, както би трябвало да се очаква на други езици, и означава, че проверката се извършва преди началото на вътрешния блок. Цифрово за цикъл (цифров). Цикълът прилага локалната променлива към неговата област и я увеличава или намалява. Потребителят обявява и определя променливата, която ще се използва, и значението на целта. Generic for loop (генериран) - използва итераторната функция. Той се извиква от повторението на всеки цикъл и връща стойностите, които ще се използват в него. Pairs (двойки) е итераторна функция в глобален мащаб. Той приема таблицата като аргумент, връща индекса и стойността на всяка променлива в таблицата. Кодът ще покаже дори ненулеви индекси. Тя има "брат" - ipairs, който прави същото, с изключение на това, че работи само с цифрови показатели и спира, когато се достигне до нула. Цикълът на повторение е подобен на този за време, с изключение на това, че проверките на условията се извършват в края на блока, а не в началото. Преди да отворите скрипта lua, трябва да имате предвид, че кодът вътре ще бъде стартиран поне веднъж. Цикълът на повторение обикновено избягва развитието на този език, тъй като неговият прецедент е ограничен и труден за четене, защото не използва стандартния синтаксис.

    Метод на функцията

    Функциите са друг сложен тип данни, които могат да се предават като променливи и можете също да ги извикате да изпълняват кода вътрешно. Те са подобни на методите на други езици. Има два начина за дефиниране на функция в Lua. Първата реклама е глобална, защото няма местна ключова дума. Като правилоглобалните функции се считат за приемливи. Въпреки това, потребителят все още може да ги направи местни, ако е необходимо, чрез задаване на "местен" фронт. Можете също така да декларирате променливи преди да идентифицирате функции, които все още са подобни на всеки друг тип данни. Можете да ги прехвърлите, да зададете променливи или да приемете колкото се може повече аргументи, като използвате синтаксиса "". Действителният обект е "tuple" (tuple), така че трябва да го обградите с фигурни скоби, за да конвертирате данни в таблица. Кортежът е просто списък с имена, като например функционални параметри, които могат да връщат множество стойности и те могат да се наричат ​​променливи. Ако поставите функция в таблица, можете да я извикате по два различни начина. Синтаксисът на стандартната точка или двоеточието изпраща масив като първи аргумент.

    Глобално пространство за имена

    "Loua" предоставя няколко таблици в глобалното пространство от имена, които съдържат допълнителни функции като "string", "table" и "math". Следователно, потребителят никога не трябва да указва никаква променлива от името, защото те ще преразпределят масиви, които съдържат полезни функции. Има две таблици, които се споделят от всички скриптове на сървъра или клиента (но не и за двете) - това е "_G" и "shared". Първият е наистина глобален, който се реализира чрез отделни скриптове, така че ако искате да получите или зададете стойности от него, използвайте "_G.something". "Strings" (Strings) - тази функция Lua може по няколко начина да дефинира литерални и мултилинии данни чрез двойни квадратни скоби. И същомежду квадратните скоби ([=== [] ===]) можете да поставяте произволен брой знаци за равенство (=). Те са балансирани, могат да включват последователности вътре, като]]. Lua също има свой собствен набор от вградени функции за манипулиране на линии и своя собствена, заглушена версия на регулярни изрази, които се наричат ​​шаблони на низове.

    Game Lunar Script

    Това е много проста първа стъпка в писането на програмата, но те са добри отправни точки за разбиване на Garry Mod 10 Lua скриптове. Първата стъпка е да създадете действителен скриптов файл за Lua. Отворете текста или редактора - лаптопът ще работи добре за тази цел. След това запишете този файл, като напишете както на картинката.
    Къде:
  • - потребителско име на пароли.
  • - Директория на Steam за Mod.
  • По подразбиране за Lua скриптове за garry s mod обикновено е "C: Program FilesSteamsteamappsgarrysmod", но може да се различава от "autorunclient" на вашия компютър. Всички скриптови файлове, които са поставени в тази директория ще стартират, когато Lua стартира на клиента, например, когато се стартира нова игра или потребителят се присъедини към сървъра. След това създайте файл Hello World, добавяйки към него скрипта lua mod script. Това е най-лесният вариант.
    Това може да изглежда малко объркващо наведнъж. Скриптът извежда съдържанието на таблицата (кои масиви или списъци се наричат) и пресича данните към конзолната команда, за да потвърди, че е необходимо да дефинира функция, която не приема никакви параметри и не връща стойността, но задължително определя "края" в края на своите команди. Функциите са модулни кодови фрагменти, които саможе да се използва няколко пъти. Този пример показва как да стартирате скрипта Lua. Тук се създава списък с низове, но потребителят може да добавя и други обекти. Масите са асоциативни или хашиши. Това означава, че всеки елемент от списъка може да се отнася към ключа.
    Тези команди отпечатват всички елементи на таблицата, а структурата се нарича цикъл. Обърнете внимание на двойката myTable, която се изпълнява веднъж за всеки елемент и връща двойка ключ /стойност за стойностите в списъка. Стойността е елемент в таблицата, а ключът е само начин за свързване с него. Този пример показва как да се извеждат текстови и стойностни променливи със същата команда за печат. Променливите "ключ" и "стойност" се задават в цикъла по-горе. Обърнете внимание на "" между редовете и променливите. Символът "" е операторът на конкатенацията на Lua. Това указва на езика, който трябва да се залепи заедно двата елемента заедно и ги разглежда като един .concommand.Add текстов низ:
  • my_test_function;
  • myTestFunction.
  • Записът създава команда за конзола, която стартира само започналата функция. Първият му параметър е името на контролния екип, в този случай: "my_test_function". Това е, което потребителят влиза в конзолата за режим Garry, за да изпълни скрипта. Вторият параметър е функцията за стартиране, в този случай: myTestFunction. Този файл трябва да бъде запазен по-късно. След това тестват сценария, стартират новата игра на Garry's Mod. След това отворете конзолата с помощта на тилдата (~). Ако не се появи, трябва да го активирате, като напишете "my_test_function" в ред в долната част на панела. Веднъж стартирана, ще започне автоматично попълванена екрана с името на командата, натиснете Enter, за да я стартирате.

    Характеристики на Lua-Quick-Try-Out

    Тази конзола е предназначена за директно въвеждане на код Lua (например командата за команда Lua (8 + 9) незабавно извежда резултата 17). Неговите функции:
  • Главният прозорец за изходния код с неговите функции за запис и изтегляне.
  • Дебъгерът на скриптове с точки на прекъсване, едноетапно изпълнение и изглед с променлива.
  • Функции за създаване на таблици.
  • Функции за създаване на диаграми.
  • Функции за създаване на графични изображения.
  • Функции за създаване на векторни графики.
  • Онлайн помощ за създаване на Lua функции.
  • Точките за спиране на конзолата могат да бъдат зададени чрез щракване до номера на реда. Ако отстраняването на грешки е активирано, изгледът на променливата ще се вижда от дясната страна на главния прозорец. Можете да промените неговия размер чрез плъзгане на лявата граница. Различни настройки за режима "включен" или "изключен" се запазват и възстановяват, когато е включен или изключен. Можете да използвате колелото на мишката, за да промените видимия размер на графиката и графиката. Можете да използвате десния бутон на мишката, за да отворите контекстното меню за графики с техните функции за увеличение. SAMP Lua Scripts е луа библиотеката за Moonloader, която добавя някои команди за опростяване на модификацията на SA: MP, SAMP. Събития ви позволяват да работите с SA и MP входящи и изходящи мрежови пакети на ниско ниво по много лесен начин. Можете да пренапишете данните, като зададете всички аргументи в таблицата в правилния ред, независимо дали можете да прекъснете обработката на пакетите чрез връщане на false, което предотвратяваПроменете позицията на потребителя на плейъра Преди да инсталирате скрипта на Lua, можете да добавите свой собствен пакет за обработка на пакети.

    Разпределение на Lua-WoW

    Това е разпределението на изходния код на Lua, модифицирано така, че да съответства на добавката на World of Warcraft. Данните му:
  • Администратори: morlando.
  • Потребители: morlando.
  • Лиценз: MIT /X.
  • Език: c, lua 5.
  • Тагове: преводачи, инструменти за тестване.
  • Операционни системи: макроси, прозорци, os автономия.
  • Тази езикова версия е конфигурирана да съответства на Lua World of Warcraft среда. Всички настройки за съвместимост 5.0-5.1 са изключени, с изключение на openlib. Библиотека Bitlib работи. Някои уау скриптове - специфични, луа библиотека функции, изпълнени. Програмата предоставя глобални псевдоними за функциите "Lua.string.format", те могат да използват избора на аргументи от Lua 4.0. Двоичните файлове на Windows, включени в това изтегляне, са статично свързани с производителността. Те може да не работят според очакванията на потребителя, когато се използват с някои други пакети. История на версиите:
  • V112 - Добавен е скраб, tostringall, Visual Studio проект е обновен до Visual Studio 2008 Visual C ++. Runtime сега е статично свързан, което трябва да поправи някои от проблемите, свързани с lua-wow с някои Windows.
  • Lua скриптове v34 c - добавен strrelpace (string.replace, wow.strreplace).
  • V1101 - msvcr80.dll се добавя към прозорците на проекта.
  • V110 - предефинирани readme файлове. Преименувани msvc проекти и имена на exe изход. Проектът msvc включва икона и ресурси Lua за изпълними файлове.
  • V1.9 - Добавени са глобални версии на тригонометричните функции. Програмата правилно използва степени .strsplit,отпечатва съответното съобщение за грешка, ако препълва стека, което сега е практически невъзможно с strjoin.
  • V1.8 - Актуализация на съвместимостта 5.0 openlib, защото WoW така или иначе не използва libs.
  • V1.7 - GCPAUSE е променен на 110 на WoW 2.1. Фиксирани са няколко различни предупреждения на компилатора.
  • V161 - добавен #define LUA_LIB за lwowlib & amp; lbitlib за отстраняване на проблеми при компилирането на Lua скриптове за sampo.
  • V1.6 - обновен bitlib до последната версия. Сега правилно използва 32-битови цели числа като WoW. Глобалните псевдоними за bitlib и table.setn са изтрити, защото не съществуват в WoW.
  • V151 - игнорира реда на байтовете на UTF-8.
  • V1.5 - добавя се дебъгърен стак, някои малки оптимизации и опростявания на кода.
  • V1.4 - добавя се изборът на аргумент string.format.
  • V131 - Фиксиран проблем с Makefile.
  • V1.3 - Добавени специфични функции, глобални псевдоними, css Lua скриптове.
  • V1.2 - Този пакет сега може да се използва като заместител на стандартното Lua източник на дистрибуция: проектът MSVC, включително прекомпилираните двоични Windows файлове, сега е в поддиректорията msvc, а другата структура на директория не е засегната.
  • V1.1 - Добавен BitLib. Оптимизиран размер на файла Luac.exe. Включва тестови програми.

    Двигател Pico-8

    Pico-8 е фантастична програма, която емулира пълна конзола за игри с ограничени 8-битови спецификации. Той разполага с всички необходими инструменти за програмиране в Lua. Причината, поради която потребителите избират Pico-8, е, че може да се използва директно от кутията, безнеобходимостта от инсталация или външни редактори, всички инструменти са включени в пакета на Lua скриптове за sampo, а обучението е просто.
    Как да:
  • Обикновено се нарича първата програма, която се създава на новия език, програмата "Здравей свят", но за езика за програмиране на Lua, "Hello Lua" се въвежда.
  • Изтегляне на Pico-8.
  • Инсталиране и стартиране.
  • След изтеглянето ще получите покана «& gt;».
  • За да получите преглед на възможните команди, натиснете бутона ESC. Сега, когато редакторът е отворен, въведете кодовете, показани на картинката по-горе.
  • Натиснете ESC отново, за да се върнете към поканата, въведете CLS и след това RUN.
  • Вземете първото приложение на Lua на Pico-8.
  • За да запишете скрипта, използвайте командата SAVE: SAVE HELLOLUA.
  • Ако искате да работите с програмата, можете да използвате функцията BTN (), която осигурява отговор на натискане на клавиш.
  • За да имате повече графични възможности, използвайте две специални функции за обратно извикване, наречени UPDATE и _DRAW Следната програма ви позволява да преместите кръга с помощта на клавишите със стрелки.
  • Натиснете ESC, за да отидете в редактора на кодове, въведете или копирайте и поставете кода, както на картинката по-долу.
  • Натиснете бягство, за да се върнете в конзолата и въведете RUN.
  • Pico-8 е предназначен само за главни букви, така че можете просто да напишете шрифт, няма нужда да използвате Shift или Caps-lock. Редакторът също има синтактично оцветяване за кода. Ако погледнете горния десен ъгъл на редактора, можетевижте някои икони. Това са вградени инструменти за създаване на спрайтове, карти, звуци и музика. Този пример е доста прост, но дава представа за редактора и езика. За да разгледате по-интересни примери, можете да отидете в директорията DEMOS. Въведете INSTALL_DEMOS за това. След като отворите DEMOS директорията с няколко примера на учебни програми. Едно от основните предимства на Lua е неговата простота. Някои компании използват този език единствено защото смятат, че техните служители ще могат да работят по-добре. Някои много прости езици, като Bash или Batch, няма да бъдат достатъчно силни, за да изпълняват необходимите задачи, но Lua е едновременно мощна и лесна програма. Друго важно предимство на Lua scripts за css v34 е тяхната способност за реализация, която е призната като една от най-важните характеристики на този продукт по време на неговото развитие. Игри като World of Warcraft или ROBLOX имат способността да интегрират Lua в тяхната програма.

    Свързани публикации