Same problemy z tymi spadochronami

Moderator: Inkwizytor

ODPOWIEDZ
Awatar użytkownika
Trance
Posty: 1090
Rejestracja: 20 maja 2007, 19:06
ID Steam:
ID gracza: 0

Same problemy z tymi spadochronami

Post autor: Trance »

Witam!
Mam taki, pewnie dla większości znających się na rzeczy banalny problem ze spadochronami. A raczej dwa problemy. Chodzi o to, ze mam taki fragment skryptu:

_ktoleci = list wyzwalacz // sprawdza, kto jest w obrebie jakiegos tam wyzwalacza
_iluleci = count _ktoleci // sprawdza, ile to osob
_pozycja = [x,y,z] // nadaje jakies tam polozenie
{_para = "Parachute" createVehicle (_pozycja); _para setPos _pozycja; _x MoveInDriver _para} forEach _ktoleci


kod ten ma za zadanie (według mojego rozumowania) stworzyc tyle spadochronow ilu jest graczy w obrebie wyzwalacza i "pozapinac" ich tam na kierowcow. Jednak to nie działa i tylko osoba, ktora aktywuje cały skrypt rzeczywiscie jest przenoszona jak nalezy, stwarzana jest odpowiedna ilosc spadochronow, lecz pozostali gracze nie zostaja przeniesieni na kierowcow. Ma ktos pomysł, dlaczego tak sie dzieje? Słyszalem, ze to wina tego, ze cały czas jest ta sama nazwa spadochronu, ale według mnie to nie powinno przeszkadzac, a jezeli przeszkadza, to jak stworzyc dynamicznie zmieniajaca sie nazwe pojazdu?

I kolejny problem, moze troche mniej wazny, ale rownie irytujacy. Podczas tworzenia tych spadochronow wyswietla sie "Nie znaleziono potrzebnych dodatkow ble ble ble - caair. Wie ktos co to ma byc? Skads to trzeba sciagnac? Czy to wina gry, skryptu?
Obrazek
Awatar użytkownika
Trance
Posty: 1090
Rejestracja: 20 maja 2007, 19:06
ID Steam:
ID gracza: 0

Re: Same problemy z tymi spadochronami

Post autor: Trance »

Widze, ze coś nie macie pomysłu na tą przypadłośc, zupełnie zresztą jak ja.
Może jednak ktoś będzie wiedział, czy i jak można zrobic, aby jakis skrypt otwierał się na wszystkich komputerach klienckich, podczas gdy jest uruchamiany poprzez skrypt odpalany tylko na jednym komputerze?
Zadziała takie coś, ze na jednym komputerze daje (w skrypcie odpalanym tylko u jednego gracza):

zmienna = [] exec "skrypt.sqs"

a w pliku skrypt.sqs dam:

publicVariable "zmienna"
?
Prosze Was bardzo o pomoc.
Obrazek
Awatar użytkownika
klamacz
Posty: 818
Rejestracja: 23 listopada 2006, 09:54
ID Steam:
Numer GG: 2019934
ID gracza: 2320644
Lokalizacja: Szczytno
Kontakt:

Re: Same problemy z tymi spadochronami

Post autor: klamacz »

a nie lepiej uruchamiac go na serwerze? jest chyba taka komenda isServer ...
z tym _para ktore sie powtarza dla wszystkich spadochronow, mozesz sprobowac napisac funkcje, ktora wywolasz

{costam_call "stworzParachuteDlaGracza(_x)"} forEach _ktoleci

wtedy wewnatrz funkcji masz pojedyncze uzycie _para , ktore jest lokalne i nie wychodzi na zewnatrz.
Zaznaczam, ze moja wiedza o skryptach arma jest znikoma :)
Obrazek Obrazek Obrazek Obrazek Obrazek
Obrazek
Awatar użytkownika
Trance
Posty: 1090
Rejestracja: 20 maja 2007, 19:06
ID Steam:
ID gracza: 0

Re: Same problemy z tymi spadochronami

