![]() |
Om det här är ditt första besök, se till att gå till vår FAQ (finns även länk till FAQ i navigeringsmenyn ovan). Du kan behöva att registrera dig innan du kan posta (finns även en länk till registrering i navigeringsmenyn ovan). För att titta på inlägg, välj det forum som du vill besöka från de som är listade nedan. |
|
|
Ämnesverktyg | Visningsalternativ |
![]() |
#21 |
Medlem
Reg.datum: Feb 2012
Inlägg: 1 378
|
![]()
Jag har gjort ett genombrott!
Efter flera försök med felsökning rörande TAB/"Passing signal at danger approved/denied" där DV4 medgivandesignal fångar upp och blockerar detta så har jag äntligen hittat felkällan: I commonscript så har jag följande rader: PHP-kod:
Problemet är att eftersom det låg i CommonScript så hämtar alla signaler som kör commonscript denna funktion. Huvudsignaler såsom H2, H5 och DV7 har en gSignalState definierad, något jag upptäckte när jag debuggade kodraderna. Däremot har F2, F3 och DV4 medgivandesignal ingen gSignalState definierad, eftersom deras enda uppgift är att hämta försignalbesked eller matchande växlingssignal från en huvudsignal som hanterar all signalscript. Men eftersom GetSignalState även körs hos dessa utan att gSignalState är definierad så "fångar" de upp TAB-förfrågan, och gör inget med det. - Ingeting fungerar förrän man har kört förbi signalens länk. Lösningen: Flytta bort kodraden ovan från CommonScript och lägg in det vid varje huvudsignal och huvuddvärg. På så sätt är det endast dessa signaler som TSC ska kolla på och hantera TAB. Andra signaler som inte har GetSignalState i sin kod ignoreras helt. TAB landar då vid rätt signal och du får då besked om du får passera eller inte, följt av att DV4 medgivnadedvärg, DV6 eller DV7 visar "Rörelse tillåten" eller "Rörelse tillåten, hinder finns" Det tog mig 3 år att inse att GetSignalState() var boven bakom dramat. Utan ordentlig dokumentation så blir man bara frustrerad. Även andra buggar är åtgärdade såsom: - DV4 medgivandesignal visade alltid "Rörelse ej tillåten" även om TAB är godkänt. - Åtgärdat genom att ge nya värden för följande meddelanden som skickas mellan signalerna: HTML-kod:
SIGNAL_GO = 20 SIGNAL_SLOW = 21 SIGNAL_STOP = 22 SIGNAL_BLOCKED = 23 SIGNAL_SHUNT = 24 SIGNAL_UNPROTECTED = 25 SIGNAL_CALLON = 26 HTML-kod:
OCCUPATION_INCREMENT = 14 OCCUPATION_DECREMENT = 15 DISTANCE_INCREMENT = 16 DISTANCE_DECREMENT = 17 Scriptfilerna är uppe på Github. VIKTIGT: Använd absolut inte dessa signaler ihop med de gamla svenska bommarna. Det kommer uppstå meddelandekonflikter dem emellan som gör att signaler och/eller bommar börjar bete sig felaktigt. Återstår: FÅ signalerna att visa stopp när inget tåg närmar sig, för att vara mer realistiskt. - Lära mig blender och skapa nya signalskyltar. När detta är inlagt så gör jag hårdtester och publicerar en ny beta som alla kan ladda ner och testa. @Totte - ja. Det kan man. - Vad jag gjorde var att jag kopierade newS signaler och placerade dem i SummerADDE/SESignalsTest och sedan expanderade jag det befintliga scriptet med allt jag ville ha med. Jag hör er, Hgv och Totte. Ni vill inte byta ut de signaler ni redan har placerat ut. - Jag kan testa om jag kan lägga in mina scripter hos de befintliga signalerna som newS och KMW har skapat, men jag lovar ingeting.
__________________
Mvh SummerADDE Alla mina projekt till Train Simulator Classic är nedlagda. Jag kommer härmed fokusera på att skapa rutter och innehåll till Train Sim World i fortsättningen. Alla mina downloads på Google Drive kommer att tas bort permament den 31:a agusuti 2024. |
![]() |
![]() |