- Kod: Zaznacz cały
#loop
if ((plane1 distance pos1) < 800) then {goto "bomb1"} or if ((plane2 distance w1) < 800) then {goto "bomb2"}
#bomb1
plane1 fire "BombLauncherF35";
plane2 fire "BombLauncherF35";
~0.5
plane1 fire "BombLauncherF35";
plane2 fire "BombLauncherF35";
#bomb2
plane1 fire "BombLauncherF35";
plane2 fire "BombLauncherF35";
~0.5
plane1 fire "BombLauncherF35";
plane2 fire "BombLauncherF35";
goto "loop"
Nie znam się na sqs, ale w sqf poprawnie wygladałoby to tak:
- Kod: Zaznacz cały
while {true} do
{
if ((plane1 distance pos1) < 800) then
{
plane1 fire "BombLauncherF35";
plane2 fire "BombLauncherF35";
sleep .5;
plane1 fire "BombLauncherF35";
plane2 fire "BombLauncherF35";
};
if ((plane2 distance w1) < 800) then
{
plane1 fire "BombLauncherF35";
plane2 fire "BombLauncherF35";
sleep .5 ;
plane1 fire "BombLauncherF35";
plane2 fire "BombLauncherF35";
};
sleep .5;
};
2 możliwe przyczyny:
1) Nie wuem, czy w .sqs poprawne jest:
if ((plane1 distance pos1) < 800) then {goto "bomb1"} or if ((plane2 distance w1) < 800) then {goto "bomb2"}
OR to operator logiczny (logiczna suma), która zwraca true, gdy choć jeden składnik jest true.
2) Nie wiem jakiego typu jest zmienna w1 i pos1. Jeżeli są to markery, to musisz użyć funkcji getMarkerPos "nazwamarkera". Jeżeli są to waypointy - użyj getWpPos waypoint.
Funkcja distance zwraca odległość pomiędzy obiektem, pozycją, lub dowolną kombinacją powyższych. Nie działa na markery, ani nawaypointy. A więc poprawny kod dla markerów wygląda:
- Kod: Zaznacz cały
if ((plane1 distance (getMarkerPos "pos1") < 800) then
{
...
};
if ((plane2 distance (getMarkerPos "w1")) < 800) then
{
...
};
Dla waypointów użyj getWpPos pos1 i getWpPos w1.
Wszystko pisane z czapki, niesprawdzone. Jeżeli się nie odpali to powiedz jaki był błąd.
Aha, .sqf odpalasz poprzez komendę execVM "ścieżka skryptu";