Jump to content

Update für sim-wings Hamburg Pro und Munich Pro via ASUpdater verfügbar zur Behebung von Jahreszeiten Problemen


OPabst

Recommended Posts

  • Deputy Sheriffs

Ich denke das Problem liegt bei AIG, da diese nich mit local arbeiten und alles global zerschiessen.

Die aktuelle Version vom updater hat zumindest das Problem bei @tstemmer gelöst.

Ich werde mal bei AIG posten und die bitten ihre Skripte auf local umzustellen. Werde dort im Forum auch meine angepassten AIG Skripte hochladen. Den link hinterlasse ich dann hier. 

 

Link to comment
Share on other sites

  • Replies 70
  • Created
  • Last Reply

@masterhawk


Danke für Deine Infos und die mögliche Fehlerbehebung in den LUA-Scripts von AIG. Ich habe auch Deine Beiträge dazu im englischsprachigen Forum gelesen. Leider funktioniert bei mir Deine Lösung nicht, die folgenden Zeilen in die jeweiligen Scripts einzufügen:

local EmissiveScale = varget("T:EmissiveScale", "Number")
local EmissiveTexture = varget("T:EmissiveTexture", "String")


Als Beispiel in einer der Script-Dateien (Ordner ist bei mir dieser hier: F:\Prepar3D-Addons\AIG AI Traffic\AIGAIM - OCI\Scripts) - die sähe dann so aus, ohne die Striche:

------------------------------------------------------------------------

!lua

 

-- Always on cabin Lights for FAIB A319 CFM.lua

 

local EmissiveScale = varget("T:EmissiveScale", "Number")
local EmissiveTexture = varget("T:EmissiveTexture", "String")

 

local CabinLight = varget("A:LIGHT NAV", "Bool")
local Scale = 0.1

 

if CabinLight > 0 then
    TextureName = "FAIB_A319_CFM_L.DDS"
    else
    TextureName = "FAIB_A319_CFM_L.DDS"
end

 

varset("T:EmissiveScale","Number",Scale)
varset("T:EmissiveTexture","String",TextureName)

--------------------------------------------------------------------------

Wäre die Syntax so korrekt? Falls nicht, wo müssen Deine Einträge hin? Ich benutze Notepad++, Kodierung steht aus UTF-8 - paßt das so?

Vielen Dank fürs Antworten,
MfG Christian

Link to comment
Share on other sites

  • Deputy Sheriffs
19 minutes ago, chicken_3h said:

@masterhawk


Danke für Deine Infos und die mögliche Fehlerbehebung in den LUA-Scripts von AIG. Ich habe auch Deine Beiträge dazu im englischsprachigen Forum gelesen. Leider funktioniert bei mir Deine Lösung nicht, die folgenden Zeilen in die jeweiligen Scripts einzufügen:

local EmissiveScale = varget("T:EmissiveScale", "Number")
local EmissiveTexture = varget("T:EmissiveTexture", "String")


Als Beispiel in einer der Script-Dateien (Ordner ist bei mir dieser hier: F:\Prepar3D-Addons\AIG AI Traffic\AIGAIM - OCI\Scripts) - die sähe dann so aus, ohne die Striche:

------------------------------------------------------------------------

!lua

 

-- Always on cabin Lights for FAIB A319 CFM.lua

 

local EmissiveScale = varget("T:EmissiveScale", "Number")
local EmissiveTexture = varget("T:EmissiveTexture", "String")

 

local CabinLight = varget("A:LIGHT NAV", "Bool")
local Scale = 0.1

 

if CabinLight > 0 then
    TextureName = "FAIB_A319_CFM_L.DDS"
    else
    TextureName = "FAIB_A319_CFM_L.DDS"
end

 

varset("T:EmissiveScale","Number",Scale)
varset("T:EmissiveTexture","String",TextureName)

--------------------------------------------------------------------------

Wäre die Syntax so korrekt? Falls nicht, wo müssen Deine Einträge hin? Ich benutze Notepad++, Kodierung steht aus UTF-8 - paßt das so?

