Polski Česky English Français Русский Español
Home Site Original War Support Community Forums Facebook YouTube Discord
Pierwszy raz tutaj? Przeczytaj to!
» Indeks > Modding Archive > SAIL - Dialog po dojściu do EON'u

SAIL - Dialog po dojściu do EON'u

NNPlaya pisze: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:

Kod:

Starting 
Begin 
KOD 
end;

Ż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):

Kod:

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:

Kod:

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:

Kod:

DialogueOn; 
Say(heros,'dr1'); 
DialogueOff; //to wyłącza efekt

No a teraz zapytania… Najpierw dodaj w texts.txt coś takiego:

Kod:

? Zapytanie1 
Czy chcesz wstąpić do EONu? 
- Tak 
- Nie 
?

Potem w Sailu:

Kod:

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 :

Kod:

| 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:

Kod:

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:

Kod:

 
^ MAIN 
Target achieved //przydzielenie medalów

i medale:

Kod:

* 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:

Kod:

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…

Author: NNPlaya
Topic: https://forum.original-war.net/viewtopic.php?t=285

» Indeks > Modding Archive > SAIL - Dialog po dojściu do EON'u