Pamiętaj, że po ,,$ dr1" nie może być spacji w texts.txt. W Sailu zaczynasz od komendy Starting. Potem Begin i end. Przykład:
Żeby postać mówiła musisz użyć komendy Say. Są jej różne rodzaje: SayNoFace(mówi, ale nie widać twarzy), SayRadio(tworzy efekt radia itp.), ale nas interesuje zwykłe Say. Tak więc w Say musisz podać dwa parametry (to w nawiasie, odzielone przecinkami. Te parametry to identyfikator twojej jednostki i tytuł dialogu (w tym przypadku dr1 wzięty w pojedynczy cudzysłów ' '). Powinno to wyglądać mniej więcej tak: (przyjmujemy, że twój bohater ma identyfikator heros):
Code: Select all
Starting
Begin
CenterNowOnUnits(heros); //Kieruje kamerę nad herosa
Say(heros,'dr1');
end;
No to na tyle z podstawami. A teraz coś trudniejszego - warunki... Na początek musisz zadeklarować co ile sekund gra będzie sprawdzać, czy warunek jest spełniony komendą every 0$(liczba w sekundach trigger (warunek) do . Warunkiem, jaki nas interesuje jest IsInArea(heros,Area01). Obszary (Area) umiesz chyba tworzyć? Trzeba zaznaczyć obszar i kliknąć Create w zakładce Areas na dolnym pasku narzędziowym w edytorze. Area01 to nazwa arei, możesz zmienić. Po every enter i też Begin end; (Początek i koniec kodu wykonywanego:
Code: Select all
every 0$1 trigger IsInArea(heros,Area01) do
Begin
Say(heros,'dr1');
end;
Możesz też przed i za Say wstawić komendy tworzące efekt filmiku: z pauzą i bez. Z pauzą to DialogueOn; a bez pauzy to InGameOn; Czyli przykład:
Code: Select all
DialogueOn;
Say(heros,'dr1');
DialogueOff; //to wyłącza efekt
No a teraz zapytania... Najpierw dodaj w texts.txt coś takiego:
Code: Select all
? Zapytanie1
Czy chcesz wstąpić do EONu?
- Tak
- Nie
?
Potem w Sailu:
Code: Select all
every 0$1 trigger IsInArea(heros,Area02) do
Begin
Case Query("Zapytanie1") of
1 : begin //Opcja pierwsza, jak w texts.txt to Tak
//Tutaj wpisz komendy.
end;
2: begin //Opcja druga, jak w texts.txt
// Tu też komendy
end;
end;
end;
Dobra... Czyli zaczniemy od tego, co się stanie jak nie wejdziesz. Powinieneś wpisać w texts,txt :
Code: Select all
| tchorz //to tytuł wykorzystywany w Sailu
Stchórzyłeś!!! //A to treść. NIGDY nie rób enterów w tekście do jednego dialogu, tekstu przegrania itp.
A potem w Sailu:
Code: Select all
every 0$1 trigger IsInArea(heros,Area02) do
Begin
Case Query("Zapytanie1") of
1 : begin //Opcja pierwsza, jak w texts.txt to Tak
//Zaraz to, nie wszystko naraz...
end;
2: begin //Opcja druga, jak w texts.txt
YouLost('tchorz');
end;
end;
end;
A teraz z wygraną... Komenda aby ktoś wszedł do jakiegoś budynku pojazdu to ComEnterUnit(jeden lub grupa kolesi, pojazd/budynek); Tak więc po 1 : begin:
ComEnterUnit(kolo1,eon);
Wait(0$3); //Komenda Wait powoduje, że program czeka określoną ilość sekund.
ComEnterUnit(kolo2,eon);
Wait(0$3);
ComEnterUnit(kolo3,eon);
Wait(0$3);
ComEnterUnit(heros,eon);
A teraz mięsko, czyli medale i przydzielanie doświadczenia

.
Żeby dać medale musisz najpierw w texts.txt wpisać treść za co dostałeś/ nie dostałeś medalu oraz przydzielenie medalów czyli coś takiego:
Code: Select all
^ MAIN
Target achieved //przydzielenie medalów
i medale:
Code: Select all
* med1
+ Nie narobiłeś w gacie.
*
* med2
+ Nie zgubiłeś karabinu.
*
* med2a
- Zapomniałeś kaszanki.
*
,,-" oznacza, że nie ma medalu a ,,+" że dostajesz medal. W celu dodania medalu powinieneś zastosować komendę AddMedal('medx'); gdzie x to numer medalu. Oczywiście możesz stosowac inne nazwy niż med1, med2 itd. Po dodaniu wszystkich medali możesz je wyświetlić komendą GiveMedals('Main'); Potem przydzielanie doświadczenia: RewardPeople(heros); Czyli przydziel herosowi doświadczenie, oczywiście możesz wpisać kilka postaci. Potem tylko zapisanie postaci komendą SaveCharacters(heros,'heros'); Uwaga: heros w nawiasie to nazwa, pod jaką postać została zapisana. W następnej misji komenda heros=CreateCharacterSet('heros') tworzy postać o identyfikatorze heros z zapisanej postaci o nazwie heros. Na koniec YouWin; I tyle. A teraz podsumowując:
Code: Select all
very 0$1 trigger IsInArea(heros,Area02) do
Begin
Case Query("Zapytanie1") of
1 : begin
ComEnterUnit(kolo1,eon);
Wait(0$3);
ComEnterUnit(kolo2,eon);
Wait(0$3);
ComEnterUnit(kolo3,eon);
Wait(0$3);
ComEnterUnit(heros,eon);
AddMedal('med1',1);
AddMedal('med2',1);
AddMedal('med3,-1); //Tutaj też -, czyli nie dostajesz medalu.
GiveMedals('Main');
RewardPeople(heros);
SaveCharacters(heros,'heros');
YouWin;
end;
2: begin
YouLost('tchorz');
end;
end;
end;
Ufff........ A i jeszcze jedno: W Sailu nie ma różnicy, czy piszesz YOUWIN; youwin; czy YouWin;. Wielkość liter nie ma znaczenia, jeśli chodzi o komendy. No, to teraz fajrant...