0x8000ffff Posted March 31 Posted March 31 Zabrałem się za naukę pisania scenariuszy. Zacząłem od przestudiowania zawartości wiki ze szczególnym uwzględnieniem API i samego LUA. Mam doświadczenie w językach obiektowych, głównie Java i jej Swing, za językami skryptowymi nie przepadam, no ale cóż 😉 Po dokumentacji czas na zdobywanie pierwszych szlifów, opanowanie samego narzędzia deweloperskiego (F8). Obecnie tworzę mój pierwszy prosty scenariusz. Choć prosty, to wcale nie bez problematyczny. Na razie sobie radzę z rozwiązywaniem problemów (samodzielność w działaniu to najlepszy nauczyciel), ale dobrze by było stworzyć miejsce, gdzie będzie można zapytać osób doświadczonych w temacie i chętnych do przekazania wiedzy innym. Miejsce, gdzie nie będzie odpowiedzi typu "to już było na forum omawiane, wyszukaj sobie", bo ani to miłe ani profesjonalne 😉 Niniejszym chciałbym zaproponować właśnie takie miejsce. Pozdrawiam piszących scenariusze!
lewnemejski Posted April 1 Posted April 1 5 hours ago, 0x8000ffff said: Na razie sobie radzę z rozwiązywaniem problemów (samodzielność w działaniu to najlepszy nauczyciel), ale dobrze by było stworzyć miejsce, gdzie będzie można zapytać osób doświadczonych w temacie i chętnych do przekazania wiedzy innym. Miejsce, gdzie nie będzie odpowiedzi typu "to już było na forum omawiane, wyszukaj sobie", bo ani to miłe ani profesjonalne 😉😉 Niniejszym chciałbym zaproponować właśnie takie miejsce. Jedno takie miejsce już istnieje. Na oficjalnym serwerze na discord są dedykowane kanały odnośnie pisania scenariuszy. Także zapraszam, bo komunikacja jest ułatwiona, względem tego, co oferuje forum. Oczywiście, jeśli ktoś nie ma discorda albo nie chce używać, niech korzysta z tego lub innego wątku. 😉 1
0x8000ffff Posted Wednesday at 09:44 PM Author Posted Wednesday at 09:44 PM Dzięki za odpowiedź. Tak właśnie, nie mam i nie chcę mieć Discorda i liczę na rozwój tego wątku. 1
mateusz424 Posted Thursday at 04:32 AM Posted Thursday at 04:32 AM 6 godzin temu, 0x8000ffff napisał(a): (...) nie mam i nie chcę mieć Discorda (...) Z Discorda można korzystać w przeglądarce. Nie ma potrzeby instalowania aplikacji.
0x8000ffff Posted Thursday at 11:43 AM Author Posted Thursday at 11:43 AM 7 godzin temu, mateusz424 napisał(a): Z Discorda można korzystać w przeglądarce. Nie ma potrzeby instalowania aplikacji. Tak się składa, że wiem o tym.
0x8000ffff Posted Saturday at 02:12 PM Author Posted Saturday at 02:12 PM Przeszukałem forum w celu znalezienia odpowiedzi na pytanie, dlaczego VD w scenariuszach potrzebuje nawet kilku minut aby się aktywować. No i znalazłem tylko pytania i żadnej odpowiedzi. Mam za słaby sprzęt, czy wszyscy tak mają?
misiek_131415 Posted Saturday at 04:45 PM Posted Saturday at 04:45 PM Nie pamiętam jaki scenariusz. Był taki na forum że wyjazd z Katowic podawało po kilku minutach niektórym. Chyba słaby komputer był powodem.
Sklox Posted Sunday at 08:06 PM Posted Sunday at 08:06 PM W dniu 4.04.2026 o 16:12, 0x8000ffff napisał(a): Przeszukałem forum w celu znalezienia odpowiedzi na pytanie, dlaczego VD w scenariuszach potrzebuje nawet kilku minut aby się aktywować. No i znalazłem tylko pytania i żadnej odpowiedzi. Mam za słaby sprzęt, czy wszyscy tak mają? Wszyscy tak mają. VD potrzebuje około półtorej minuty na załadowanie nawet na potężnych komputerach, tego nie przeskoczysz. Wycinek z logu: [2026-04-03 21:11:52]: Starting VirtualDispatcher [2026-04-03 21:13:09]: VirtualDispatcher initialization finished
0x8000ffff Posted Sunday at 08:15 PM Author Posted Sunday at 08:15 PM No ok, czyli pozostaje ten czas aktywacji VD wykorzystać na dojście do składu, rozruch, nawet zimny etc.
0x8000ffff Posted 23 hours ago Author Posted 23 hours ago Czy ktoś do pisania scenariuszy korzysta z VS Code i debugowania (F5)? Przeczytałem instrukcję na wiki na ten temat, jako edytor czy wręcz programistyczne IDE działa znakomicie - mam swoje przyzwyczajenia z Netbeans IDE dla Javy. No i tu jest problem, w Netbeans debugowanie kodu w czasie rzeczywistym zawsze działa bez problemów, w VS Code nie (Netbeans znam od lat, VS Code używam po raz pierwszy). Mam w folderze ze scenariuszem folder .vscode z plikiem konfiguracyjnym, pochodzi z szablonu template, więc zakładam że jego zawartość jest prawidłowa. Polecenie netstat -ano | findstr 41912 w Terminalu VS Code zwraca wynik TCP 127.0.0.1:41912 0.0.0.0:0 LISTENING 6956. Więc gdzie jest pies pogrzebany? Jakaś specjalna konfiguracja w plikach scenariusza jest wymagana?
error723 Posted 19 hours ago Posted 19 hours ago (edited) 1. Sprawdź czy jesteś podpięty pod właściwy proces, 2. Sprawdź runttime, nie wiem jak jest w przypadku wpinania pliku lua, ale warto sprawdzić czy został prawidłowo wczytany 3. Sprawdź czy port należy do właściwego procesu, dla linuxa weryfikuje się PID z portem, dla widnowsa nie wiem. 4. Czasem reguły firewall hosta potrafią blokować porty, warto sprawdzić czy nie masz zamkniętego tego konkretnego, albo czy inny proces zeń nie korzysta. Tak, w NetBeans jest wszystko automatycznie, a vs code wymaga ręcznego spięcia runtime + port + debuger. Najpierw sprawdź czy PID procesu faktycznie jest spięty z portem, potem runtime. Dodatkowo, vs code pozwala spiąć agenta AI, który może sprawdzić konfigurację -> wystarczy konto na github, jest wersja darmowa, są też płatne (darmowa powinna sobie poradzić z podpowiedziami w kwestii konfiguracji). Edited 19 hours ago by error723 1
0x8000ffff Posted 3 hours ago Author Posted 3 hours ago Kombinuję z tym firewallem, jego wyłączenie nic nie zmienia, dodałem jednak proste reguły zezwalające na ruch w obie strony na porcie 41912, tak na wszelki wypadek. Zauważyłem jednak ciekawą rzecz, zmienne które wpisałem sobie w okienku inspekcyjnym są w stanie niedostępne dopóki nie wcisnę pauzy, wówczas pojawiają się ich wartości. Jeżeli nie ma już żadnego breakpointa w kodzie, pauzowanie skutkuje zatrzymaniem się na funkcji PerformUpdate(). Jeśli dobrze rozumiem, runtime to kod, który został wczytany z moich plików lua, składających się na scenariusz. Pilnuję się teraz, aby po zmianach w kodzie nie zapomnieć o "Reload current script" i przeładowaniu scenariusza, może tu był problem. A może po prostu debugowanie w VS Code odstaje od moich oczekiwań/przyzwyczajeń z Netbeans. Dziękuję za zabranie głosu i chęć pomocy 🙂
0x8000ffff Posted 2 hours ago Author Posted 2 hours ago Interesuje mnie jeszcze czarne okienko "TS Developer", nie jest opisane na wiki. Odkryłem, że mogę się przy jego pomocy teleportować do składów (zazwyczaj na ich dach), ale nie mogę się połapać w opisach przy składach "TS", "SR". Sądziłem też, że będzie można się teleportować do kabiny składu, aby sprawdzić np. z jaką prędkością skład jedzie. Dla przykładu, czy za Idzikowicami przyśpiesza do 200 km/h czy jedzie na sztywno 120 km/h jak było w poleceniu które ten skład wystartowało SetBotSpeed(EIC_4504, 120). Wiem, mam dużo pytań, ale taki był cel założenia tego wątku 😉
lewnemejski Posted 2 hours ago Posted 2 hours ago (edited) 1 hour ago, 0x8000ffff said: Jeśli dobrze rozumiem, runtime to kod, który został wczytany z moich plików lua, składających się na scenariusz. Pilnuję się teraz, aby po zmianach w kodzie nie zapomnieć o "Reload current script" i przeładowaniu scenariusza, może tu był problem. A może po prostu debugowanie w VS Code odstaje od moich oczekiwań/przyzwyczajeń z Netbeans. Ja w ogóle nie używam debugu w VS Code, gdy robię scenariusze, ewentualne testy robię zawsze w grze, korzystając czasem z tymczasowo utworzonych funkcji. Zalecam też stosować soft reload, bo zwykły reload kasuje zawartość wszystkich zmiennych, więc jak masz np. przypisany pociąg gracza do zmiennej o nazwie PlayerTrainset i chcesz coś z nim zrobić, to po zwykłym reload gra zapomni że PlayerTrainset to pociąg gracza. 32 minutes ago, 0x8000ffff said: Interesuje mnie jeszcze czarne okienko "TS Developer", nie jest opisane na wiki. Odkryłem, że mogę się przy jego pomocy teleportować do składów (zazwyczaj na ich dach), ale nie mogę się połapać w opisach przy składach "TS", "SR". SR (SimRail) oznacza że pociąg jest rzeczywiście w grze, w pełni załadowany i jest wszystko dla niego liczone. TS (Train Server) tutaj są pociągi poza renderowanym obszarem gracza (Także jest to zależne od ustawień graficznych), służy to odciążeniu komputerów z nadmiernych obliczeń, takie pociągi mają liczone niektóre parametry w uproszczony sposób, nie działają też BotCommands. Gra przenosi odpowiednio pociągi między TS a SR w zależności od ich pozycji względem gracza. Można w specjalnej konfiguracji gry (jest schowana w jednym z katalogów) wyłączyć TS ale jest to mocno niezalecane. 32 minutes ago, 0x8000ffff said: Sądziłem też, że będzie można się teleportować do kabiny składu, aby sprawdzić np. z jaką prędkością skład jedzie. Teleportować się można tylko do kabiny składów należących do gracza, ale gra i tak zawsze przenosi Ciebie do aktywnego pociągu. Prędkość pociągu można sprawdzić uzyskując dostęp do TrainsetInfo danego pociągu, zawiera on tablicę Vehicle a sam Vehicle jest strukturą ze zmienną prędkości. 32 minutes ago, 0x8000ffff said: Dla przykładu, czy za Idzikowicami przyśpiesza do 200 km/h czy jedzie na sztywno 120 km/h jak było w poleceniu które ten skład wystartowało SetBotSpeed(EIC_4504, 120). SetBotSpeed ustawia doraźnie prędkość pociągu bota na wskazaną, jeśli prędkość szlakowa jest inna, bot zacznie się do niej dostosowywać. (Czyli w opisanej sytuacji zacznie przyspieszać do 200 km/h jadąc na Strzałki) Funkcja służy głównie nadaniu prędkości dla skłądu, który spawnujemy na szlaku, żeby się nie rozpędzał od zera. Edited 2 hours ago by lewnemejski 1
Recommended Posts