ich versuche grad für den 4 fach schwader die funktion einzubauen
zusätzlich die kreisel einzel zu steuern
hoffe ihr könnt mir da vieleicht weiterhelfen
----ob sowas überhaupt funktioniert
----was ich wo falsch gemacht habe
----ob ich was vergessen hab und wenn ja was
mfg lacky
in der kroneSwadro1400Plus.xml datei hab ich folgende werte eingetragen
<animParts> <animPart index="0>10" id="rightFrontInnerArm" showHelp="true" rotMin="170 -90 -180" rotMax="180 -90 -180" moveTime="1" /> <animPart index="0>11" id="rightBackInnerArm" showHelp="true" rotMin="-10 -90 0" rotMax="0 -90 0" moveTime="1" /> <animPart index="0>12" id="leftFrontInnerArm" showHelp="true" rotMin="170 90 -180" rotMax="180 90 -180" moveTime="1" /> <animPart index="0>13" id="leftBackInnerArm" showHelp="true" rotMin="-10 90 0" rotMax="0 90 0" moveTime="1" /> </animParts> | ||
<specializations> <specialization name="doors" className="toggleAnimatedParts" filename="scripts/toggleAnimatedParts.lua"/> </specializations> <l10n> <text name="description_MW"><de>Dieser Krone Swadro 1400 Plus ist zwar etwas teurer, als der gleich große Pöttinger Top 1252, aber er ist in der Wartung kostengünstiger.</de><en>This Krone Swadro 1400 Plus is a little more expensive than the same size Poettinger Top 1252, but his maintenance is more cost-effective.</en></text> <text name="rightFrontInnerArm"><de>rechts vorne</de><en>rightFront</en></text> <text name="rightBackInnerArm"><de>rechts hinten</de><en>rightBack</en></text> <text name="leftFrontInnerArm"><de>links vorne</de><en>leftFront</en></text> <text name="leftBackInnerArm"><de>links hinten</de><en>leftBack</en></text> </l10n> <inputBindings> <input name="rightFrontInnerArm" key1="KEY_k" button="" /> <input name="rightBackInnerArm" key1="KEY_m" button="" /> <input name="leftFrontInnerArm" key1="KEY_j" button="" /> <input name="leftBackInnerArm" key1="KEY_n" button="" /> </inputBindings> | ||
dateien
kroneSwadro1400Plus.xml
<?xml version="1.0" encoding="utf-8" standalone="no" ?> <vehicle type="windrower"> <annotation>Copyright (C) GIANTS Software GmbH, All Rights Reserved.</annotation> <name> <en>Krone Swadro 1400 Plus</en> <de>Krone Swadro 1400 Plus</de> </name> <typeDesc>$l10n_TypeDesc_Windrower</typeDesc> <filename>kroneSwadro1400Plus.i3d</filename> <size width="4.5" length="12" /> <powerConsumer ptoRpm="500" neededPtoPower="30"/> <speedLimit value="19" /> <wheels autoRotateBackSpeed="2.0"> <wheel restLoad="2.8" repr="0>0" radius="0.472" initialCompression="50" suspTravel="0.1" spring="50" damper="30" mass="0.075" maxLatStiffness="40" hasTyreTracks="true" tyreTrackAtlasIndex="1" /> <wheel restLoad="2.8" repr="0>1" radius="0.472" initialCompression="50" suspTravel="0.1" spring="50" damper="30" mass="0.075" maxLatStiffness="40" hasTyreTracks="true" tyreTrackAtlasIndex="1" /> </wheels> <dynamicallyLoadedParts> <dynamicallyLoadedPart node="2|0" linkNode="0>0" filename="$data/vehicles/wheels/trelleborg/trelleborgAW309_500_50_17.i3d" /> <dynamicallyLoadedPart node="2|1" linkNode="0>1" filename="$data/vehicles/wheels/trelleborg/trelleborgAW309_500_50_17.i3d" /> <dynamicallyLoadedPart node="0|1" linkNode="0>12|0|0|1|0|1" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|1" linkNode="0>12|0|0|1|0|2" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|0" linkNode="0>12|0|0|1|0|3|0" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|1" linkNode="0>12|0|0|1|0|3|1" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|0" linkNode="0>12|0|0|1|0|4|0" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|1" linkNode="0>12|0|0|1|0|4|1" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|1" linkNode="0>13|0|0|0|1" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|1" linkNode="0>13|0|0|0|2" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|0" linkNode="0>13|0|0|0|3|0" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|1" linkNode="0>13|0|0|0|3|1" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|0" linkNode="0>13|0|0|0|4|0" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|1" linkNode="0>13|0|0|0|4|1" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|0" linkNode="0>10|0|0|1|0|1" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|0" linkNode="0>10|0|0|1|0|2" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|0" linkNode="0>10|0|0|1|0|3|0" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|1" linkNode="0>10|0|0|1|0|3|1" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|0" linkNode="0>10|0|0|1|0|4|0" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|1" linkNode="0>10|0|0|1|0|4|1" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|0" linkNode="0>11|0|0|0|1" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|0" linkNode="0>11|0|0|0|2" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|0" linkNode="0>11|0|0|0|3|0" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|1" linkNode="0>11|0|0|0|3|1" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|0" linkNode="0>11|0|0|0|4|0" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> <dynamicallyLoadedPart node="0|1" linkNode="0>11|0|0|0|4|1" filename="$data/vehicles/wheels/trelleborg/trelleborgT510_16X6_50_8.i3d" /> </dynamicallyLoadedParts> <brakeForce>1</brakeForce> <lightCoronas> <lightCorona index="0>3" /> </lightCoronas> <brakeLights> <brakeLight index="0>4" /> </brakeLights> <turnSignals> <turnSignalLeft index="0>5|0" /> <turnSignalRight index="0>5|1" /> </turnSignals> <workAreas> <workArea startIndex="0>23|0" widthIndex="0>23|1" heightIndex="0>23|2" foldMinLimit="0" foldMaxLimit="0.1" refNodeIndex="0" type="windrower" dropAreaIndex="0" /> <!-- front right --> <workArea startIndex="0>23|3" widthIndex="0>23|4" heightIndex="0>23|5" foldMinLimit="0" foldMaxLimit="0.1" refNodeIndex="1" type="windrower" dropAreaIndex="1" /> <!-- front left --> <workArea startIndex="0>23|6" widthIndex="0>23|7" heightIndex="0>23|8" foldMinLimit="0" foldMaxLimit="0.1" refNodeIndex="2" type="windrower" dropAreaIndex="2" /> <!-- back right --> <workArea startIndex="0>23|9" widthIndex="0>23|10" heightIndex="0>23|11" foldMinLimit="0" foldMaxLimit="0.1" refNodeIndex="3" type="windrower" dropAreaIndex="3" /> <!-- back left --> <workArea startIndex="0>24|0" widthIndex="0>24|1" heightIndex="0>24|2" refNodeIndex="0" type="windrowerDrop" /> <!-- front right --> <workArea startIndex="0>24|3" widthIndex="0>24|4" heightIndex="0>24|5" refNodeIndex="1" type="windrowerDrop" /> <!-- front left --> <workArea startIndex="0>24|6" widthIndex="0>24|7" heightIndex="0>24|8" refNodeIndex="2" type="windrowerDrop" /> <!-- back right -> same place --> <workArea startIndex="0>24|6" widthIndex="0>24|7" heightIndex="0>24|8" refNodeIndex="3" type="windrowerDrop" /> <!-- back left -> same place --> </workAreas> <groundReferenceNodes> <groundReferenceNode index="0>10|0|0|1|0|5" threshold="0.4" /> <groundReferenceNode index="0>12|0|0|1|0|5" threshold="0.4" /> <groundReferenceNode index="0>11|0|0|0|5" threshold="0.4" /> <groundReferenceNode index="0>13|0|0|0|5" threshold="0.4" /> </groundReferenceNodes> <windrowerParticleSystems> <windrowerParticleSystem type="grass_windrow" node="0>10|0|0|1|0|6" psRootNode="0" position="0 0 0" rotation="0 0 0" file="$data/vehicles/particleAnimations/shared/windrow.i3d" workAreaIndex="0" /> <windrowerParticleSystem type="grass_windrow" node="0>12|0|0|1|0|6" psRootNode="0" position="0 0 0" rotation="0 0 0" file="$data/vehicles/particleAnimations/shared/windrow.i3d" workAreaIndex="1" /> <windrowerParticleSystem type="grass_windrow" node="0>13|0|0|0|7" psRootNode="0" position="0 0 0" rotation="0 0 0" file="$data/vehicles/particleAnimations/shared/windrow.i3d" workAreaIndex="2" /> <windrowerParticleSystem type="grass_windrow" node="0>11|0|0|0|7" psRootNode="0" position="0 0 0" rotation="0 0 0" file="$data/vehicles/particleAnimations/shared/windrow.i3d" workAreaIndex="3" /> <windrowerParticleSystem type="dryGrass_windrow" node="0>10|0|0|1|0|6" psRootNode="1" position="0 0 0" rotation="0 0 0" file="$data/vehicles/particleAnimations/shared/windrow.i3d" workAreaIndex="0" /> <windrowerParticleSystem type="dryGrass_windrow" node="0>12|0|0|1|0|6" psRootNode="1" position="0 0 0" rotation="0 0 0" file="$data/vehicles/particleAnimations/shared/windrow.i3d" workAreaIndex="1" /> <windrowerParticleSystem type="dryGrass_windrow" node="0>13|0|0|0|7" psRootNode="1" position="0 0 0" rotation="0 0 0" file="$data/vehicles/particleAnimations/shared/windrow.i3d" workAreaIndex="2" /> <windrowerParticleSystem type="dryGrass_windrow" node="0>11|0|0|0|7" psRootNode="1" position="0 0 0" rotation="0 0 0" file="$data/vehicles/particleAnimations/shared/windrow.i3d" workAreaIndex="3" /> <windrowerParticleSystem type="wheat_windrow" node="0>10|0|0|1|0|6" psRootNode="2" position="0 0 0" rotation="0 0 0" file="$data/vehicles/particleAnimations/shared/windrow.i3d" workAreaIndex="0" /> <windrowerParticleSystem type="wheat_windrow" node="0>12|0|0|1|0|6" psRootNode="2" position="0 0 0" rotation="0 0 0" file="$data/vehicles/particleAnimations/shared/windrow.i3d" workAreaIndex="1" /> <windrowerParticleSystem type="wheat_windrow" node="0>13|0|0|0|7" psRootNode="2" position="0 0 0" rotation="0 0 0" file="$data/vehicles/particleAnimations/shared/windrow.i3d" workAreaIndex="2" /> <windrowerParticleSystem type="wheat_windrow" node="0>11|0|0|0|7" psRootNode="2" position="0 0 0" rotation="0 0 0" file="$data/vehicles/particleAnimations/shared/windrow.i3d" workAreaIndex="3" /> <windrowerParticleSystem type="barley_windrow" node="0>10|0|0|1|0|6" psRootNode="2" position="0 0 0" rotation="0 0 0" file="$data/vehicles/particleAnimations/shared/windrow.i3d" workAreaIndex="0" /> <windrowerParticleSystem type="barley_windrow" node="0>12|0|0|1|0|6" psRootNode="2" position="0 0 0" rotation="0 0 0" file="$data/vehicles/particleAnimations/shared/windrow.i3d" workAreaIndex="1" /> <windrowerParticleSystem type="barley_windrow" node="0>13|0|0|0|7" psRootNode="2" position="0 0 0" rotation="0 0 0" file="$data/vehicles/particleAnimations/shared/windrow.i3d" workAreaIndex="2" /> <windrowerParticleSystem type="barley_windrow" node="0>11|0|0|0|7" psRootNode="2" position="0 0 0" rotation="0 0 0" file="$data/vehicles/particleAnimations/shared/windrow.i3d" workAreaIndex="3" /> </windrowerParticleSystems> <windrowerSound file="$data/vehicles/tools/tedder.wav" pitchOffset="1" volume="1.4"/> <inputAttacherJoints> <inputAttacherJoint rootNode="1>" index="1>0" jointType="implement" rotLimitScale="1 0 1" transLimitScale="0.05 0.05 0.05" allowsJointTransLimitMovement="true" allowsJointRotLimitMovement="true" indexPTO="0>22|2" /> </inputAttacherJoints> <isDefaultLowered value="true"/> <needsLowering value="false" /> <allowsLowering value="false" /> <speedRotatingParts> <!-- front right --> <speedRotatingPart index="0>10|0|0|1|0|1" radius="0.1936" foldMinLimit="0" foldMaxLimit="0.05"/> <speedRotatingPart index="0>10|0|0|1|0|2" radius="0.1936" foldMinLimit="0" foldMaxLimit="0.05"/> <speedRotatingPart index="0>10|0|0|1|0|3" radius="0.1936" foldMinLimit="0" foldMaxLimit="0.05"/> <speedRotatingPart index="0>10|0|0|1|0|4" radius="0.1936" foldMinLimit="0" foldMaxLimit="0.05"/> <!-- back right --> <speedRotatingPart index="0>11|0|0|0|1" radius="0.1936" foldMinLimit="0" foldMaxLimit="0.05"/> <speedRotatingPart index="0>11|0|0|0|2" radius="0.1936" foldMinLimit="0" foldMaxLimit="0.05"/> <speedRotatingPart index="0>11|0|0|0|3" radius="0.1936" foldMinLimit="0" foldMaxLimit="0.05"/> <speedRotatingPart index="0>11|0|0|0|4" radius="0.1936" foldMinLimit="0" foldMaxLimit="0.05"/> <!-- front left --> <speedRotatingPart index="0>12|0|0|1|0|1" radius="0.1936" foldMinLimit="0" foldMaxLimit="0.05"/> <speedRotatingPart index="0>12|0|0|1|0|2" radius="0.1936" foldMinLimit="0" foldMaxLimit="0.05"/> <speedRotatingPart index="0>12|0|0|1|0|3" radius="0.1936" foldMinLimit="0" foldMaxLimit="0.05"/> <speedRotatingPart index="0>12|0|0|1|0|4" radius="0.1936" foldMinLimit="0" foldMaxLimit="0.05"/> <!-- back left --> <speedRotatingPart index="0>13|0|0|0|1" radius="0.1936" foldMinLimit="0" foldMaxLimit="0.05"/> <speedRotatingPart index="0>13|0|0|0|2" radius="0.1936" foldMinLimit="0" foldMaxLimit="0.05"/> <speedRotatingPart index="0>13|0|0|0|3" radius="0.1936" foldMinLimit="0" foldMaxLimit="0.05"/> <speedRotatingPart index="0>13|0|0|0|4" radius="0.1936" foldMinLimit="0" foldMaxLimit="0.05"/> </speedRotatingParts> <support animationName="moveSupport" /> <animation animationClip="windrowerClipSource" rootNode="0>10|0|0|1|0|0" speedScale="3.5" fadeTime="3.8" /> <movingTools> <!-- front right --> <movingTool index="0>6" componentJointIndex="1" anchorActor="0"/> <!-- back right --> <movingTool index="0>7" componentJointIndex="2" anchorActor="0"/> <!-- front right --> <movingTool index="0>8" componentJointIndex="3" anchorActor="0"/> <!-- back right --> <movingTool index="0>9" componentJointIndex="4" anchorActor="0"/> <movingTool index="0>10|0"> <dependentPart index="0>10|0|0" /> </movingTool> <movingTool index="0>12|0"> <dependentPart index="0>12|0|0" /> </movingTool> <movingTool index="0>22|5"> <dependentPart index="0>22|5|0" /> </movingTool> <movingTool index="0>22|7"> <dependentPart index="0>22|7|0" /> </movingTool> </movingTools> <movingParts> <!-- frontArmRight --> <movingPart index="0>10" referencePoint="2>0" referenceFrame="2>0" isActiveDirty="true" useLocalOffset="true" limitedAxis="3" playSound="false"> <!-- rower --> <dependentPart index="0>10|0|0|1" /> <dependentPart index="0>10|0|0|1|0" /> <!-- lift cylinder --> <dependentPart index="0>14" /> <dependentPart index="0>15" /> </movingPart> <movingPart index="0>10|0|0|1" referenceFrame="2>0" limitedAxis="1" playSound="false"/> <movingPart index="0>10|0|0|1|0" referenceFrame="2>0" playSound="false"/> <movingPart index="0>14" referencePoint="0>10|3" referenceFrame="0>10|3" playSound="false"> <translatingPart index="0>14|0" /> </movingPart> <movingPart index="0>15" referencePoint="0>10|3" referenceFrame="0>10|3" playSound="false"> <translatingPart index="0>15|0" /> </movingPart> <movingPart index="0>10|0|0" localReferencePoint="0>10|0|0|0" referencePoint="0>10|2" referenceFrame="0>10|2" > <dependentPart index="0>10|0|0|0" /> <dependentPart index="0>10|1" /> </movingPart> <movingPart index="0>10|0|0|0" referencePoint="0>10|2" referenceFrame="0>10|4" /> <movingPart index="0>10|1" referencePoint="0>10|0|1" referenceFrame="0>10" > <translatingPart index="0>10|1|0" /> </movingPart> <!-- backArmRight --> <movingPart index="0>11" referencePoint="3>0" referenceFrame="3>0" isActiveDirty="true" useLocalOffset="true" limitedAxis="3" playSound="false"> <!-- rower --> <dependentPart index="0>11|0|0" /> <dependentPart index="0>11|0|0|0" /> <!-- lift cylinder --> <dependentPart index="0>16" /> <dependentPart index="0>17" /> <!-- width control --> <dependentPart index="0>11|1" /> <!-- pto --> <dependentPart index="0>26|0" /> </movingPart> <movingPart index="0>11|0|0" referenceFrame="3>0" playSound="false"/> <movingPart index="0>11|0|0|0" referenceFrame="3>0" limitedAxis="1" playSound="false"/> <movingPart index="0>16" referencePoint="0>11|3" referenceFrame="0>11|3" playSound="false"> <translatingPart index="0>16|0" /> </movingPart> <movingPart index="0>17" referencePoint="0>11|2" referenceFrame="0>11|2" playSound="false"> <dependentPart index="0>17|0" /> </movingPart> <movingPart index="0>17|0" referencePoint="0>11|2" referenceFrame="0>11|2" scaleZ="true" playSound="false"/> <!-- width control --> <movingPart index="0>11|1" localReferencePoint="0>11|1|0" referencePoint="0>22|3" referenceFrame="0>11|4" playSound="false"> <dependentPart index="0>11|1|0" /> <dependentPart index="0>11|1|1" /> </movingPart> <movingPart index="0>11|1|0" referencePoint="0>22|3" referenceFrame="0>11|4" playSound="false" /> <movingPart index="0>11|1|1" referencePoint="0>11|0|1" referenceFrame="0>11" playSound="false" > <translatingPart index="0>11|1|1|0" /> </movingPart> <movingPart index="0>26|0" referencePoint="0>11|0|0|0|6" referenceFrame="0>11|0|0|0|6" scaleZ="true" playSound="false"/> <!-- frontArmLeft --> <movingPart index="0>12" referencePoint="4>0" referenceFrame="4>0" isActiveDirty="true" useLocalOffset="true" limitedAxis="3"> <!-- rower --> <dependentPart index="0>12|0|0|1" /> <dependentPart index="0>12|0|0|1|0" /> <!-- lift cylinder --> <dependentPart index="0>18" /> <dependentPart index="0>19" /> </movingPart> <movingPart index="0>12|0|0|1" referenceFrame="4>0" limitedAxis="1" playSound="false" /> <movingPart index="0>12|0|0|1|0" referenceFrame="4>0" playSound="false" /> <movingPart index="0>18" referencePoint="0>12|3" referenceFrame="0>12|3" playSound="false"> <translatingPart index="0>18|0" /> </movingPart> <movingPart index="0>19" referencePoint="0>12|3" referenceFrame="0>12|3" playSound="false"> <translatingPart index="0>19|0" /> </movingPart> <movingPart index="0>12|0|0" localReferencePoint="0>12|0|0|0" referencePoint="0>12|2" referenceFrame="0>12|2" > <dependentPart index="0>12|0|0|0" /> <dependentPart index="0>12|1" /> </movingPart> <movingPart index="0>12|0|0|0" referencePoint="0>12|2" referenceFrame="0>12|4" /> <movingPart index="0>12|1" referencePoint="0>12|0|1" referenceFrame="0>12" > <translatingPart index="0>12|1|0" /> </movingPart> <!-- backArmLeft --> <movingPart index="0>13" referencePoint="5>0" referenceFrame="5>0" isActiveDirty="true" useLocalOffset="true" limitedAxis="3"> <!-- rower --> <dependentPart index="0>13|0|0" /> <dependentPart index="0>13|0|0|0" /> <!-- lift cylinder --> <dependentPart index="0>20" /> <dependentPart index="0>21" /> <!-- width control --> <dependentPart index="0>13|1" /> <!-- pto --> <dependentPart index="0>25|0" /> </movingPart> <movingPart index="0>13|0|0" referenceFrame="5>0" playSound="false" /> <movingPart index="0>13|0|0|0" referenceFrame="5>0" playSound="false" /> <movingPart index="0>20" referencePoint="0>13|3" referenceFrame="0>13|3" playSound="false"> <translatingPart index="0>20|0" /> </movingPart> <movingPart index="0>21" referencePoint="0>13|2" referenceFrame="0>13|2" playSound="false"> <dependentPart index="0>21|0" /> </movingPart> <movingPart index="0>21|0" referencePoint="0>13|2" referenceFrame="0>13|2" scaleZ="true" playSound="false" /> <!-- width control --> <movingPart index="0>13|1" localReferencePoint="0>13|1|0" referencePoint="0>22|4" referenceFrame="0>13|4" playSound="false" > <dependentPart index="0>13|1|0" /> <dependentPart index="0>13|1|1" /> </movingPart> <movingPart index="0>13|1|0" referencePoint="0>22|4" referenceFrame="0>13|4" playSound="false" /> <movingPart index="0>13|1|1" referencePoint="0>13|0|1" referenceFrame="0>13" playSound="false" > <translatingPart index="0>13|1|1|0" /> </movingPart> <movingPart index="0>25|0" referencePoint="0>13|0|0|0|6" referenceFrame="0>13|0|0|0|6" scaleZ="true" playSound="false" /> <!-- locks --> <movingPart index="0>22|5|0" referencePoint="0>22|6|0" referenceFrame="0>"> <translatingPart index="0>22|5|0|0" /> </movingPart> <movingPart index="0>22|7|0" referencePoint="0>22|8|0" referenceFrame="0>"> <translatingPart index="0>22|7|0|0" /> </movingPart> <!-- attacher --> <movingPart index="0>22|0" referencePoint="1>" referenceFrame="0>" isActiveDirty="true" limitedAxis="2" playSound="false" /> </movingParts> <animations> <!-- move support wheel down/up --> <animation name="moveSupport"> <part node="0>22|1|0" startTime="0" duration="0.3" startRot="90 0 0" endRot="0 0 0" /> <part node="0>22|1|1" startTime="0" duration="0.3" startTrans="0 -0.21642 0" endTrans="0 -0.85079 0" /> <part componentJointIndex="0" startTime="0" duration="0.3" startRotLimit="0 90 10" endRotLimit="0 0 0" /> </animation> <animParts> <animPart index="0>10" id="rightFrontInnerArm" showHelp="true" rotMin="170 -90 -180" rotMax="180 -90 -180" moveTime="1" /> <animPart index="0>11" id="rightBackInnerArm" showHelp="true" rotMin="-10 -90 0" rotMax="0 -90 0" moveTime="1" /> <animPart index="0>12" id="leftFrontInnerArm" showHelp="true" rotMin="170 90 -180" rotMax="180 90 -180" moveTime="1" /> <animPart index="0>13" id="leftBackInnerArm" showHelp="true" rotMin="-10 90 0" rotMax="0 90 0" moveTime="1" /> </animParts> <animation name="folding"> <!-- left back rotor --> <!-- locks --> <part node="0>22|5" startTime="10" endTime="10.5" startRot="0 0 7" endRot="0 0 0"/> <part node="0>22|6" startTime="10" endTime="10.5" startRot="0 0 -7" endRot="0 0 0"/> <part node="0>22|7" startTime="10" endTime="10.5" startRot="0 0 11" endRot="0 0 0"/> <part node="0>22|8" startTime="10" endTime="10.5" startRot="0 0 -11" endRot="0 0 0"/> <!-- right front --> <!-- folding --> <part node="0>10|0" startTime="2" endTime="9" startRot="0 85 0" endRot="0 220 0"/> <part node="0>6|0" startTime="2" endTime="9" startTrans="-3.94085 -0.12187 0" endTrans="-0.99855 -0.12187 0"/> <part node="0>6" startTime="2" endTime="10" startRot="0 0 -10" endRot="0 0 -90"/> <!-- lowering --> <part node="0>6" direction="1" startTime="0" endTime="1" startRot="0 0 0" endRot="0 0 -10"/> <part componentJointIndex="1" direction="1" startTime="0" endTime="1" startRotLimit="9 0 9" endRotLimit="0 0 0" startTransLimit="0 0.4 0" endTransLimit="0 0 0" /> <!-- lifting --> <part node="0>6" direction="-1" startTime="1" endTime="1.8" startRot="0 0 0" endRot="0 0 -10"/> <part componentJointIndex="1" direction="-1" startTime="1" endTime="1.8" startRotLimit="9 0 9" endRotLimit="0 0 0" startTransLimit="0 0.4 0" endTransLimit="0 0 0" /> <!-- left front --> <!-- folding --> <part node="0>12|0" startTime="2" endTime="9" startRot="0 -85 0" endRot="0 -220 0"/> <part node="0>8|0" startTime="2" endTime="9" startTrans="3.94085 -0.12187 0" endTrans="0.99855 -0.12187 0"/> <part node="0>8" startTime="2" endTime="10" startRot="0 0 10" endRot="0 0 90"/> <!-- lowering --> <part node="0>8" direction="1" startTime="0" endTime="1" startRot="0 0 0" endRot="0 0 10"/> <part componentJointIndex="3" direction="1" startTime="0" endTime="1" startRotLimit="9 0 9" endRotLimit="0 0 0" startTransLimit="0 0.4 0" endTransLimit="0 0 0" /> <!-- lifting --> <part node="0>8" direction="-1" startTime="1" endTime="1.8" startRot="0 0 0" endRot="0 0 10"/> <part componentJointIndex="3" direction="-1" startTime="1" endTime="1.8" startRotLimit="9 0 9" endRotLimit="0 0 0" startTransLimit="0 0.4 0" endTransLimit="0 0 0" /> <!-- right back --> <!-- folding --> <part node="0>7|0" startTime="2" endTime="10" startTrans="-1.5 -0.0341 0" endTrans="-0.94855 -0.0341 0"/> <part node="0>11|0" startTime="2" endTime="10" startTrans="0 0 1.56858" endTrans="0 0 0.95406"/> <part node="0>7" startTime="2" endTime="10" startRot="0 0 -12" endRot="0 0 -88.5"/> <!-- lowering --> <part node="0>7" direction="-1" startTime="0" endTime="1" startRot="0 0 0" endRot="0 0 -12"/> <part componentJointIndex="2" direction="-1" startTime="0" endTime="1" startRotLimit="9 0 9" endRotLimit="0 0 0" startTransLimit="0 0.4 0" endTransLimit="0 0 0" /> <!-- lifting --> <part node="0>7" direction="1" startTime="1" endTime="2" startRot="0 0 0" endRot="0 0 -12"/> <part componentJointIndex="2" direction="1" startTime="1" endTime="2" startRotLimit="9 0 9" endRotLimit="0 0 0" startTransLimit="0 0.4 0" endTransLimit="0 0 0" /> <!-- left back --> <!-- folding --> <part node="0>9|0" startTime="2" endTime="10" startTrans="1.5 -0.0341 0" endTrans="0.94855 -0.0341 0"/> <part node="0>13|0" startTime="2" endTime="10" startTrans="0 0 1.56858" endTrans="0 0 0.95406"/> <part node="0>9" startTime="2" endTime="10" startRot="0 0 12" endRot="0 0 88.5"/> <!-- lowering --> <part node="0>9" direction="-1" startTime="0" endTime="1" startRot="0 0 0" endRot="0 0 12"/> <part componentJointIndex="4" direction="-1" startTime="0" endTime="1" startRotLimit="9 0 9" endRotLimit="0 0 0" startTransLimit="0 0.4 0" endTransLimit="0 0 0" /> <!-- lowering --> <part node="0>9" direction="1" startTime="1" endTime="2" startRot="0 0 0" endRot="0 0 12"/> <part componentJointIndex="4" direction="1" startTime="1" endTime="2" startRotLimit="9 0 9" endRotLimit="0 0 0" startTransLimit="0 0.4 0" endTransLimit="0 0 0" /> </animation> </animations> <foldingParts startMoveDirection="1" foldMiddleAnimTime="0.18" turnOnFoldMaxLimit="0.25" turnOnFoldMinLimit="0" turnOffOnFold="true" > <foldingPart animationName="folding" speedScale="1.0" /> </foldingParts> <washable dirtDuration="90" washDuration="1" workMultiplier="4" /> <driveGroundParticleSystems> <driveGroundParticleSystem file="$data/vehicles/particleAnimations/shared/drivingParticleSystem.i3d" wheel="1" /> <driveGroundParticleSystem file="$data/vehicles/particleAnimations/shared/drivingParticleSystem.i3d" wheel="2" /> </driveGroundParticleSystems> <components count="6"> <component1 centerOfMass="0 0.5 -1" solverIterationCount="10" /> <component2 centerOfMass="0 -0.15 0" solverIterationCount="10" /> <component3 centerOfMass="-0.14 -0.4 0.1" solverIterationCount="10" /> <component4 centerOfMass="-0.14 -0.4 0" solverIterationCount="10" /> <component5 centerOfMass="0.14 -0.4 0.1" solverIterationCount="10" /> <component6 centerOfMass="0.14 -0.4 0" solverIterationCount="10" /> <joint component1="0" component2="1" index="0>2" rotLimit="0 0 0" transLimit="0 0 0" /> <!-- attacher --> <joint component1="0" component2="2" index="0>6|0" rotLimit="9 0 9" transLimit="0 0.4 0" /> <!-- right front --> <joint component1="0" component2="3" index="0>7|0" rotLimit="9 0 9" transLimit="0 0.4 0" /> <!-- right back --> <joint component1="0" component2="4" index="0>8|0" rotLimit="9 0 9" transLimit="0 0.4 0" /> <!-- left front --> <joint component1="0" component2="5" index="0>9|0" rotLimit="9 0 9" transLimit="0 0.4 0" /> <!-- left back --> <collisionPair component1="1" component2="2" enabled="false" /> <collisionPair component1="1" component2="3" enabled="false" /> <collisionPair component1="1" component2="4" enabled="false" /> <collisionPair component1="1" component2="5" enabled="false" /> <collisionPair component1="2" component2="3" enabled="false" /> <collisionPair component1="2" component2="4" enabled="false" /> <collisionPair component1="2" component2="5" enabled="false" /> <collisionPair component1="3" component2="4" enabled="false" /> <collisionPair component1="3" component2="5" enabled="false" /> <collisionPair component1="4" component2="5" enabled="false" /> </components> <schemaOverlay file="$dataS2/menu/schemas/implementSchema.png" fileSelected="$dataS2/menu/schemas/implementSchemaSelected.png" fileTurnedOn="$dataS2/menu/schemas/implementSchemaTurnedOn.png" fileSelectedTurnedOn="$dataS2/menu/schemas/implementSchemaSelectedTurnedOn.png" width="0.5" height="0.5" attacherJointPosition="0 0"/> </vehicle> | ||
<?xml version="1.0" encoding="utf-8" standalone="no" ?> <modDesc descVersion="22"> <author>Ifko[nator] - http://www.modding-welt.com -</author> <version>1.0</version> <title>Krone Swadro 1400 Plus</title> <description>Krone Swadro 1400 Plus</description> <iconFilename>Store/store_kroneSwadro1400Plus.png</iconFilename> <multiplayer supported="true"/> <specializations> <specialization name="doors" className="toggleAnimatedParts" filename="scripts/toggleAnimatedParts.lua"/> </specializations> <l10n> <text name="description_MW"><de>Dieser Krone Swadro 1400 Plus ist zwar etwas teurer, als der gleich große Pöttinger Top 1252, aber er ist in der Wartung kostengünstiger.</de><en>This Krone Swadro 1400 Plus is a little more expensive than the same size Poettinger Top 1252, but his maintenance is more cost-effective.</en></text> <text name="rightFrontInnerArm"><de>rechts vorne</de><en>rightFront</en></text> <text name="rightBackInnerArm"><de>rechts hinten</de><en>rightBack</en></text> <text name="leftFrontInnerArm"><de>links vorne</de><en>leftFront</en></text> <text name="leftBackInnerArm"><de>links hinten</de><en>leftBack</en></text> </l10n> <inputBindings> <input name="rightFrontInnerArm" key1="KEY_k" button="" /> <input name="rightBackInnerArm" key1="KEY_m" button="" /> <input name="leftFrontInnerArm" key1="KEY_j" button="" /> <input name="leftBackInnerArm" key1="KEY_n" button="" /> </inputBindings> <storeItems> <storeItem> <name>Swadro 1400 Plus</name> <specs> <workingWidth>12.5</workingWidth> <neededPower>90</neededPower> </specs> <functions> <function>$l10n_function_windrower</function> <function>$l10n_description_MW</function> </functions> <image active="Store/store_kroneSwadro1400Plus.png" brand="$data/vehicles/store/brand_krone.png"/> <price>43000</price> <dailyUpkeep>35</dailyUpkeep> <xmlFilename>kroneSwadro1400Plus.xml</xmlFilename> <rotation>0</rotation> <brand>Krone</brand> <category>windrowers</category> </storeItem> </storeItems> </modDesc> | ||
_=[[ toggleAnimParts.lua -------------------------------------------------------------------------------------------------------------------- Author: Sven777b (ICQ#95176001) Konzept & Betatests : Desperados93 Version 1.0 - 12.04.2010 Version 1.3 - 19.04.2010 Version 1.4 - 30.07.2011 frei verwendbar - keine erlaubnis nötig | free for use - no permission needed. Modifikationen erst nach Rücksprache! | modifications only with my permission. Hinweis: das Kopieren von Sourcecode ist strafbar nach UrhG §2.1 -------------------------------------------------------------------------------------------------------------------- Fahrzeug XML: <animParts> <animPart index="1" id="dachfenster" showHelp="true" rotMin="0 0 0" rotMax="15 0 0" moveTime="3" /> <animPart index="2" id="fenster_links" transMin="0 0 0" transMax="0 0.4 0" moveTime="3" /> <animPart index="3" id="fenster_rechts" scaleMin="1 0.5 1" scaleMax="1 1 1" moveTime="3" /> <animPart index="4" id="ventilator" permRotAxis="3" moveTime="0.1" /> <animPart index="5" id="rulDrehkoerper" permRotAxis="2" moveTime="0.1" listenTo="beaconLightsActive" /> </animParts> ================================================================= id : frei vergebener Name - ist gleichzeitig Bezeichner für l10n Text und InputBinding showHelp : true/false - Hilfetext anzeigen oder nicht rotMin/rotMax : rotation auf 3 Achsen transMin/transMax : bewegung auf 3 Achsen scaleMin/scaleMax : skalierung auf 3 Achsen - alles kombinierbar moveTime : Laufzeit in Sekunden in der die Bewegung abgeschlossen wird. autoReturn : true/false - wenn true, dann kehrt die Animation zurück sobald der Knopf losgelassen wird. permRotAxis : 1-3 - rotiert das Objekt permanent um die angegebene Achse. moveTime definiert dabei die Zeit für eine 360° Umdrehung. listenTo : übergeht das InputBinding und reagiert stattdessen auf die angegebene Variable. So kann man eine Bewegung zum Beispiel ans Licht koppeln ================================================================= moddesc: Abschnitt <specializations> : <specialization name="Fenster" className="toggleAnimatedParts" filename="toggleAnimatedParts.lua"/> Abschnitt <vehicleTypes> : <specialization name="Fenster"/> (für jedes InputBinding sollte ein passender Text in l10n angelegt werden welcher auch als Hilfetext dient) <l10n> <text name="dachfenster"> <de>Dachfenster</de> <en>roofwindow</en> </text> </l10n> (die InputBindings müssen ebenfalls definiert werden) <inputBindings> <input name="dachfenster" key1="KEY_5" button="" /> <input name="fenster_links" key1="KEY_6" button="" /> <input name="fenster_rechts" key1="KEY_7" button="" /> </inputBindings> ]] toggleAnimatedParts = {}; function toggleAnimatedParts.prerequisitesPresent(specializations) return true; end; function toggleAnimatedParts:load(xmlFile) self.toggle = SpecializationUtil.callSpecializationsFunction("toggle"); self.animParts = {}; local c = 0; while true do local baseString = string.format("vehicle.animParts.animPart(%d)#",c); local index = getXMLString(xmlFile,baseString.."index"); local id = getXMLString(xmlFile,baseString.."id"); local listenTo = getXMLString(xmlFile,baseString.."listenTo"); if index == nil or id == nil or (InputBinding[id] == nil and listenTo == nil) then break; end; local part = {}; part.index = Utils.indexToObject(self.components, index); part.id = id; part.listenTo = listenTo; local rotMin = getXMLString(xmlFile,baseString.."rotMin"); local rotMax = getXMLString(xmlFile,baseString.."rotMax"); if rotMin ~= nil and rotMax ~= nil then local x,y,z = Utils.getVectorFromString(rotMin); part.rotMin = {math.rad(Utils.getNoNil(x,0)),math.rad(Utils.getNoNil(y,0)),math.rad(Utils.getNoNil(z,0))}; local x,y,z = Utils.getVectorFromString(rotMax); part.rotMax = {math.rad(Utils.getNoNil(x,0)),math.rad(Utils.getNoNil(y,0)),math.rad(Utils.getNoNil(z,0))}; end; local transMin = getXMLString(xmlFile,baseString.."transMin"); local transMax = getXMLString(xmlFile,baseString.."transMax"); if transMin ~= nil and transMax ~= nil then local x,y,z = Utils.getVectorFromString(transMin); part.transMin = {Utils.getNoNil(x,0),Utils.getNoNil(y,0),Utils.getNoNil(z,0)}; local x,y,z = Utils.getVectorFromString(transMax); part.transMax = {Utils.getNoNil(x,0),Utils.getNoNil(y,0),Utils.getNoNil(z,0)}; end; local scaleMin = getXMLString(xmlFile,baseString.."scaleMin"); local scaleMax = getXMLString(xmlFile,baseString.."scaleMax"); if scaleMin ~= nil and scaleMax ~= nil then local x,y,z = Utils.getVectorFromString(scaleMin); part.scaleMin = {Utils.getNoNil(x,1),Utils.getNoNil(y,1),Utils.getNoNil(z,1)}; local x,y,z = Utils.getVectorFromString(scaleMax); part.scaleMax = {Utils.getNoNil(x,1),Utils.getNoNil(y,1),Utils.getNoNil(z,1)}; end; local permRotAxis = getXMLInt(xmlFile,baseString.."permRotAxis"); if permRotAxis ~= nil then if permRotAxis >= 1 and permRotAxis <= 3 then part.permRotAxis = permRotAxis; end; end; part.moveTime = Utils.getNoNil(getXMLFloat(xmlFile,baseString.."moveTime"),1)*1000; part.helpText = Utils.getNoNil(getXMLBool(xmlFile, baseString.."showHelp"),false); part.autoReturn = Utils.getNoNil(getXMLBool(xmlFile, baseString.."autoReturn"),false); part.toMax = false; part.move = false; table.insert(self.animParts,part); c=c+1; end; end; function toggleAnimatedParts:delete() end; function toggleAnimatedParts:mouseEvent(posX, posY, isDown, isUp, button) end; function toggleAnimatedParts:keyEvent(unicode, sym, modifier, isDown) end; function toggleAnimatedParts:update(dt) if self:getIsActiveForInput() then for nr,part in ipairs(self.animParts) do if not part.autoReturn then if InputBinding.hasEvent(InputBinding[part.id]) then self:toggle(nr,not part.toMax); end; else if InputBinding.isPressed(InputBinding[part.id]) then if not part.toMax then self:toggle(nr,true); end; else if part.toMax then self:toggle(nr,false); end; end; end; end; end; if self:getIsActive() then for _,part in ipairs(self.animParts) do if part.listenTo ~= nil then if self[part.listenTo] then part.toMax = true; part.move = true; else part.toMax = false; end; end; if part.move then part.move = false; if part.rotMin ~= nil then local curRot = {getRotation(part.index)}; local newRot = Utils.getMovedLimitedValues(curRot, part.rotMax, part.rotMin, 3, part.moveTime, dt, not part.toMax); setRotation(part.index, unpack(newRot)); for i=1,3 do if math.abs(newRot-curRot) > 0.001 then part.move = true; end; end; end; if part.transMin ~= nil then local curTrans = {getTranslation(part.index)}; local newTrans = Utils.getMovedLimitedValues(curTrans, part.transMax, part.transMin, 3, part.moveTime, dt, not part.toMax); setTranslation(part.index, unpack(newTrans)); for i=1,3 do if math.abs(newTrans-curTrans) > 0.001 then part.move = true; end; end; end; if part.scaleMin ~= nil then local curScale = {getScale(part.index)}; local newScale = Utils.getMovedLimitedValues(curScale, part.scaleMax, part.scaleMin, 3, part.moveTime, dt, not part.toMax); setScale(part.index, unpack(newScale)); for i=1,3 do if math.abs(newScale-curScale) > 0.001 then part.move = true; end; end; end; if part.permRotAxis ~= nil then local spd = ((2*math.pi) / part.moveTime) * dt; local newRot = {0,0,0}; newRot[part.permRotAxis] = spd; rotate(part.index, unpack(newRot)); part.move = part.toMax; end; end; end; end; end; function toggleAnimatedParts:updateTick(dt) end; function toggleAnimatedParts:draw() if self:getIsActiveForInput() then for _,part in ipairs(self.animParts) do if part.helpText then g_currentMission:addHelpButtonText(g_i18n:getText(part.id), InputBinding[part.id]); end; end; end; end; function toggleAnimatedParts:toggle(id,state,nes) toggleAnimEvent.sendEvent(self,id,state,nes); self.animParts[id].toMax = state; self.animParts[id].move = true; end; function toggleAnimatedParts:readStream(streamId, connection) for nr,part in ipairs(self.animParts) do local state = streamReadBool(streamId); self:toggle(nr,state,true); end; end; function toggleAnimatedParts:writeStream(streamId, connection) for nr,part in ipairs(self.animParts) do streamWriteBool(streamId,part.toMax); end; end; toggleAnimEvent = {}; toggleAnimEvent_mt = Class(toggleAnimEvent, Event); InitEventClass(toggleAnimEvent, "toggleAnimEvent"); function toggleAnimEvent:emptyNew() local self = Event:new(toggleAnimEvent_mt); self.className="toggleAnimEvent"; return self; end; function toggleAnimEvent:new(object, id, state) local self = toggleAnimEvent:emptyNew() self.object = object; self.id = id; self.state = state; return self; end; function toggleAnimEvent:readStream(streamId, connection) self.object = networkGetObject(streamReadInt32(streamId)); self.id = streamReadInt8(streamId); self.state = streamReadBool(streamId); self:run(connection); end; function toggleAnimEvent:writeStream(streamId, connection) streamWriteInt32(streamId, networkGetObjectId(self.object)); streamWriteInt8(streamId, self.id); streamWriteBool(streamId, self.state); end; function toggleAnimEvent:run(connection) self.object:toggle(self.id,self.state, true); if not connection:getIsServer() then g_server:broadcastEvent(toggleAnimEvent:new(self.object, self.id, self.state), nil, connection, self.object); end; end; function toggleAnimEvent.sendEvent(vehicle, id, state, nes) if nes == nil or nes == false then if g_server ~= nil then g_server:broadcastEvent(toggleAnimEvent:new(vehicle, id, state), nil, nil, vehicle); else g_client:getServerConnection():sendEvent(toggleAnimEvent:new(vehicle, id, state)); end; end; end; | ||