Goto http://www.stucuk.netGoto http://www.atlanticaonlinewiki.comGoto http://www.game-requirements.com

SAIL Syntax/pl

From Original War Support Wiki

Jump to: navigation, search


Contents

Intro

Składnia SAIL jest oparta na Pascalu, ale w niektórych miejscach się różni. Ten tekst ma za zadanie ułatwić naukę podstaw SAIL'a. Uwaga: Wszystkie konstrukcje językowe (np. Begin, End, For, Case, Function) muszą wyglądać tak jak przedstawione w tym tekscie, ale nazwy funkcji własnych oraz zmiennych mogą być jakiekolwiek.

Starting

Ta konstrukcja może zostać użyta tylko raz. Wyznacza ona miejsce od którego SAIL będzie wykonywany.


Starting
Begin
 Wait(1000);
End;

Export

Aby umożliwić wszystkim modułom dostęp do funkcji i zmiennych z wyznaczonego modułu musisz użyć konstrukcji Export (każda 'strona' kodu jest nazywana modułem)

Zmienne:

Export moja_zmienna;
Export moja_zmienna1, moja_zmienna2;


Funkcje:

Export Function moja_funkcja;
begin
 //
end;

Funkcje i zmienne wyeksportowane są używane tak samo jak zwykłe. Jedyna różnica to to że sąone dostępne dla wszystkich modułów.

Wyznaczanie zmiennych

Jeżeli nie chcesz żeby dana zmienna była globalna, musisz użyć konstrukcji Var aby wyznaczyć zmienną. W SAIL'u zmienne nie muszą mieć określonego typu, mogą być czymkolwiek (np. liczbą, tekstem)


Var moja_zmienna;
Var moja_zmienna1, moja_zmienna2;
Function moja_funkcja;
Var moja_zmienna;
begin
 //
end;

Funkcje

W SAIL'u możesz używać funkcji do różnych zadań. Funkcje mogą przyjmować parametry i zwracać wynik.

Bez parametrów:

Function moja_funkcja;
begin
 //
end;

Z parametrami:

Function moja_funkcja(parametr, parametr2);
begin
 //
end;

Z wynikiem:

Function moja_funkcja(parametr);
begin
 Result := parametr;
end;
zmienna := moja_funkcja(5);

Komentarze

Możesz dodawać swoje komentarze do kodu (choćby po to aby pamiętać gdzie co jest) używając " // ". Ta konstrukcja działa w jednej linijce. Wszystko po " // " jest oznaczane jako komentarz, aż do końca danej linijki.


Wait(10);
// Jakis komentarz
Wait(10); // Komentarz
// Wait(10); <---- nie zostanie wykonane, poniewaz jest oznaczone jako komentarz

If Then

Ta struktura kontrolna pozwala na oznaczenie części kodu jako wykonywalnego, jeżeli wyznaczona kondycja jest spełniona.


If moja_zmienna = 5 then
Wait(1);
If moja_zmienna = moja_zmienna2 then
Wait(1);
If moja_funkcja("Q1") = 1 then
Wait(1);

Można również określić akcję, jeżeli podane wymagania nie są spełnione.


If moja_zmienna = 1 then
Wait(1)
else
Wait(2);

Begin End

Konstrukcje te są m.in. używane do wyznaczania początka i końca funkcji oraz różnych struktur kontrolnych.


if moja_zmienna = 1 then
begin
 Wait(1);
 Wait(2);
end;

Pętla For Do

Pętle For powtarzają kod w nich zawarty wyznaczoną ilość razy.


For x := 1 to 5 do
wait(1);
For x := 1 to 5 do
begin
 wait(1);
end;
y := 1;
j := 5;
For x := y to j do
begin
 wait(1);
end;

Pętla Repeat Until

Pętle Repeat Until powtarzają zawarty w nich kod dopóki wyznaczony warunek nie zostanie osiągnięty.


x := 0;
Repeat
 x := x + 1;
Until x := 5;

Pętla While Do

Pętle While są takie same jak pętle Repeat Until, tyle że ta pętla nie zostanei wykonana ani razu jeżeli warunek nie jest spełniony na początku.


x := 0;
While x < 5 do
begin
 x := x + 1;
end;

Case

Ta konstrukcja wykonuje kawałki kodu opierając się na wartości wyznaczonej zmiennej.


case Query('Q1') of
 1:begin
  // jakiś kod który zostanie wykonany jeżeli rezultat zapytania zwróci 1
 end;
 2:begin
  //
 end;
end;
 case twoja_zmienna of
 1:begin
  // jak wyżej
 end;
 2:begin
  //
 end;
end;

Można też używac stałych


case twoja_zmienna of
 unit_human:begin
  // unit_human jest to stała wartość w OW, dzięki temu można łatwo sprawdzić czy dana jednostka to żołnierz
 end;
 unit_vehicle:begin
  //
 end;
end;
Personal tools
Clanbase