Używanie maski przeciwgazowej
Moderator: Inkwizytor
-
- Posty: 79
- Rejestracja: 19 września 2008, 08:02
- ID Steam:
- Numer GG: 1489462
- ID gracza: 0
- Lokalizacja: lubuskie
Używanie maski przeciwgazowej
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.
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ć."
Re: Używanie maski przeciwgazowej
podaj ten błąd.
skrypt się odpala tak:
nigdy nie robiłem addonu, więc nie wiem czy to 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ć.
skrypt się odpala tak:
Kod: Zaznacz cały
[jednostka] execVM "gasmask_init.sqf"
Kod: Zaznacz cały
_unit setObjectTexture [0, '\usec_eff\textures\specfor\sf_2_co.paa'];
cfog skończył się na kill'em all
-
- Posty: 79
- Rejestracja: 19 września 2008, 08:02
- ID Steam:
- Numer GG: 1489462
- ID gracza: 0
- Lokalizacja: lubuskie
Re: Używanie maski przeciwgazowej
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.
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ć."
-
- Posty: 79
- Rejestracja: 19 września 2008, 08:02
- ID Steam:
- Numer GG: 1489462
- ID gracza: 0
- Lokalizacja: lubuskie
Re: Używanie maski przeciwgazowej
Tym razem wywala blad:
'jednostka |#| hasWeapon "GasMask"
Error hasWeapon: Typ script, potrzebny obiekt
'jednostka |#| hasWeapon "GasMask"
Error hasWeapon: Typ script, potrzebny obiekt
"Spadochroniarze nie umierają.... Idą do piekła,żeby się przegrupować."
Re: Używanie maski przeciwgazowej
dlatego musisz odpalać poprzez
albo w kodzie zamienić
na
Kod: Zaznacz cały
[jednostka] execCM "gasmask_init.sqf"
Kod: Zaznacz cały
_unit = _this select 0;
Kod: Zaznacz cały
_unit = _this;
cfog skończył się na kill'em all
-
- Posty: 79
- Rejestracja: 19 września 2008, 08:02
- ID Steam:
- Numer GG: 1489462
- ID gracza: 0
- Lokalizacja: lubuskie
Re: Używanie maski przeciwgazowej
:/ 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??
[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ć."
Re: Używanie maski przeciwgazowej
pobaw się w debugowanie, czyli wykomentuj środek pętli i tam daj np.
i próbuj zrobić tak żeby wyświetlało to imię.
a skrypt odpal przez inicjalizację jednostki o tak:
może masz coś ze zmiennymi powalone
Kod: Zaznacz cały
player globalchat format["%1", name _unit];
a skrypt odpal przez inicjalizację jednostki o tak:
Kod: Zaznacz cały
[this] execCM "gasmask_init.sqf"
cfog skończył się na kill'em all
-
- Posty: 79
- Rejestracja: 19 września 2008, 08:02
- ID Steam:
- Numer GG: 1489462
- ID gracza: 0
- Lokalizacja: lubuskie
Re: Używanie maski przeciwgazowej
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
};
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ć."