SAIL - Praktyczne zastosowanie pętli

Gotowe kody SAIL'a, informacje na temat moddingu, itd.

Moderator: zoNE

Post Reply
User avatar
zoNE
The Great Uniter & Site Administrator
The Great Uniter & Site Administrator
Posts: 2061
Joined: Fri Feb 17, 2006 3:44 pm
Location: Poland
Contact:

SAIL - Praktyczne zastosowanie pętli

Post by zoNE »

Nitek wrote:Praktyczne zastosowanie pętli.

Często warto użyć pętli jeżeli daliśmy komuś zadanie pójścia w dane miejsce i nic się nie wydarzy dopóki ta postać tam nie dojdzie. W tym przykładzie postać o identyfikatorze "Ludek" dostała zadanie pójścia do miejsca x=22 y=11. Gra będzie czekać sekundę i powtarzać tą czynność dopóki nasz Ludek nie dojdzie do wyznaczonego miejsca.

Code: Select all

ComMoveXY(Ludek,22,11);
 Repeat
  Wait(0$1)
 Until
  IsAt(Ludek,22,11);
Say(Ludek,'Jakis-Dialog');
Inne przykładowe zastosowanie to zwiększanie zmiennej o 1 co sekundę dopóki jednostka z identyfikatorem "Czlowieczek" nie dojdzie w pobliże jednostki "Skladzik". Można zrobić to samo używając every, ale zajmie to więcej czasu, miejsca i będzie mniej czytelne; a jak wiadomo jeżeli 10 linijek robi to samo co 20 linijek, to te 10 linijek będzie lepszym rozwiązaniem.

Code: Select all

 Repeat
  Begin
   ZmiennaA=ZmiennaA+1;
   Wait(0$1);
  End;
 Until
  GetDistUnits(Czlowieczek,Skladzik)<12;
JRF wrote:@nitek jeśli chodzi o ludzi, to wolę krótszą i bardziej uniwersalną pętlę:

Code: Select all

while not IsIdle(sol) do wait(0$1);
Author: Nitek & JRF
Topic: http://forum.original-war.net/viewtopic.php?f=42&t=2993
Post Reply