Svenska 3D-Tåg - Forum  
 

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.

Gå tillbaka   Svenska 3D-Tåg - Forum > DTG - Train Simulator > 3D-design - DTG - Train Simulator

Svara
 
Ämnesverktyg Visningsalternativ
Gammal 2020-12-28, 13:21   #1
Hgv
Medlem
 
Reg.datum: Apr 2007
Inlägg: 817
Standard

Citat:
Ursprungligen postat av ADDE Visa inlägg
-Försignal - ska endast kolla upp status på nästkommande huvudsignal. I andra fall så kommer den visa vänta stopp (Då den inte fungerar, ruttbyggaren har alltså placerat signalen fel).
Det borde stämma, men jag tycker inte du behöver lägga något krut på att ändra försignalerna. De visar ju rätt ändå om de sätts upp på rätt sätt.

Citat:
-Huvudljussignal - Om kör, visa status på nästkommande huvudljussignal.
--Ifall det finns mellanliggande huvuddvärgsignaler gör följande:
---OM huvuddvärgsignalen visar stopp, visa Vänta kör 40 (2 gröna) eller Kör 40, kort sträcka (3 gröna)

Om nästa signal är en stopplykta så gäller följande:
-Huvudljussignal: visa Vänta kör 40 (2 gröna) eller Kör 40, kort sträcka (3 gröna)
-Huvuddvärgsignal: Visa kör 40 eller kör 80, ruttbyggaren måste konfigurera rätt signalbild.
Blandar du inte ihop "vänta kör 40" med "kör 40" här? Annars är jag väldigt förvirrad över hur du menar.

Citat:
Observera att i Train simulator har jag inte hittat stöd för att signallänkar ska kunna mäta avståndet till nästa signal, så här får ruttbyggaren konfigurera signalen manuellt.
Det vore ju praktiskt om den kunde avgöra avståndet till nästa signal automatiskt och på så sätt kunna använda samma signal på olika ställen och få olika beteenden utifrån avstånd till nästa signal.

Man kan fråga sig också hur många olika signalvarianter man är bekväm med. De gamla svenska signalerna är ju väldigt mycket "one size fits all" men så funkar de heller inte korrekt i många situationer. Jag har ju skapat ganska många nya varianter p.g.a. detta. Antalet varianter kan man nog kapa ner lite om man kan få till det så att man kan välja i konfigureringen vilket signalbesked som ska visas för varje länk.

Citat:
Det verkar ligga rätt mycket undantag kring huvuddvärgsignalerna, så de dvärgar vi har till TS behöver nog programmeras om i grunden för att signalförhållanderna ska vara korrekt i TS.
Jag hoppas det går att få till! Bäst vore om man kunde ändra i scripten så att nuvarande signaler (redan utplacerade med mer eller mindre stor möda!) kan användas utan att man behöver placera ut signaler på nytt.

Citat:
Hur är det i infart mot en bangård? I det gamla scriptet så var länk 6 och högre bangårdslänkar, och i scriptet så visade signalen kör 40 oavsett om bangårdsspåret var belagt eller ej. Menar du att det var felaktigt? I så fall kan jag nog ha annan nytta av "Approach control"-rutan.
Är jag inte helt ute och cyklar så gäller alla körsignaler i huvudsignal (dvs alla former av grönt i huvudljus- eller huvuddvärg-) bara för tågväg. För att ledas in på en bangård, på spår där det kan stå andra fordon, handlar det om en växlingsväg. Då är det stopp i huvudsignalen medan en växlingsdvärgsignal kan visa att rörelse är tillåten (lodrätt, eller snett vänster om det finns hinder).

Kolla gärna hur jag har gjort i Hagalund. Jag tycker jag har lyckats OK med att efterlikna hur det ser ut IRL:

https://youtu.be/U4H6sJx5t20?t=481
https://youtu.be/tuJOBaEi4Rc?t=2298
https://youtu.be/T0PwbMNjwcM?t=2621

