śmigłowiec, strzal przy określonej wysokości ROZWIAZANY!

Edytor Arma (Arma, Arma2, Arma2OA)

Moderatorzy: kondor, Inkwizytor

ODPOWIEDZ
kmax1
Posty: 36
Rejestracja: 01 listopada 2009, 19:08
ID Steam:
ID gracza: 0

śmigłowiec, strzal przy określonej wysokości ROZWIAZANY!

Post autor: kmax1 »

Witam! Mam trochę złożony problem i nie mam pojęcia jak go rozwiązać. Chciałem mojemu bratu zrobić prostą misję, żeby nauczył się latać śmigłowcem na małej wysokości, bo ma tendencję do latania dość wysoko. Czy jest jakiś sposób aby żołnierz (Ai) strzelał do śmigłowca tylko i wyłącznie wtedy gdy śmigłowiec pilotowany przez osobę osiągnie wysokość większą niż np 150m ale jednocześnie, żeby Ai strzelał gdy Player zbliży się na określoną odległość ( z tym to chyba problemu nie będzie, bo jak rozumiem mogę zastosować komendy a distance b < x ===> b doTarget, b doFire... )? Bardzo proszę o pomoc.
Ostatnio zmieniony 12 grudnia 2010, 20:21 przez kmax1, łącznie zmieniany 1 raz.
Awatar użytkownika
Jasina
Posty: 220
Rejestracja: 29 lipca 2010, 07:36
ID Steam:
ID gracza: 59578

Re: striela, śmigłowiec, strzal przy określonej wysokości

Post autor: Jasina »

ja też mam taką tendencje ale nigdy helką nie latam powyżej 100m (chyba że Al-Faluhaj) a nisko (poniżej 30m) latają głównie helki szturmowe typu Cobra, Apach
nick w grze: Jasina
Awatar użytkownika
Sieku12
Posty: 47
Rejestracja: 08 września 2010, 19:32
ID Steam:
Numer GG: 2176786
ID gracza: 0

Re: striela, śmigłowiec, strzal przy określonej wysokości

Post autor: Sieku12 »

możesz zrobić jakby coś a'la w BF2 było ze nie można było wyjść poza obszar walki bo odbierało punkty HP po czym się ginęło i możesz dać wyzwalacz na całą mapke który po aktywowaniu przez twojego brata powiedzmy zachód lub ktokolwiek będzie mu na danej (przez ciebie ustalonej wysokości) odbierał życie/paliwo

to było coś w stylu: Set Damage 1(liczba to ile ma zabierać) - HP
albo z paliwem: Set Fuel 1 (tak samo liczba) - paliwo

możesz dobrać ile ma paliwa mu zabrać czy naraz pełny bak czy zdrowie czy powoli żeby zdążył wrócić do walki :)

teraz jak to zrobić:
1. ustaw wyzwalacz aktywowany przez (twój wybór) powiedzmy zachód (jeśli brat lata czymś od USA np.)
2. w "przy uruchamianiu" lub "init'cie" wpisz to:

Kod: Zaznacz cały

this setPosASL [getPosASL this select 0, getPosASL this select 1, 19];
(i wybierz odpowiednią wysokość na jaka nie moze wlecieć - zamień 19 (metrów) na tyle ile potrzebujesz (metrów)
3. w tym samym miejscu napisz set fuel/damage (które wolisz) i ile ma zabierać (po kombinuj z różnymi opcjami)
4. pozwól bratu grać :D

mam nadzieję ze będzie to działało poprawnie i spełni oczekiwania twoje i nauczy twojego brata latać tak jak sobie życzysz :)

P.S. - jeśli pomogłem przyznaj punkt reputacji, Ciebie to nic nie kosztuje a innym tak wiele daje :)
P.S. - jeśli pomogłem przyznaj punkt reputacji, Ciebie to nic nie kosztuje a innym tak wiele daje :)

Polecam (film YouTube)
kmax1
Posty: 36
Rejestracja: 01 listopada 2009, 19:08
ID Steam:
ID gracza: 0

Re: striela, śmigłowiec, strzal przy określonej wysokości

Post autor: kmax1 »

Dziękuję za szczerą chęć pomocy ale niestety niewiele to dało. Samolot wzlatuje niby na np. 500m ale po chwili obniża się do kilkudziesięciu metrów i dopiero atakuje.

Swoją drogą to jakiś absurd?! Twórcy gry chyba trochę nie pomyśleli. Od kiedy samolot przy zagrożeniu z każdej możliwej strony zmniejsze prędkość do minimum i zrzuca bomby z kilkudziesięciu metrów( I to LGB)?! Przecież to nie WW I ani WW II ?! Czemu bomby nie są zrzucane np. z 500 1000m przy znacznej prędkości? Naprawdę nie da się tego w żaden sposób ustawić?

