Beiträge von Sven777b

    bezüglich Klappen und absenken kann ich dir nicht ganz folgen. Natürlich - wenn du das Mähwerk im zugeklappten zustand absenkst, steht der Bock auf dem Boden. Das liegt daran das LS nunmal die HH soweit absenkt wie es möglich ist - und nicht soweit wie es sinnvoll ist.


    zu den Grundreferences... ich würde mal sagen keine davon geht.
    Ich kann dir zwei Möglichkeiten anbieten, die du auch kombinieren kannst:

    XML
    <groundReferenceNode index="11>5" threshold="0.1" />


    hier wird überprüft ob die Referenznode (index=) weniger als 0.1m (threshold=) vom Boden entfernt ist. Wenn das nicht angegeben wird, prüft das Spiel selbstständig ob die rootNode ( 0> ) maximal 0.2 über dem Boden ist. In deinem Falle würde ich hier eine Transformgroup an die Unterkante des Bocks setzen bei einem threshold von 0.2 Das sollte reichen damit das Mähwerk zwischen angehoben und abgesenkt unterscheiden kann.


    XML
    <cuttingAreas count="3">
    <cuttingArea1 startIndex="2>10|0" widthIndex="2>10|1" heightIndex="2>10|2" foldMinLimit="0.9" foldMaxLimit="1"/>
    <cuttingArea2 startIndex="4>10|0" widthIndex="4>10|1" heightIndex="4>10|2" foldMinLimit="0.9" foldMaxLimit="1"/>
    <cuttingArea3 startIndex="6>12|0" widthIndex="6>12|1" heightIndex="6>12|2" foldMinLimit="0.9" foldMaxLimit="1"/>
    </cuttingAreas>


    das würde dafür sorgen , dass die CuttingAreas nur funktionieren , wenn die folding Animation zwischen 90 und 100% liegt. Es kann sein dass es bei dir genau umgekehrt also foldMinLimit="0" foldMaxLimit="0.1" lauten muss. Je nachdem wie rum die folding Animation läuft.


    Auf den XML Parameter needsLowering reagiert die Spezi Mower nicht.

    zu den FoldingParts:
    der componentJointIndex ist die Nummer des jeweiligen Joints in der XML
    "0" ist der Joint "AuslegerFrontRechts an Front"
    deine componentJointIndex angaben für die FoldingParts müssen daher lauten :

    XML
    <foldingParts>
    <foldingPart componentJointIndex="0" anchorActor="0" animationClip="frontrechtsClipSource" rootNode="10" speedScale="1" />
    <foldingPart componentJointIndex="1" anchorActor="0" animationClip="frontlinksClipSource" rootNode="12" speedScale="1" />
    <foldingPart componentJointIndex="2" anchorActor="0" animationClip="frontfrontClipSource" rootNode="0>7" speedScale="1" />
    </foldingParts>


    die rootNode muss auf ein Objekt verweisen welches durch die angegebene Animation bewegt wird. Könnte also passen die 0>7

    erstmal vorweg...
    du hast 7 Komponenten : Front, AuslegerFrontRechts, AuslegerFrontRechts2, AuslegerFrontLinks1, AuslegerFrontLinks2, AuslegerFront1, AuslegerFront2


    dementsprechend musst du unten also 7 components Einträge und 6 Joint Einträge haben. Diese müssten tendenziell so aussehen:



    wie du siehst sind bei den Joints einige Indexe mit >?? - das heisst ich weiss nicht wie der Index dort lauten muss. Die Joints verbinden die Komponenten. Du musst in der jeweils ersten Komponente eine TransformGroup haben , an der die beiden Komponenten verbunden werden sollen. Bei den Mähwerken selbst sollte dieser Punkt jeweils am Gelenk liegen.


    Bei den Mähwerken selbst habe ich mittels centerOfMass den Schwerpunkt 0.5 nach unten verschoben, damit sie dazu tendieren waagerecht zu bleiben. Die 3 letzteren Joints habe ich mit Bewegungsfreiräumen versehen entlang der Z-Achse (Fahrtrichtung) damit sie dem Boden folgen können.

    hmm und täglich grüßt das Murmeltier...


    wenn du einen neuen Vehicle Type in der Moddesc anlegst:
    <type name="PowerPress" className="Vehicle" filename="$dataS/scripts/vehicles/Vehicle.lua">
    dann solltest du ihn auch dem Fahrzeug zuweisen in der Fahrzeug-XML :
    <vehicle type="combine">


    diese beiden Angaben müssen gleich sein - du musst also in der XML angeben "PowerPress"


    wobei das ganze auch etwas irritierend ist. "powerPress" klingt so als wenn du diese Selbstfahrer-Presse baust.
    In deiner Fahrzeug XML hast du das ganze aktuell als Mähdrescher deklariert - nur kannst du so ja keine ballen pressen.
    Was ist es denn nun Drescher oder Presse ?!?


    Angesichts der Situation solltest du folgendes berücksichtigen:
    Du musst den vehicle type="combine" in vehicle type="powerPress" ändern damit deine moddesc greift. Es kann jedoch passieren das danach erstmal garnichts geht - dennoch ist diese Änderung wichtig und richtig. Sollte das ganze danach nicht funktionieren ist der Fehler woanders zu suchen.


    Soweit ich sehe hast du meine Scripte absolut korrekt eingebaut (vorausgesetzt die Indexe stimmen) - von dieser Seite sollte also kein Fehler zu erwarten sein.

    auf LS-Wiki gibt es ein Bild dazu - einfach nach "index zählen" suchen.


    Prinzipiell ist der Aufbau so :


    A>B|C oder nur B|C


    A ist die Komponente selbst. Also die Hauptgruppe im GE - ein Deichselanhänger kann eben zB 3 Komponenten haben ( Deichsel, Drehschemel, Hänger). Wenn A> nicht angegeben wird, geht LS immer davon aus das du 0> meinst.
    Darunter wird normal gezählt - der | kennzeichnet eine Verzweigung. C ist also ein Unterpunkt von B. Wie gesagt schau dir das Bild auf LS-Wiki an.

    D) das gabs schon bei LS09 und wenn ich mich nicht irre sogar bei LS08. Leider kann ich mich nicht mehr erinnern wer das gescriptet hatte.


    Funktionsweise : das Feld wird mit einer flachen , unsichtbaren Kollisionsfläche abgedeckt - in Folge dessen erkennen die Geräte das Feld nicht.

    noch ein Vorschlag am Rande...
    wenn der Drescher mit BeleuchtungV3 ausgestattet ist , hast du noch eine Alternative. Du löst das ganze mit einer Kombination von BeleuchtungV3 und toggleAnimatedParts.


    In der neuen Version von toggleAnimatedParts hab ich eine Funktion eingebaut , die ein Objekt permanent rotieren kann und eine Funktion die die Bewegung startet wenn eine andere Aktion ausgelöst wurde. Du kannst also die Koronen der Rundumleuchten als Arbeitslichter definieren und die Rotationskörper als animParts mit der Option permRotAxis="2" und listenTo="rul1"


    da mein Script keine komplexen Variablen überwachen kann , sondern nur sowas wie self.rul2 , müsste noch ein kleines Script her , welches die Variable setzt. Einfach in den UpdateTick() bereich eines Scripts
    self.rul1 = self.B3.wl[1].a;
    self.rul2 = self.B3.wl[2].a;
    self.rul3 = self.B3.wl[3].a;
    falls die 3 Rundumleuchten die ersten 3 Arbeitslichter sind.

    die Lösung von mx ist falsch und wird nicht funktionieren.


    if x==6 then
    ^ wann soll das eintreten ?


    rotate(self.RUL, 0, 1000, 0)
    ^ x,y,z werden im Bogenmaß angegeben. 360° = 2*Pi also rund 6.282. Zielwerte sollten hier eher in der Region unter 1 liegen.


    setVisiblity(self.Rul3, true)
    ^ ist nicht wirklich sinnvoll ein Objekt 20x pro Sekunde sichtbar zu schalten.
    auch ist es nicht nötig die rul permanent auf 0 zu rotieren wenn sie nicht rotiert werden soll.


    Ich habe hier absichtlich nichts weiter gepostet weil ich scheinbar ein hellseherisches Talent habe...
    Angenommen hier kommt die richtige Lösung - was wird als nächstes gefragt werden? "Wie mache ich das dann Multiplayertauglich?"


    für LS09 gabs ein überschaubar einfaches Script von mir - die rundumleuchten.lua - war in vielen Mods verbaut. Das was du vor hast ist im Grunde eine 1:1 Kopie dieser spezi - also kopier sie halt 1:1.

    also ertmal zur Erklärung - weil das scheinbar immer noch nicht allgemein verstanden wurde...


    die Mods haben einen sogenannten vehicleType. Das ist sinngemäß eine Typenbezeichnung. Dieser vehicleType beinhaltet eine Auflistung der "Features" und Funktionen dieses Fahrzeugtypes. Du kannst durchaus den selben Typ auch für verschiedene Mods verwenden , wenn alle die selben Funktionen haben.


    der standard vehicleType "tractor" beinhaltet folgende Funktionen:

    XML
    <specialization name="motorized" />
    <specialization name="steerable" />
    <specialization name="hirable" />
    <specialization name="aiTractor" />
    <specialization name="honk" />


    Du kannst diesen Typ nicht verändern , da er zum Standardspiel gehört. Wenn du jetzt also Licht einfügen willst , musst du einen neuen vehicle type erstellen mit einem anderen Namen. zum Beispiel "tractor_beleuchtet" :

    XML
    <type name="tractor_beleuchtet" className="Vehicle" filename="$dataS/scripts/vehicles/Vehicle.lua">
    <specialization name="motorized" />
    <specialization name="steerable" />
    <specialization name="hirable" />
    <specialization name="aiTractor" />
    <specialization name="honk" />
    <specialization name="beleuchtung" />
    </type>


    in der modDesc.xml erstellst du nur den Fahrzeugtyp - aber damit dein Traktor diese Features nun auch verwendet, musst du dem Spiel noch mitteilen das dein Mod eben ein "tractor_beleuchtet" ist. Das geschieht in der XML deines Fahrzeugs ganz oben (Zeile 2 )

    XML
    <vehicle type="tractor_beleuchtet">


    wenn du das nicht machst , wird dein Traktor weiterhin nur die Standardfunktionen haben.


    Achte bitte auch darauf das die Indexe stimmen. Ich halte es für unwahrscheinlich das bei deinem Mod die Beleuchtung ebenfalls auf Index 37|... liegt.