proScripting [Урок 0] Основы. Структура скрипта. Определения.


5 сообщений в этой теме

(изменено)

Прежде чем начать, нам нужно "определиться с определениями", хотя бы с основными. Изложены они будут кухонным языком, дабы вникнуть в них могли люди, которые совершенно не сталкивались с программированием прежде. Если после прочтения информация более-менее уложится в голове, то можно смело идти гуглить глубже.

Для начала нужно ответить на вопрос, как это вообще устроено? 

У нас есть скрипт - файл (в нашем случае как правило txt) в котором написан программный код. Сей программный код "говорит" компилятору, что нужно делать, т.е. представляет собой логическую или не очень последовательность действий. Компилятор -  грубо говоря и не вдаваясь в подробности это сама программа (Adrenalin или ASI WIN ArheAge). Софт "читает" ваш код, компилирует его (компиляция — это процесс создания исполняемого файла, основываясь на указанном компилятору программном коде) и выполняет то, что там написано. 

Итак, давайте посмотрим, как будет выглядеть структура скрипта, в котором объявлены основные разделы:

uses SysUtils;            // раздел uses, тут подключаются библиотеки

const                     // описание констант
  text = 'yo ku ya glad';
  ID = 12494;
  
var                       // описание переменных 
  flag: boolean;

procedure wait();         // описание процедуры
begin
  Delay(5555);  
end;

begin                     // основной код скрипта
  Print(text);
  wait();
end.

Итак, мы видим, что все разноцветное - это явление называется подстветка синтаксиса, нужна она для более удобной навигации Ваших глаз в коде.

Обратите внимание на ключевые слова uses, const, var и тд. все они что-то "говорят" компилятору. Рассмотрим что здесь написано подробней:

uses SysUtils; 

Раздел uses сообщает, что мы используем в нашем скрипте. А использовать мы можем библиотеки или модули (юниты). Каждая библиотека дает нам доступ к набору функций, например SysUtils содержит в себе функции, которые приводят численные значения к строковым и наоборот, Вам, поверьте мне, придется их очень часто использовать в будущем.

Разделы const и var отвечают за объявление констант и переменных. Что значит объявление?
Чтобы компилятор понимал запись вида tmp_string:= s1 + s2; нужно объяснить ему в начале, что эти переменные из себя представляют, какой это тип данных? строки \ цифры \ логические переменные? Потому что нельзя, например, сложить цифру "2" и строку "Вася". Подробнее об этом будет в других уроках, сейчас просто отметьте для себя, что прежде чем использовать какие-либо переменные, они должны быть объявлены (указан их тип).

Далее как правило идет описание процедур и функций, ключевые слова procedure \ function. Что это такое? По сути и то и другое представляет собой небольшую подпрограмму, обособленную последовательность действий, которую потом можно вызвать просто написав ее название в скрипте. Нужно это например для того, чтобы не писать один и тот же код много раз.
Предположим в ArcheAge после использования умения нужно ждать пока пройдет откат умения и ГКД:

procedure wait_gcd;
begin
  while (User.Cast.EndTime <> 0) or (User.GlobalCoolDown <> 0) do delay(1000);
end;

Описав один раз такую процедуру, можно будет в своем скрипте вызывать ее после каждого использования умения:

if Engine.UseSkill('Ледяная стрела') then wait_gcd;

Еще один важный вопрос: в чем отличие процедуры от функции? Функция возвращает результат после своего выполнения, а процедура нет. Все со школы должны помнить тригонометрические функции, например синус. sin(x) = чему-нибудь, т.е. в зависимости, что мы подадим на вход этой функции, мы будем получать разные результаты. Или функция сложения - в зависимости от того, какие слагаемые были поданы на вход, результат (их сумма) будет отличаться.
А процедура это просто последовательность каких-нибудь действий без лишних заморочек.

Ну и наконец основное тело скрипта - это все то, что заключено между begin и end. (заметьте, что у этого end на конце ставится именно точка, в отличие от остальных случаев, где мы видим точку с запятой). При запуске скрипта компилятор начнет выполнять код, написанный между этими begin \ end. используя инфу об объявленных ранее константах\переменных\процедурах\функциях.

Надеюсь общее представление о том, как выглядит скрипт сложилось, поэтому переходите к следующим урокам

Изменено пользователем farmwl
Z0rik и CMAK понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а где урок 1 ?????

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Почему копируя скрипт, вставляя его в скрипт Адреналина - выбивает ошибку?

37cb60cc03c2.png

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

var flag:boolean; т.е. ты забыл поставить ";"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас