Teraz jest Pt 29 mar, 2024 13:43


kndr_debug_console

Archiwum działów sekcji Armed Assault
  • Autor
  • Wiadomość
Offline
Avatar użytkownika

kondor

Major

Major

  • Posty: 880
  • Dołączył(a): Pt 11 lut, 2005 04:00
  • Lokalizacja: Berlin (wschodni)

kndr_debug_console

PostPn 09 mar, 2009 23:15

Witam,
W czasie pisania kilku misji napotykałem bardzo często na bugi, niepoprawne wartości zmiennych, warunków itp. Szukanie błędów zazwyczaj wiązało się z umieszczaniem jakichś hintów:
Kod: Zaznacz cały
hint format["zmienna1=%1 zmienna2=%2", zmienna1, zmienna2];

itp, co jednak było dosyć uciążliwe, bo musiałem wpisać takie coś w skrypcie, zapisać, uruchamiać misję i czekać np do momentu, w którym oczekiwałem jakichś zmian w zmiennych.

Co gorsza pisałem misje tylko dla MP, co jeszcze bardziej komplikowało sprawę - żeby znaleźć bug, trzeba było wstawić taki hint, zapisać, przetestować u siebie, wyeksportować do misji MP, wysłać na serwer, zebrać zrzędzących ludzi do testu i pytać się jakie rzeczy wyświetla im hint.

Dlatego napisałem to narzędzie. Widziałem, ze już istnieją konsole, ale nie mogłem znaleźć takiej, która też działa w MP. Tzn oprócz wyświetlania wartości zmiennych missionmakerowi wyświetla też te wartości innym graczom, co uelastycznia testowanie.

Konsola jest prymitywna, ale działa i wg mnie dobrze spełnia swoją rolę.

Cechy:
-wyświetla wartości zmiennych publicznych, większość wyrażeń (czyt. komend) army
-wartości wyświetla cyklicznie (pozwala to na śledzenie zmian)
-na wszystkich komputerach graczy, którzy uruchomią tą konsolę będą wyświetlane wartości tych samych wyrażeń (co nie znaczy, że to samo, bo np name player u każdego będzie inne)
-konsola może być czyszczona przez wciśnięcie przycisku "Clear"
-zaleca się aby wyrażenia wpisywała tylko 1 osoba (nie testowałem sytuacji jak różne osoby zaczynają pisać)
-potrafi wykonywać polecenia, np:
Kod: Zaznacz cały
"UH60" createVehicle getPos player

i robi to dla każdego gracza i cyklicznie (dopóki konsola jest uruchomiona i nie jest wyczyszczone to polecenie (poprzez przycisk "Clear"))
-na niektórych poleceniach się wywala, np na instrukcji przypisania:
Kod: Zaznacz cały
zmienna1 = 2;

a jak się wywali należy wcisnąć "Clear", zamknąć konsolę i uruchomić ją raz jeszcze
-można wpisywać różne polecenia, nazwy zmiennych (globalnych) np:
Kod: Zaznacz cały
getPos player
getMarkerPos "respawn_west"
tablica2
aP1
4 setFog 1.0

-gdy dana instrukcja jest błędna, np: getPos plajer lub polecenie nie zwraca wartości, np (ustawianie mgły) 0 setFot 1 lub zmienna nie została zainicjowana, czyli jest scalar bool array... to wówczas na czerwono wyświetli się odpowiedni komunikat, w przeciwnym razie na zielono konsola wypisze wartość zmiennej/wynik komendy

Używanie:
-rozpakować i umieścić w katalogu z misją
-gdzieś na początku uruchomić skrypt inicjalizacyjny, np w init.sqf:
Kod: Zaznacz cały
call compile preprocessFile "_debug_\kndr_init_debug.sqf";

-w description.ext umieścić linijkę (to zaeksportuje gui):
Kod: Zaznacz cały
#include "_debug_\kndr_debug_console.hpp"

-uruchomić w misji przez radio

Uwagi:
-używanie, ulepszanie jest mile widziane

Czołem
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.

Powrót do Armed Assault

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 22 gości

cron