patwrobel Posted January 24 Posted January 24 Witam, mam następujące problemy. Zrobiłem pociąg osobowy, który jedzie przed NASZYM towarem i jest sterowany przez BOT. Zauważyłem kilka problemów, które są błędem gry lub można to jakoś obejść włączając specjalny tryb tego BOTa ale nie wiem jak. Bota tworzę tak: SpawnTrainsetOnSignalAsync( "PassengerTrain", FindSignal(aSignalName), aDistance, false, false, true, { CreateNewSpawnVehicleDescriptor(LocomotiveNames.EN57_650, false), CreateNewSpawnVehicleDescriptor(LocomotiveNames.EN57_650, false) }, function (trainset) LOCAL.PassengerTrain = trainset; trainset.SetTimetable(LoadTimetableFromFile("PassengerTrain.xml"), true); trainset.SetState(DynamicState.dsStop, TrainsetState.tsTrain, true); Coroutine(PassengerTrain__OnLoad); end ); Pierwszy problem jest taki że nie zawsze zatrzymuje się na przystankach - tak mi się zdaje bo za szybko dociera do następnej dużej stacji (niezgodnie z rozkładem co sugeruje że nie zatrzymuje się po drodze - dużo przed co jest nie możliwe gdyby z poprzedniego przystanku odjechał zgodnie z rozkładem). Wydaje mi się że to się dzieje jak odjedzie za daleko ode mnie i przestaje być obiektem graficznym a staje się tylko "klockiem" (podczas Developer Mode można to zaobserwować jak się teleportuje do niego). Pewnie wówczas ma ograniczoną fizykę itp. Może da się to jakoś wyłączyć? Chciałem w funkcji SpawnTrainsetOnSignalAsync ustawić parametr isDummyVehicle na false ale wówczas w ogóle sam nie jedzie! Drugi problem to taki że ustawiłem mu na jakiś event BotCommand -> bcDriveLength: CreateMediumBotCommand(BotCommandType.bcDriveLength, "DriveLength", aDistance, 0, false, false, true) Jak jestem blisko to działa bez zarzutu mniej więcej po ustalanej odległości BOT zatrzymuje się potem mam kolejną komendę do zmiany stanu na dsCold i jest OK. Jednak jak jestem daleko od akcji BOT jedzie dalej do następnego semafora. Trzeci problem chciałem weryfikować czy BOT zatrzymał się już poprzez komendę: coroutine.yield(CoroutineYields.WaitForVehicleStop, LOCAL.PassengerTrain.Vehicles[1]); Jak jestem blisko wszystko działa jak BOT odjedzie leci błąd bo Vehicles jest NULL - wiec jak można to weryfikować?
margi1 Posted Friday at 09:11 PM Posted Friday at 09:11 PM Zauważyłem, że pociąg AI jadący równolegle do naszego, czasami się teleportuje do przodu, jedzie za szybko, jakby ignorował semafory i przystanki, AI jeszcze w tej grze jest niedopracowany.
Sklox Posted Saturday at 10:44 AM Posted Saturday at 10:44 AM To co mówisz to raczej sprawa połączenia internetowego i opóźnienia w odbieraniu pakietów między serwerem a twoim komputerem. Gdyby opóźnienia nie było lub było bardzo niskie widziałbyś płynnie jadący pociąg.
margi1 Posted Saturday at 05:56 PM Posted Saturday at 05:56 PM 7 godzin temu, Sklox napisał(a): To co mówisz to raczej sprawa połączenia internetowego i opóźnienia w odbieraniu pakietów między serwerem a twoim komputerem. Gdyby opóźnienia nie było lub było bardzo niskie widziałbyś płynnie jadący pociąg. Tu jest mowa o Single Playerze, więc połączenie internetowe nie ma znaczenia.
Recommended Posts