Svenska 3D-Tåg - Forum

Svenska 3D-Tåg - Forum (http://www.e-buzz.se/forum/index.php)
-   3D-design - DTG - Train Simulator (http://www.e-buzz.se/forum/forumdisplay.php?f=48)
-   -   Modernisering av svenskt signalpaket (http://www.e-buzz.se/forum/showthread.php?t=37550)

ADDE 2020-05-02 13:58

1 bifogad(e) fil(er)
Progress...

En fråga: Vill ni ha SEV2 Concrete som news breda ballast eller SADs smala? (newS breda heter då "wide" i slutet...)

ADDE 2020-05-02 20:28

4 bifogad(e) fil(er)
Äntligen färdig! Tog mig hela dagen.

Version 2.0 av SwedenV2 Tracks kommer inom kort! - skickar länk i min downloadtråd när den är ute.

ADDE 2020-12-21 11:40

3 bifogad(e) fil(er)
Har börjat jobba med signalerna igen. Jag försöker få så mycket likheter med UKProSignals men det går sådär.

(Moderna signalscript finns fullt läsbara i GARL-rutten)

Jag tog en UK-signal och gjorde om utformningen. Jag lät det läsa in mot en av newS stationssignaturer som grundfil och det går att skriva in siffror på nedre raden genom att skriva det på första rutan i "Identify". Men problemet är att newS tavlor är bak-o-fram. Det finns även efterfrågan att få en full uppsättning av alfabetet så man kan skriva en komplett stationssignatur, istället för att som nu göra repaints av allting, men det är bortom min kompetens just nu.

Vidare försökte jag göra om signalscriptet för SE H2 så det skulle fungera med att ha signalen som en child object, men icke... Det verkar inte fungera.

HGV, tror du om du kan kolla i signalscriptet och se så att signalerna kan fungera även som childobjekt?

Hgv 2020-12-21 18:50

Citat:

Ursprungligen postat av ADDE (Inlägg 318933)
HGV, tror du om du kan kolla i signalscriptet och se så att signalerna kan fungera även som childobjekt?

Ingen aning. Tyvärr är jag inte alls insatt i hur det hänger ihop. Men en vild gissning är att ett objekts "children" bara refererar till själva 3D-objektet och att "children" därför inte kan ha script i sig. Men det är som sagt bara en gissning, det kanske går på nåt sätt!

GARL tror jag inte att jag har heller. I vilken assetmapp hittar du scripten?

Ska detta vara användbart måste man kunna skriva in även bokstäver (både gemener och versaler). Annars måste man ju ha ett separat objekt för varje individuell signal för att kunna få rätt signatur, och då är det väl lika bra att ha märktavlorna som separata objekt.

EDIT: Kom på att ett undantag är växlings- och medgivandedvärgsignaler. De har ju vit märktavla med bara siffror så för dem skulle det funka bra att ha signal + skylt + stolpe som children.

ADDE 2020-12-21 19:49

Child objects behandlas som scenery objects eller animated scenery objects och man läser in en annan .xml-fil för ändamålet.

Dock så har man med UKLedPro (Som GARL använder) lyckats scripta så child object fungerar. Jag testade att lägga in relevant kod i scriptet för min testsignal men det var ingen skillnad.

GARL eller Glasgow Airport Rail Link är Assets/Totalizemedia/GARL och de har lua-filer som inte är kompilerade så de kan läsas rakt av i klartext.

Min filosofi är att jag skapar speciella signaler som jag behöver i Mälardalsprojektet och lägger dem i SummerADDE/Malaren, så att de inte bidrar i den stora röran som heter newS/Sweden :) - Dessa signaler laddas då in separat från newS och bara för mälardalens rutt. Jag ämnar att göra samma sak för Nordlandsbanan sen. Tycker det är roligare att sätta ihop signalobjekt genom dess blueprint-filer än att detaljstyra i rutteditorn.

EDIT: Ang milepost så verkar det finnas ett lösningsförslag från UKTrainSim:
Citat:

Ursprungligen postat av AndiS
The problem with having lowercase and uppercase letters at the same time is that filenames in DOS/Windows are not case sensitive.
However it should be possible to put the texture of A in some file A1 and for a in A2. You need two entries in the texture set blueprint, one for A and one for a. Only then you will see if it works. Signal IDs are forced to uppercase, so it might be similar with mileposts.

https://forums.uktrainsim.com/viewto...80788#p1880788

ADDE 2020-12-23 16:11

OMG Yess! Jag lyckades!

https://www.youtube.com/watch?v=n8KQfepmQmk

ADDE 2020-12-23 16:41

3 bifogad(e) fil(er)
Jag gjorde följande förändringar i SE H2 Signal.lua.

Jag kommer göra en egen release av signaler så några förändringar på befintliga signalscript kommer inte ske, för att skydda äldre rutter mot risken av trasiga signaler. Däremot kommer SEV2-signalerna jag har släpps innan uppdateras mot denna script.

ADDE 2020-12-26 20:00

Dagens achivement!
 
1 bifogad(e) fil(er)
Genom att byta ut
Kod:

        elseif gConnectedLink > 1 then
                -- diverging route, signal slow
                newSignalState = STATE_SLOW

mot
Kod:

        elseif Call ( "GetLinkLimitedToYellow", gConnectedLink ) ~= 0 then
                -- diverging route, signal slow
                newSignalState = STATE_SLOW

så är det ruttbyggaren som bestämmer om signalen ska visa KÖR eller KÖR40, det ger mer flexibilitet till ruttbyggaren att skapa de signalbilder som behövs!

Hgv 2020-12-26 20:12

Intressant! Den funktionen hade passat bra på en del ställen runt Stockholm, där det finns flera spår från samma växel med STH 80 eller mer.

Har du provat att det funkar som avsett? (Har själv upptäckt att signalscripten kan överraska ibland med hur det funkar!)

ADDE 2020-12-26 20:27

Yess, Jag skapade en H5:a med 10 länkar, bockade i "Limited aspect" på var annan länk, ställde ett extra lok på ett av spåren, och signalen gav 1 grön + 1 vitblink vid de som inte var bockade och 2 gröna till de spår som jag har bockat i. (och röd för spåret där lok 2 stod.) så det fungerar som avsett.

ADDE 2020-12-27 16:14

Jag gjorde det igen!
 
Bangårdssignalerna är porgrammerade att tågväg ovanför länk 6 (som KMW beskrev användes för bangårdslänk) ignorerade om det fanns tåg på spårsträckan dessa länkar ledde till.

Well, nu kan man styra detta också genom att bocka i "Approach control". Är detta ibockat så visar signalen KÖR40 oavsett om det står ett tåg på nästkommande blocksträcka eller ej.

Observera att du kan inte bocka i både "Limited aspect" eller "Approach control" i TS, utan endast välja emellan dem. Då signalen visade Kör40 även i det gamla scriptet så var det detta jag tog efter mig i det nuvarande.

Följande förändringar gjorde jag i SE H5 Signal.lua för att få till effekten:
Vid BASE Initialise (ungefär rad 209) så bytte jag ut
Kod:

        -- Initialise global variables
        gLinkCount = Call( "GetLinkCount" )                -- number of links this signal has
        gLinkState = {}                                                                -- state of line beyond this link
        gYardEntry = {}                                                                -- is this link going inside a yard?
        gDissabled = {}                                                                -- is this link dissabled?
        gOccupationTable = {}                                                -- how many trains are in this part of our block?
        for link = 0, gLinkCount - 1 do
                gLinkState[link] = STATE_GO
                gYardEntry[link] = (link > 6)                        -- links without numbers (>6) are yard entry
                gDissabled[link] = false
                gOccupationTable[link] = 0
        end
        Call("BeginUpdate")
end

Mot:
Kod:

        -- Initialise global variables
        gLinkCount = Call( "GetLinkCount" )                -- number of links this signal has
        gLinkState = {}                                                                -- state of line beyond this link
        gYardEntry = {}                                                                -- is this link going inside a yard?
        gDissabled = {}                                                                -- is this link dissabled?
        gOccupationTable = {}                                                -- how many trains are in this part of our block?
        for link = 0, gLinkCount - 1 do
                gLinkState[link] = STATE_GO
                gYardEntry[link] = (link == -1)                        -- links not checked as "Approac control" are not yard entry
                gDissabled[link] = false
                gOccupationTable[link] = 0
        end
        Call("BeginUpdate")
end

Att jag satte -1 är för att visa att ingen länk används, på så vis inaktiveras funktionen gYardEntry helt o hållet. Detta förekommer i andra signalscripts.

Nere vid SET SIGNAL STATE (rad 404), ungefär här:
Kod:

--------------------------------------------------------------------------------------
-- SET SIGNAL STATE
-- Figures out what state to show and messages to send
function SetSignalState()
        local newSignalState = STATE_GO
        if gBlockSignal then
                if gOccupationTable[0] > 0 and gGoingForward then
                        newSignalState = STATE_STOP
                elseif gOccupationTable[0] > 0 or gLinkState[0] == STATE_BLOCKED then
                        newSignalState = STATE_BLOCKED
                end

så lade jag till följande:
Kod:

        elseif Call ( "GetLinkApproachControl", gConnectedLink ) ~= 0 then
                -- yard entry, signal slow
                for link = 0, gLinkCount - 1 do
                        gYardEntry[link] = (link == gConnectedLink)       
                end
                newSignalState = STATE_SLOW

Om signalen går till en länk som har Approach control ibockat (GetLinkApproachControl är inte lika med 0) så ändras gYardEntry till att gälla den länk som nu är förinställd. Därmed så körs scriptet som ignorerar om det står ett tåg i bangården. Signalen ställs sedan in på Kör40 precis som tidigare. (ja, jag testade att lägga om till en annan tågväg med ett tåg ivägen, och då visar signalen rött.)

Att placera den där har nog att göra med ordningen om hur koden läses in, lägg inte det sist för då kommer de andra villkoren läsas in före och signalen slås om till rött istället.

(OM villkor 1 uppfylls, gör detta ANNARS OM villkor 2 uppfylls gör detta, ANNARS gör detta SLUT.)

Jag är inte klar, jag ska se om man kan göra signaler flexiblare genom att skriva in ett tecken i "Character"-fältet (ser ut som ett A). På så vis kan man konfigurera olika signalbilder för varje tågväg (t.ex. Kör40, kort tågväg t.ex.)

Och inte bara det. sen kommer dvärgsignalerna, hehe...

ADDE 2020-12-27 16:33

Lite pseudokod för hur jag ska approacha det här:
OM Tecken är S och Nästa h-signal visar STOPP GÖR:
-Visa STOPP (H2-H5)
OM Tecken är K eller 4 och Nästa h-signal visar STOPP GÖR:
-Visa KÖR 40, Kort tågväg (STATE_SLOW) (H5)
OM Tecken är N eller 5 och Nästa h-signal visar STOPP GÖR:
-Visa KÖR 40 (STATE_SLOW) (H3-H5)
OM Tecken är R, 4 eller 5 och Nästa h-signal visar KÖR 40 eller KÖR 40, Kort tågväg GÖR:
-Visa KÖR, Vänta Stopp (H3-H5)

Kolla om signalen tillåter att man kan köra mot rött efter att ha kontaktat tågklareraren.

Hgv 2020-12-27 17:15

Kul att du tar tag i de svenska signalerna! :tumme_upp:

Är inte tanken med "approach control" att det är en signal som saktar ner ankommande tåg mot en sidotågväg? T.ex. i UK att signalerna visar 2 gula -> 1 gul -> stopp, men att sista signalen slår om till körsignal med avvikande tågväg när ankommande tåg har fått ner farten genom de restriktiva beskeden 2 gula / 1 gul. Eller har jag missuppfattat något? Kanske går det att använda approach control i skripten för andra syften?

Jag tänker att mot en bangård (dvs där du vill kunna köra in på spår även om det står fordon där) så tror jag egentligen att huvudsignal alltid ska visa stopp. Dvärgsignal, antingen som en separat medgivandedvärg, eller som del av en huvuddvärgsignal, visar om rörelse är tillåten för växlingsrörelser.

Detta har jag försökt simulera på några ställen på Jönköpingsbanan, kolla t.ex. infarterna till Tomteboda, Hagalund eller Jönköpings gbg, där det står huvuddvärgsignaler som alltid visar "stopp" i huvudsignaldelen, men där dvärgsignalen kan visa olika besked. (Till Tomteboda visa den alltid "snett höger" som kan anas här, eftersom bangården inte är signalreglerad.) Rent scriptmässigt är dessa signaler programmerade så att de är i "state slow" för jag kunde inte lista ut något bättre sätt. Men det borde ju gå att programmera dem så att man kan få tillstånd att passera från tågklareraren.

Det verkar ju som att du börjar bli varm i kläderna med scripten, så titta gärna på hur man kan få DV4-signalerna att fungera bättre. De "fastnar" ju i "snett vänster" när tåg har passerat, även när nästa signalsträcka har blivit fri. Det enda sättet jag har fått det att funka är att programmera DV4 som en huvudsignal, men då blir det fel mot alla andra huvudsignaler så det går inte att ha det så. Men det borde gå på nåt sätt tycker jag! Det handlar "bara" om att få signalen att ta hänsyn till när signalsträckan har blivit fri igen.

Hgv 2020-12-27 17:33

Citat:

Ursprungligen postat av ADDE (Inlägg 319004)
Lite pseudokod för hur jag ska approacha det här

Ska se om jag är med på hur du tänker:

Citat:

OM Tecken är S och Nästa h-signal visar STOPP GÖR:
-Visa STOPP (H2-H5)
Används t.ex. vid utfartssignaler antar jag, där du inte vill ha "kör" om utfartsblocksignalen visar "stopp"?

Citat:

OM Tecken är K eller 4 och Nästa h-signal visar STOPP GÖR:
-Visa KÖR 40, Kort tågväg (STATE_SLOW) (H5)
Dvs används där nästa huvudsignal är på kort avstånd (<450 m).

Citat:

OM Tecken är N eller 5 och Nästa h-signal visar STOPP GÖR:
-Visa KÖR 40 (STATE_SLOW) (H3-H5)
Avstånd 450-800 m.

Citat:

OM Tecken är R, 4 eller 5 och Nästa h-signal visar KÖR 40 eller KÖR 40, Kort tågväg GÖR:
-Visa KÖR, Vänta Stopp (H3-H5)
Här hänger jag inte riktigt med. Om nästa signal visar 2/3 gröna borde ju föregående signal visa "kör, vänta kör 40"?

Däremot har jag förstått att man gör skillnad mellan huvudljussignaler och huvuddvärgsignaler i vissa fall (de är dock båda huvudsignaler). Om nästa huvudljussignal visar stopp ska föregående försignal (i huvudljussignal, huvuddvärgsignal eller fristående försignal) visa "vänta stopp". Alltså:

Hsi (kör, vänta stopp) -> Hdvsi (kör, vänta stopp) -> Hsi (stopp)

ELLER Hsi (kör, vänta kör) -> Hsi (kör, vänta stopp) -> Hsi (stopp)

MEN INTE Hsi (kör, vänta kör) -> Hdvsi (kör, vänta stopp) -> Hsi (stopp)

Kanske det går att simulera? Kruxet är väl att då måste Hsi veta vad "nästnästa" signal visar om det står en Hdvsi mellan två Hsi.

ADDE 2020-12-27 18:19

Citat:

Ursprungligen postat av Hgv (Inlägg 319006)
Här hänger jag inte riktigt med. Om nästa signal visar 2/3 gröna borde ju föregående signal visa "kör, vänta kör 40"?

Hmjm... tänkte om signalerna är täta i följd hade nog Kör, vänta stopp varit mer applicerbart, men det kanske inte gäller i verkligheten?

Citat:

Ursprungligen postat av Hgv (Inlägg 319006)
Däremot har jag förstått att man gör skillnad mellan huvudljussignaler och huvuddvärgsignaler i vissa fall (de är dock båda huvudsignaler). Om nästa huvudljussignal visar stopp ska föregående försignal (i huvudljussignal, huvuddvärgsignal eller fristående försignal) visa "vänta stopp". Alltså:

Hsi (kör, vänta stopp) -> Hdvsi (kör, vänta stopp) -> Hsi (stopp)

ELLER Hsi (kör, vänta kör) -> Hsi (kör, vänta stopp) -> Hsi (stopp)

MEN INTE Hsi (kör, vänta kör) -> Hdvsi (kör, vänta stopp) -> Hsi (stopp)

Kanske det går att simulera? Kruxet är väl att då måste Hsi veta vad "nästnästa" signal visar om det står en Hdvsi mellan två Hsi.

Hmm, kanske Hsi ska ignorera nästa Hdvsi om den är på Kör om jag fattar det rätt?


Alla tider är GMT +2. Klockan är nu 06:50.

Powered by vBulletin® Version 3.7.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
© Svenska 3D-Tåg 2001-2009