Alarm po detonacji ładunku.
Moderatorzy: kondor, Inkwizytor
Alarm po detonacji ładunku.
Witam. Mam kolejne pytanie odnośnie edytora. Czy i jak można nadać zmiennej ambush wartość true w momencie, kiedy w określonym regionie nastąpi wybuch?
Bomba będzie podkładana przez gracza i chcę, żeby w momencie detonacji zewsząd zbiegli się wrogowie. Jeśli ktoś ma łatwiejszy pomysł, to czekam na propozycje.
Bomba będzie podkładana przez gracza i chcę, żeby w momencie detonacji zewsząd zbiegli się wrogowie. Jeśli ktoś ma łatwiejszy pomysł, to czekam na propozycje.
Re: Alarm po detonacji ładunku.
Postaw przy bombie jakiś mały przedmiot i daj w warunku wyzwalacza getdammage przedmiot > 0,5 w polu aktywacji alarm=true
Re: Alarm po detonacji ładunku.
Z tym, że bomba rozstawiana będzie przez gracza. Generalnie zależy mi na czymś w tym stylu:
Jeśli w obszarze wyzwalacza zostanie użyta bomba to alarm = true. Tylko tego pierwszego nie umiem zrobić, ale jestem pewien, że się da. Na odczepnego mogę poustawiać każdemu pojazdowi, który mam zniszczyć, getdammage, ale co, jeśli gracz stwierdzi, że walnie sobie bombkę gdzieś indziej? Wrogowie w cudowny sposób nic nie zauważą?
Jeśli w obszarze wyzwalacza zostanie użyta bomba to alarm = true. Tylko tego pierwszego nie umiem zrobić, ale jestem pewien, że się da. Na odczepnego mogę poustawiać każdemu pojazdowi, który mam zniszczyć, getdammage, ale co, jeśli gracz stwierdzi, że walnie sobie bombkę gdzieś indziej? Wrogowie w cudowny sposób nic nie zauważą?
Re: Alarm po detonacji ładunku.
Podejrzewam, że detonacja ładunku jest traktowana jako wystrzał z broni. Więc mógłbyś użyć sposobu podobnego do wykrywania odpowiedniej flary.
Re: Alarm po detonacji ładunku.
Jak będę miał czas, to to sprawdzę, z tym, że potrzeben mi to w określonym regionie. Powiedzmy, że wstawiam wyzwalacz, ustawiam jego wielkość odpowiednio i nazywam powiedzmy ambsh. Jak mam zmodyfikować warunek w skrypcie, żeby uwzględnić konkretny region odpalenia?
I jeszcze jedno:
Od czego zależy, jaką liczbę mam tam wpisać?
I jeszcze jedno:
Kod: Zaznacz cały
_pocisk = _this select 0;
Re: Alarm po detonacji ładunku.
jakby co, to geometria w armie tez działa. odległości między punktami w przestrzeni da się obliczyć bez wyzwalaczy.
ad. i jeszcze jedno:
to jest ze skryptu odpalanego eventhandlerem, sprawdź sobie cały ten przykład co ktoś tam zamieścił.
ad. i jeszcze jedno:
to jest ze skryptu odpalanego eventhandlerem, sprawdź sobie cały ten przykład co ktoś tam zamieścił.
cfog skończył się na kill'em all
Re: Alarm po detonacji ładunku.
Skrypt dostaje tylko 1 parametr - co widać w linii dodawania eventhandlera:Vari pisze: I jeszcze jedno:Od czego zależy, jaką liczbę mam tam wpisać?Kod: Zaznacz cały
_pocisk = _this select 0;
wiec akurat zawsze będzie tam 0plyr2 addEventHandler ["fired", {[_this select 4] execVM "wykryj_flare.sqf";}];
Re: Alarm po detonacji ładunku.
Teraz mój skrypt wygląda tak:
Dla testu rzuciłem pojazd z waypointem o warunku ambsh i... Nie działa. Nie jestem pewien, czy użyłem dobrej nazwy pocisku, to jest "PipeBomb", bo z tego, co pamiętam, nawet dla flary była użyta jakaś inna nazwa, niż tutaj: http://www.forum.armacenter.pl/viewtopic.php?t=9755
Problem jest pewnie banalny, ale jakoś nie przychodzi mi nic do głowy.
Przy okazji zapytam, jakimi komendami określę region działania skryptu?
Kod: Zaznacz cały
_pocisk = _this select 0;
if ((_pocisk == "F_40mm_Green") and (not czerwonaWystrzelona)) then
{
zielonaWystrzelona = true;
publicVariable "zielonaWystrzelona";
}
else
{
if ((_pocisk == "F_40mm_Red") and (not zielonaWystrzelona)) then
{
czerwonaWystrzelona = true;
publicVariable "czerwonaWystrzelona";
else
{
if ((_pocisk == "PipeBomb")) then
{
ambsh = true;
publicVariable "ambsh";
};
};
Problem jest pewnie banalny, ale jakoś nie przychodzi mi nic do głowy.
Przy okazji zapytam, jakimi komendami określę region działania skryptu?
Re: Alarm po detonacji ładunku.
Odświeżam, bo jeszcze nie dostałem odpowiedzi.
Mam dwa skrypty:
init:
i eq:
Potrzebuję czegoś następującego:
Flary (czerwonaWystrzelona i zielonaWystrzelona) mają działać tylko w danym regionie, zakreślonym w sposób, o jakim wspomniał gremdek (nie znam tego sposobu), a PipeBomb, to jest detonacja bomby działać ma tylko w innym tak samo określonym regionie. Mniemam, że będę musiał rozdzielić te skrypty, ale jak mam określić sobie ten region i czy to co napisałem tu:
jest poprawne?
Naprawdę tego potrzebuję, a niewątpliwie przyda się to też innym. Dzięki z góry.
Mam dwa skrypty:
init:
Kod: Zaznacz cały
zielonaWystrzelona = false;
czerwonaWystrzelona = false;
plyr1 addEventHandler ["fired", {[_this select 4] execVM "eq.sqf";}];
plyr2 addEventHandler ["fired", {[_this select 4] execVM "eq.sqf";}];
escape1 = false;
escape2 = false;
ambsh = false;
Kod: Zaznacz cały
_pocisk = _this select 0;
if ((_pocisk == "F_40mm_Green") and (not czerwonaWystrzelona)) then
{
zielonaWystrzelona = true;
publicVariable "zielonaWystrzelona";
}
else
{
if ((_pocisk == "F_40mm_Red") and (not zielonaWystrzelona)) then
{
czerwonaWystrzelona = true;
publicVariable "czerwonaWystrzelona";
else
{
if ((_pocisk == "PipeBomb")) then
{
ambsh = true;
publicVariable "ambsh";
};
};
Flary (czerwonaWystrzelona i zielonaWystrzelona) mają działać tylko w danym regionie, zakreślonym w sposób, o jakim wspomniał gremdek (nie znam tego sposobu), a PipeBomb, to jest detonacja bomby działać ma tylko w innym tak samo określonym regionie. Mniemam, że będę musiał rozdzielić te skrypty, ale jak mam określić sobie ten region i czy to co napisałem tu:
Kod: Zaznacz cały
if ((_pocisk == "PipeBomb")) then
{
ambsh = true;
publicVariable "ambsh";
Naprawdę tego potrzebuję, a niewątpliwie przyda się to też innym. Dzięki z góry.
-
- Posty: 77
- Rejestracja: 31 grudnia 2009, 14:51
- ID Steam:
- ID gracza: 0
Re: Alarm po detonacji ładunku.
Ja bym trochę przerobił te skrypty.
I teraz skrypt eq.sqf
i bomb.sqf
Gdzie wyzwalacz1, to wyzwalacz aktywujący się, gdy gracz jest w strefie ewakuacji. A obj1 to obiekt, od którego w promieniu 50m musi eksplodować bomba, żeby włączyć alarm. Oczywiście to 50 można czymś zastąpić, ale maksymalny dystans jak podaje BIS Wiki to ok 69m.
Pzdr
Kod: Zaznacz cały
zielonaWystrzelona = false;
czerwonaWystrzelona = false;
plyr1 addEventHandler ["fired", {[_this select 4] execVM "eq.sqf";}];
plyr2 addEventHandler ["fired", {[_this select 4] execVM "eq.sqf";}];
obj1 addEventHandler ["firedNear", {[_this select 2, this select 6] execVM "bomb.sqf";}];
escape1 = false;
escape2 = false;
ambsh = false;
Kod: Zaznacz cały
_pocisk = _this select 0;
if (((_pocisk == "F_40mm_Green") and (not czerwonaWystrzelona)) and (TriggerActivated wyzwalacz1)) then
{
zielonaWystrzelona = true;
publicVariable "zielonaWystrzelona";
}
else
{
if (((_pocisk == "F_40mm_Red") and (not zielonaWystrzelona)) and (TriggerActivated wyzwalacz1)) then
{
czerwonaWystrzelona = true;
publicVariable "czerwonaWystrzelona";
};
};
Kod: Zaznacz cały
_pocisk = _this select 1;
_dystans = _this select 0;
if (dystans < 50) {
if ((_pocisk == "PipeBomb")) then
{
ambsh = true;
publicVariable "ambsh";
};
};
Pzdr
Re: Alarm po detonacji ładunku.
Walnąłem wyzwalacz i nazwałem go obj1, zaznaczyłem sobie miejsce w jego obrębie (50) i zdetonowałem bombę. Drugi hammer z warunkiem ambsh nie ruszył. Coś musi być nie tak. Zamieniłem w skrypcie PipeBomb na flarę i wystrzał flary w tym miejscu też nic nie dał. Czy ktś mógłby sprawdzić to u siebie i, w miarę możliwości, wrzucił, jeżeliby działało? Najdziwniejsze jest to, że wszystko wygląda idealnie, a i tak coś zgrzyta ;/
I jeszcze: Nie jestem pewien ale w tym:
Za drugim razem zmienna dystans nie powinna mieć także "_" przed sobą? Nawet po dodaniu tego, nie działa.
I jeszcze: Nie jestem pewien ale w tym:
Kod: Zaznacz cały
_pocisk = _this select 1;
_dystans = _this select 0;
if (dystans < 50) {
if ((_pocisk == "PipeBomb")) then
{
ambsh = true;
publicVariable "ambsh";
};
};