AKTUALIZACJA...
Sugerując się postem Sieku12 przejrzałem kilka znalezionych stron dotyczacych setPosAsl... . Czy ma ktoś pomysł (nie znam się na skryptach) aby zastosować coś w stylu if (player setPosASL [(getpos this select 0), (getpos this select 1), (getpos this select 2 )+150] then... i tu np. player setdammage 1... Chodzi mi o to, żeby skrypt sprawdził, czy przekroczyłem wysokość 150 i wtedy zniszczył mój śmigłowiec... Nie wiem jak to " ugryźć".

AKTUALIZACJA
znów troche przegrzebałem wujka google ale z sił juz opadam... Wymyśliłem, że zastosuje coś takiego
skrypt1.sqf
if ((getPos heli select 2) >100) then
{
strzal=true
};
w init.sqf dałem strzal=false
a strzal.sqf wygląda tak (bezposrednio z jakiegos skryptu z netu- działa):
-----------------------------------------------------------------------
_bombLoc = getPosATL heli;

_warhead = createVehicle ["Sh_125_HE", _bombLoc, [], 0, "CAN_COLLIDE"];
_holder = createVehicle ["weaponHolder", _bombLoc, [], 0, "CAN_COLLIDE"];
_warhead setPosATL (getPosATL _holder);
heli setHit ["mala vrtule", 0.95];
-------------------------------------------------------------------------
Problem polega na tym, że "skrypt1.sqf" nie działa, Śmigłowiec traci tylny rotor zaraz po włączeniu gry, a nie jak założyłem, że dopiero jak wzniesie się powyżej 100m.
ShowscriptErrors pokazuje mi:
if ((/#/getPos heli select 2) >100) then
{
...

Error getPos Type Script, Expected object, Location.
Bardzo proszę o pomoc, siedzę od kilku godzin , nie mam pojęcia o skryptach więc próbuję na podstawie innych coś zdziałać z miernym skutkiem jak widać.
Awatar użytkownika
Sieku12
Posty: 47
Rejestracja: 08 września 2010, 19:32
ID Steam:
Numer GG: 2176786
ID gracza: 0

Re: striela, śmigłowiec, strzal przy określonej wysokości

Post autor: Sieku12 »

to może wpisz mu w każdym kolejnym waypoint'cie oraz w samym heli te z wysokością może coś pomoże ...
P.S. - jeśli pomogłem przyznaj punkt reputacji, Ciebie to nic nie kosztuje a innym tak wiele daje :)

Polecam (film YouTube)
kmax1
Posty: 36
Rejestracja: 01 listopada 2009, 19:08
ID Steam:
ID gracza: 0

Re: striela, śmigłowiec, strzal przy określonej wysokości

Post autor: kmax1 »

kolejna aktualizacja :

skrypt1.sqf
--------------------------------------------------------------
if((getPosAsl heli select 2) > 45) then
{
hint format ["jestes za wysoko. (%1)",floor(getPos heli select 2)];
}
-----------------------------------------------------------------------------------------------
Dziwna sprawa. Ustawiłem heli w powietrzu. Jak wiadomo domyślnie jest na wysokości ok 48-50m. I o dziwo skrypt zadziałał... ale jak wpisuję wartość wyższą np 51m to już nie.
Tak jakby działał tylko po włączęniu gry i natychmiast się wyłączał. Zrobiłem wyzwalacz 5000x5000, uruchamia go moj smigłowiec, włączyłem funkcję powtarzania i w On act. wpisałem Nul = [] execVM "skrypt1.sqf"ale to nic nie zmienia. Skrypt działa tylko gdy przy włączeniu gry jest juz spełniony (czyli poniżej 47m).
Czy ktoś wie o co chodzi?
Awatar użytkownika
Sieku12
Posty: 47
Rejestracja: 08 września 2010, 19:32
ID Steam:
Numer GG: 2176786
ID gracza: 0

Re: striela, śmigłowiec, strzal przy określonej wysokości

Post autor: Sieku12 »

ustaw w wyzwalaczu może "powtarzalny" i może to coś pomoże :)
P.S. - jeśli pomogłem przyznaj punkt reputacji, Ciebie to nic nie kosztuje a innym tak wiele daje :)

Polecam (film YouTube)
kmax1
Posty: 36
Rejestracja: 01 listopada 2009, 19:08
ID Steam:
ID gracza: 0

uszkodzenie śmigłowca przy określonej wysokości ROZWIAZANY!

Post autor: kmax1 »

Muszę przyznać, że jak zwykle proste sposoby okazują się być najlepsze. Jedna osoba przypomniała mi o tak banalnej sprawie jak wyzwalacz i jego jedna z możliwości (SWITCH) . Wpisanie w Condition( getPos heli select 2) > 45 a w On Act. "np. jedną z możliwości : (heli setdammage 1 lub heli setHit ["mala vrtule", 0.95]; itp.) daje znakomity rezultat. Oczywiście biorąc pod uwagę wybranie w wyzwalaczu opcji Switch.
Dziękuję za dobre chęci pomocy.
ODPOWIEDZ

Wróć do „Edycja oraz tworzenie misji, skrypty oraz programowanie”