SAIL - Bloki Every i jednostka czasu
Serpent pisze:Bloki Every są bardzo pomocnym narzędziem gdyż ich najważniejszą cechą jest to że wywołują się po upływie danego czasu.
Budowa:
Kod:
Every CZAS do // nagłówek begin // rozpoczyna blok // Kod end; // kończy blokPrzykład - Chcemy aby kod wykonał się w 10 sekundzie po rozpoczęciu gry:
Spoiler:
Kod:
Every 0$10 do begin // Kod end;Przykład - Chcemy aby Funkcja1 wywołała się w 75 sekundzie:
Spoiler:
Kod:
Every 1$15 do begin Funkcja1; end;Takie wywoływanie jest przydatne jednak często chcemy aby kod wykonał się dopiero po spełnieni jakiegoś warunku.
Spoiler:
Przykład - Chcemy aby kod wykonał się dopiero gdy warunek x = true:
Kod:
Every 0$01 trigger x = true do begin // Kod end;Można skrócić ten zapis:
Kod:
Every 0$01 trigger x do begin // Kod end;Oba zapisy oznaczają to samo.
Istnieje jeszcze drugi sposób na wywoływanie bloków Every, są to tzw. marked’y:
Spoiler:
Kod:
Przykład: Every 0$01 marked 01 do begin // kod End;Kod wykona się jeżeli marked o numerze 01 jest ustawiony na Enable;
Spoiler:
Kod:
Przykład - Chcemy aby blok Every został zablokowany po 10 sekundach, następnie odblokowany po 20 sekundach: Every 0$01 marked 01 do begin enable; // Kod end; Every 0$10 do begin Disable(01); // blokuje every z markedem 01 end; Every 0$20 do begin Enable(01); // ponownie odblokowywuje every z markedem 01 end;Należy pamiętać że marked’y domyślnie są ustawione na Enable.
Dodatkowo bloki Every można zapętlić:
Spoiler:
Kod:
Every 0$01 trigger x do begin enable; // Kod end;Dodanie enable w bloku zapętla go - oznacza to że blok będzie wykonywał się w tym przypadku co sekundę.
Czas SAIL:
Jednostką czasu w Original War jest “tick”.
35 tick’ów = 1 sekunda.Przykład:
Kod:
Zapis "Every 0$01 do" jest równoważny "Every 35 do"
Author: Serpent
Topic: https://forum.original-war.net/viewtopic.php?f=42&t=4334



