SAIL - Komunikaty tekstowe w grze bez/z opcjami wyboru

Wszelkie pytania na temat SAIL'a i modowania OW.
Post Reply
User avatar
Serpent
Soldier level 10
Soldier level 10
Estonia
Posts: 4175
Joined: Tue Jul 07, 2009 9:13 pm
Location: Polska - EuroStan ZSRE
Contact:

SAIL - Komunikaty tekstowe w grze bez/z opcjami wyboru

Post 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 3287 times
Funkcje pochodne:
SelectiveQuery
BuildQuery
Msg
Epickie teksty:
Marek1906: jak zrobic aby sail był zielony?
Kvantovy: Wszystko normalne, wszystko w koło było dziwne
Kvantovy:: To jest fajne, że to nie jest takie głupie
Kvantovy:: remove sos from kanapeczka
Kvantovy:: zdarzają się rzezy które sie filozofom nie śniły
Cenwen: problemem jest gejostwo
"Taki z niego fizyk jak ze mnie baletnica" - Profesor Scholtze o Kvantovym.
JAKBYŁ BYM CZECHEM TO BYM ROZŁOŻYŁ NAMIOT ~Kvanciak
Post Reply