śmigłowiec, strzal przy określonej wysokości ROZWIAZANY!
Moderatorzy: kondor, Inkwizytor
śmigłowiec, strzal przy określonej wysokości ROZWIAZANY!
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.
Re: striela, śmigłowiec, strzal przy określonej wysokości
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
Re: striela, śmigłowiec, strzal przy określonej wysokości
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:
(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ć
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
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];
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ć

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)

Polecam (film YouTube)
Re: striela, śmigłowiec, strzal przy określonej wysokości
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ć.
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ć.
Re: striela, śmigłowiec, strzal przy określonej wysokości
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)

Polecam (film YouTube)
Re: striela, śmigłowiec, strzal przy określonej wysokości
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?
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?
Re: striela, śmigłowiec, strzal przy określonej wysokości
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)

Polecam (film YouTube)
uszkodzenie śmigłowca przy określonej wysokości ROZWIAZANY!
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.
Dziękuję za dobre chęci pomocy.