Automatisches Befüllen von Anhängern/containern

Eure Foren für alle Diskussionen rund ums Thema Modding.
Haubi
Posts: 1227
Joined: Tue Nov 23, 2021 4:36 pm
Location: JVA Stadelheim

Re: Automatisches Befüllen von Anhängern/containern

Post by Haubi »

Ja gut, jetzt versteh ich, um was es geht. Ich hab das halt bei einigen selbstgebauten Produktionen so, dass die quasi auf einen Haufen produzieren. Da ist die Vorgehensweise denkbar einfach. Ich hab da ein 3D Modell von dem Haufen wo eben die passende fillType plane drauf liegt, welcher sich dann halt mit zunehmendem Füllstand der Storage von der produzierenden Anlage aus dem Boden hebt, also sichtbar wird. Die Anlage produziert also in die eingetragene Storage, und der Haufen simuliert, dass dort das jeweilige Produkt liegt. :biggrin2:
User avatar
Achimobil
Posts: 200
Joined: Mon Aug 02, 2021 6:06 pm
Location: Würselen
Contact:

Re: Automatisches Befüllen von Anhängern/containern

Post by Achimobil »

Also beim letzten mal wo ich unters rohr gefahren bin hat er automatisch befüllt bei meinem mod
Support für meine Mods im Discord
User avatar
LS-Lara
Posts: 394
Joined: Sun Aug 04, 2019 4:57 pm

Re: Automatisches Befüllen von Anhängern/containern

Post by LS-Lara »

Achimobil wrote: Sat Feb 10, 2024 11:10 pm Also beim letzten mal wo ich unters rohr gefahren bin hat er automatisch befüllt bei meinem mod
Verstehe ich nicht, was da los ist :confusednew: . Komplett neues Savegame, nur Dein Mod aktiv. Silo hingestellt und Weizen reingeschüttet. Frontladerschaufel oder Anhänger in den Trigger unter das Abladerohr gefahren. Es entläd sich nicht automatisch - kommt ganz normal die GUI-Info zum Starten der Beladung mit "R" oder Gamepad.

Wenn eine automatische Entladung stattfinden würde, dann verstehe ich auch nicht diesen Hinweis in der Modbeschreibung:
Durch eine Skript Erweiterung wird der Inhalt trotzdem ohne zusätzliches Popupmenü ausgegeben, wenn man die Beladentaste des Fahrzeugs nutzt.
Die Beladetaste könnte ja gar nicht mehr gedrückt werden, wenn es schon automatisch rauskommt ???

@Regenbogenprinzessin: Wie sieht das denn bei Dir aus ? Entläd der Mod von Achimobil bei Dir automatisch ?
Der Sinn des Lebens ist:
29.61%

Mein Traktor:
Base:
HP Pavilion 690-03xx
Core i7-8700 @ 3.2GHz
NVIDIA GeForce GTX 1060 6GB
2x Benq GL2450H
Windows 10 Home 64bit
Custom:
2 x 16GB Corsair Vengeance LPX DDR4 C16 XMP 2.0
Samsung NVMe M.2 970 EVO Plus 500GB
Samsung SSD 860 EVO 1TB
Logitech G203 Prodigy
Logitech Wireless F710
Regenbogenprinzessin
Posts: 48
Joined: Sat Mar 18, 2023 4:52 pm

Re: Automatisches Befüllen von Anhängern/containern

Post by Regenbogenprinzessin »

@Regenbogenprinzessin: Wie sieht das denn bei Dir aus ? Entläd der Mod von Achimobil bei Dir automatisch ?
Ich habe das Silo von Achimobil grad mal runtergeladen und ausprobiert. Also bei mir füllt sich die Radladerschaufel auch nicht von alleine, wenn ich drutner fahre. Er gibt mir nur die Option R für Befüllen
User avatar
Achimobil
Posts: 200
Joined: Mon Aug 02, 2021 6:06 pm
Location: Würselen
Contact:

