Russian cortex command lua scripting tutorial - data realms wiki

вступ

Цей підручник навчить вас, як використовувати Lua в Cortex Command. Він написаний для людей, які не встречілалісь раніше з програмуванням зовсім, і тому в ньому не будуть використані складні слова, які є в інших підручниках. Краще буде, якщо ви вже будете знати як працювати з ini-кодом, перш ніж приступите до вивчення програмування.

У Cortex Command, Lua дозволяє об'єктам робити те, що вони зазвичай не були б в змозі зробити або створити особливі ефекти.

Створення Lua файлу

Принцип роботи скриптів Lua в Cortex Command полягає в тому, що скрипти приєднані до об'єктів, створеним за допомогою ini. Щоб зробити файл Lua в простому блокноті в Windows, просто створіть новий текстовий файл, перейдіті в меню "Файл", "Зберегти Як.", Змініть "Тип файлу:" на "Усі файли". і змініть ".txt" в імені файлу на ".lua". Якщо немає ніякого розширення, просто додайте ".lua" в кінці імені файлу. Потім натисніть "Зберегти". Ви створили файл Lua.

Порада від перекладача: Використовуйте Notepad ++ замість стандартного блокнота, так як в ньому показується весь синтаксис Lua, і взагалі в ньому легше працювати.

Прикріплення скрипта до об'єкту

Щоб прикріпити Lua скрипт до об'єкта, створеного в ini файлі, просто помістіть "ScriptPath = <путь к файлу Lua>"В блоці коду об'єкта з відповідним табулювання.

Основи програмування Lua

типи даних

Типи даних - типи даних, які використовуються для змінних і властивостей. В CC є 5 основних типів даних: числа, текст, boolean (логічна змінна), вектор, і нуль (nil). Перші 2 - зрозуміло з назви то це. boolean - логічна змінна, тобто її значення це істина (true) або брехня (false). Вектор в CC - координати (X, Y). Числові дані використовуються, друкуючи тільки числа. Текст використовується при наявності пари лапок ( "") з текстом між ними. Вектор використовується, слідуючи за словом "Vector" 2 числами розділеними коми в двох круглих дужках. Нуль - позначається як "nil" (щоб не бути переплутаним з числом нуль).

змінні

Змінні - це те в Lua, чому Ви можете дати значення. Вони використовуються для того, щоб зберігати інформацію, щоб Ви могли знову викликати це пізніше. Мінлива складається з свого імені, одного знака "=", і значення.

Щоб змінити змінну, просто надрукуйте ту ж саму змінну знову з новим значенням:

Ви можете також змусити змінну мати те ж саме значення що і інша змінна, встановлюючи її значення як ім'я іншої змінної:

В результаті X дорівнюватиме 5.

Є 2 типу змінних в CC: глобальна змінна і локальна. Глобальні змінні можуть бути змінені скриптом будь-якого об'єкта, знову змінюють значення, і тільки одна змінна з таким ім'ям може існувати. Глобальні змінні схожі на ті вище в прикладах.

Локальні змінні - змінні, у яких можуть бути множинні копії, кожна з них прив'язана до об'єкта зі скриптом, який створив їх. Щоб створити локальну змінну, надрукуйте "local" перед ім'ям змінної, розділивши їх пропуском. Установка значення локальної змінної рівного значенню іншої локальної змінної працює подібним способом як і у глобальних змінних.

Ця дія зробило змінну "varB" рівний 5. Зауважте, що слово "local" не використовувалося, коли ми вибирали змінну "varA".

Інша корисна властивість змінних - те, що Ви можете використовувати змінні, щоб встановити певну властивість в об'єкт, і зберігати об'єкт в змінної. Зберігаючи об'єкт у змінній, з ним легше взаємодіяти і легше викликати покажчиком. Щоб використовувати змінні, для зміни властивості об'єкта, Ви потребуєте змінної, яка є певним дороговказом на об'єкт (ми розберемо це пізніше), що супроводжується точкою, назвою властивості, знаком "=", і значенням.

"Thing" це покажчик на об'єкт, "GetsHitByMOs" це властивість об'єкта в ini, і "false" це значення.

Зазвичай використовують покажчик, який вже визначений як "self". Покажчик завжди звертається до об'єкта, до якого приєднаний скрипт.

Принцип роботи Lua (і програмування взагалі), це перевірка операторів, щоб побачити, чи є їх значення істинним (true) і робить що-небудь якщо це так (або якщо не так). Давайте подивимося на код нижче.

