Menu Akcji

OFP - Odpowiedzi na najczęściej zadawane pytania, opracowania, poradniki

Moderator: Inkwizytor

ODPOWIEDZ
gracjan9
Posty: 17
Rejestracja: 29 maja 2008, 10:58
ID Steam:
Numer GG: 11959373
ID gracza: 0
Lokalizacja: Nowogard

Menu Akcji

Post autor: gracjan9 »

Cześć,robię misję w OFP i postanowiłem zrobić że gdy jednostka wejdzie w dany punkt,pojawi mu się w Menu Akcji jakiś tekst,wiem że trzeba wpisać jednostka addAction ["tekst","nazwa_skryptu.sqs"]Ale właśnie chodzi mi o tą nazwę skryptu.Chcę żeby gdy wejdzie żołnierz Amerykański w jakiś punkt pojawia się mu 'Wezwij śmigłowce" I przylatuje śmigłowiec skąd zabiera oddział.Jak utworzyć taki plik sqs odpowiedzialny za przylot śmigłowca na moją pozycje?

@Edit
Nie chcąc robić odkopu tematu,dziękuję bardzo użytkownikowi faguss za pomoc.Temat do zamknięcia

Pozdrawiam Gracjan(9)
Ostatnio zmieniony 17 lipca 2010, 20:27 przez gracjan9, łącznie zmieniany 1 raz.
Awatar użytkownika
faguss
Posty: 12
Rejestracja: 13 czerwca 2008, 22:15
ID Steam:
ID gracza: 0
Kontakt:

Re: Menu Akcji

Post autor: faguss »

Tworzysz nowy plik tekstowy i nazywasz go nazwa_skryptu.sqs. Tam wpisujesz komendy.

Więcej o sqs...
Obrazek------Obrazek-------Obrazek
gracjan9
Posty: 17
Rejestracja: 29 maja 2008, 10:58
ID Steam:
Numer GG: 11959373
ID gracza: 0
Lokalizacja: Nowogard

Re: Menu Akcji

Post autor: gracjan9 »

To wiem,lecz jak zrobić żeby on przyleciał na moja pozycję?Tam nic nie jest opisane na ten temat
Awatar użytkownika
faguss
Posty: 12
Rejestracja: 13 czerwca 2008, 22:15
ID Steam:
ID gracza: 0
Kontakt:

Re: Menu Akcji

Post autor: faguss »

Przygotowanie:

W edytorze wstawiłem grupę piechoty. W inicjalizacji wpisałem grupa=group this. Następnie wrzuciłem UH60 który nazwałem heli, niewidzialne H (Invisible H) które nazwałem Ha oraz wyzwalacz (trigger) z warunkiem true i kodem player addAction ["Extraction","Ext.sqs"].


Skrypt Ext.sqs:

Kod: Zaznacz cały

player sidechat "Registered landing zone"
Komunikaty się przydają żeby wiedzieć w którym miejscu skryptu znajduje się teraz program.

Kod: Zaznacz cały

ha setpos [(getpos player select 0) + 50*(sin (getdir player)), (getpos player select 1) + 50*(cos (getdir player)), 0]
Ustawiamy lądowisko 50 metrów przed graczem.

Kod: Zaznacz cały

? operacja : heli move getpos ha; heli land "GET IN"; exit
?format ["%1",operacja] == "scalar bool array string 0xfcffffef" : operacja=true
W tym skrypcie znajduje się pętla. Lepiej żeby została ona włączona tylko raz. Te dwie linijki to zabezpieczenie. Jeśli nie istnieje zmienna operacja to program ją stworzy. Jeśli natomiast takowa już istnieje to program zakończy skrypt.

Kod: Zaznacz cały

#land
heli setbehaviour "CARELESS"
Pilot będzie nieco bardziej skory do lądowania po przestawieniu jego zachowania na careless.

Kod: Zaznacz cały

heli move getpos ha
heli land "GET IN"
Ruch helikoptera do lądowiska i rozkaz wylądowania.

Kod: Zaznacz cały

@(getpos heli select 2) < 2
Program czeka aż helikopter znajdzie się na wysokości poniżej dwóch metrów.

Kod: Zaznacz cały

heli sidechat "Landing"
@(getpos heli select 2) > 2
Program czeka aż helikopter znajdzie się na wysokości powyżej dwóch metrów.

Kod: Zaznacz cały

? "_x in heli" count (units grupa) == count (units grupa) : heli move [0,0,0]; player sidechat "All aboard"; heli globalchat "Returning to base"; operacja=false; exit
Jeśli wszystkie osoby z tej grupy znajdują się na pokładzie - helikopter odlatuje. Skrypt zostaje wyłączony.

Kod: Zaznacz cały

goto "land"
Jeśli nie ma wszystkich to program wraca do etykiety #land


Uwagi:
Aby helikopter osiadł na ziemi na dłużej musisz kazać jednostkom do niego wsiąść. Jeśli dowódcą drużyny jest AI użyj komend assignAsCargo i orderGetIn.
Załączniki
extraction-test.eden.zip
(1.48 KiB) Pobrany 251 razy
Obrazek------Obrazek-------Obrazek
ODPOWIEDZ

Wróć do „Ogólna dyskusja / FAQ / Singleplayer / Multiplayer / Klany”