Re: Automatisches Befüllen von Anhängern/containern

Post by Achimobil »

Schande über mein Haupt, ihr habt recht. Ich habe mit dem Skript nur korrigiert dass es bei mehrere erlaubten Filltypes wie von giants vorgesehen ohne Auswahldialog funktioniert. R muss man trotzdem drücken.
Support für meine Mods im Discord
User avatar
LS-Lara
Posts: 394
Joined: Sun Aug 04, 2019 4:57 pm

Re: Automatisches Befüllen von Anhängern/containern

Post by LS-Lara »

Na dann sind wir ja alle auf gleichem Stand und mein Verständnis vom Quellcode passt auch weiterhin !

So, womit man hier durchaus arbeiten kann ist die Variable "automaticFilling" die letztlich von ganz oben aus "Platform.gameplay" kommt. Per default "false" und nur bei "Platform.mobile" auf "true".

Wenn man daran rumspielt, kann man das Zeugs ohne "R" rauslaufen lassen, sobald irgendwas unter den Trigger kommt. Jetzt muss ich das nur noch ein bisschen "schön" programmieren, dann hätten wir's.
Der Sinn des Lebens ist:
29.61%

Mein Traktor:
Base:
HP Pavilion 690-03xx
Core i7-8700 @ 3.2GHz
NVIDIA GeForce GTX 1060 6GB
2x Benq GL2450H
Windows 10 Home 64bit
Custom:
2 x 16GB Corsair Vengeance LPX DDR4 C16 XMP 2.0
Samsung NVMe M.2 970 EVO Plus 500GB
Samsung SSD 860 EVO 1TB
Logitech G203 Prodigy
Logitech Wireless F710
User avatar
LS-Lara
Posts: 394
Joined: Sun Aug 04, 2019 4:57 pm

Re: Automatisches Befüllen von Anhängern/containern

Post by LS-Lara »

So ... das wäre der Prototyp ohne Gewähr. Kann man bestimmt noch einiges dran optimieren, wenn man Lust und Zeit hat - aber funktioniert bei mir erst mal problemlos.

Code: Select all

--[[

https://forum.giants-software.com/viewtopic.php?t=204793

Source of the original code: LoadTrigger.lua by Giants Software

]]

print("------------------------------------------------------------> START LOADING SCRIPT instantLoad.lua")
InstantLoad = {}

-- adding custom nodes for XML
function InstantLoad.registerXMLPaths(schema, basePath)
    schema:register(XMLValueType.BOOL, basePath .. "#instaLoad", "Start loading instantly", false)
    schema:register(XMLValueType.BOOL, basePath .. "#instaLoadPause", "Allow to pause loading instantly", true)
end
LoadTrigger.registerXMLPaths = Utils.appendedFunction(LoadTrigger.registerXMLPaths, InstantLoad.registerXMLPaths)
print("------------------------------------------------------------> append done: InstantLoad.registerXMLPaths")

