i3D per Script einfügen

  • Klar geht das.. Zumindest Ingame.



    [lua] local loadedI3DFile = loadI3DFile("pfad zur i3d Datei als String");
    link(self.parentNode, loadedI3DFile);-- self.parentNode entsprechend durch das Objekt ersetzen in das die zusätzliche i3d geladen werden soll.
    [/lua]




    Ist es das was du gemeint hast?


    EDIT: war ich mal wieder zu langsam xD


    LG

  • Als Parent Node entsprechend den Component des Traktors..


    Im Normalfall also self.components[1].node, das funktioniert aber natürlich nur wenn die LUA von der aus das aufgerufen wird im entsprechenden Traktor ausgeführt wird, sonst beinhaltet self die Variable ja nicht.


    Logischerweiße muss das in den Load() Teil, da es ja zu beginn beim laden ausgeführt werden soll und auch nur einmal ausgeführt werden muss pro Traktor.


    Die Indexe zur Beleuchtung musst du dann auch über die LUA angeben, wie, da musst du dich in die Beleuchtungs Spezi einlesen und schauen in welchen Tables und Variablen da die Blinker eingetragen werden.



    LG

  • Hm...


    modelleicher, bei deinem Code steht in der 2.Zeile "link", was hat das zu bedeuten???
    steht ja hier geschrieben: http://gdn.giants-software.com…e_function_reference_node


    @ls for ever:


    Du hast also vor Blinker über eine zusätzliche i3d zu laden, die Idee ist ansich gut. 2 Dinge die ich dir nur zu denken geben will.


    1: Du kannst es aber über "parentNode" nicht einfach als Skript machen was einfach in den Mods Ordner kommt, da ja jeder Schlepper z.b unterschiedlich ist, auch der, wie heißt das Teil, Pivot, bei jedem schlepper nicht gleich ist, folglich würden die Blinker nicht immer da sitzen wo sie sein sollten bzw würden sie auch mal komplett neben dem Schlepper sitzen.


    2.Du müsstest es also so wie modelleicher sagte in jeden Schlepper eintragen und somit auch an jeden Schlepper anpassen. Was natürlich auch arbeit macht,da ist es bald leichter die Blinker direkt über das Beleuchtungsskript einzubauen. Die Arbeit ist die gleiche und du hast zusätzliche Funktionen (RUL Drehkörper, Parklicht, Tagfahrlicht, PipeLight usw.)


    Du könntest aber versuchen, die Blinker anhand des Bremlichtes einzubauen. Im load Teil den Index der Brmslichter aus der XML auslesen, dazu die Translation der Bremslichter. Wenn du dann deine i3d lädst, veränderst du die vorher ausgelesene Translation um z.b 0.2 nach rechts bzw links und lässt deine i3d an die neue Stelle setzen. Somit hättest du die Blinker zumindest bei jedem Schlepper/Anhänger/Drescher, neben den Bremlichtern. Du müsstest dazu maximal das Skript in der moddesc des schleppers eintragen. Ohne zusätzliche Arbeiten im GE.
    Für hinten ist das ganze sicher nicht ganz so schlimm, vorne sieht es schon anders aus, da wusste ich zur zeit keinen Index den man laden kann, ausser die Lichter, aber wer will schon Blinker in den Scheinwerfern. Aber vielleicht ist das blinken vorne auch nicht so wichtig für dich.


    Will mich da jetzt nicht aus dem Fenster lehnen, aber auf die Art und weise wäre es sicher auch möglich das ganze als Skript für den Mods ordner zu machen, was sich dann in jedes Fahrzeug installieren würde.

  • schade, sowas wäre schon praktisch gewesen, da man so mods mit Beleuchtung versehen könnte die die noch nicht haben. und man könnte immer noch im MP mit anderen spielen, da man ja den original Mod nicht verändert hat. So ließen sich natürlich auch noch andere Teile anbringen.


    pAre

  • naja, man selbst hat ja nicht 100 Fahrzeuge im Gebrauch. Zudem muss man ja nicht jedes nachrüsten. Aber wird wohl zu aufwendig sein das alles passend zu Scripten (muss ja möglichst allgemein sein damit man das auf viele Sachen anwenden kann).


    pAre

  • ich versuche mich nun doch nochmal daran.. aber ist es möglich, im Script eine XML zu laden, wo alle Indexe drin stehen?


    ich hätte mir das so vorgestellt: in der lua wird die XML "Index" geladen wo alle indexe drin stehen, z.B. in der lua steht:
    [lua]Utils.indexToObject(self.components, getXMLString(xmlFile, "indexe.KroneEmsland#blinkLeft"))[/lua]
    und das gleiche nochmal für rechts..
    [lua]Utils.indexToObject(self.components, getXMLString(xmlFile, "indexe.KroneEmsland#blinkRight"))[/lua]

  • Jop, das ist ebenfalls sehr simpel...


    [lua]
    local indicesXML = loadXMLFile("indicesXML", "filename");


    -- dann kannst du so weiter arbeiten :


    Utils.indexToObject(self.components, getXMLString(indicesXML, "indexe.KroneEmsland#blinkLeft"))
    [/lua]



    Ich würde das Ganze nicht mit einem Index regeln, sondern die genaue Position/Rotation der einzelnen Blinker in die XML schreiben. Dann kannst du die Blinker per Script an die Position verschieben. Hat den Vorteil, dass du bereits veröffentlichte Mods oder gar die Standart-Maschinen nicht bearbeiten musst ;)


    Aber die Sache mit einer lokalen XML-Datei, in der alle Indexe stehen finde ich nicht so toll. Zunächst einmal müsstest du diese immer aktuell halten und zur Verfügung stellen. Des Weiteren musst du auch erstmal einen MOD zweifelsfrei identifizieren. Der Dateiname ist nicht sonderlich gut geeignet dafür, da sich dieser schnell ändern lässt und nicht zwingend etwas mit dem eigentlichen Mod zutun haben muss. Dann müsstest du schon die Hash-Werte der Zips vergleichen...


    Aber ich möchte dir keines Falls die Lust an dem Projekt nehmen. Bastel du ruhig ein wenig damit herum. Eine gute Übung ist das allemal! :)


    MfG

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!