Цей код перевіряє, якщо змінна "X" дорівнює "1", то робить "вміст" ( "<содержимое>"Не фактичне дію, тільки покажчик місця заповнення для інших команд, до яких ми доберемося пізніше), якщо оператор буде істиною. Зверніть увагу на" end "внизу блоку коду, який говорить, що"<содержимое>", Частина цього оператора, закінчено. Якщо Ви не надрукуєте" end "після оператора (кінець оператора після <содержимого> теж), то Ви отримаєте помилку. Також зауважте, що є 2 знака "=" в "рядку" if "." == "потрібно для того, щоб перевірити рівність, і" = "для того, щоб встановити значення змінної / властивості. Символи умов:

Усередині операторів "if", можуть знаходиться оператори "else". Ці оператори перевіряють, чи виконується умова оператора "if", і якщо воно не істинне (не виконується), то тоді відбуваються дії в їх вмісті.

Умова "Elseif" схоже на другий "if" оператор і працює також:

В операторі можуть бути багато умов "elseif", але тільки одне "else".

Списки (також звані як таблиці і масиви) схожі на змінні, у яких можуть бути безліч значень. Щоб створити список, надрукуйте назву списку супроводжуване знаком "=" і парою дужок <>.

Додавання значення до списку подібно присвоєння / зміни значення змінної. Ви повинні надрукувати назву списку, супроводжуване парою квадратних дужок із заданим номером в списку, знаком "=", а потім значенням.

Числовий символ з ім'ям списку перед цим, говорить число елементів в списку.

Той же самий список як в вищезгаданих прикладах, має значення змінної "numbercheck" рівне 2.

Щоб очистити всі значення списку, надрукуйте назву списку, знак "=" і порожню пару дужок. Щоб очистити тільки одне значення, встановіть це значення в нуль.

Списки можуть бути глобальними і локальними, як змінні.

оператор For

Оскільки оператори використовуються, щоб зробити безліч повторюваних дій в одному короткому ділянці пам'яті скрипта. Формат написання оператора "For" нижче.

for <переменная> = <начальное число>, <число как много раз совершать действия> do

Приклад використання оператора "for".

Давайте розглянемо кожну частину докладно:

for - Стартове ключове слово

i = 1 - "i" - тимчасова змінна, яка використовується оператором "for", для збереження, скільки разів він вчинив дії (включаючи 1). "I" може бути змінений на будь-яке ім'я як змінна. "1" це початкове значення для відліку.

5 - Кількість повторень "<содержимого>".

Щоб перервати оператор "for", включіть "break" в оператор "if", який перевіряє значення оператора "for" для дотримання умови.

Cortex Command Lua stuff

функції скрипта

Функції скрипта - це частини скрипта, які виконуються тільки, коли об'єкт був створений, коли він існує, або коли знищений. Функції теж вимагають "end" як і оператори умов.

Команди - частина Lua, які вже вбудовані в гру і взаємодіють з вмістом в Cortex Command. Формат команди - назва групи команди, двокрапка, ім'я команди, і її параметри (потрібні дані для цього, щоб це працювало) розділяються комами в круглої дужки. Більшість назв груп команд Cortex Command можуть бути замінені покажчиком чимось на те, з чим вони зможуть взаємодіяти. Приклад команди нижче:

Інформація про команду з Вікіпедії Cortex Command Lua:

"Anactor" - покажчик на актора, "AddImpulseForce" - назва команди, і вміст круглої дужки - дані, необхідні для роботи команди. У блоці інформації про команду, "Return value", - це те, що виводить команда, коли вона виконується. Більшість команд в Cortex Command може бути знайдено в wiki, так що переконаєтеся перевіривши це.

Добре, ми нарешті добралися до покажчиків! У Cortex Command покажчики - змінні, які "зберігають" об'єкт в собі. Або Ви можете уявити це, як гігантську стрілку, що вказує на об'єкт. незалежно від того, що властивості Ви встановлюєте на покажчик або використовуєте функцію на ньому, це справить враження на той об'єкт, на який він "показувала.

Є кілька способів створити покажчики. Зазвичай використовують спеціальний оператор "for", який перевіряє всі об'єкти певного типу і є оператором, який перевіряє, чи є об'єкт тим, який вам потрібен. Шматок коду скрипта нижче приєднаний до об'єкта, який шукає актора, з ім'ям "Dummy" і потім встановлює на нього покажчик, названий "local pointer".

Що робить вищезгаданий шматок - перевіряє всіх акторів в грі, поки він не знаходить агента з "PresetName" як "Dummy". Тоді це встановлює покажчик на цього актора як "local pointer" і зупиняє оператор "for" з "break". Термін "актор" є покажчиком на актора, і переданий "local pointer" для більш простої довідкової інформації.

Тут 2 інших рядки "for", які отримують покажчики на пристроях і частинках.

Функції і властивості в Cortex Command Wiki

приклад скрипта

Цей скрипт для простої міни, яка вибухає, коли актори знаходяться в межах певної відстані від об'єкта зі скриптом.