![]() |
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 |
![]() |
#26 |
Medlem
Reg.datum: Feb 2012
Inlägg: 1 378
|
![]()
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 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 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 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 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...
__________________
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. |
![]() |
![]() |