setpos po opuszczeniu jednostki z grupy.

Edytor Arma3 - dyskusje i zapytania o tworzeniu misji, skryptów oraz programowaniu.

Moderator: Inkwizytor

ODPOWIEDZ
mrsurv
Posty: 4
Rejestracja: 21 sierpnia 2016, 18:40
ID Steam:

setpos po opuszczeniu jednostki z grupy.

Post autor: mrsurv »

Robię mały skrypt umożliwiający dodanie i usunięcie AI z grupy.

Plik init

Kod: Zaznacz cały

if!(miller in units grpNull) then {execVM "millerjoin.sqf"}
;
if!(miller in units grp_ALPHA) then {execVM "millerleave.sqf"}
;

Pomysł jest taki, że gdy Miller nie jest w mojej grupie odpala się millerjoin.sqf (poniżej) co umożliwia mi po najechaniu na niego myszką dodanie go do mojej grupy.

Kod: Zaznacz cały

miller addAction
[
    "Recruit Unit",
    {
       [_this select 0] join grp_ALPHA; (_this select 1);    //array may contain more than one unit
       (_this select 0) removeAction (_this select 2);
    },
    [],
    6,
    true,
    true,
    "",
    "_this distance _target < 5"
];
W momencie gdy jest on w mojej grupie powinna pojawić się opcja "Leave Group" co skutkuje opuszczeniem przez niego grupy

Kod: Zaznacz cały

miller addAction
[
    "Leave Group",
    {
       [_this select 0] join grpNull; (_this select 1); 
       (_this select 0) removeAction (_this select 2);

    },
    [],
    6,
    true,
    true,
    "",
    "(_this distance _target < 5)"
]; 
Problem polega na tym, że w grze mam cały czas widoczne obie akcje (join i leave), sam skrypt działa i mogę bez problemu dodawać i usuwać jednostkę.
Coś pewnie mam skopane w init ale nie mogę dojść co ( już 2h zmarnowałem na rozgryzienie if! ....)

Kolejny problem: Chce aby po opuszczeniu grupy Miller udał się na pozycję markera.

Próbowałem wstawić w millerleave.sqf

Kod: Zaznacz cały

miller setpos getmarkerpos "millerbase" 
Skutek był taki, że postać znikała ...

Spróbowałem z goMove - postać się nie rusza.

Bardzo proszę o pomoc bo już nie mam sił :(



[/b]
Awatar użytkownika
vynaratorski
Posty: 178
Rejestracja: 27 września 2009, 15:22
ID Steam:
ID gracza: 1
Kontakt:

Re: setpos po opuszczeniu jednostki z grupy.

Post autor: vynaratorski »

Chyba addaction przyczepia Ci się do gracza, a nie do AI, spróbuj np. nie robić triggera "if!(miller" itd. tylko od razu swój millerjoin.sqf dodaj przez addaction do Millera - wtedy pewnie trzeba będzie inaczej execować skrypt millerjoin.sqf

Co do tego żeby gdzieś poszedł, to musisz skorzystać z:
addWaypoint
setCurrentWaypoint

Tylko nie wiem, czy Miller nie będzie musiał być w jakiejś fikcyjnej grupie, żeby WP działały, musisz przetestować czy WP zadziała na konkretną jednostkę (w sumie na dwoje babka wróżyła).

Ach, i ostatnia rzecz, ja tam nienawidzę addAction gorzej niż muzyki Golców, więc polecam poszukać innego rozwiązania :D
Obrazek
mrsurv
Posty: 4
Rejestracja: 21 sierpnia 2016, 18:40
ID Steam:

Re: setpos po opuszczeniu jednostki z grupy.

Post autor: mrsurv »

Okazało się, że pomyliłem marker z pointerem (helper) :roll:

Wszystko teraz gra i buczy :D
ODPOWIEDZ

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