Skocz do zawartości
Barney

Załadunek ludzi do pojazdów.

Rekomendowane odpowiedzi

Mam problem. Napisalem maly skrypt, który aktywuje się poprzez EventHandler umieszczony w wyzwalaczu:

punkt addEventHandler ["FiredNear", {if ((_this select 6) =="SmokeShellGreen") then {[] execVM "zaladunek.sqf";}}];

//punkt - to obiekt logiczny umieszczony w pobliżu grupki ludzi

Skrypt zaladunek.sgf wygląda tak:

_sam = nearestObjects [getMarkerPos "lz", ["Car","Truck","Air"], 40];  
_cnt = count _sam;  
_a = (_sam select 0);  
{_x assignAsCargo _a;} forEach lud;  
_zaa = assignedCargo _a;  
{[_X] orderGetIn true;} forEach _zaa;  
lud = lud - _zaa;  
if (_cnt == 1) exitWith {player sideChat "nie ma drugiego pojazdu"};  
_b = (_sam select 1);  
{_x assignAsCargo _b;} forEach lud;  
_zab = assignedCargo _b;  
{[_X] orderGetIn true;} forEach _zab;  
lud = lud - _zab;  
if (_cnt == 2) exitWith {player sideChat "nie ma trzeciego pojazdu"};  
_c = (_sam select 2);  
{_x assignAsCargo _c;} forEach lud;  
_zac = assignedCargo _c;  
{[_X] orderGetIn true;} forEach _zac;  
lud = lud - _zac;  
if (cnt == 3) exitWith {player sideChat "nie ma czwartego pojazdu"};
Skrypt w edytorze działa poprawnie. Problem polega na tym, że gdy testowałem w rozgrywce wieloosobowej z drugim graczem - nie dziala (ludzie po odpaleniu zielonego granatu dymnego, nie wsiadają do pojazdu).

Domyślam się, że przyczyna leży gdzieś przy odpalaniu skryptu (EventHandler?). Gdyż sam skrypt wsiadania, w rozgrywce wieloosobowej, dziala normalnie. Szukam rozwiązania tego problemu już kilka dni. Sam z tym problemem chyba już sobie nie poradzę :(

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

moze to?

(Exception(s): the Throw weapon wont broadcast the FiredNear event)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeżeli działa w edytorze a nie na MP to znaczy że któraś zmienna nie jest widoczna na serwerze - jest określona na lokalnym PC.

Np. w podanym kodzie nie podałeś jak ustalasz wartość zmiennej "lud" ?

Proponuje sprawdzić wartości zmiennych w MP poprzez wprowadzenie do kodu funkcji wyświetlenie wartości zmiennych na ekranie.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zmienna lud to zbiór nazwy cywili którzy mają być załadowani do kolejnych pojazdów.

Zmienną lud zapisałem w pliku init.sgf w postaci tablicy:

lud = [L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16,L17,L18,L19,L20,L21,L22,L23,L24,L25,L26,L27,L28,L29,L30];

L1 - nazwa pojedyńczego cywila itd.

Wartości zmiennych w trybie MP są wyświetlane poprawnie.

Wyświetlają się nazwy ludzi (w postaci tablic), którzy wsiadają do pojazdów. Wyświetla się także coraz mniejsza wartość zmiennej globalnej lud. Niestety wizualnie ludzie nie podbiegają i nie wsiadają do pojazdów. I z tym nie moge sobie poradzić.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Obstawiam to, co pisał Rafalski - spróbuj podpiąć skrypt pod strzał zwykłą bronią, lub dodaj do gracza eventHandler "Fired" i sprawdź w warunku czy rzucił granat.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeżeli skrypt uaktywni się poprzez strzał zwykłą bronią wszystko działa jak należy.

Dzięki!

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×