Używanie maski przeciwgazowej

Moderator: Inkwizytor

ODPOWIEDZ
VeaVictis
Posty: 79
Rejestracja: 19 września 2008, 08:02
ID Steam:
Numer GG: 1489462
ID gracza: 0
Lokalizacja: lubuskie

Używanie maski przeciwgazowej

Post autor: VeaVictis »

Witam.

Zainteresowałem się ostatnio addonem USEC NAVY http://www.armaholic.com/page.php?id=5897 . Jedną z ciekawszych rzeczy jest tam m.in możliwość zakładania maski p.gazowej. Niestety maskę można założyć tylko jednostkom z tego addonu. Zastanawiam się czy można użyć skryptu z tego addonu żeby np. móc używać tej maski z innymi jednostkami. Kombinowałem z:
zolnierz hasWeapon "GasMask" ,ale niestety nie wiem co zrobić dalej, próbowałem odpalić skrypt z tego addonu opdowiedzialny za założenie maski,ale niestety wyskakuje błąd. Poniżej zamieszczem skrypt odpowiedzialny za użycie maski przez oryginalną jednostkę z USEC NAVY.

gasmask_init.sqf

// Monitor Gasmask State
_unit = _this select 0;

while {(alive _unit)} do {
if (_unit hasWeapon "GasMask") then {
_unit setObjectTexture [0, '\usec_eff\textures\specfor\sf_2_co.paa'];
} else {
_unit setObjectTexture [0, ''];
};
sleep 0.5
};

Dodam,że każda jednostka może pobrać na wyposażenie maskę, ale niestety nie ma wtedy jej na twarzy a jedynie a wyposażeniu.
"Spadochroniarze nie umierają.... Idą do piekła,żeby się przegrupować."
gremdek
Posty: 261
Rejestracja: 13 grudnia 2006, 16:53
ID Steam:

Re: Używanie maski przeciwgazowej

Post autor: gremdek »

podaj ten błąd.

skrypt się odpala tak:

Kod: Zaznacz cały

[jednostka] execVM "gasmask_init.sqf"
nigdy nie robiłem addonu, więc nie wiem czy to

Kod: Zaznacz cały

_unit setObjectTexture [0, '\usec_eff\textures\specfor\sf_2_co.paa'];
nie zależy ściśle od modelu, także z tą ścieżką może być coś źle, nie wiem czy z poziomu misji można do pbo addonów się dostać.
cfog skończył się na kill'em all
VeaVictis
Posty: 79
Rejestracja: 19 września 2008, 08:02
ID Steam:
Numer GG: 1489462
ID gracza: 0
Lokalizacja: lubuskie

Re: Używanie maski przeciwgazowej

Post autor: VeaVictis »

no własnie próbowałem odpalic skrypt w ten sposób i nie idzie.
Udaje się tylko przez:

jednostka exec "gasmask_init.sqf" ale wtedy wywala taki błąd, tzn po wzięciu maski przez jednostka następuje uruchomienie skryptu i wywala błąd:

' |#| sleep 0.5'
Error ogólny błąd w wyrażeniu

jeśli chodzi o to:

_unit setObjectTexture [0, '\usec_eff\textures\specfor\sf_2_co.paa'];

to moim zdaniem nie powinno być problemu, bo w tym wypadku chodzi o podmianę,a raczej dołożenie tekstury maski p.gaz. na twarz żołnierza, można ten plik sopiować,albo zostawić w ogyginalnej lokalizacji i powinno działać. Nie jestem ekspertem w skryptach, więc piszę teoretycznie.
"Spadochroniarze nie umierają.... Idą do piekła,żeby się przegrupować."
gremdek
Posty: 261
Rejestracja: 13 grudnia 2006, 16:53
ID Steam:

Re: Używanie maski przeciwgazowej

Post autor: gremdek »