-- customized setting for automaticFilling
function InstantLoad:load(superFunc, components, xmlFile, xmlNode, i3dMappings, rootNode)
	self.rootNode = rootNode or xmlFile:getValue(xmlNode .. "#node", nil, components, i3dMappings)

	if self.rootNode == nil then
		Logging.xmlError(xmlFile, "Missing node '%s#node'", xmlNode)

		return false
	end

	self.objectsInTriggers = {}

	XMLUtil.checkDeprecatedXMLElements(xmlFile, xmlNode .. "#scrollerIndex", xmlNode .. "#scrollerNode")
	XMLUtil.checkDeprecatedUserAttribute(self.rootNode, "triggerNode", xmlFile, xmlNode .. "#triggerNode")
	XMLUtil.checkDeprecatedUserAttribute(self.rootNode, "triggerIndex", xmlFile, xmlNode .. "#triggerNode")
	XMLUtil.checkDeprecatedUserAttribute(self.rootNode, "fillLitersPerSecond", xmlFile, xmlNode .. "#fillLitersPerSecond")
	XMLUtil.checkDeprecatedUserAttribute(self.rootNode, "dischargeNode", xmlFile, xmlNode .. "#dischargeNode")
	XMLUtil.checkDeprecatedUserAttribute(self.rootNode, "fillSoundIdentifier", xmlFile, xmlNode .. "#fillSoundIdentifier")
	XMLUtil.checkDeprecatedUserAttribute(self.rootNode, "fillSoundNode", xmlFile, xmlNode .. "#fillSoundNode")
	XMLUtil.checkDeprecatedUserAttribute(self.rootNode, "scrollerIndex", xmlFile, xmlNode .. "#scrollerNode")
	XMLUtil.checkDeprecatedUserAttribute(self.rootNode, "shaderParameterName", xmlFile, xmlNode .. "#shaderParameterName")
	XMLUtil.checkDeprecatedUserAttribute(self.rootNode, "scrollerScrollSpeed", xmlFile, xmlNode .. "#scrollerScrollSpeed")
	XMLUtil.checkDeprecatedUserAttribute(self.rootNode, "fillTypeCategories", xmlFile, xmlNode .. "#fillTypeCategories")
	XMLUtil.checkDeprecatedUserAttribute(self.rootNode, "fillTypes", xmlFile, xmlNode .. "#fillTypes")
	XMLUtil.checkDeprecatedUserAttribute(self.rootNode, "autoStart", xmlFile, xmlNode .. "#autoStart")
	XMLUtil.checkDeprecatedUserAttribute(self.rootNode, "infiniteCapacity", xmlFile, xmlNode .. "#infiniteCapacity")
    -- >> check customized nodes
    XMLUtil.checkDeprecatedUserAttribute(self.rootNode, "instaLoad", xmlFile, xmlNode .. "#instaLoad")
    XMLUtil.checkDeprecatedUserAttribute(self.rootNode, "instaLoadPause", xmlFile, xmlNode .. "#instaLoadPause")
    -- <<

	local triggerNode = xmlFile:getValue(xmlNode .. "#triggerNode", nil, components, i3dMappings)

	if triggerNode == nil then
		Logging.xmlError(xmlFile, "Missing triggerNode defined in '%s'", xmlNode)

		return false
	end

	self.triggerNode = triggerNode

	addTrigger(triggerNode, "loadTriggerCallback", self)
	g_currentMission:addNodeObject(triggerNode, self)

	self.fillLitersPerMS = xmlFile:getValue(xmlNode .. "#fillLitersPerSecond", 1000) / 1000
	self.aiNode = xmlFile:getValue(xmlNode .. "#aiNode", nil, components, i3dMappings)
	self.supportsAILoading = self.aiNode ~= nil
	local dischargeNode = xmlFile:getValue(xmlNode .. "#dischargeNode", nil, components, i3dMappings)

	if dischargeNode ~= nil then
		XMLUtil.checkDeprecatedUserAttribute(dischargeNode, "width", xmlFile, xmlNode .. "#dischargeWidth")
		XMLUtil.checkDeprecatedUserAttribute(dischargeNode, "length", xmlFile, xmlNode .. "#dischargeLength")

		self.dischargeInfo = {
			name = "fillVolumeDischargeInfo",
			nodes = {}
		}
		local width = xmlFile:getValue(xmlNode .. "#dischargeWidth", 0.5)
		local length = xmlFile:getValue(xmlNode .. "#dischargeLength", 0.5)

		table.insert(self.dischargeInfo.nodes, {
			priority = 1,
			node = dischargeNode,
			width = width,
			length = length
		})
	end

	self.soundNode = createTransformGroup("loadTriggerSoundNode")

	link(dischargeNode or self.triggerNode, self.soundNode)

	if self.isClient then
		self.effects = g_effectManager:loadEffect(xmlFile, xmlNode, components, self, i3dMappings)
		self.samples = {}
		local fillSoundIdentifier = xmlFile:getValue(xmlNode .. "#fillSoundIdentifier")
		local fillSoundNode = xmlFile:getValue(xmlNode .. "#fillSoundNode", nil, components, i3dMappings)

		if fillSoundNode == nil then
			fillSoundNode = self.rootNode
		end

		local xmlSoundFile = loadXMLFile("mapXML", g_currentMission.missionInfo.mapSoundXmlFilename)

		if xmlSoundFile ~= nil and xmlSoundFile ~= 0 then
			local directory = g_currentMission.baseDirectory
			local modName, baseDirectory = Utils.getModNameAndBaseDirectory(g_currentMission.missionInfo.mapSoundXmlFilename)

			if modName ~= nil then
				directory = baseDirectory .. modName
			end

			if fillSoundIdentifier ~= nil then
				self.samples.load = g_soundManager:loadSampleFromXML(xmlSoundFile, "sound.object", fillSoundIdentifier, directory, getRootNode(), 0, AudioGroup.ENVIRONMENT, nil, nil)

				if self.samples.load ~= nil then
					link(fillSoundNode, self.samples.load.soundNode)
					setTranslation(self.samples.load.soundNode, 0, 0, 0)
				end
			end

			delete(xmlSoundFile)
		end

		self.scroller = xmlFile:getValue(xmlNode .. "#scrollerNode", nil, components, i3dMappings)

		if self.scroller ~= nil then
			self.scrollerShaderParameterName = xmlFile:getValue(xmlNode .. "#shaderParameterName", "uvScrollSpeed")
			self.scrollerSpeedX, self.scrollerSpeedY = xmlFile:getValue(xmlNode .. "#scrollerScrollSpeed", "0 -0.75")

			setShaderParameter(self.scroller, self.scrollerShaderParameterName, 0, 0, 0, 0, false)
		end
	end

	self.fillTypes = {}
	local fillTypeCategories = XMLUtil.getValueFromXMLFileOrUserAttribute(xmlFile, xmlNode, "fillTypeCategories", self.rootNode)
	local fillTypeNames = XMLUtil.getValueFromXMLFileOrUserAttribute(xmlFile, xmlNode, "fillTypes", self.rootNode)
	local fillTypes = nil

	if fillTypeCategories ~= nil and fillTypeNames == nil then
		fillTypes = g_fillTypeManager:getFillTypesByCategoryNames(fillTypeCategories, "Warning: UnloadTrigger has invalid fillTypeCategory '%s'.")
	elseif fillTypeCategories == nil and fillTypeNames ~= nil then
		fillTypes = g_fillTypeManager:getFillTypesByNames(fillTypeNames, "Warning: UnloadTrigger has invalid fillType '%s'.")
	end

	if fillTypes ~= nil then
		for _, fillType in pairs(fillTypes) do
			self.fillTypes[fillType] = true
		end
	else
		self.fillTypes = nil
	end

	self.autoStart = xmlFile:getValue(xmlNode .. "#autoStart", false)
	self.hasInfiniteCapacity = xmlFile:getValue(xmlNode .. "#infiniteCapacity", false)
	self.startFillText = g_i18n:convertText(xmlFile:getValue(xmlNode .. "#startFillText", "$l10n_action_siloStartFilling"))
	self.stopFillText = g_i18n:convertText(xmlFile:getValue(xmlNode .. "#stopFillText", "$l10n_action_siloStopFilling"))
	self.activatable = LoadTriggerActivatable.new(self)
    -- >> load customized nodes
    self.instaLoad = xmlFile:getValue(xmlNode .. "#instaLoad", false)
    self.instaLoadPause = xmlFile:getValue(xmlNode .. "#instaLoadPause", true)
    -- <<

	self.activatable:setText(self.startFillText)

	self.isLoading = false
	self.selectedFillType = FillType.UNKNOWN
    
    -- >> rework parameters
    if self.instaLoad then
        print("----------> The instaLoad is strong with this one !")
        print("----------> Pause allowed: " .. tostring(self.instaLoadPause) )
        if not self.autoStart then
            print("----------> autoStart: " .. tostring(self.autoStart) )
            print("----------> instaLoad will be disabled !")
        else
            self.automaticFilling = true
        end
    else
        self.automaticFilling = Platform.gameplay.automaticFilling
    end
    -- <<
	
	self.requiresActiveVehicle = not self.automaticFilling
	self.automaticFillingTimer = 0
    

	return true
