setFuel przez internet

Edytor Arma (Arma, Arma2, Arma2OA)

Moderatorzy: kondor, Inkwizytor

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

setFuel przez internet

Post autor: Trance »

Witam. No orientuje się ktoś, dlaczego komenda setFuel nie jest rozsyłana przez serwer do wszystkich klientów? Zna ktoś sposób, zeby ją rozesłać? Sposób nie może być zbyt skomplikowany, bo taki to sobie sam moge wymyślić hehe :)
Obrazek
Awatar użytkownika
kondor
Posty: 1522
Rejestracja: 13 marca 2007, 11:50
ID Steam: Przemek_kondor
Kontakt:

Re: setFuel przez internet

Post autor: kondor »

Wg dokumentacji powinna być rozsyłana, ale jest tam napisane również, iż argumenty tej komendy powinny być lokalne na komputerze, gdzie jest wywoływana, czyli wg mnie komenda powinna być wykonywana na serwerze dla pustej ciężarówki lub u kierowcy, gdy jest kierowca.
Awatar użytkownika
Trance
Posty: 1090
Rejestracja: 20 maja 2007, 19:06
ID Steam:
ID gracza: 0

Re: setFuel przez internet

Post autor: Trance »

Skrypt działa wyłącznie dla pustego pojazdu, uruchomiony tylko na serwerze. I faktycznie, kiedy jestem serwerem wszystko działa ok, ale kiedy jestem tylko klientem, juz tej zmiany nie widzę. Z komendami setVehicleAmmo i engineOn równiez są te same problemy.
Obrazek
gremdek
Posty: 261
Rejestracja: 13 grudnia 2006, 16:53
ID Steam:

Re: setFuel przez internet

Post autor: gremdek »

a na pewno skrypt się uruchamia kiedy jesteś klientem?

jak serwer sobie setfuel zrobi to powinien zsynchronizować ten obiekt z klientami bo on nim zarządza.
może jakiś assignasdriver pojawią się gdzieś?
możesz zdaje się funkcją local to sprawdzić.
cfog skończył się na kill'em all
Awatar użytkownika
Trance
Posty: 1090
Rejestracja: 20 maja 2007, 19:06
ID Steam:
ID gracza: 0

Re: setFuel przez internet

Post autor: Trance »

Skrypt się odpala na serwerze na początku misji i zarządza wyłącznie pustym pojazdem. Nie ma żadnych komend typu assignAsDriver. Jednak klienci nie widzą tej zmiany paliwa w pojeździe, a całość wygląda właśnie tak, jakby serwer nie publikował tej zmiany do wszystkich klientów.
Obrazek
Awatar użytkownika
kondor
Posty: 1522
Rejestracja: 13 marca 2007, 11:50
ID Steam: Przemek_kondor
Kontakt:

Re: setFuel przez internet

Post autor: kondor »

Wiec wg mnie jest to bug lub dokumentacja nie podaje prawdziwej informacji (w co bardziej wierze, gdyz podobna komenda addWeaponCargo dziala tylko lokalnie).
Proponuje wiec (o ile jest to cecha, a nie bug ktory ma zostac niedlugo naprawiony) nastepujacy trik:
u wszystkich klientow:

Kod: Zaznacz cały

"refuelPair" addPublicVariableEventHandler
{
  ((_this select 1) select 0) setFuel ((_this select 1) select 1);
};
na serwerze, podczas zmiany poziomu paliwa:

Kod: Zaznacz cały

_pojazd setFuel CUSTOM_FUEL_LEVEL;
refuelPair = [_pojazd, CUSTOM_FUEL_LEVEL];
publicVariable "refuelPair";
Problem:
dla graczy JIP (w przypadku ustawien paliwa przed ich sie polaczeniem) zadziala tylko dla 1 pojazdu (nie pamietam, czy dla pierwszego, czy ostatniego)

Pisalem z pamieci, wiec moga byc bledy.
Awatar użytkownika
Trance
Posty: 1090
Rejestracja: 20 maja 2007, 19:06
ID Steam:
ID gracza: 0

Re: setFuel przez internet

Post autor: Trance »

No o tym rozwiązaniu też wcześniej myślałem, ale w kategorii tego rozwiązania skomplikowanego :), którego akurat tutaj chciałbym uniknąć. No nic dzięki za pomoc :), jak najbliższy patch tego nie poprawi, to z pewnością to rozwiązanie znajdzie swoje miejsce w skrypcie.

Jeszcze raz dzięki za pomoc :)
Obrazek
ODPOWIEDZ

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