Vielen Dank fürs Antworten,
MfG Christian

Bei mir geht's damit. Syntax ist richtig. Hast du alle scripte angepasst?

Link to comment
Share on other sites

Danke für die schnelle Antwort.

Ich habe den kompletten AIG Traffic entfernt und die OCI neu installiert, erstmal nur Lufthansa - damit ich nicht so viele Scripte anpassen muß. Ich benutze, wo es geht, die Payware-Modelle. Wenn ich jetzt die AIG-Scripte temporär entferne, stimmen die Texturen entsprechend der Jahreszeit Winter. Kopiere ich die Scripte in ihren Ordner zurück, hat alles - außer dem Gras - Wintertexturen (also Apron, Taxiways und Rynways usw.). Bäume stimmen auch - nur eben der Boden nicht, der ist grün.

Spielt es eine Rolle, an welcher Stelle im Script Deine zwei Einträge stehen?

Ich probiere noch ein wenig damit herum, ansonsten warte ich mal auf Dein Update mit den angepaßten Scripten. Bei mir sind es derzeit nur 16, entsprechend der Anzahl der verschiedenen Flugzeugmodelle, korrekt?

 

Viele Grüße, Christian

Link to comment
Share on other sites

  • Deputy Sheriffs
4 minutes ago, chicken_3h said:

Danke für die schnelle Antwort.

Ich habe den kompletten AIG Traffic entfernt und die OCI neu installiert, erstmal nur Lufthansa - damit ich nicht so viele Scripte anpassen muß. Ich benutze, wo es geht, die Payware-Modelle. Wenn ich jetzt die AIG-Scripte temporär entferne, stimmen die Texturen entsprechend der Jahreszeit Winter. Kopiere ich die Scripte in ihren Ordner zurück, hat alles - außer dem Gras - Wintertexturen (also Apron, Taxiways und Rynways usw.). Bäume stimmen auch - nur eben der Boden nicht, der ist grün.

Spielt es eine Rolle, an welcher Stelle im Script Deine zwei Einträge stehen?

Ich probiere noch ein wenig damit herum, ansonsten warte ich mal auf Dein Update mit den angepaßten Scripten. Bei mir sind es derzeit nur 16, entsprechend der Anzahl der verschiedenen Flugzeugmodelle, korrekt?

 

Viele Grüße, Christian

Ich habe es so gemacht wie du oben dargestellt hast. Mit dem normalen Editor. Ich habe AIG Full mit 169 scripts. Ich nutze die EDDM scripts aus dem updater von gestern.

Link to comment
Share on other sites

  • Deputy Sheriffs
5 minutes ago, f.skywalker said:

@masterhawk

Bitte noch mal zum einfachen Verstehen eine kleine Anleitung.

1. Welche 2 Zeilen muss ich einfach in die AIG Scripts kopieren und an welche Stelle.

2. Geht das per Copy oder muss dann in der Zeile noch was verändert werden.

 

Frank

 

 

1. An die Stelle wie oben im Beispiel von @chicken_3h

local EmissiveScale = varget("T:EmissiveScale", "Number")
local EmissiveTexture = varget("T:EmissiveTexture", "String")

 

2. Einfach copy Paste 

Link to comment
Share on other sites

  • Developer
5 minutes ago, f.skywalker said:

OK Verstanden.

Nur den Laufwerkspfad verändern und rein damit mit den 2 Files.

Ganz Einfach.

 

 

 

Noch mal vielen Dank für die Problemlösung.

 

Frank from EDDM

 

Ich hoffe, Du meinst mit Laufwerkspfad ändern nicht das T:, denn dass ist kein Laufwerksbuchstabe.

Die Zeilen dürfen nicht verändert werden!

Link to comment
Share on other sites

vor 20 Minuten, masterhawk sagte:

1. An die Stelle wie oben im Beispiel von @chicken_3h

 

local EmissiveScale = varget("T:EmissiveScale", "Number")
local EmissiveTexture = varget("T:EmissiveTexture", "String")

 

Mir ist nicht klar was das bringen soll. Hier werden zwei Variablen ('EmissiveScale' und 'EmissiveTexture') angelegt die danach nirgends referenziert werden.

Werde das testen, aber ich kann mir nicht vorstellen dass das irgendetwas bringt, außer mehr benötigte CPU-Zeit für die Abarbeitung der Scripts.

 

Link to comment
Share on other sites

Problem konnte etwas eingegrenzt werden. Bei mir verursachen die Scripte der FAIB-Flugzeuge die Fehler und die falschen Jahreszeiten. Hier mal eins als Beispiel mit der Frage an die Experten: wo liegt der Fehler?

Dateiname: FAIB A319 CFM.lua
 

------------------------------------
!lua

 

-- Always on cabin Lights for FAIB A319 CFM.lua

 

local EmissiveScale = varget("T:EmissiveScale", "Number")
local EmissiveTexture = varget("T:EmissiveTexture", "String")

 

local CabinLight = varget("A:LIGHT NAV", "Bool")
local Scale = 0.1

 

if CabinLight > 0 then

    TextureName = "FAIB_A319_CFM_L.DDS"
    else
    TextureName = "FAIB_A319_CFM_L.DDS"
end

 

varset("T:EmissiveScale","Number",Scale)
varset("T:EmissiveTexture","String",TextureName)

-----------------------------------------------------------

 

Vielen Dank schonmal.

Link to comment
Share on other sites

vor 2 Minuten, masterhawk sagte:

Bei mir geht es jedenfalls:

Please login to display this image.


 


Könntest Du bitte mal dein Inhalt der Datei FAIB A319 CFM.lua aus Deinem Script-Ordner posten zum Vergleich? Danke.

Link to comment
Share on other sites

  • Deputy Sheriffs
4 minutes ago, chicken_3h said:


Könntest Du bitte mal dein Inhalt der Datei FAIB A319 CFM.lua aus Deinem Script-Ordner posten zum Vergleich? Danke.

!lua

-- Always on cabin Lights for FAIB A319 CFM.lua

local EmissiveScale = varget("T:EmissiveScale", "Number")
local EmissiveTexture = varget("T:EmissiveTexture", "String")

local CabinLight = varget("A:LIGHT NAV", "Bool")
local Scale = 0.1

if CabinLight > 0 then
    TextureName = "FAIB_A319_CFM_L.DDS"
    else
    TextureName = "FAIB_A319_CFM_L.DDS"
end

varset("T:EmissiveScale","Number",Scale)
varset("T:EmissiveTexture","String",TextureName)

Link to comment
Share on other sites

  • Deputy Sheriffs
7 minutes ago, chicken_3h said:

Danke. Ist bei Dir in den Optionen vom AIG Manager unter Settings > AIGAIM - OCI (P3D V4/v5) ein Haken bei "Do not use ORBX"?

Der hat nur damit was zu tun ob er sich da ein paar Modelle zieht. Habe ich nur einmal gemacht.

Link to comment
Share on other sites

Danke für Deine Antworten.
Bei mir funktioniert Deine Anpassung für alle FSXPAI-Flieger (Payware), bei denen die LUA-Datei andere Variablen aufweist. Die Modelle von AIA, FAIB und FMAI funktionieren damit nicht. Die haben aber auch mit Script weder beleuchtete Kabine noch Logo am Heck. Also lösche ich deren Skripte mal. Vielleicht setze ich den P3D aber auch nochmal komplett neu auf. Vielleicht "beharken" sich da andere Skripte im Hintergrund...

Link to comment
Share on other sites

  • Developer
3 minutes ago, chicken_3h said:


Könntest Du bitte mal dein Inhalt der Datei FAIB A319 CFM.lua aus Deinem Script-Ordner posten zum Vergleich? Danke.

Ich habe mir alle 169 Scripte, die mir @Masterhawk mal zur Verfügung gestellt hat angesehen und einen gravierenden Fehler nicht gesehen.

