Niezrozumiały debug oraz (prawdopodobnie) błąd z nim związan

"Zrób to sam" czyli dłubiemy w Arma2 (Arma2, Arma2OA)

Moderator: Inkwizytor

Awatar użytkownika
SaS TrooP
Posty: 1586
Rejestracja: 30 października 2008, 17:30
ID Steam:
ID gracza: 0
Lokalizacja: Wodzisław Śl.
Kontakt:

Niezrozumiały debug oraz (prawdopodobnie) błąd z nim związan

Post autor: SaS TrooP »

Ostatnio zacząłem sobie konwertować do Army 2 staaarusieńką misję jeszcze do Flashpointa. Okazało się, że część osiąganych efektów po prostu nie działa, spam z błędami co niemiara. Dlatego zacząłem konwertować te najważniejsze rzeczy (najważniejsze, bo skrypty mają makabryczną konstrukcję) i wiele błędów naprawiłem. Pojawia się jednak... jeden.

http://i160.photobucket.com/albums/t198 ... -45-15.png

Czy ktoś może mi powiedzieć gdzie należy szukać informacji o tym błędzie? Odpala się w multiplayerze już w lobby, przypuszczam więc, że to jakiś problem z initem. Sęk w tym, że przeczytałem go od przodu, tyłu, od prawej i wspak i nie znalazłem nic, co mogłoby spowodować jakiś problem.

Tutaj jest init.sqs - jak widać stary i dość nieporęczny:

Kod: Zaznacz cały

execVM "R3F_ARTY_AND_LOG\init.sqf";
respawn = [] execVM "randomstart.sqf"
respawncar = [] execVM "randomcar.sqf"
respawnscrap = [] execVM "randomscrap.sqf"



[] exec "time.sqs"
;------------------------------
man1scrap=param1
man1scrap=man1scrap-(man1scrap % 1)
man1hunger=0
man1food=5
man1XP=param2
man1XP=man1XP-(man1XP % 1)
man1bankscrap=100
publicvariable "man1xp"
publicvariable "man1scrap"
publicvariable "man1food"
;------------------------------
man2scrap=param1
man2scrap=man2scrap-(man2scrap % 1)
man2hunger=0
man2food=5
man2XP=param2
man2XP=man2XP-(man2XP % 1)
man2bankscrap=100
publicvariable "man2xp"
publicvariable "man2scrap"
publicvariable "man2food"
;------------------------------
man3scrap=param1
man3scrap=man3scrap-(man3scrap % 1)
man3hunger=0
man3food=5
man3XP=param2
man3XP=man3XP-(man3XP % 1)
man3bankscrap=100
publicvariable "man3xp"
publicvariable "man3scrap"
publicvariable "man3food"
;------------------------------
man4scrap=param1
man4scrap=man4scrap-(man4scrap % 1)
man4hunger=0
man4food=5
man4XP=param2
man4XP=man4XP-(man4XP % 1)
man4bankscrap=100
publicvariable "man4xp"
publicvariable "man4scrap"
publicvariable "man4food"
;------------------------------
man5scrap=param1
man5scrap=man5scrap-(man5scrap % 1)
man5hunger=0
man5food=5
man5XP=param2
man5XP=man5XP-(man5XP % 1)
man5bankscrap=100
publicvariable "man5xp"
publicvariable "man5scrap"
publicvariable "man5food"
;------------------------------
man6scrap=param1
man6scrap=man6scrap-(man6scrap % 1)
man6hunger=0
man6food=5
man6XP=param2
man6XP=man6XP-(man6XP % 1)
man6bankscrap=100
publicvariable "man6xp"
publicvariable "man6scrap"
publicvariable "man6food"
;------------------------------
man7scrap=param1
man7scrap=man1scrap-(man7scrap % 1)
man7hunger=0
man7food=5
man7XP=param2
man7XP=man7XP-(man7XP % 1)
man7bankscrap=100
publicvariable "man7xp"
publicvariable "man7scrap"
publicvariable "man7food"
;------------------------------
man8scrap=param1
man8scrap=man1scrap-(man8scrap % 1)
man8hunger=0
man8food=5
man8XP=param2
man8XP=man8XP-(man8XP % 1)
man8bankscrap=100
publicvariable "man8xp"
publicvariable "man8scrap"
publicvariable "man8food"

