Jump to content

Recommended Posts

Posted

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!

Posted
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. 😉 

  • I agree 1
Posted
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.

Posted
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.

Posted

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ą?

Posted
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

Posted

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?

Posted (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 by error723
  • Thanks 1
Posted

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 🙂 

Posted

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 😉

 

Posted (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 by lewnemejski
  • Thanks 1
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy