Lua - VehicleTypes : If - Abfrage anpassen

  • Hallo,


    ich würde gerne den new-holland-t7-extended-hud von der Modding - Welt nutzen. Allerdings wird bei dem Traktor kein VCA geladen.


    Ich habe also etwas rumprobiert und den "Fehler" gefunden: VCA prüft beim Starten in welche Items es sich integriert anhand der specialization - names und wenn dort ein 'attachable' eingetragen ist wird es nicht geladen. Zumindest sieht es für mich mit meinen nicht vorhandenen LUA-Kenntnissen so aus:


    Zum Testen hatte ich die Prüfung 'isAttachable' aus der IF-Abfrage herausgenommen und es wurde geladen... würde aber dazu führen, dass er VCA bei allen Anbaugeräten lädt...


    Deshalb dachte ich mir geht es, in dem ich alternativ prüfe, ob das vehicle als spespecializationsByName den Wert 'screenFunctions' eingetragen hat, der für die Display-Erweiterung des Traktors verwendet wird in der moddesc.xml:


    Code
    <vehicleTypes>
    <type name="tractorT7315mod" parent="baseDrivable" filename="$dataS/scripts/vehicles/Vehicle.lua">
    <specialization name="attachable" />
    <specialization name="powerConsumer" />
    <specialization name="interactiveControl" />
    <specialization name="interactiveWindows" />
    <specialization name="screenFunctions" />
    <!--specialization name="REA" /-->
    </type>
    </vehicleTypes>

    bzw. in der XML des Fahrezuges:

    Code
    <screenFunctions indicatorBarNode="IndicatorBar" indicatorBarNodeWagon="loadWagonAnim" indicatorBarNodeCap="wagonFillAnim" indicatorBarNodeTipperCap="tipperFillAnim" showInHud="false" >
    <indications ptoicon="iconPto" overloadicon="warningIcon" armsIcon1="setLowered" armsIcon2="setRaised" pickupLIcon="setLowered2" pickupRIcon="setRaised2" pickupL2Icon="setLowered3" pickupR2Icon="setRaised3"/>
    </screenFunctions>


    Und diesen dann im Script ergänze..

    leider funktioniert das so einfach nicht und mir fehlt echt der Ansatz, wie ich das lösen kann.


    P.S.: Wo schreibt das Script denn eigentlich die 'print' - Ausgaben hin.. das wäre zum Fehlersuchen echt spannend ;)

  • Wenn die Spezialisierung "screenFunction" über die modDesk via

    <specializations>

    <specialization name="screenFunction" className="ScreenFunction" filename="PFAD/NameDerDatei.lua"/> 

    </specializations>

    geladen wird, dann müsste die Spezialisierung über die Kombination "Modname.screenFunction" abfagbar sein (wenn ich mich nicht irre). :/


    Dazu entweder den Modnamen in der LUA abfragen lassen

    Code
    local modName = g_currentModName

    und dann verknüpfen (dann musst du den nicht in der LUA ändern, solltest du deinen Mod mal umbenennen) oder direkt eintragen (z.B.: LS19_MeinModName.screenFunction). :)

  • Vielen Dank bis hierher.. das hat mich schon mal weiter gebracht. Wenn ich meinen ModNamen im VCA hart codiere funktioniert es jetzt auch:


    Allerdings ist das nicht wirklich elegant und ich müsste das Script von VCA für mich um jeden Mod erweitern, in den ich mir das Display einbaue.


    In der Schleife, die das VCA in jeden Mod einträgt gibt es ja die Variable 'k', die den "Modnamen.VehicleTypeName" ausgibt (hier: AGDM19_JD_6R_Series_sIC_UniversalPassenger.JD6R_sIC).

    Für mein Script bräuchte ich aber nur den Modnamen, ohne den VehicleTypeName, also 'AGDM19_JD_6R_Series_sIC_UniversalPassenger'. Wie bekomme ich den denn raus?


    g_currentModName ergibt ja den Namen des Mods selbst, hier VCA und nicht von den Mods, in den sich VCA einträgt.


    Sorry wenn ich mich so doof anstelle aber weder die LUA-Tutorials im Netz noch die ScriptDoku von Giants führen zu einer wirklichen Erhellung.

  • Quote

    g_currentModName ergibt ja den Namen des Mods selbst, hier VCA und nicht von den Mods, in den sich VCA einträgt.

    Du hast recht. mein Denkfehler.


    Andere Möglichkeit, die mir da direkt einfällt, wäre die Spezialisierung mittels dem Skipt vom Ifko[nator] zu laden. Hierbei wird die neue Spezi ohne Modnamen hinterlegt. Oder kann/macht das Global Company auch? :)