[] exec "XPcheck.sqs"
[] exec "hunger.sqs"
Ale to nie koniec.
Nie wiem czy mam jakiś problem powiązany właśnie z tym, ale wiele informacji jest w skryptach podawanych poprzez groupchat format. Groupchat ten... przestał działać i jakkolwiek skrypty się odpalają i działają (w sensie osiągam główny zamierzony efekt) to wpis z wspomnianym groupchatem jest ZAWSZE pomijany i nie otrzymuję informacji o błędzie. Otrzymuję ją w jednym jedynym miejscu, brzmi ona:

Kod: Zaznacz cały

Brak ;
Co samo w sobie jest bez sensu, bo wycinek tego skryptu wygląda mniej więcej tak:

Kod: Zaznacz cały

?_this select 1 == man1 : goto "man1"
?_this select 1 == man2 : goto "man2"
?_this select 1 == man3 : goto "man3"
?_this select 1 == man4 : goto "man4"
?_this select 1 == man5 : goto "man5"
?_this select 1 == man6 : goto "man6"
?_this select 1 == man7 : goto "man7"
?_this select 1 == man8 : goto "man8"
exit

#man1
man1 hint format ["you have %1 scrap,%2 food, %4 hunger,and %3 XP", man1scrap, man1food, man1XP, man1hunger]
exit

#man2
man2 hint format ["you have %1 scrap,%2 food, %4 hunger,and %3 XP", man2scrap, man2food, man2XP, man2hunger]
exit

i tak dalej z man3...
Jakim cudem skrypt. sqs upomina się w ogóle o ";" (dopisanie nic nie dało BTW)? :o
Po prostu, znika mi groupchat i wywala niezrozumiały błąd, zapewne w inicjacji. Może mi ktoś to wyjaśnić?
Awatar użytkownika
kondor
Posty: 1522
Rejestracja: 13 marca 2007, 11:50
ID Steam: Przemek_kondor
Kontakt:

Re: Niezrozumiały debug oraz (prawdopodobnie) błąd z nim zwi

Post autor: kondor »

Błąd, który widzisz na ekranie jest zazwyczaj ostatnim z wielu. Najważniejszy jest pierwszy, bo on często również jest przyczyną pozostałych.
Wyczyść plik rpt i zapuść misję ponownie. Do szukania błędów używaj rpt (zaczynając od góry), a nie komunikatów z ekranu.
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: Niezrozumiały debug oraz (prawdopodobnie) błąd z nim zwi

Post autor: SaS TrooP »

Jeśli mówimy o pliku .rpt w danych aplikacji to po wyczyszczeniu pozostaje on pusty.
Awatar użytkownika
kondor
Posty: 1522
Rejestracja: 13 marca 2007, 11:50
ID Steam: Przemek_kondor
Kontakt:

Re: Niezrozumiały debug oraz (prawdopodobnie) błąd z nim zwi

Post autor: kondor »

To podstawowe miejsce, gdzie zapisują się ostrzeżenia i błędy. Być może sprawdzasz nie ten, co trzeba - są różne pliki rpt w katalogach "Arma 2" i "ArmA 2 OA" (CO używa oczywiście tego drugiego).
Moja ścieżka (windows XP) to "C:\Documents and Settings\kondor\Ustawienia lokalne\Dane aplikacji\ArmA 2 OA\arma2oa.RPT"
Jeśli mimo wszystko nie loguje Ci do tego pliku, a pokazuje błędy na ekranie, to coś dziwnego się dzieje.
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: Niezrozumiały debug oraz (prawdopodobnie) błąd z nim zwi

Post autor: SaS TrooP »