end
LoadTrigger.load = Utils.overwrittenFunction(LoadTrigger.load, InstantLoad.load)
print("------------------------------------------------------------> overwrite done: InstantLoad:load")


-- implement optional pause
function InstantLoad:loadTriggerCallback(superFunc, triggerId, otherId, onEnter, onLeave, onStay, otherShapeId)
	local fillableObject = g_currentMission:getNodeObject(otherId)


	if fillableObject ~= nil and fillableObject ~= self.source and fillableObject.getRootVehicle ~= nil and fillableObject.getFillUnitIndexFromNode ~= nil then
		local fillTypes = self.source:getSupportedFillTypes()

		if fillTypes ~= nil then
			local foundFillUnitIndex = fillableObject:getFillUnitIndexFromNode(otherId)

			if foundFillUnitIndex ~= nil then
				local found = false

				for fillTypeIndex, state in pairs(fillTypes) do
					if state and (self.fillTypes == nil or self.fillTypes[fillTypeIndex]) and fillableObject:getFillUnitSupportsFillType(foundFillUnitIndex, fillTypeIndex) and fillableObject:getFillUnitAllowsFillType(foundFillUnitIndex, fillTypeIndex) then
						found = true

						break
					end
				end

				if not found then
					foundFillUnitIndex = nil
				end
			end

			if foundFillUnitIndex == nil then
				for fillTypeIndex, state in pairs(fillTypes) do
					if state and (self.fillTypes == nil or self.fillTypes[fillTypeIndex]) then
						local fillUnits = fillableObject:getFillUnits()

						for fillUnitIndex, fillUnit in ipairs(fillUnits) do
							if fillUnit.exactFillRootNode == nil and fillableObject:getFillUnitSupportsFillType(fillUnitIndex, fillTypeIndex) and fillableObject:getFillUnitAllowsFillType(fillUnitIndex, fillTypeIndex) then
								foundFillUnitIndex = fillUnitIndex

								break
							end
						end
					end
				end
			end

			if foundFillUnitIndex ~= nil then
				if onEnter then
					self.fillableObjects[otherId] = {
						object = fillableObject,
						fillUnitIndex = foundFillUnitIndex
					}

					fillableObject:addDeleteListener(self)
				elseif onLeave then
					self.fillableObjects[otherId] = nil

					fillableObject:removeDeleteListener(self)

					if self.isLoading and self.currentFillableObject == fillableObject then
						self:setIsLoading(false)
					end

					if fillableObject == self.validFillableObject then
						self.validFillableObject = nil
						self.validFillableFillUnitIndex = nil
					end
				end

				if self.automaticFilling then
					if not self.isLoading and next(self.fillableObjects) ~= nil and self:getIsFillableObjectAvailable() then
						self:toggleLoading()
                        -- >> allow pausing
                        if self.instaLoadPause then
                            g_currentMission.activatableObjectsSystem:addActivatable(self.activatable)
                        end
                        -- <<
					end
				elseif next(self.fillableObjects) ~= nil then
					g_currentMission.activatableObjectsSystem:addActivatable(self.activatable)
				else
					g_currentMission.activatableObjectsSystem:removeActivatable(self.activatable)
				end
			end
		end
	end
end
LoadTrigger.loadTriggerCallback = Utils.overwrittenFunction(LoadTrigger.loadTriggerCallback, InstantLoad.loadTriggerCallback)
print("------------------------------------------------------------> overwrite done: InstantLoad:loadTriggerCallback")
Funktion:
Im loadTrigger einfach neuen Parameter "instaLoad" ergänzen und auf "true" setzen.
Der Parameter "autoStart" muss ebenfalls auf "true" stehen - hab ich einfach mal so festgelegt.

Optional noch Parameter "instaLoadPause" auf "true" setzen. Damit kann man mittels "R" der Ladevorgang schnell wieder stoppen, wenn man mal versehentlich in den Trigger gefahren ist. Allerdings läuft im Hintergrund ein Timer und das Laden startet irgendwann wieder neu - daher "Pause". Man hat dann aber ein paar Sekunden Zeit, um wieder aus dem Trigger rauszufahren.


Ich hab jetzt Abrollcontainer unter die Auslässe von der Schnitzelanlage gestellt und Steine und Rübenschnitzel tröpfeln langsam rein.

Viel Spaß beim Testen !
Der Sinn des Lebens ist:
29.61%

Mein Traktor:
Base:
HP Pavilion 690-03xx
Core i7-8700 @ 3.2GHz
NVIDIA GeForce GTX 1060 6GB
2x Benq GL2450H
Windows 10 Home 64bit
Custom:
2 x 16GB Corsair Vengeance LPX DDR4 C16 XMP 2.0
Samsung NVMe M.2 970 EVO Plus 500GB
Samsung SSD 860 EVO 1TB
Logitech G203 Prodigy
Logitech Wireless F710
Regenbogenprinzessin
Posts: 48
Joined: Sat Mar 18, 2023 4:52 pm