Warum bei ihm das hinzufügen der zwei Zeilen das Problem behebt, ist mir auch nicht ganz klar. Das einzige was hier passiert ist, das die am Ende durch die zwei VarSet Befehle geschrieben Materialvariablen zunächst gelesen werden. Ob das was hilft ist aber fraglich.

Hätte es in einem Stript den Tipfehler in der  letzten Zeile gegeben, also

 

varset("T:EmissiveTexture","String",EmissiveTexture)

statt

varset("T:EmissiveTexture","String",TextureName)

 

dann wäre der Fehler in seinem Log erklärt, da dann EmissiveTexture eine undefinierte Variable wäre, die nicht geschrieben werden kann. Hier hätte das zufügen der Zeilen das Problem behoben. So einen Script habe ich aber nicht gefunden beim durchsehen.

 

Nun mal grundsätzlich zu den Scripts

 

Nur mal am Beispiel der FAIB A319 CFM.lua erklärt, was mich da stört, ohne das es zwingend zum Problem beiträgt.

 

Original sieht die so aus:

 

!lua

-- Always on cabin Lights for FAIB A319 CFM.lua

local CabinLight = varget("A:LIGHT NAV", "Bool")
local Scale = 0.1

if CabinLight > 0 then
    TextureName = "FAIB_A319_CFM_L.DDS"
else
    TextureName = "FAIB_A319_CFM_L.DDS"
end

varset("T:EmissiveScale","Number",Scale)
varset("T:EmissiveTexture","String",TextureName)

 

Wie der Kommmentar oben schon sagt, ist das Kabinenlicht immer an ("Always on"). Letztendlich setzt der Script immer, den Materialwert "T:EmissiveScale"  auf 0.1 und die "T:EmissiveTexture" auf den Texturefilename "FAIB_A319_CFM_L.DDS", und zwar egal welchen Wert die Flugzeugvariable "A:LIGHT NAV", an oder aus.

Hier könnte man die Werte einfach fix im Modell setzen und braucht keine Stript. Von dieser Art sind gefühlt 75% aller Scripte.

 

Dieser Script würde also auch so funktionieren, sollte das Modell die Werte nicht ohnehin haben:

 

!lua

-- Always on cabin Lights for FAIB A319 CFM.lua

varset("T:EmissiveScale","Number", 0.1)

varset("T:EmissiveTexture","String","FAIB_A319_CFM_L.DDS")

 

Unabhängig von der fehlenden Sinnigkeit einer If / else Abfragen ohne unterschied im Ergebnis, stört mich hier die globale Variable TextureName, die ja nicht Local definiert ist.

Würde man den Script (und alle anderen entsprechend so ändern

 

!lua

-- Always on cabin Lights for FAIB A319 CFM.lua

local CabinLight = varget("A:LIGHT NAV", "Bool")
local Scale = 0.1

local TextureName = varget("T:EmissiveTexture", "String")

 

if CabinLight > 0 then
    TextureName = "FAIB_A319_CFM_L.DDS"
else
    TextureName = "FAIB_A319_CFM_L.DDS"
end

varset("T:EmissiveScale","Number",Scale)
varset("T:EmissiveTexture","String",TextureName)


dann wären zumindest alle im Script verwendeten Variablen mit Local vordefiniert und nicht in globalen Bereich, was ggf. Problem machen kann.

 

Aber das alles erklärt die Problematik im Grundsatz nicht, aber vielleicht habe ich ja auch den entscheidenen Fehler in den 169 Scripts einfach übersehen ;)

 

 

 

 

 

Link to comment
Share on other sites

  • Developer

Noch eine Frage an die Hamburg User, die das Problem der nicht umschaltenden Bodentexturen haben:

 

1.) Sind die Bäume, die auf der Landseite des Terminals rund um das Parkhaus und die Straße stehen (also nicht die Autogen Bäume des Umlandes) auch noch sommerlich Grün?

2.) Sind die Gatenummern an den Jetways alle unterschiedlich richtig passend oder steht die gleiche Nummer an allen Jetways.

 

