Ograniczanie gracza

Edytor Arma (Arma, Arma2, Arma2OA)

Moderatorzy: kondor, Inkwizytor

Awatar użytkownika
kondor
Posty: 1526
Rejestracja: 13 marca 2007, 11:50
ID Steam: Przemek_kondor
Kontakt:

Re: Ograniczanie gracza

Post autor: kondor »

Madrian pisze:Przecież to proste.
to po co skomplikowales rozwiązanie poprzez dodanie jeszcze jednej zmiennej i obiektu?
Awatar użytkownika
SaS TrooP
Posty: 1586
Rejestracja: 30 października 2008, 17:30
ID Steam:
ID gracza: 0
Lokalizacja: Wodzisław Śl.
Kontakt:

Re: Ograniczanie gracza

Post autor: SaS TrooP »

Kondor, chyba robię coś... źle :mrgreen:

W Inicie daję jestSikanie = true
W skrypcie odpowiedzialnym za odejście żołnierza o nazwie arbanek daję jestSIkanie = false (wiem, że odwrotnie, ale tak mi wygodniej). Wywalacz to obługujący w warunku ma, że NIE MA być mnie i arbanka, ale ma być sikanie. Pozmieniałem teżw tym trochę, ale wyzwalacz ciągle odpala się na początku misji.
Awatar użytkownika
kondor
Posty: 1526
Rejestracja: 13 marca 2007, 11:50
ID Steam: Przemek_kondor
Kontakt:

Re: Ograniczanie gracza

Post autor: kondor »

SaS TrooP pisze:Kondor, chyba robię coś... źle :mrgreen:
No co ty
nazwy zmiennych powinny mowic za co ta zmienna odpowiada. Jak zmieniasz znaczenie zmiennej na przeciwne niż nazwa wskazuje dodajesz jedynie sobie do głowy jeden stopień komplikacji więcej.

w init:

Kod: Zaznacz cały

jestSikanie = false; //no bo nie ma sikania jeszcze, no nie?
jestSikanie ma się zmienić na true jeśli arbanek pójdzie się odlać - logiczne, no nie?
warunek wyzwalacza, który, jak rozumiem, ma się aktywować jak gracz opuści teren podczas sikania kumpla, który jest poza tym terenem:

Kod: Zaznacz cały

(not player in thislist) && (not arbanek in thislist) && jestSikanie
lub prościej:

Kod: Zaznacz cały

(not player in thislist) && jestSikanie
tara!

to nawet można przeczytać po polsku (ten warunek wyzwalacza):
"uaktywnij wyzwalacz jeśli gracz opuścił teren i arbanek poszedł się odlać"
Awatar użytkownika
SaS TrooP
Posty: 1586
Rejestracja: 30 października 2008, 17:30
ID Steam:
ID gracza: 0
Lokalizacja: Wodzisław Śl.
Kontakt:

Re: Ograniczanie gracza

Post autor: SaS TrooP »

Wygląda na to, że nie działa.


Sikanie na false wchodzi w Inicie, który puki co wygląda tak:

Kod: Zaznacz cały

execVM "Briefing.sqf";
jestSikanie = false;

if (true) exitWith {};
W radiostacji jest sobie wyzwalacz, który aktywuje plik siki.sqf:

Kod: Zaznacz cały

titlecut ["ciach","plain down",2];
sleep 6;
arbanek domove (getpos sikiplace);
arbanek setcombatmode "careless";
jestSikanie = true;
A od samego początku działa wyzwalacz:

Kod: Zaznacz cały

(not ja in thislist) && jestSikanie
gdzie "ja" to bohater.

Kombinowałem z różnymi aktywacjami. Od samego startu misji pojawia się błąd w rogu "error not: typ obiekt, potrzebny bool". Generalnie nie wiem czemu się pojawia, bo boolean jest określony, w innych skryptach też są. A potem gra tak jakby ignoruje skrypt i nic się nie dzieje.
Awatar użytkownika
kondor
Posty: 1526
Rejestracja: 13 marca 2007, 11:50
ID Steam: Przemek_kondor
Kontakt:

Re: Ograniczanie gracza

Post autor: kondor »

wygląda jakby "not" miał wyższy priorytet od "in", dlatego jestem fanem nawiasów; spróbuj:

Kod: Zaznacz cały

(not (ja in thislist)) and jestSikanie
Awatar użytkownika
Artek3333
Posty: 578
Rejestracja: 29 czerwca 2007, 20:02
ID Steam:
ID gracza: 0
Lokalizacja: Żywiec

Re: Ograniczanie gracza

Post autor: Artek3333 »

SaS TrooP pisze:Wygląda na to, że nie działa.


Sikanie na false wchodzi w Inicie, który puki co wygląda tak:

Kod: Zaznacz cały

execVM "Briefing.sqf";
jestSikanie = false;

if (true) exitWith {};
spróbuj wpisać

Kod: Zaznacz cały

 []exec"Briefing.sqf";
czyli bez VM ja się złapałem na tym dopisku, że mi niektóre składnie w skrypcie nie chciały działać :|
Awatar użytkownika
Trance
Posty: 1090
Rejestracja: 20 maja 2007, 19:06
ID Steam:
ID gracza: 0

Re: Ograniczanie gracza

Post autor: Trance »

exec jest do skryptów .sqs
execVM jest do skryptów .sqf

Nie mieszaj Artek ;)
Obrazek
Awatar użytkownika
Artek3333
Posty: 578
Rejestracja: 29 czerwca 2007, 20:02
ID Steam:
ID gracza: 0
Lokalizacja: Żywiec

Re: Ograniczanie gracza

Post autor: Artek3333 »

Ja nie mieszam, tylko mówię co zauważyłem. Raz w skrypcie miałem 2 polecenia i przy zapisie z blebleVM.sqf drugie polecenie nie chciało się uruchomić i żeby nie przenosić to do sqs usunąłem po prostu dopisek VM i obydwie składnie się uruchamiały prawidłowo. Kropka, amen :coffee
Awatar użytkownika
kondor
Posty: 1526
Rejestracja: 13 marca 2007, 11:50
ID Steam: Przemek_kondor
Kontakt:

Re: Ograniczanie gracza

Post autor: kondor »

tyle, ze w srodku miales pewnie kod sqs, czyli burdel na maxa...
Awatar użytkownika
SaS TrooP
Posty: 1586
Rejestracja: 30 października 2008, 17:30
ID Steam:
ID gracza: 0
Lokalizacja: Wodzisław Śl.
Kontakt:

Re: Ograniczanie gracza

Post autor: SaS TrooP »

I z radością stwierdzam, że finalnie zajarzyło.
Nie mam 100% pewności jeszcze, ale powinno być OK. Kondorowi plusik za nieziemską cierpliwość.
Awatar użytkownika
Artek3333
Posty: 578
Rejestracja: 29 czerwca 2007, 20:02
ID Steam:
ID gracza: 0
Lokalizacja: Żywiec

Re: Ograniczanie gracza

Post autor: Artek3333 »

kondor pisze:tyle, ze w srodku miales pewnie kod sqs, czyli burdel na maxa...
Właśnie, że nie! Mógłbym to udowodnić ale bym musiał znaleźć w którym to sqf było Miałem plik jakaśtamnazwa sqf a w pliku

Kod: Zaznacz cały

cośtam cośtam
~3
cośtam2 cośtam2
defakto miało się uruchomić cośtam cośtam i po 3 sekundach cośtam2 cośtam2 w uruchamianiu wyzwalacza wpisuję []execVM"jakaśtamnazwa. sqf" i przy uruchamianiu wyzwalacza uruchamia się tylko (cośtam cośtam) a gdy w wyzwalaczu usunąłem tylko dopisek VM to uruchomiło mi się wszystko czyli (cośtam cośtam) i po 3 sekundach (cośtam2 cośtam2) :)
nie wiem czemu tak się dzieje i muszę to jeszcze sprawdzić, bo raz tylko się na takim przypadku złapałem :?:
ODPOWIEDZ

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