Page 1 of 1

SAIL - Komunikaty tekstowe w grze bez/z opcjami wyboru

Posted: Wed May 06, 2015 4:59 pm
by Serpent
Wyświetlanie okien tekstowy jest bardzo często wykorzystywane w prawie wszystkich modyfikacjach. Ma ono zazwyczaj na celu poinformować gracza o jakimś wydarzeniu, popchnąć fabułę do przodu lub zmusić gracza do wyboru jednej z kilku opcji.


Tworzenie struktury okna w pliku tekstowym:
Spoiler:
Przechodzimy do naszego pliku z dialogami (.../Twoj_Mod/Campaigns/NACJA (Am, Ar, Ru)/#pol/TxtXX.wri).

Okno tekstowe ma następującą strukturę:

Code: Select all

?
? identyfikator
tekst
- opcja1
- opcja2
- opcja3
...
?
?
Przykład:

Code: Select all

?
? Trudnosc
Wybierz poziom trudności:
- Łatwy
- Średni
- Trudny
?
?
Należy pamiętać że zarówno tekst jak i liczba opcji nie mogą być nieograniczone ze względu na wymiary dopuszczalne okienka.

Zalecam też zapisywać tekst w jednej linii.
Okno tekstowe w SAIL'u:
Spoiler:
Istnieje kilka sposobów na wyświetlenie okienka.

Jedna opcja wyboru:
Tu sprawa jest prosta, zakładamy że nasze okienko ma taką strukturę:

Code: Select all

? 
? id
CosTamCosTam
- OK.
?
?
Aby wyświetlić takie okno używamy funkcji Query.

Code: Select all

Query('id'); 
Spowoduje to wyświetlenie okna z jedną opcją wyboru.

Kilka opcji wyboru:
Tutaj sprawa wygląda nieco trudniej.

Code: Select all

Case Query('identyfikator') of
1: begin
    // co się stanie w razie wybrania opcji nr. 1;
    end;
2: begin
    // co się stanie w razie wybrania opcji nr. 2;
    end;
3: begin
    // co się stanie w razie wybrania opcji nr. 3;
    end;
End; 
Wybranie danej opcji spowoduje wykonanie się kodu z bloku oznaczanego danym numerem i pominięcie innych bloków.

Przykład:

Code: Select all

Case Query('Trudnosc') of
1: begin
    Difficulty := 1;
    // np. usuwa zbędne jednostki RemoveUnit(bunkier1);
    end;
2: begin
    Difficulty := 2;
    // np. usuwa zbędne jednostki RemoveUnit(bunkier2);
    end;
3: begin
    Difficulty := 3;
    end;
End; 
Oto efekt wizualny:
Okno tekstowe
Okno tekstowe
Untitled-1.jpg (49.24 KiB) Viewed 3291 times
Funkcje pochodne:
SelectiveQuery
BuildQuery
Msg