ich bin gerade dabei ein Maissägerät zu modden, und habe es soweit Ingame, dass die funktion gegeben ist, und die Räder sowie Sä-/Düngerscheiben beim fahren rotieren.
Nun wollte ich, da ich Perfektionist bin :p. auch die Zellenräder in den Sägehäusen zum Rotieren bringen. Dies wollte ich über eine separate Lua machen.
neues Problem:
Edit 2: nach Korrektur der o.g. Daten und ergänzen der Spezi attachable (hatte das Gerät im Savegame am Schlepper hängen) damit ichs wieder anhängen kann, bekomme ich nun beim Einschalten den Fehler:
Was ja mittlerweile darauf hindeutet, dass er meine Lua interpretieren möchte. nur verstehe ich gerade nicht, warum er denn meint das x nicht existiert oder nicht belegt ist.Error: LUA running function 'update'
D:/code/lsim2013_desktop/build/finalbin/dataS/scripts/shared/scenegraph.lua(19) : attempt to perform arithmetic on local 'x' (a nil value)
Muss ich die mit getRotate() vorher belegen? Normalerweise sollte er sich doch die werte über Rotate ziehen und dann gleich drehen, oder?
Anbei die MODDESC,XML, und Lua.
Moddesc
Code: Select all
<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<modDesc descVersion="9">
<author>RealNeo</author>
<version>1.0</version>
<title>
<en>BECKER T6ZS </en>
<de>BECKER T6ZS</de>
</title>
<description>
<en>BECKER T6ZS</en>
<de>BECKER T6ZS</de>
</description>
<multiplayer supported="false" />
<storeItems>
<storeItem>
<en>
<name>BECKER T6ZS</name>
<description>
<![CDATA[BECKER T6ZS]]>
</description>
<specs>
<![CDATA[BECKER T6ZS]]>
</specs>
</en>
<de>
<name>MBECKER T6ZS</name>
<description>
<![CDATA[BECKER T6ZS]]>
</description>
<specs>
<![CDATA[BECKER T6ZS]]>
</specs>
</de>
<rotation>0</rotation>
<price>1</price>
<xmlFilename>T6ZS.xml</xmlFilename>
<dailyUpkeep>200</dailyUpkeep>
<brand>BECKER</brand>
<machineType>sowingMachines</machineType>
</storeItem>
</storeItems>
<specializations>
<specialization name="T6Z" className="T6Z" filename="T6Z.lua" />
</specializations>
<vehicleTypes>
<type name="BECKER_T6Z" className="Vehicle" filename="$dataS/scripts/vehicles/Vehicle.lua">
<specialization name="fillable" />
<specialization name="sowingMachine" />
<specialization name="T6Z" />
</type>
</vehicleTypes>
<inputBindings>
</inputBindings>
</modDesc>
XML
Code: Select all
<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<vehicle type="BECKER_T6Z">
<annotation>Copyright (C) GIANTS Software GmbH, All Rights Reserved.</annotation>
<name>
<en>BECKER T6ZS</en>
<de>BECKER T6ZS</de>
</name>
<typeDesc>$l10n_TypeDesc_Seeder</typeDesc>
<filename>T6ZS.i3d</filename>
<size width="3.0" length="3" />
<wheels autoRotateBackSpeed="0">
<wheel driveMode="2" repr="0>19" radius="0.34" deltaY="0" mass="0.1" />
<wheel driveMode="2" repr="0>22" radius="0.18" deltaY="0" mass="0.1" />
</wheels>
<cuttingAreas count="1">
<cuttingArea1 startIndex="1" widthIndex="2" heightIndex="3"/>
</cuttingAreas>
<maxSpeedLevel value="1"/>
<needsActivation value="true" />
<fillTypes fillTypes="seeds"/>
<capacity>1206</capacity>
<fillLitersPerSecond>60</fillLitersPerSecond>
<seedFruitTypes seedFruitTypes="maize sugarBeet" />
<useDirectPlanting>false</useDirectPlanting>
<sowingSound file="$data/vehicles/tools/sowingSound.wav" pitchOffset="0.5" volume="1"/>
<airBlowerSound file="$data/vehicles/tools/airBlowerLoop.wav" pitchOffset="1.2" volume="0.5"/>
<attacherJoint index="0>16" jointType="implement" fixedRotation="true" topReferenceNode="0>17" upperRotationOffset="8" lowerRotationOffset="0" lowerDistanceToGround="0.7" upperDistanceToGround="1"/>
<components count="1">
<component1 centerOfMass="-1 0 0" solverIterationCount="50" />
</components>
<schemaOverlay file="$data/vehicles/schemas/implementSchema.png" fileSelected="$data/vehicles/schemas/implementSchemaSelected.png" width="0.5" height="0.5" attacherJointPosition="0 0"/>
<seedwheel_1 index="0|0" />
<seedwheel_2 index="1|0" />
</vehicle>
mit der spezi sowingMachine bin ich mir nicht sicher, dachte aber dass ich die brauche um den status isTurnedOn auszulesen, oder?
Code: Select all
T6Z = {};
function T6Z.prerequisitesPresent(specializations)
return SpecializationUtil.hasSpecialization(SowingMachine, specializations);
end;
function T6Z:load(xmlFile)
self.seedwheel1 = Utils.indexToObject(self.components, getXMLString(xmlFile, "vehicle.seedwheel_1#index"));
self.seedwheel2 = Utils.indexToObject(self.components, getXMLString(xmlFile, "vehicle.seedwheel_2#index"));
end;
function T6Z:delete()
end;
function T6Z:mouseEvent(posX, posY, isDown, isUp, button)
end;
function T6Z:keyEvent(unicode, sym, modifier, isDown)
end;
function T6Z:update(dt)
if self:getIsActive() then
if self.isTurnedOn then
rotate(seedwheel1,2.5,1,1);
rotate(seedwheel2,2.5,1,1);
end;
end;
end;
function T6Z:updateTick(dt)
end;
function T6Z:draw()
end;
print("Script loaded: T6Z.lua");
Michael
Edit 1: