SAIL - Bloki Every i jednostka czasu

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 - Bloki Every i jednostka czasu

Post by Serpent »

Bloki Every są bardzo pomocnym narzędziem gdyż ich najważniejszą cechą jest to że wywołują się po upływie danego czasu.

Budowa:

Code: Select all

Every CZAS do // nagłówek
begin // rozpoczyna blok
// Kod
end; // kończy blok

Przykład - Chcemy aby kod wykonał się w 10 sekundzie po rozpoczęciu gry:
Spoiler:

Code: Select all

Every 0$10 do
begin
// Kod
end;
Przykład - Chcemy aby Funkcja1 wywołała się w 75 sekundzie:
Spoiler:

Code: Select all

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:

Code: Select all

Every 0$01 trigger x = true do
begin
// Kod
end;
Można skrócić ten zapis:

Code: Select all

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:

Code: Select all

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:

Code: Select all

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:

Code: Select all

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:

Code: Select all

Zapis "Every 0$01 do" jest równoważny "Every 35 do"
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
Markok
Soldier level 6
Soldier level 6
Posts: 314
Joined: Thu Sep 04, 2014 12:53 am
Location: Oberschlesien
Contact:

Re: SAIL - Bloki Every i jednostka czasu

Post by Markok »

Jak działają bloki every z markedami ? Zaczynają odliczać dopiero po aktywowaniu markeda, czy cały czas odliczają i uruchamiają się wraz z markedem ?
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:

Re: SAIL - Bloki Every i jednostka czasu

Post by Serpent »

Marked to taki typ warunku. Zasada działania jest identyczna.
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
User avatar
hidan
Soldier level 3
Soldier level 3
Posts: 59
Joined: Wed Nov 10, 2010 8:41 pm
Location: Polska

Re: SAIL - Bloki Every i jednostka czasu

Post by hidan »

A jak z kolejnościom wykonania np:
Główny moduł

Code: Select all

...
Enable(01);
Say(Bar,"D1i-Bar-1');
...
moduł z markedm

Code: Select all

Every 1$2 marked 01 do
begin
// kod
End;
To czy dialog będzie po aktywacji markeda czy po jego wykonani (1$2)?
Can't stop, can't stop the feet
Won't stop, won't stop the beat
And GO

Historia niedopowiedziana
2/20 - AM
6/20 - AR
3/20 - RU
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:

Re: SAIL - Bloki Every i jednostka czasu

Post by Serpent »

Dialog będzie pierwszy chyba że idealnie wpasowałbyś się w 1$2 wtedy wykona się kod z bloku z markedem ;)
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
Markok
Soldier level 6
Soldier level 6
Posts: 314
Joined: Thu Sep 04, 2014 12:53 am
Location: Oberschlesien
Contact:

Re: SAIL - Bloki Every i jednostka czasu

Post by Markok »

No i to właśnie jest dziwne.. odliczanie powinno się zaczynać dopiero po aktywowaniu markeda, a tak jest misz-masz..
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:

Re: SAIL - Bloki Every i jednostka czasu

Post by Serpent »

Markok wrote:No i to właśnie jest dziwne.. odliczanie powinno się zaczynać dopiero po aktywowaniu markeda, a tak jest misz-masz..
Every opiera się na tick'ach które są niezależne od funkcji.
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
User avatar
ziame
Soldier level 1
Soldier level 1
San Marino
Posts: 15
Joined: Sun Apr 29, 2018 9:22 pm

Re: SAIL - Bloki Every i jednostka czasu

Post by ziame »

Trochę necro, ale w temacie:

Co oznacza obecny np w misji american 13a:

Every 0$03+2$30

to znaczy że sprawdza dwa różne czasy?
User avatar
Nefarem
MODbase Moderator
Poland
Posts: 1115
Joined: Sat Jan 15, 2011 8:13 pm
Location: Noxus

Re: SAIL - Bloki Every i jednostka czasu

Post by Nefarem »

0$03+2$30 powoduje że Every za pierwszym razem wykona się po czasie 2$33 a kolejne co 0$03.
Last edited by Nefarem on Sun Apr 29, 2018 11:55 pm, edited 1 time in total.
Absolute Dominion
Spoiler:
Modyfikacja opowiadająca historię Ivana Bierezova, żołnierza armii Rosyjskiej , weterana wojny w Chinach który wziął udział w misji ochrony złóż Alaskitu.

Download from Dropbox
Original War Cooperation
Spoiler:
Modyfikacja umożliwiająca granie w mapach z kampanii OW i nie tylko ze znajomymi kontra AI.

Download from Steam

Download from Dropbox
Original War Dialog Editor
Spoiler:
Program ułatwiający tworzenie plików wri z dialogami, zadaniami etc do Original War .

Download
User avatar
ziame
Soldier level 1
Soldier level 1
San Marino
Posts: 15
Joined: Sun Apr 29, 2018 9:22 pm

Re: SAIL - Bloki Every i jednostka czasu

Post by ziame »

Nefarem wrote: Sun Apr 29, 2018 11:55 pm 0$03+2$30 powoduje że Every za pierwszym razem wykona się po czasie 2$33 a kolejne co 0$03.
Doskonale! Brakowalo tutaj tej informacji :)
Post Reply