Gotowe kody SAIL'a, informacje na temat moddingu, itd.
Moderator: zoNE
zoNE
The Great Uniter & Site Administrator
Posts: 2061 Joined: Fri Feb 17, 2006 3:44 pm
Location: Poland
Contact:
Post
by zoNE » Mon Aug 17, 2015 5:42 pm
Serpent wrote: String to jak powszechnie wiadomo zmienne przechowujące znaki (ciągi znaków).
Ciągi znaków w SAIL'u zapisujemy pomiędzy znakami
' ' .
Przykład:
Code: Select all
'macmilan' 'jurij' 'masza' 'kasza'
Do wyświetlania tego typu zmiennych w grze służy funkcja
display_strings .
Display_Strings
Wyświetli nam w prawym górnym ekranie zmienna text. Jest to bardzo przydatne zwłaszcza podczas tworzenia skryptów do map, jeżeli chcemy zobaczyć co kryje się pod daną zmienną.
Przykładowo chcemy wyświetlać koordynaty danej jednostki:
Code: Select all
Every 0$0.1 do
begin
enable;
Display_Strings := ['X:', GetX(unit), 'Y:', GetY(unit)];
end;
Dodanie informacji do wyświetlenia w display_strings:
Spoiler:
Często zdarza się że chcemy coś wyświetlić gdy zawartość display_strings nie jest pusta, korzystamy wówczas ze znaku dołączania "
^ ".
Przykład:
Code: Select all
Display_Strings := 'Kalafior'; // to mamy w display_strings
Display_Strings := Display_Strings ^ 'Bialy';
Spowoduje dodanie pod napisem "Kalafior" napisu "Bialy".
Można też użyć już gotowej funkcji napisanej przeze mnie:
Code: Select all
Export Function AddToDisplay(string);
begin
Display_Strings := Display_Strings ^ string;
End;
Czyszczenie display_strings:
Spoiler:
Jeżeli chcemy usunąć obecną zawartość display_strings i dodać coś innego to normalnie używamy display_strings.
Przykład:
Code: Select all
// Wyświetla nam napis: "Jest godzina 12:00"
// Chcemy wyświetlić napis "Jest godzina 13:00"
Display_Strings := 'Jest godzina 13:00';
Jeżeli natomiast chcemy całkowicie wyczyścić display_strings to piszemy:
Spowoduje to że napis po prawej zniknie.
Dodanie prostego zegara:
Spoiler:
Zegar w grze jest bardzo przydatny, aby go uzyskać wystarczy tylko kilka linijek kodu.
Code: Select all
// chcemy żeby zegar podawał nam minuty i sekundy
Export time;
Every 1 do
time := 0$00;
Every 0$01 do
begin
enable; // zapętlamy zegar
time := time + 0$01; // co sekundę będzie dodawana sekunda do wyświetlacza
Display_Strings := [#timer, time];
End;
Teraz przechodzimy do pliku
Counters.wri w Texts (UWAGA! Każda wersja językowa ma swój własny plik Counters.wri!).
Tam dodajemy następujący wpis:
To tyle, teraz czas powinien być wyświetlany w formie:
Dodawanie stringa do stringa:
Spoiler:
Czasami może zajść potrzeba połączenia dwóch zmiennych tego typu. Używamy wówczas następującej funkcji:
Code: Select all
Export Function AddToString(string1, string2);
begin
result := string1 & string2;
End;
Przykład:
Code: Select all
zm1 := 'Andy';
zm2 := ' Cornell';
Display_Strings := AddToString(zm1, zm2);
Wyświetli: Andy Cornell
Wyświetlanie długości stringa:
Spoiler:
Jeżeli chcemy sprawdzić długość zmiennej typu string (ilość znaków w łańcuchu) to używamy funkcji:
Code: Select all
Export Function SizeOfString(string);
begin
result := string - 0;
End;
I wyświetlamy:
Code: Select all
Display_Strings := SizeOfString('jurek'); // zwróci 5
Author: Serpent
Topic: https://forum.original-war.net/viewtopi ... =42&t=4466