Fail, faktycznie nie ten .rpt (mam skrót na pulpicie do folderu ukrytego, ale do Army 2). My bad!
No to jeden krok w przód:

To jest wyczyszczony .rpt:

Kod: Zaznacz cały

File C:\Documents and Settings\Marcin\Moje dokumenty\ArmA 2 Other Profiles\SaS%20TrooP\missions\Fallout%20RPG.jadegroove\description.ext, line 1: '.respawn': Missing ';' at the end of line
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <man1 hint format ["you have %1 scrap,%2 food,>
  Error position: <hint format ["you have %1 scrap,%2 food,>
  Error Brak ;
Error in expression <man2 hint format ["you have %1 scrap,%2 food,>
  Error position: <hint format ["you have %1 scrap,%2 food,>
  Error Brak ;
Error in expression <man3 hint format ["you have %1 scrap,%2 food,>
  Error position: <hint format ["you have %1 scrap,%2 food,>
  Error Brak ;
Error in expression <man4 hint format ["you have %1 scrap,%2 food,>
  Error position: <hint format ["you have %1 scrap,%2 food,>
  Error Brak ;
Error in expression <man5 hint format ["you have %1 scrap,%2 food,>
  Error position: <hint format ["you have %1 scrap,%2 food,>
  Error Brak ;
Error in expression <man6 hint format ["you have %1 scrap,%2 food,>
  Error position: <hint format ["you have %1 scrap,%2 food,>
  Error Brak ;
Error in expression <man7 hint format ["you have %1 scrap,%2 food,>
  Error position: <hint format ["you have %1 scrap,%2 food,>
  Error Brak ;
Error in expression <man8 hint format ["you have %1 scrap,%2 food,>
  Error position: <hint format ["you have %1 scrap,%2 food,>
  Error Brak ;
Error in expression <man2 removeaction buildfence22>
  Error position: <buildfence22>
  Error Nieokreślona zmienna w wyrażeniu: buildfence22
Error in expression <man2 removeaction BuildShell2>
  Error position: <BuildShell2>
  Error Nieokreślona zmienna w wyrażeniu: buildshell2
Error in expression <man2 removeaction buildramp2>
  Error position: <buildramp2>
  Error Nieokreślona zmienna w wyrażeniu: buildramp2
Error in expression <man2 removeaction buildtower2>
  Error position: <buildtower2>
  Error Nieokreślona zmienna w wyrażeniu: buildtower2
Error in expression <man2 removeaction buildmed2>
  Error position: <buildmed2>
  Error Nieokreślona zmienna w wyrażeniu: buildmed2
Error in expression <man2 removeaction buildspike2>
  Error position: <buildspike2>
  Error Nieokreślona zmienna w wyrażeniu: buildspike2
[czy spojler na tym forum nie działa? Bo Code nie zawija jak np. na OFPECu]

Poprawiłem wpis w description,ext który nic nie afektował.

Nadal nie rozumiem tego:

Kod: Zaznacz cały

Error in expression <---------------------------------------->
  Error position: <>
  Error Niepoprawna liczba w wyraĹĽeniu
Error in expression <---------------------------------------->
Obejrzałem od wewnątrz już chyba wszystkie pliki i... nic. Nigdzie nie ma takiego wpisu albo jestem ślepy. Myślałem, że to jakaś pozostałość po konwersji .sqs - .sqf ale zmieniłem pod tym kątem baaaardzo niewiele (4-5 plików).

No i to:

Kod: Zaznacz cały

Error in expression <man4 hint format ["you have %1 scrap,%2 food,>
  Error position: <hint format ["you have %1 scrap,%2 food,>
  Error Brak ;
Error in expression <man5 hint format ["you have %1 scrap,%2 food,>
  Error position: <hint format ["you have %1 scrap,%2 food,>
  Error Brak ;
W poście pierwszym masz zacytowany ten skrypt, zresztą wiesz. Jest on identyczny, zmienia się tylko podmiot (autor zastosował starą konstrukcję i odpala każdy efekt osobno dla każdego gracza, uprzednio sprawdzając który to. To jest w niemal każdym skrypcie).
Ale jakim cudem .sqs POTRZEBUJE znaku ";", który i tak nic nie naprawia. Rpt cytuje jakby początek komendy format, ale nie powinien on się tam moim zdaniem znajdować, tak samo nie mogą mieszać przecinki, bo wpis o surowcach jest w stringu. Więc o co chodzi?

Błąd o akcji można pominąć, nie afektuje niczego i pozbędę się go bez przeszkód w późniejszym etapie.

Nadal nie ma wpisu o problemie z groupchatem. Odnoszę jednak wrażenie, że tyczy się on także hinta, bo gdy zamieniłę mje ze sobą nic się nie zmieniło.
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: Niezrozumiały debug oraz (prawdopodobnie) błąd z nim zwi

Post autor: SaS TrooP »

Update z testow na serverze: po śmierci gracza gracz ma informacje na grouchacie...
Awatar użytkownika
kondor
Posty: 1522
Rejestracja: 13 marca 2007, 11:50
ID Steam: Przemek_kondor
Kontakt:

Re: Niezrozumiały debug oraz (prawdopodobnie) błąd z nim zwi

Post autor: kondor »

Radzę Ci użyć squinta, który prawie zawsze znajduje takiego typu błędy.
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: Niezrozumiały debug oraz (prawdopodobnie) błąd z nim zwi

Post autor: SaS TrooP »

Błędy wywalające na Sqincie to głownie brak komend private, które zastosowałem (przy okazji: fajny program :P)

Podsumujmy: groupchat działa dopiero po zrespawnowaniu gracza. CO wg. ciebie mogłoby być powodem? Gdzie szukać błędu, spotkałeś się kiedyś z czymś takim?
Oraz śmierć graczy. W środku nocy gracze... giną (po prostu się przewracają, że niby umierają ). Dziś poczekaliśmy dalej i umarli w okolicy południa. To jest też błąd który średnio do mnie dociera, ALE... może mam gdzieś rozwiązanie. Jutro wyłączymy dzień i noc. W misji występuje ona razem z losową pogodą, ale jest także skrypt głodu. Rzuć może na to okiem:

Kod: Zaznacz cały

#start
~240
;-----
man1hunger=man1hunger+5
?(man1hunger >=100) : man1 setdammage 1;man1 groupchat "you have starved to death!";man1hunger=0
?(man1hunger >=95) : man1 groupchat "you are starving, you must find somthing to eat!"
?(man1hunger >=50) && (man1hunger <=90) : man1 groupchat "you are hungery, maybe you should find somthing to eat soon"
;-----
man2hunger=man2hunger+5
?(man2hunger >=100) : man2 setdammage 1;man2 groupchat "you have starved to death!";man2hunger=0
?(man2hunger >=95) : man2 groupchat "you are starving, you must find somthing to eat!"
?(man2hunger >=50) && (man2hunger <=90) : man2 groupchat "you are hungery, maybe you should find somthing to eat soon"
;-----
man3hunger=man3hunger+5
?(man3hunger >=100) : man3 setdammage 1;man3 groupchat "you have starved to death!";man3hunger=0
?(man3hunger >=95) : man3 groupchat "you are starving, you must find somthing to eat!"
?(man3hunger >=50) && (man3hunger <=90) : man3 groupchat "you are hungery, maybe you should find somthing to eat soon"
;-----
man4hunger=man4hunger+5
?(man4hunger >=100) : man4 setdammage 1;man4 groupchat "you have starved to death!";man4hunger=0
?(man4hunger >=95) : man4 groupchat "you are starving, you must find somthing to eat!"
?(man4hunger >=50) && (man4hunger <=90) : man4 groupchat "you are hungery, maybe you should find somthing to eat soon"
;-----
man5hunger=man5hunger+5
?(man5hunger >=100) : man5 setdammage 1;man5 groupchat "you have starved to death!";man5hunger=0
?(man5hunger >=95) : man5 groupchat "you are starving, you must find somthing to eat!"
?(man5hunger >=50) && (man5hunger <=90) : man5 groupchat "you are hungery, maybe you should find somthing to eat soon"
;-----
man6hunger=man6hunger+5
?(man6hunger >=100) : man6 setdammage 1;man6 groupchat "you have starved to death!";man6hunger=0
?(man6hunger >=95) : man6 groupchat "you are starving, you must find somthing to eat!"
?(man6hunger >=50) && (man6hunger <=90) : man6 groupchat "you are hungery, maybe you should find somthing to eat soon"
;-----
man7hunger=man7hunger+5
?(man7hunger >=100) : man7 setdammage 1;man7 groupchat "you have starved to death!";man7hunger=0
?(man7hunger >=95) : man7 groupchat "you are starving, you must find somthing to eat!"
?(man7hunger >=50) && (man7hunger <=90) : man7 groupchat "you are hungery, maybe you should find somthing to eat soon"
;-----
man8hunger=man8hunger+5
?(man8hunger >=100) : man8 setdammage 1;man8 groupchat "you have starved to death!";man8hunger=0
?(man8hunger >=95) : man8 groupchat "you are starving, you must find somthing to eat!"
?(man8hunger >=50) && (man8hunger <=90) : man8 groupchat "you are hungery, maybe you should find somthing to eat soon"
goto "start"

Oraz napisany przeze mnie time.sqf:

Kod: Zaznacz cały

private ["_wartosci","_Pogoda"];
while {true} do 

{
skiptime 0.95;
hint "an hour has passed";

_wartosci = [

0.01,
0.1,
0.2,
0.3,
0.4,
0.5,
0.6,
0.7,
0.8,
0.9,
0.99

];

_Pogoda = _wartosci call BIS_fnc_selectRandom;
10 setOvercast _pogoda;

sleep 299;

};
Czy istnieje prawdopodobieństwo, że przesunięcie czasu jakoś koliduje z głodem? W jakikolwiek sposób? Bo gdy gracze giną nie pojawia się informacja, że umarli z głodu, do tego śmierć nie następuje dokładnie w momencie przesunięcia godziny (zaobserwowane dzisiaj).
Może być w tym jednak jakiś związek?
Awatar użytkownika
kondor
Posty: 1522
Rejestracja: 13 marca 2007, 11:50
ID Steam: Przemek_kondor
Kontakt:

Re: Niezrozumiały debug oraz (prawdopodobnie) błąd z nim zwi

Post autor: kondor »

1. Jak dodajesz / uruchamiasz ten skrypt? Żeby sprawdzać, czy i kiedy dane skrypt się uruchomiły używam komendy diag_log: http://community.bistudio.com/wiki/diag_log , np na poczatku skryptu / pętli / czegokolwiek, co mnie interesuje:

Kod: Zaznacz cały

diag_log format["Skrypt xxxx.sqf uruchomiony, czas: %1", time];
to zapisuje logi do wspomnianego wczesniej pliku .rpt
2. Co do śmierci poszukaj innych setDammage
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: Niezrozumiały debug oraz (prawdopodobnie) błąd z nim zwi

Post autor: SaS TrooP »

1. Jak dodajesz / uruchamiasz ten skrypt? Żeby sprawdzać, czy i kiedy dane skrypt się uruchomiły używam komendy diag_log: http://community.bistudio.com/wiki/diag_log , np na poczatku skryptu / pętli / czegokolwiek, co mnie interesuje:
Przepraszam, który dokładnie? Czas? Zwykły .sqf w inicie.sqs poprzez ExecVM. Swoją drogą, Time.sqf nigdy się nie zamyka: czy wszystko zadziała, jeśli przesunę funkcję losowania (tablicę) poza pętlę i przeprowadzę w niej jedynie same losowanie?
Zobaczę co zdziałam z tym diag_logiem dziś, zapewne na wieczornych testach. Zresztą chyba dziś wyłączymy czas przyspieszony. Dlaczego? Bo...
2. Co do śmierci poszukaj innych setDammage
Zrobiłem to jakieś 3 razy jeszcze z rok temu w wersję pod OFP, drugie tyle nim utworzyłem ten temat i jeszcze raz ze Squintem. NIC nie ma (dlatego ten błąd wydaje mi się tak walnięty) :o
Mogę o nim powiedzieć tylk otyle, że następuje zapewne co jakiś czas przyjmując, że jest jakoś afektowany przez time.sqf lub hunger.sqs. Czy istnieje możliwość, że te skrypty ze sobą kolidują? Oba mają wstrzymanie działania i są zapętlone. Czy np. przesuwanie czasu nie zwiększa w jakiś sposób głodu? Tylko dlaczego zabija wszystkich graczy (a przecież każdy je wg. własnego uznania) oraz nie pojawia się informacja o śmierci głodowej? Przecież wpis w skrypcie nie powinien być afektowany i gdy warunek o głodzie wyższym niż bodaj 90 zostanie spełniony, powinien odpalić się odpowiedni napis.
Który, jak napisałem niedawno, zaczyna działać gdy gracz umrze minimum 1 raz, co też mnie po prostu niszczy.

Rozumiem każdą funkcję, każdy skrypt i każde wywołanie w tej misji, przynajmniej tak mi się wydaje. Wciąż występuje błąd pokazany na screenie w 1 poście, do tego pojawia się rzadko i ciężko nam orzec kiedy dokładnie. Wczoraj wyświetlił się on JEDEN raz poza odpaleniem (lobby). Także nikt nie wie co go powoduje.

Swoją drogą, oba problemy i związane z nimi pytania dotyczą się jedne misji, pozwolę dorzucić sobie kolejne (aby uniknąć tematu z jednosłowną odpowiedzią): czy init.sqs działa w wypadku Join In Progress i czy jest egzekwowany przez każdego gracza z osobna? Ponieważ gdy jakiś gracz zrobi JIP resetuje pozycje graczy, ich głód, doświadczenie etc., czyli wszystkie skrypty zawarte w init.sqs oraz publicvariables jak właśnie głód czy XP. Jeśli tak, to czy umieszczenie initu w zapytaniu isServer będzie mądre (init znajduje się w pierwszym poście)?
Awatar użytkownika
kondor
Posty: 1522
Rejestracja: 13 marca 2007, 11:50
ID Steam: Przemek_kondor
Kontakt:

Re: Niezrozumiały debug oraz (prawdopodobnie) błąd z nim zwi

Post autor: kondor »

Jakiekolwiek rzeczy powinny być wykonywane / liczone tylko w jednym miejscu. Zazwyczaj na serwerze, lub jeśli coś bezpośrednio dotyczy gracza, to powinny być wykonywane tylko u tego gracza. Jeśli ci man1,2 itd są graczami, to obsługa głodu każdego powinna być liczona u danego gracza.
To jedna z podstawowych zasad programowania - nie udostępniaj wiedzy niezainteresowanym. Po co gracz man2 ma znać głód gracza man4? To tylko powoduje problemy, np nowy gracz (man5) się połączy i robi publicVariable "głodMan6" nadpisując głód innego gracza.

Dla przejrzystości rób wszystkie obliczenia na serwerze. Jeśli chcesz wyświetlić coś graczom ze skryptu serwera, użyj MultiplayerFramework - jest naprawde prosty: http://community.bistudio.com/wiki/Mult ... _framework

Co do głodu i innych cech związanych bezpośrednio z jakąś jednostką najlepiej użyć setVariable i getVariable - po to zostały wprowadzone.

Żeby zobaczyc jaki głód ma jednostka w czasie smierci, mozesz uzyc eventhandlera killed.

Pogodę chyba też masz wadliwą. funkcja BIS_fnc_selectRandom zwraca losowy element tablicy. Losowy i zazwyczaj rozny na każdym kliencie. Jedni będą mieć deszcz, a inni słońce.
ODPOWIEDZ

Wróć do „Addony - tworzenie oraz modyfikacja gry”