Re: Automatisches Befüllen von Anhängern/containern

Post by Regenbogenprinzessin »

Wow! Vielen Dank, das werde ich heute gleich Mal testen sobald ich Zeit habe. Das wäre ja genial, vielen Dank für die Mühe 😲

*edit*
ok, nun muss ich doch nochmal nachfragen... ahm.. wie genau baue ich das skript ein?
User avatar
Danko40
Posts: 3127
Joined: Sat Nov 11, 2017 11:10 am
Location: Confoederatio Helvetica

Re: Automatisches Befüllen von Anhängern/containern

Post by Danko40 »

Genügt es nicht, wenn du das Script unter einem gewählten Namen im Ordner scripts abspeicherst und es noch im modDesc unter extraSourceFiles verlinkst?

Code: Select all

    <extraSourceFiles>
        <sourceFile filename="scripts/showOnlyInSilo.lua"/>
        <sourceFile filename="scripts/ScriptvonLS-Lara.lua"/>
    </extraSourceFiles>
„Für alles, was du tust oder auch nicht tust, zahlst du mit Lebenszeit.“ - Georg-Wilhelm Exler
"Menschen wählen ihren Tod auf die Art wie sie leben." - Jean-Claude Van Damme
"Fachkräftemangel entsteht dort, wo zu wenig Lohn bezahlt wird." - Danko40

———————————————————————
LS15 / 17 - Konsole
LS19 - Platinum Edition (PC)
LS22 - PC
User avatar
LS-Lara
Posts: 394
Joined: Sun Aug 04, 2019 4:57 pm

Re: Automatisches Befüllen von Anhängern/containern

Post by LS-Lara »

Genau ! Wie Danko40 es beschrieben hat, funktioniert es. Braucht nicht zwingend in einen "scripts"-Ordner, nur der Pfad zur Datei muss halt stimmen.

Da das Script global wirkt, reicht es, das in einen einzigen beliebigen geladenen Mod zu integrieren. Sollte man auch sinnvollerweise nur einmal einbinden lassen.

Wenn Du das nur für den Rübenhäcksler nutzen möchtest, würde ich das dort einbauen. Ansonsten mach Dir doch einfach einen eigenen Mini-Mod nur mit dem Script. Benötigt dann nur 3 Dateien: die LUA, modDesc.xml und ein Icon.
Der Sinn des Lebens ist:
29.61%