brakuje średnika za sleep 0.5.
cfog skończył się na kill'em all
VeaVictis
Posty: 79
Rejestracja: 19 września 2008, 08:02
ID Steam:
Numer GG: 1489462
ID gracza: 0
Lokalizacja: lubuskie

Re: Używanie maski przeciwgazowej

Post autor: VeaVictis »

Tym razem wywala blad:

'jednostka |#| hasWeapon "GasMask"
Error hasWeapon: Typ script, potrzebny obiekt
"Spadochroniarze nie umierają.... Idą do piekła,żeby się przegrupować."
gremdek
Posty: 261
Rejestracja: 13 grudnia 2006, 16:53
ID Steam:

Re: Używanie maski przeciwgazowej

Post autor: gremdek »

dlatego musisz odpalać poprzez

Kod: Zaznacz cały

[jednostka] execCM "gasmask_init.sqf"
albo w kodzie zamienić

Kod: Zaznacz cały

_unit = _this select 0;
na

Kod: Zaznacz cały

_unit = _this;
cfog skończył się na kill'em all
VeaVictis
Posty: 79
Rejestracja: 19 września 2008, 08:02
ID Steam:
Numer GG: 1489462
ID gracza: 0
Lokalizacja: lubuskie

Re: Używanie maski przeciwgazowej

Post autor: VeaVictis »

:/ niestety też nie działa. Po wpisaniu w polu inicjacji

[jednostka] execVM "gasmask_init.sqf" wywala komunikat Typ script, potrzebny nic.
Zmiana kodu z _unit = _this select 0; na _unit = this; też nic nie daje. Co jest źle??
"Spadochroniarze nie umierają.... Idą do piekła,żeby się przegrupować."
gremdek
Posty: 261
Rejestracja: 13 grudnia 2006, 16:53
ID Steam:

Re: Używanie maski przeciwgazowej

Post autor: gremdek »

pobaw się w debugowanie, czyli wykomentuj środek pętli i tam daj np.

Kod: Zaznacz cały

player globalchat format["%1", name _unit];
i próbuj zrobić tak żeby wyświetlało to imię.

a skrypt odpal przez inicjalizację jednostki o tak:

Kod: Zaznacz cały

[this] execCM "gasmask_init.sqf"
może masz coś ze zmiennymi powalone
cfog skończył się na kill'em all
VeaVictis
Posty: 79
Rejestracja: 19 września 2008, 08:02
ID Steam:
Numer GG: 1489462
ID gracza: 0
Lokalizacja: lubuskie

Re: Używanie maski przeciwgazowej

Post autor: VeaVictis »

Hmm nie wiem czy dobrze Cie zrozumiałem, bo jeśli wpisze to:
player globalchat format["%1", name _unit];

w polu inicjalizacji wyzwalacza , przy czym jako _unit dam nazwe gracza, to

wyświetla mi : ZACHÓD - nazwa gracza (imie i nazwisko).

Jeśli dam nazwę np. GasMask nie wyświetli nic. Może źle wpisuję. Gdy odpalam skrypt przez inicjalizację gracza:

[this] execCM "gasmask_init.sqf"

nic się nie dzieje. Z resztą chciałbym,żeby skrypt z maską p.gaz odpalił się dopiero w momencie jej wzięcia ze skrzyni czy też podniesienia z ziemi. Czy to,że używam Army razem z modem A.C.E ma jakiś wpływ na działąnie skryptów?? Może trzeba użyć innego skryptu, bo w katalogu jest jeszcze jeden plik o nazwie "GasMask_player", a wygląda następująco:

// Monitor Gasmask State
_unit = _this select 0;
USEC_GasMask = 1;

while {(USEC_GasMask == 1)} do {
if ((_unit animationphase "GasMaskState") == 1) then {
_unit setObjectTexture [0, ''];
} else {
_unit setObjectTexture [0, '\usec_eff\textures\specfor\sf_2_co.paa'];
};
sleep 0.5
};
"Spadochroniarze nie umierają.... Idą do piekła,żeby się przegrupować."
ODPOWIEDZ

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