Vissa signaler (som bara går in mot bangården) visar alltid rött + olika dvärgsignalbesked. Andra kan visa olika besked beroende på om det är tågväg ställt från signalen (t.ex. So 1146 - den signal som passeras i sista videon - där växlarna kan läggas antingen in mot uppställningsspåren eller mot spår D1).
Hgv besöker inte forumet just nu  
Svara med citat
Gammal 2020-12-28, 19:31   #2
ADDE
Medlem
 
Reg.datum: Feb 2012
Inlägg: 1 378
Standard

Citat:
Ursprungligen postat av Hgv Visa inlägg
Det borde stämma, men jag tycker inte du behöver lägga något krut på att ändra försignalerna. De visar ju rätt ändå om de sätts upp på rätt sätt.
Japp, jag har inga större planer på att ändra dem, annat än vid behov för kompatiblitet etc.


Citat:
Blandar du inte ihop "vänta kör 40" med "kör 40" här? Annars är jag väldigt förvirrad över hur du menar.
Jepp, det gjorde jag. wops!



Citat:
Det vore ju praktiskt om den kunde avgöra avståndet till nästa signal automatiskt och på så sätt kunna använda samma signal på olika ställen och få olika beteenden utifrån avstånd till nästa signal.
Om det vore möjligt, så hade det underlättat en hel del.

Citat:
Man kan fråga sig också hur många olika signalvarianter man är bekväm med. De gamla svenska signalerna är ju väldigt mycket "one size fits all" men så funkar de heller inte korrekt i många situationer. Jag har ju skapat ganska många nya varianter p.g.a. detta. Antalet varianter kan man nog kapa ner lite om man kan få till det så att man kan välja i konfigureringen vilket signalbesked som ska visas för varje länk.
Det är en av anledningarna till att vi gör nya varianter av dessa, right?

Jag försöker väl ändå få fram "one size fits all" med möjligheter att skapa rätt signalbilder för rätt tågväg. Och då tror jag att konfigurera signalerna genom att bocka i rätt rutor eller skriva in commands hade varit en passande metod. Om de itne är justerade så beter de sig som vanligt...


Citat:
Jag hoppas det går att få till! Bäst vore om man kunde ändra i scripten så att nuvarande signaler (redan utplacerade med mer eller mindre stor möda!) kan användas utan att man behöver placera ut signaler på nytt.
Jag har funderat lite på det, min rekommendation är (än så länge) att hålla isär befintliga signaler med de signaler jag håller på att ta fram. Men samtidigt så fungerar de nya UKPro med de urgamla UK-signalerna, så jag tänker ändå att de nya signalerna ska vara bakåtkomtatibla med de gamla. Så länge signalerna uppfattar STATE_GO, STATE_SLOW och STATE_STOP så är det nog lungt.


Kod:
Är jag inte helt ute och cyklar så gäller alla körsignaler i huvudsignal (dvs alla former av grönt i huvudljus- eller huvuddvärg-) bara för tågväg. För att ledas in på en bangård, på spår där det kan stå andra fordon, handlar det om en växlingsväg. Då är det stopp i huvudsignalen medan en växlingsdvärgsignal kan visa att rörelse är tillåten (lodrätt, eller snett vänster om det finns hinder).
Got it. Får ha denna i åtanke när jag börjar jobba med signaler som både ha en huvudsignal och en växlingsdvärg på samma stolpe.

Mycket att hålla reda på och se över.

Det här är väl min arbetsplan över signalerna:
-Få in alla egenskaper jag vill ha med i H5, lägg in de som blir applicerbart i H2-H4 också.
-Få in alla egenskaper jag vill ha med i DV6, DV7, DV5 och stopplyktan i tågväg.
-Få in alla egenskaper för växling och se vilka signalbilder som är applicerbart i olika situationer i simulatorn. (t.ex. när ska "Kör varsamt, kontrollera växlar" gälla? om dvärgens länkar passerar minst en klotväxel?) samt få med "Kontakta tågklarerare att köra mot stop"-funktionen i våra svenska signaler.
-Få in scriptet för dvärgsignalerna i huvudsignalerna, främst så både en objekt innehållandes en huvudsignal och en DV4 kan fungera ihop.