Denn auch diese Teile sind ja script gesteuert, wäre noch ein Hinweis, sollte die funktionieren.

Link to comment
Share on other sites

  • Deputy Sheriffs
51 minutes ago, OPabst said:

Ich habe mir alle 169 Scripte, die mir @Masterhawk mal zur Verfügung gestellt hat angesehen und einen gravierenden Fehler nicht gesehen.

Warum bei ihm das hinzufügen der zwei Zeilen das Problem behebt, ist mir auch nicht ganz klar. Das einzige was hier passiert ist, das die am Ende durch die zwei VarSet Befehle geschrieben Materialvariablen zunächst gelesen werden. Ob das was hilft ist aber fraglich.

Hätte es in einem Stript den Tipfehler in der  letzten Zeile gegeben, also

 

varset("T:EmissiveTexture","String",EmissiveTexture)

statt

varset("T:EmissiveTexture","String",TextureName)

 

dann wäre der Fehler in seinem Log erklärt, da dann EmissiveTexture eine undefinierte Variable wäre, die nicht geschrieben werden kann. Hier hätte das zufügen der Zeilen das Problem behoben. So einen Script habe ich aber nicht gefunden beim durchsehen.

 

Nun mal grundsätzlich zu den Scripts

 

Nur mal am Beispiel der FAIB A319 CFM.lua erklärt, was mich da stört, ohne das es zwingend zum Problem beiträgt.

 

Original sieht die so aus:

 

!lua

-- Always on cabin Lights for FAIB A319 CFM.lua

local CabinLight = varget("A:LIGHT NAV", "Bool")
local Scale = 0.1

if CabinLight > 0 then
    TextureName = "FAIB_A319_CFM_L.DDS"
else
    TextureName = "FAIB_A319_CFM_L.DDS"
end

varset("T:EmissiveScale","Number",Scale)
varset("T:EmissiveTexture","String",TextureName)

 

Wie der Kommmentar oben schon sagt, ist das Kabinenlicht immer an ("Always on"). Letztendlich setzt der Script immer, den Materialwert "T:EmissiveScale"  auf 0.1 und die "T:EmissiveTexture" auf den Texturefilename "FAIB_A319_CFM_L.DDS", und zwar egal welchen Wert die Flugzeugvariable "A:LIGHT NAV", an oder aus.

Hier könnte man die Werte einfach fix im Modell setzen und braucht keine Stript. Von dieser Art sind gefühlt 75% aller Scripte.

 

Dieser Script würde also auch so funktionieren, sollte das Modell die Werte nicht ohnehin haben:

 

!lua

-- Always on cabin Lights for FAIB A319 CFM.lua

varset("T:EmissiveScale","Number", 0.1)

varset("T:EmissiveTexture","String","FAIB_A319_CFM_L.DDS")

 

Unabhängig von der fehlenden Sinnigkeit einer If / else Abfragen ohne unterschied im Ergebnis, stört mich hier die globale Variable TextureName, die ja nicht Local definiert ist.

Würde man den Script (und alle anderen entsprechend so ändern

 

!lua

-- Always on cabin Lights for FAIB A319 CFM.lua

local CabinLight = varget("A:LIGHT NAV", "Bool")
local Scale = 0.1

local TextureName = varget("T:EmissiveTexture", "String")

 

if CabinLight > 0 then
    TextureName = "FAIB_A319_CFM_L.DDS"
else
    TextureName = "FAIB_A319_CFM_L.DDS"
end

varset("T:EmissiveScale","Number",Scale)
varset("T:EmissiveTexture","String",TextureName)


dann wären zumindest alle im Script verwendeten Variablen mit Local vordefiniert und nicht in globalen Bereich, was ggf. Problem machen kann.

 

Aber das alles erklärt die Problematik im Grundsatz nicht, aber vielleicht habe ich ja auch den entscheidenen Fehler in den 169 Scripts einfach übersehen ;)

 

 

 

 

 