Mein Traktor:
Base:
HP Pavilion 690-03xx
Core i7-8700 @ 3.2GHz
NVIDIA GeForce GTX 1060 6GB
2x Benq GL2450H
Windows 10 Home 64bit
Custom:
2 x 16GB Corsair Vengeance LPX DDR4 C16 XMP 2.0
Samsung NVMe M.2 970 EVO Plus 500GB
Samsung SSD 860 EVO 1TB
Logitech G203 Prodigy
Logitech Wireless F710
Regenbogenprinzessin
Posts: 48
Joined: Sat Mar 18, 2023 4:52 pm

Re: Automatisches Befüllen von Anhängern/containern

Post by Regenbogenprinzessin »

hm ich hab das nun folgendermaßen versucht, einzubauen.

ne .txt datei erstellt und das skript von Lara eingefügt und die dateiendung in .lua umgeändert und "larascript.lua" genannt. Diese Datei habe ich dann in der zip Datei des zuckerrübenhäckslers im unterordner "script" gespeichert.
in der ModDesc.xml des zuckerrübenhäckslers habe ich folgenden eintrag hinzugefügt

Code: Select all

    <extraSourceFiles>
        <sourceFile filename="script/larascript.lua"/>
            </extraSourceFiles>
Und in der xml konfig des Häckslers unter Loadtrigger die beiden attribute autoStart="true" sowie "instaLoad="true" hinzugefügt

Code: Select all

<loadingStation node="loadingStation" supportsExtension="false">
      <loadTrigger triggerNode="loadingStation01" fillTypes="SUGARBEET_CUT" fillLitersPerSecond="1000" dischargeNode="dischargeNode01" autoStart="true" instaLoad="true">
        <effectNode effectNode="pipeEffect01" effectClass="PipeEffect" materialType="pipe" fadeTime="0.5" maxBending="0" shapeScaleSpread="0.8 0.8 1 0" controlPoint="3 0 0 0" />
        <effectNode effectNode="pipeEffectSmoke01" materialType="unloadingSmoke" fadeTime="0.5" />
      </loadTrigger>
      <loadTrigger triggerNode="loadingStation02" fillTypes="STONE" fillLitersPerSecond="1000" dischargeNode="dischargeNode02" autoStart="true" instaLoad="true">
        <effectNode effectNode="pipeEffect02" effectClass="PipeEffect" materialType="pipe" fadeTime="0.5" maxBending="0" shapeScaleSpread="0.8 0.8 1 0" controlPoint="3 0 0 0" />
        <effectNode effectNode="pipeEffectSmoke02" materialType="unloadingSmoke" fadeTime="0.5" />
      </loadTrigger>
Ich muss wohl irgendwas falsch gemacht haben da nichts passiert, wenn ich nun mit einem Anhänger oder container unter die Förderbänder fahre.

*edit* ahh, ich war doof. Lara hat das script ja "Instaload" scriptintern genannt. Habe alles relevante dahingehend angepasst, nun funktioniert es, ich bin so happy! :D
Habe jetzt noch von den Zuckerrübenschnitzel die füllrate pro Sekunde angepasst, sodass ein kontinuierlicher Materialfluss vom Förderband in den Hänger rieselt. Bei einem Zyklus von 295000 pro Stunde ist es eine füllrate von ~44 litern pro Sekunde.

Man man, kann mich gar nicht genug bedanken. Dass da Lara einfach so mal ein Skript her zaubert :O
Last edited by Regenbogenprinzessin on Fri Feb 16, 2024 2:53 pm, edited 1 time in total.
User avatar
LS-Lara
Posts: 394
Joined: Sun Aug 04, 2019 4:57 pm

Re: Automatisches Befüllen von Anhängern/containern

Post by LS-Lara »

Theoretisch sieht das erstmal richtig aus. Was sagt denn unser Freund LOG so grundsätzlich ? Müssten einige Zeilen fürs Laden des Scriptes erscheinen.