--Det blir mycket jobb, har jag nämnt att få stationssignaturerna att fugnera?
__________________
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.
ADDE besöker inte forumet just nu   Svara med citat
Gammal 2020-12-28, 21:12   #3
Hgv
Medlem
 
Reg.datum: Apr 2007
Inlägg: 817
Standard

Jag ser förstås på detta utifrån perspektivet att jag har en rutt med hundratals signaler utplacerade, så om jag ska ha någon nytta av ditt projekt så måste

1) signalerna som redan finns i rutten fortfarande fungera och
2) nya signaler kunna användas tillsammans med signalerna som finns i rutten.

Ett sätt att lösa det är att de nya signalerna har script som är helt kompatibla med de gamla. En nackdel med detta skulle kunna vara att det visar sig att man inte kan få den funktionalitet man vill om man är begränsad i hur de nya signalerna ska programmeras. Men än så länge verkar det ju som att signalerna du jobbar på i grunden har samma script som de gamla, så de borde fungera tillsammans.

Ett annat sätt är att byta ut scripten för de gamla signalerna. Då kan man få ny funktionalitet för de signaler som redan finns placerade i rutten utan att behöva gå in och placera ut varje signal på nytt. Vissa signaler kommer man antagligen behöva gå in och ändra egenskaper för.

Jag körde fast ordentligt när jag försökte få DV4 att fungera utan att "fastna" när tåg har passerat. Möjligen måste man ändra i scripten för andra signaler så att rätt signalmeddelanden tillåts passera och inte "äts upp" av "fel" signal. Håller tummarna för att du kan fixa det!

Att få en användbar stopplykta skulle också vara trevligt. Som den funkar nu är det ganska begränsat var man kan ha den utan att det blir problem med andra signaler.

Sen finns det en massa andra signaler som vore kul att ha, men de kräver nog en del 3D-jobb och inte "bara" scriptning. Jag tänker på repetersignal, riktningssignaler, A-signaler, signaler med avvikande utformning (som söderut från Cst där det röda skenet är näst längst ner i en 5-skenare).

Som sagt, håller tummarna!
Hgv besöker inte forumet just nu   Svara med citat
Gammal 2020-12-29, 15:55   #4
ADDE
Medlem
 
Reg.datum: Feb 2012
Inlägg: 1 378
Standard

Jo, jag förstår hur du tänker. De gamla signalerna som redan är utplacerade tänker jag inte röra. varför laga något som fungerar? Scriptet jag ändrar på kommer däremot ändra på signalerna som finns i SwedenV2 till att ha de nya egenskaperna.

Så som jag förstår det så är det att så länge newSignalState = STATE_GO, STATE_SLOW, STATE_STOP eller STATE_BLOCKED så kommer föregående signal att förstå nästa signal då gSignalState hämtar newSignalState från framförvarande signal. Där funderar jag på att lägga in något hos huvuddvärgarna som säger något i stil med OM STATE_GO, så gExpectState = newSignalState och så skickas det bakåt så att säga... något i den stilen.

Iaf. tillbaka till H5:an. Jag tog bort scriptet som berörde bangårdssignalerna och istället så gav jag det en ny egenskap:
Kod:
	elseif Call ( "GetLinkApproachControl", gConnectedLink ) ~= 0 then
		-- Check if next signal is at red, show a slow signal if that is the case.
		if (gExpectState == STATE_GO) or (gExpectState == STATE_SLOW) then
			newSignalState = STATE_GO
		else
			newSignalState = STATE_SLOW
		end
Har du bockad i "Approach control" i editorn så kommer denna kodsegment kontrollera om nästa signal är i kör eler kör40 och visar då kör + ev. nästa signalbesked (vänta kör eller vänta kör40.), men om det inte gäller så visar signalen Kör40, för troligtvis kommer nästa signal visa stopp. Denna kodsegment använder samma failsafe-mekanism som "function DefaultSetLights()" på raderna 94-121 gör.

Funktionen är applicerbar i H3-H5 och gör bra nytta med checkboxen.
Återstår då Röd=Röd samt Kör40, kort avstånd kvar...
__________________
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.

Senast redigerad av ADDE den 2020-12-29 klockan 15:57.
ADDE besöker inte forumet just nu   Svara med citat
Gammal 2020-12-29, 18:40   #5
ADDE
Medlem
 
Reg.datum: Feb 2012
Inlägg: 1 378
Standard

Note to self: https://forums.dovetailgames.com/thr...er-docs.16740/

Citat:
In the Developer Documentation > Signaling Function Reference, the following signaling functions are not included. They are very useful in signal scripts!!

Call( "GetLinkApproachControl", LinkNumber ) - state of checkbox "approach control", 0 or 1 [Är den ibockad(1) eller inte(0)? reds.anm]
Call( "GetLinkLimitedToYellow", LinkNumber ) - state of checkbox "limited aspect", 0 or 1 [Är den ibockad(1) eller inte(0)? reds.anm]
Call( "GetLinkFeatherChar", LinkNumber ) - Contents of "Name of Route" field, integer (ASCII code, 1st char only) [Vad för siffra står det här? reds.anm]
Call( "GetLinkSpeedLimit", LinkNumber ) - Contents of "Speed of Route" field, integer [Vilken hastighet är satt mot denna länk? reds.anm]
Call ( "GetId" ) - Contents of the ID field, string​ [Läser av ID-Fältet, dvs. signalens signature och nummer. reds.anm]
__________________
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.

Senast redigerad av ADDE den 2020-12-29 klockan 18:41.
ADDE besöker inte forumet just nu   Svara med citat
Gammal 2021-01-02, 18:21   #6
ADDE
Medlem
 
Reg.datum: Feb 2012
Inlägg: 1 378
Standard

Jag har nu bemästrat funktionen "GetLinkFeatherChar" och till en början fått till 3 gröna (Kör 40, kort tågväg)

I function BaseInitialise() så lade jag till följande rader.
Kod:
	-- Get link character and store it as "gIndicator".
	gLinkFeatherChar = 0
	gIndicator = ""

	-- If we're connected to a valid link and the signal isn't red
	if gConnectedLink > 0 then

		-- Check what indicator (if any) is used by that route
		gLinkFeatherChar = Call("GetLinkFeatherChar", gConnectedLink)

		-- If route has a valid indicator, turn its ID into a string
		if gLinkFeatherChar ~= 0 then
			gIndicator = string.char(gLinkFeatherChar)
		else
			gIndicator = ""
		end
	end
Koden ovan gör att man hämtar ACII-värdet av tecknet du skrev in i A-rutan, konverterar det till ett tecken eller sträng och förvarar det i gIndicator. detta kan justeras per länk.

Sen längst ner i SetSignalState() lade jag till följande rader:
Kod:
	if (gIndicator == "K") or  (gIndicator == "k") then
		gLightOn = 1
	else
		gLightOn = 0
	end
och sedan i rad 110:
Kod:
	elseif (gSignalState == STATE_SLOW) then
		SwitchLight( LIGHT_NODE_GREEN,		1 )
		SwitchLight( LIGHT_NODE_RED,		0 )
		SwitchLight( LIGHT_NODE_GREEN2,		1 )
		SwitchLight( LIGHT_NODE_WHITE, 		0 )
		SwitchLight( LIGHT_NODE_GREEN3, 	gLightOn )
om du har skrivit in bokstaven K i a-rutan för en länk så kommer alltså signalen att visa "KÖR 40, kort tågväg" istället för KÖR 40.

Det var ett h-vete, men man lär sig varje dag!
EDIT: Det innehåller lite buggar, det uppdateras inte i realtid, fel signalbild kan visas. :/
Bifogade bilder
Filtyp: jpg Skärmklipp.JPG (251.4 KB, 74 visningar)
__________________
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.

Senast redigerad av ADDE den 2021-01-02 klockan 18:23.
ADDE besöker inte forumet just nu   Svara med citat
Gammal 2021-01-02, 18:52   #7
Hgv
Medlem
 
Reg.datum: Apr 2007
Inlägg: 817
Standard

Smart! Med den lösningen borde man ju inte behöva så många specialvarianter (typ Jö 128) utan man borde kunna använda samma signaltyp i de flesta situationer.

Citat:
Det innehåller lite buggar, det uppdateras inte i realtid, fel signalbild kan visas. :/
När jag har haft liknande problem har det oftast visat sig att det var något jag missat i scriptet, typ att signalen ställer om till rätt signalbild men att scriptet exempelvis inte uppdaterar signalbilden efter att en växel lagts om eller liknande. Det gäller att lusläsa scriptet helt enkelt (eller inte så enkelt när man som jag inte har full koll på hur alla funktioner fungerar! ).

Hur går det med DV4-signalen? Det är ändå det mest störande signalproblemet just nu (iaf i områden med många spår och många dvärgar).

Ett annat område som skulle behöva ses över är hur vägskydden fungerar. Kort sagt så funkar det bra om man har ett typiskt enkel- eller dubbelspår på linje, men om vägskyddet ligger så att det finns växlar mellan korsningen och ringsträckans början så blir det ofta fel med nuvarande script. Det kanske inte är möjligt att lösa så det blir 100% realistiskt men det vore kul om det kunde förbättras.
Hgv besöker inte forumet just nu   Svara med citat
Gammal 2022-01-16, 04:59   #8
ADDE
Medlem
 
Reg.datum: Feb 2012
Inlägg: 1 378
Standard

I väntan på er feedback kring bommarna så experimenterade jag vidare med H5:an.

Citat:
Ursprungligen postat av ADDE Visa inlägg
Jag har nu bemästrat funktionen "GetLinkFeatherChar" och till en början fått till 3 gröna (Kör 40, kort tågväg)

I function BaseInitialise() så lade jag till följande rader.
Kod:
	-- Get link character and store it as "gIndicator".
	gLinkFeatherChar = 0
	gIndicator = ""

	-- If we're connected to a valid link and the signal isn't red
	if gConnectedLink > 0 then

		-- Check what indicator (if any) is used by that route
		gLinkFeatherChar = Call("GetLinkFeatherChar", gConnectedLink)

		-- If route has a valid indicator, turn its ID into a string
		if gLinkFeatherChar ~= 0 then
			gIndicator = string.char(gLinkFeatherChar)
		else
			gIndicator = ""
		end
	end
Koden ovan gör att man hämtar ACII-värdet av tecknet du skrev in i A-rutan, konverterar det till ett tecken eller sträng och förvarar det i gIndicator. detta kan justeras per länk.

Sen längst ner i SetSignalState() lade jag till följande rader:
Kod:
	if (gIndicator == "K") or  (gIndicator == "k") then
		gLightOn = 1
	else
		gLightOn = 0
	end
och sedan i rad 110:
Kod:
	elseif (gSignalState == STATE_SLOW) then
		SwitchLight( LIGHT_NODE_GREEN,		1 )
		SwitchLight( LIGHT_NODE_RED,		0 )
		SwitchLight( LIGHT_NODE_GREEN2,		1 )
		SwitchLight( LIGHT_NODE_WHITE, 		0 )
		SwitchLight( LIGHT_NODE_GREEN3, 	gLightOn )
om du har skrivit in bokstaven K i a-rutan för en länk så kommer alltså signalen att visa "KÖR 40, kort tågväg" istället för KÖR 40.

Det var ett h-vete, men man lär sig varje dag!
EDIT: Det innehåller lite buggar, det uppdateras inte i realtid, fel signalbild kan visas. :/
Jag flyttade den första kodsnuttet till SetSignalState() samt ändrat värdet från K till 3. Det jag upptäckte nu är att om signalen fortsätter vara STATE_SLOW vid en växelomläggning så fastnar den antingen vid 2 gröna eller 3 gröna fasta sken. Det är först när signalen ändrar STATE som den kontrollerar om det ska vara 2 sken eller 3 sken. Får undersöka hur det kan uppdateras vid en växelomläggning.
__________________
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.
ADDE besöker inte forumet just nu   Svara med citat
Svara


Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av
Forumhopp



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


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