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-29, 15:55   #1
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 forumet just nu  
Svara med citat
Gammal 2020-12-29, 18:40   #2
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 forumet just nu   Svara med citat
Gammal 2021-01-02, 18:21   #3
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 forumet just nu   Svara med citat
Gammal 2021-01-02, 18:52   #4
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 2021-01-02, 19:04   #5
ADDE
Medlem
 
Reg.datum: Feb 2012
Inlägg: 1 378
Standard

- Jadu, det är något som ligger i det. Jag upptäckte att signalen läser endast av den första a-rutan och agerar på det. skulle jag skriva "K" för länk 2 så visas signalen bara KÖR 40 istället för KÖR 40, kort tågväg till länk 2.

- Jag tänkte börja jobba med DV-signalerna när jag är klar med H5:an.

- Jag försökte prova på vägskydden på samma vis som DTG har gjort på senare tid, men när jag bytte ut en brittisk varningssignal mot X12 så kraschar spelet när rutten ska läsas in. Jag tänkte jobba även med detta mera men det får ske lite senare. (Finns en okrypterad lua-fil som behandlar vägskylten i kuju-mappen faktiskt.)

En sak i taget, helt enkelt.
__________________
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 forumet just nu   Svara med citat
Gammal 2021-04-17, 00:59   #6
ADDE
Medlem
 
Reg.datum: Feb 2012
Inlägg: 1 378
Standard

De svenska signalerna ligger på paus men just nu jobbar jag med järnvägskorsningar. Målet är att få till DTGs funktion med våra svenska assets, dvs. en korsning som fungerar i flera spår och även stoppar vägtrafiken. Flera varianter planeras men först måste jag få hela paketet att funka.

Problem som jag har är dels bomdrivens animationer (öppning resp. stägning) krockar. Bommarna spelar öppningssekvensen baklänges.

Vidare får jag inte den vita lampan att blinka ö.h.t.

lua-kodning asså
Bifogade bilder
Filtyp: jpg 20210417003915_1.jpg (162.4 KB, 93 visningar)
Filtyp: jpg 20210417004021_1.jpg (266.5 KB, 93 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.
ADDE besöker forumet just nu   Svara med citat
Gammal 2021-04-17, 02:25   #7
ADDE
Medlem
 
Reg.datum: Feb 2012
Inlägg: 1 378
Standard

Jag har hakat upp mig, får inte den vita lampan att blinka.

Har skrivit hjälp här: https://forums.uktrainsim.com/viewto...f=370&t=153543
__________________
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 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 forumet just nu   Svara med citat
Gammal 2022-01-17, 03:09   #9
ADDE
Medlem
 
Reg.datum: Feb 2012
Inlägg: 1 378
Standard

Efter mycket misslyckande försök så valde ajg att skapa en ny Signal state, STATE_SLOWER.

Vid DefaultSetLights() (rad 96-126) så lade jag till raderna för signalbilden STATE_SLOWER:
HTML-kod:
-- Swedish home signals SetLights
-- Switch the appropriate lights on and off based on our new state
function DefaultSetLights()
--	DebugPrint("DefaultSetLights()")
	if (gSignalState == STATE_GO) then
		SwitchLight( LIGHT_NODE_GREEN,		1 )
		SwitchLight( LIGHT_NODE_RED,		0 )
		SwitchLight( LIGHT_NODE_GREEN2,		0 )
		SwitchLight( LIGHT_NODE_WHITE, 		0 )
		SwitchLight( LIGHT_NODE_GREEN3, 	0 )

	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, 	0 )

	elseif (gSignalState == STATE_SLOWER) 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, 	1 )

	else	-- stop or blocked
		SwitchLight( LIGHT_NODE_GREEN,		0 )
		SwitchLight( LIGHT_NODE_RED,		1 )
		SwitchLight( LIGHT_NODE_GREEN2,		0 )
		SwitchLight( LIGHT_NODE_WHITE, 		0 )
		SwitchLight( LIGHT_NODE_GREEN3, 	0 )
	end
