spezi für Maissägerät, Verständnisfrage

Welger_Fan
Posts: 6
Joined: Mon Aug 10, 2009 7:50 pm

spezi für Maissägerät, Verständnisfrage

Post by Welger_Fan »

Hallo Leute,

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.
Nur funktioniert das ganze irgendwie nicht, ich habe den Eindruck, dass er auf das update() in der Lua gar nicht zugreift, kann das sein?
<-- gelöst

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:
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)
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.
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>
Lua:
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");

schonmal vorab vielen Dank :)

Michael


Edit 1:
beim 5. mal lesen des Postes habe ich gesehn dass der Vehicle type in der XML falsch ist. ändere ich den krieg ich den Fehler im Log:
Error: LUA running function 'loadSharedI3DFileFinished'
D:/code/lsim2013_desktop/build/finalbin/dataS/scripts/vehicles/Vehicle.lua(2038) : attempt to index field 'attacherJoint' (a nil value)
und das Spiel stürzt ab. Ich geh mal auf die Suche danach, vielleicht fällt euch aber vorher schon was dazu ein :) Fehler behoben, hatte mir das Savegame zerschossen
Welger_Fan
Posts: 6
Joined: Mon Aug 10, 2009 7:50 pm

Re: spezi für Maissägerät, Verständnisfrage

Post by Welger_Fan »

für die Akte: problem gelöst kann geclosed werden.

ein dummer Tippfehler in der Lua:

self.seedwheel1 = Utils.indexToObject(self.components, getXMLString(xmlFile, "vehicle.seedwheel_1#index"));

rotate(self.seedwheel1,2.5,1,1);

ich hatte nur das self vergessen, und dann is ja klar das er net weiß was ich von im will :(

mea culpa


Viele Grüße

Michael
Post Reply