Werde mal eine Version mit deinem letzten Vorschlag machen und testen. Meine Version ergibt ja keinen Sinn, auch wenn’s läuft 😅.

local TextureName = varget("T:EmissiveTexture", "String")

 


 

Link to comment
Share on other sites

Was ich sowieso nicht verstanden habe, warum  im Falle einiger FAIB-Modelle dafür überhaupt LUA-Scripts? Läßt sich doch laut Anleitung der Original-FAIB-Installation in der Aircraft CFG einstellen. Oder funktioniert dies im P3Dv5 nicht mehr?

In der AIG aircraft cfg sind die Zeilen nicht aktiviert.

 

Mike

 

**** NEW NEW NEW FOR FSX & P3DV4 ****
The "off" state of logo, cabin and navigation lights is now set using the aircraft.cfg fuel section
enable a 1 gallon Center2 fuel tank to have logo lights remain always on.
enable a 1 gallon Center3 fuel tank to have cabin lights remain always on.
enable a 1 gallon External1 fuel tank to have navigation lights remain always on.

FSX/P3DV4 models now feature custom light splashes for landing and taxi lights.
You can switch between the dynamic lights and custom lights by adding or removing the "Center1" fuel tank in the aircraft.cfg.

 

Link to comment
Share on other sites

Weder diese zwei ominösen Zeilen, noch das (schon eher sinnvolle) Zuweisen des 'TextureName' an eine eigene local Variable lösen das Problem.

Egal wie ich es drehe und wende, am Ende bleiben immer die Fehler der EDDH-Scripts in den Logs und der Airport sehr sommerlich im Dezember.

 

Dieses Script z.B. beinhaltet beide "Lösunsversuche"... und bringt wie gesagt leider gar nichts, außer zusätzlichen Rechenaufwand für das (sinnlose) Auslesen von Material-Attributen.

 

!lua

-- Always on cabin Lights for FAIB B744 GE.lua

local EmissiveScale = varget("T:EmissiveScale", "Number")
local EmissiveTexture = varget("T:EmissiveTexture", "String")

local CabinLight = varget("A:LIGHT NAV", "Bool")
local Scale = 0.1
local TextureName

if CabinLight > 0 then
    TextureName = "FAIB_B7474_GE_L.DDS"
	else
    TextureName = "FAIB_B7474_GE_L.DDS"
end

varset("T:EmissiveScale","Number",Scale)
varset("T:EmissiveTexture","String",TextureName)

 

Auch diese - zumindest ein wenig sinnvollere Variante - bringt nichts:
 

!lua

-- Always on cabin Lights for FAIB B744 GE.lua

local TextureName = varget("T:TextureName", "String")

local CabinLight = varget("A:LIGHT NAV", "Bool")
local Scale = 0.1


if CabinLight > 0 then
    TextureName = "FAIB_B7474_GE_L.DDS"
	else
    TextureName = "FAIB_B7474_GE_L.DDS"
end

varset("T:EmissiveScale","Number",Scale)
varset("T:EmissiveTexture","String",TextureName)

 

Und ich bleibe noch immer dabei... Es ist ein P3D-Bug und hängt eventuell mit der Anzahl an Lua-Scripts zusammen welche die P3D-Engine zu verarbeiten hat. Das checke ich aber noch so gut es geht.

Weder die sim-wings-Scripts für EDDH, noch jene von AIG sehen irgendwie fehlerhaft aus.

Der AIG-Traffic ist btw. selbst leidtragend, nachdem die Lua-Scripts auch dort die Texturen nicht immer korrekt umschalten.

 

Als einziger halbwegs vernünftiger Workaround für EDDH (und vermutlich auch EDDM) bleibt m.M.n. nur, die Texturen der Groundpolys nicht über Lua-Scripts, sondern über deren "Visibility Condition" zu steuern.

 

EDIT:
Dass diese If-Abfragen in einigen der AIG-Scripts nicht sinnvoll sind stimmt natürlich, technisch falsch sind sie aber nicht.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy & Terms of Use