end
Vid globals states (rad 137) ska följande rad läggs till efter STATE_BLOCKED:
HTML-kod:
STATE_SLOWER									= 4
vid SetSignalState() (rad 411) så har jag gjort så här istället:
HTML-kod:
	elseif Call("GetLinkFeatherChar", gConnectedLink) == 51 then
		if 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_SLOWER
			end
		elseif Call ( "GetLinkLimitedToYellow", gConnectedLink ) ~= 0 then
			-- diverging route, signal slow
			newSignalState = STATE_SLOWER
		end
	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
	elseif Call ( "GetLinkLimitedToYellow", gConnectedLink ) ~= 0 then
		-- diverging route, signal slow
		newSignalState = STATE_SLOW
	end
GetLinkFeatherChar är alltså rutan där du kan skriva in en siffra eller bokstav. Denna gång så valde jag att inte konvertera den, men skriver du siffran 3 (ASCII-kod 51) och sedan har någon av checkboxarna intill bockade så kommer signalen att visa 3 Gröna, STATE_SLOWER. Har du inte siffran 3 ifyllt men någon av boxarna iboxade så kommer 2 gröna, STATE_SLOW att visas i vanlig ordning.

Nedanför denna kodsnutt (rad 454) så lade jag in denna del:
HTML-kod:
	if newSignalState ~= gSignalState then
		DebugPrint("SetSignalState() - signal state changed from " .. gSignalState .. " to " .. newSignalState .. " - sending message" )
		gSignalState = newSignalState
		SetLights()
		if gSignalState >= STATE_STOP then
			Call( "Set2DMapSignalState", STATE_STOP)
		else
			if gSignalState == STATE_SLOWER then
				Call( "Set2DMapSignalState", STATE_SLOW)
			else
				Call( "Set2DMapSignalState", gSignalState)
			end
		end
		if gSignalState == STATE_BLOCKED and not gBlockSignal then
			Call( "SendSignalMessage", SIGNAL_STOP, "BLOCKED", -1, 1, 0 )
		else
			if gSignalState == STATE_SLOWER then
				Call( "SendSignalMessage", SIGNAL_GO + STATE_SLOW, "", -1, 1, 0 )
			else
				Call( "SendSignalMessage", SIGNAL_GO + gSignalState, "", -1, 1, 0 )
			end
		end
	end
Detta för att bibehålla kompatibiliteten med alla de andra signalerna genom att skicka iväg meddelandet STATE_SLOW, vilket får föregående signal att visa VÄNTA KÖR40. skulle föregående signal få STATE_SLOWER så skulle den inte uppfatta signalbilden och orsaka fel istället.

Dock lyckas jag inte lura kartan. Den visar en röd prick istället för gul. Men det får nog vara så, antar jag.

Filen finns på Github om någon vill testa.
__________________
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 2022-01-17 klockan 03:13.
ADDE besöker forumet just nu   Svara med citat
Gammal 2022-01-17, 16:38   #10
kevpa00
Medlem
 
Reg.datum: Dec 2015
Ort: Åtvidaberg, Östergötland
Inlägg: 215
Standard

Spännande Adde. Jag tittar på koden och börjar förstå lite iallafall. Kul att du håller på. Stort tack!
__________________
Glad 19 åring med mycket energi som älskar att bygga modeller och fota allt som passerar framför kameran
Hjälper även Arvid (Germundal) med sin rutt!
Project Södra stambanan

Bygger och försöker importera X61 till Railworks!
X61-Tråden
kevpa00 besöker inte forumet just nu   Svara med citat
Gammal 2022-01-19, 06:06   #11
ADDE
Medlem
 
Reg.datum: Feb 2012
Inlägg: 1 378
Standard

Fortsatte lite idag med. Lade in det sista egenskaperna:

-Lade till så att skriver du "1" på sifferrutan så visar signalen stop när nästa signal visar stop.
-Lade till stöd för att generera en GAME OVER om tåget kör mot rött i ett standard scenario eller career scenario.

Återstår: Call-on-funktionen. Dvs. möjligheten att du kan be om att få köra mot rött. Får jag det att fungera så är jag nöjd sedan.

Den uppdaterade kodsnuttet finns på github.
__________________
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 forumet just nu   Svara med citat
Svara

Ämnesverktyg
Visningsalternativ

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 11:54.


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