Lass den Mod übrigens ruhig erst mal ungezipped im Mod-Ordner, solange Du daran noch werkelst (zip-Version natürlich dann rausnehmen).
Der Sinn des Lebens ist:
29.61%

Mein Traktor:
Base:
HP Pavilion 690-03xx
Core i7-8700 @ 3.2GHz
NVIDIA GeForce GTX 1060 6GB
2x Benq GL2450H
Windows 10 Home 64bit
Custom:
2 x 16GB Corsair Vengeance LPX DDR4 C16 XMP 2.0
Samsung NVMe M.2 970 EVO Plus 500GB
Samsung SSD 860 EVO 1TB
Logitech G203 Prodigy
Logitech Wireless F710
User avatar
LS-Lara
Posts: 394
Joined: Sun Aug 04, 2019 4:57 pm

Re: Automatisches Befüllen von Anhängern/containern

Post by LS-Lara »

Regenbogenprinzessin wrote: Fri Feb 16, 2024 2:25 pm *edit* ahh, ich war doof. Lara hat das script ja "Instaload" scriptintern genannt. Habe alles relevante dahingehend angepasst, nun funktioniert es, ich bin so happy! :D
Das versteh ich nun wiederum nicht :confusednew: . Solange der Link in der ModDesc passt, ist der Dateiname der LUA egal. Oder was hast Du nun verändert ?
Der Sinn des Lebens ist:
29.61%

Mein Traktor:
Base:
HP Pavilion 690-03xx
Core i7-8700 @ 3.2GHz
NVIDIA GeForce GTX 1060 6GB
2x Benq GL2450H
Windows 10 Home 64bit
Custom:
2 x 16GB Corsair Vengeance LPX DDR4 C16 XMP 2.0
Samsung NVMe M.2 970 EVO Plus 500GB
Samsung SSD 860 EVO 1TB
Logitech G203 Prodigy
Logitech Wireless F710
Regenbogenprinzessin
Posts: 48
Joined: Sat Mar 18, 2023 4:52 pm

Re: Automatisches Befüllen von Anhängern/containern

Post by Regenbogenprinzessin »

Ich habs zum laufen gebracht, siehe mein post edit :)
bin gerade noch am fein tunen, damit der materialfluss am zuckerrübenschnitzel-förderband kontinuierlich ist.
Das versteh ich nun wiederum nicht :confusednew: . Solange der Link in der ModDesc passt, ist der Dateiname der LUA egal. Oder was hast Du nun verändert ?
Wohl nicht, denn ich hab die von mir erstellte larascript.lua in deine "instaload.lua" umbenannt und das dann in der modesc.xml umgeändert. Danach ging es
User avatar
LS-Lara
Posts: 394
Joined: Sun Aug 04, 2019 4:57 pm

Re: Automatisches Befüllen von Anhängern/containern

Post by LS-Lara »

Regenbogenprinzessin wrote: Fri Feb 16, 2024 2:55 pm Wohl nicht, denn ich hab die von mir erstellte larascript.lua in deine "instaload.lua" umbenannt und das dann in der modesc.xml umgeändert. Danach ging es
Das hat keinen Einfluss. Bei mir hieß die LUA beispielsweise "instantLoad.lua". Ich vermute eher, dass vorher was beim Speichern oder Zippen nicht 100%ig sauber gelaufen ist.

Egal - Hauptsache jetzt "läuft's" :mrgreen:
Der Sinn des Lebens ist:
29.61%

Mein Traktor:
Base:
HP Pavilion 690-03xx
Core i7-8700 @ 3.2GHz
NVIDIA GeForce GTX 1060 6GB
2x Benq GL2450H
Windows 10 Home 64bit
Custom:
2 x 16GB Corsair Vengeance LPX DDR4 C16 XMP 2.0
Samsung NVMe M.2 970 EVO Plus 500GB
Samsung SSD 860 EVO 1TB
Logitech G203 Prodigy
Logitech Wireless F710
Post Reply