Post autor: Trance »

Chodzi o to, ze ten skrypt dodaje jakąś tam akcje do menu akcji. W momencie, kiedy odpale skrypt na serwerze, to kazdy po podejsciu do tego goscia bedzie miał ta akcje (nie bedzie mogl jej uzyc, ale bedzie ja miał), a jak uruchomie skrypt tylko u tej osoby, to tylko ona ma ta akcje i nikt inny, ale chce, zeby ten skrypt był widoczny tylko dla tego gracza tylko do pewnego momentu :), potem chce, zeby sie stał niejako globalny... I tu jest problem.

A z tą funkcja... no tak w sumie to dobre, ale w zasadzie niczego to nie zmieni, moze skroci o jedna linijke kod, zasada dzialania natomiast nie zmieni sie wcale lub bardzo niewiele...
Obrazek
Awatar użytkownika
kondor
Posty: 1526
Rejestracja: 13 marca 2007, 11:50
ID Steam: Przemek_kondor
Kontakt:

Re: Same problemy z tymi spadochronami

Post autor: kondor »

zrzut spadochronowy zrobiłem u siebie tak (coop DS:Sabotage):
-jeden gość uruchamia skrypt, w którym publikowana jest wartość true dla zmiennej globalnej o nazwie ParaEnabled
-ParaEnabled jest wpisana jako warunek wyzwalacza aktywującego skrypt spadochronowy dla grupy
tresc skryptu:

Kod: Zaznacz cały

_tab = [g1,g2,g3,g4,g5,g6];
_count = count _tab;
_class = "Parachute";
if( playerSide == resistance )then{ _class = "ParachuteG"; };

for[ {_i=0}, {_i<_count}, {_i=_i+1} ]do{

	_jumper = _tab select _i;
	if( (local _jumper) AND (not isNull _jumper) AND ((vehicle _jumper) == _jumper) )then
	{		
		_para = createVehicle[_class, [para_x+(_i*20),para_y,50], [], 0, "FLY"];
		_jumper moveInDriver _para;		
	};
	sleep 0.5;

};
gdzie zmienne para_x, para_y są zmiennymi globalnymi wyznaczonymi gdzie indziej
oczywiście dla siebie musialbys wyznaczyc inaczej tablicę _tab
Awatar użytkownika
Trance
Posty: 1090
Rejestracja: 20 maja 2007, 19:06
ID Steam:
ID gracza: 0

Re: Same problemy z tymi spadochronami

Post autor: Trance »

Tak zrobiłem, z drobnymi modyfikacjami i niestety nie działa.
Może by przyczyną komplikacji to, że używam .sqs zamiast .sqf? :)
Obrazek
Awatar użytkownika
Matte
Posty: 805
Rejestracja: 17 stycznia 2007, 12:20
ID Steam:
Numer GG: 3470353
ID gracza: 2166020
Lokalizacja: Sosnowiec

Re: Same problemy z tymi spadochronami

Post autor: Matte »

To musi byc w sqf'ie, przecież to co kondor Ci dał to sqfowska składnia.
Jestem BIS fanboyem! :ofp :weteran
FAQ:
Co zrobić gdy powiedzą coś złego o OFP:DR? DR nie żyje, a fani zapomnieli.
Co zrobić gdy powiedzą coś złego o ArmA II? - Do 1.96 jescze trochę brakuję...
All of BIS's programming is done by Ondrej's hair
Blogaska prowadzę, i gadam do mikrofonu w podcaście na matteprl.net
Awatar użytkownika
Trance
Posty: 1090
Rejestracja: 20 maja 2007, 19:06
ID Steam:
ID gracza: 0

Re: Same problemy z tymi spadochronami

Post autor: Trance »

Tak to wiem, ale ja porobiłem modyfikacje, zeby składnia wygladała jak ta z plikow sqs. Tylko czy np pewne komendy poprostu nie dzialaja w sqs czy cos takiego, o to mi raczej chodzi ;)
Obrazek
ODPOWIEDZ

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