
GroundResponse.lua
Hi Leute
dies ist für alle, die auch lieber etwas tiefer einsinkende Räder, schnelleres Festfahren bergauf und allgemein etwas realistischeren Grip auf Feldern hätten.
Auf trockenem und ganz besonders auf nassem Feldboden macht sich dies bemerkbar - je nach Bodenart.
Habe dazu die "GroundResponse.lua" aus dem For "Real Modul 3:Ground Response" von Giants erheblich bearbeitet.
Da Giants es nicht gestattet, das "4Real Modul 3:Ground Response" selbst erneut oder in veränderter Form hochzuladen, ist es nötig das script, die GroundResponse.lua als Mod hochzuladen und in das Giants "4Real Modul 3" einzubauen!
Die "GroundResponse.lua wird einfach in das "For Real Modul 3:Ground Response" eingefügt, und damit die standard "GroundResponse.lua" ersetzt (Backup ist nicht nötig, da ihr jederzeit im Hauptmenü im Spiel nur in "Mods aktualisieren" klicken müsst, und dort das "For Real Modul 3:Ground Response" aktualisiert-dadurch wirde meine ".lua" einfach wieder auf den Standard überschrieben).
Veränderungen:
- tieferes Einsinken der Räder, vor allem bei Feuchtigkeit
- viel geringere Traktion durch das tiefere Einsinken der Räder
- mehr Einfluss von Reifendurchmesser und -breite auf das Einsinkverhalten
- Ladung verursacht jetzt tieferes Einsinken der Räder
- weniger unkontrollierte Kippneigungen auf der Straße
- Räder sinken mehr nach Physikalischen Einflüssen ein, z.B. Kurvenfliehkraft, schräges fahren am Hang, Bodenunebenheiten
- fahren mit Geschwindigkeiten von über 25 km/h auf weichem oder unebenem Boden wird mehr bestraft durch physikalische Kräfte
Da bis jetzt nur wenige an einer Verbesserung der Fahrphysik im LS 17 gearbeitet hat, war dies der Anlass für mich, es selbst zu versuchen, das Bodenverhalten etwas mehr nach meinen Wünschen umzugestalten, denn in dem Real Modul 3:Ground Response sind dafür schon alle Möglichkeiten gegeben-jedoch nicht umgesetzt.
Ich empfehle dringend die beiden Mods von "Modelleicher" ebenfalls zu installieren, damit der Effekt gut zur Geltung kommt:
- "stuffandthings" https://forum.giants-software.com/viewtopic.php?f=886&t=97394&start=45
- https://www.modhoster.de/mods/filltypemassadjustment-fur-ls17-realistische-ladegewichte
Wichtig: damit bei gezogenen Geräten wie etwa Grubbern oder Pflügen kein "Aufbäumen" entsteht passt bitte in der Stuffandthings den Wert "realismUpdate_powerConsumer.lua" an: Standart ist 1.7 und empfehlen kann ich 1.2, dazu eine angepasste Arbeitsgeschindigkeit von 5-8 km/h beim Grubbern oder Pflügen.
Wichtig2: damit der Druck des Pfluges auf die Hinterachse des Traktors passt, stellt bitte in der stuffandthings den "realismUpdate_plough.lua" auf 1.0 bis 1.2 ein, je nach belieben (seit der V1.5 sind 1.4 als Wert zu viel).
Ich bin kein erfahrener Modder, habe aber in unzähligen Stunden und Versuchen die Werte in der "GroundResponse.lua" immer wieder verändert um mit dem Taschenrechner schlussendliche etwas mehr Spielspaß herauszuholen.
Wem diese Idee nicht gefällt, der brauch es nicht herunterladen, oder daran herumnörgeln-der solls besser machen.
Habe dieses script freiwillig und ohne irgendwelche finanziellen Beweggründe veröffentlicht, damit alle etwas mehr Spass an der Sache haben.
Des weiteren beheben die von mir veränderten Werte nicht das "Wegrutschen" am Hang, das mit dem Real Modul 3 zusammenhängt. Hier gilt weiterhin nur der Behelf den Traktor abzuschalten und abzusteigen, damit seine Position statisch wird.
Jeder kann diese Werte frei verändern. Probiert es aus, stellt es euch nach euren Wünschen ein.
Viele Grüße Andy
Kommentare275
Du musst eingeloggt sein um zu kommentieren.
Ich kann mir die mod nicht downloaden dann kommt dieser Text: -- -- GroundResponse -- -- -- @author GIANTS Software -- @date 15/10/2016 -- @tester rachederasen 28/02/2017 -- Copyright (C) GIANTS Software GmbH, Confidential, All Rights Reserved. GroundResponse = {}; function GroundResponse.prerequisitesPresent(specializations) return true; end function GroundResponse:load(savegame) self.loadParticleSystemsForWheel = GroundResponse.loadParticleSystemsForWheel; self.updateWheelDirtPS = GroundResponse.updateWheelDirtPS; self.updateWheelSink = GroundResponse.updateWheelSink; self.getWheelCurrentSink = GroundResponse.getWheelCurrentSink; self.updateWheelTireFriction = Utils.overwrittenFunction(self.updateWheelTireFriction, GroundResponse.updateWheelTireFriction); self.applyRandomForceToWheels = GroundResponse.applyRandomForceToWheels; if g_currentMission.wheelDirt ~= nil and g_currentMission.wheelDirt.referenceShape ~= nil and g_currentMission.wheelDirt.referencePS["soilDry"] ~= nil and g_currentMission.wheelDirt.referencePS["soilWet"] ~= nil then if self.wheels ~= nil and table.getn(self.wheels) > 0 then local numWheels = table.getn(self.wheels); for iWheel=1,numWheels do local wheel = self.wheels[iWheel]; if wheel.hasParticles then local refNode = wheel.node; self:loadParticleSystemsForWheel(refNode, wheel) if wheel.additionalWheels ~= nil then for ,additionalWheel in pairs(wheel.additionalWheels) do self:loadParticleSystemsForWheel(refNode, additionalWheel); end end end end for iWheel=1,numWheels do local wheel1 = self.wheels[iWheel]; if wheel1.oppositeWheelIndex == nil then for jWheel=1,numWheels do if iWheel ~= jWheel then local wheel2 = self.wheels[jWheel]; if math.abs(wheel1.positionX + wheel2.positionX) < 0.1 and math.abs(wheel1.positionZ - wheel2.positionZ) < 0.1 and math.abs(wheel1.positionY - wheel2.positionY) < 0.1 then wheel1.oppositeWheelIndex = jWheel; wheel2.oppositeWheelIndex = iWheel; break; end end end end end end end self.dirtParticleSystemDirtyFlag = self:getNextDirtyFlag(); end function GroundResponse:postLoad(savegame) for ,wheel in pairs(self.wheels) do wheel.sink = 0; wheel.sinkTarget = 0; wheel.radiusOriginal = wheel.radius; wheel.sinkFrictionScaleFactor = 1; wheel.sinkLongStiffnessFactor = 1; wheel.sinkLatStiffnessFactor = 1; end end function GroundResponse:loadParticleSystemsForWheel(refNode, wheel) wheel.dirtPS = {}; local psEmitterShape = clone(g_currentMission.wheelDirt.referenceShape, false, false, false); link(refNode, psEmitterShape); local x,y,z; if wheel.wheelTire == nil then x,y,z = localToLocal(wheel.driveNode, refNode, 0, 0, 0); else x,y,z = localToLocal(wheel.wheelTire, refNode, 0, 0, 0); end setTranslation(psEmitterShape, x+wheel.xOffset,y,z); setRotation(psEmitterShape, 0, 0, 0); setScale(psEmitterShape, 2*wheel.width, 2*wheel.radius, 2*wheel.radius); for ,name in pairs( {"soilDry", "soilWet"} ) do if gcurrentMission.wheelDirt.referencePS[name] ~= nil then wheel.dirtPS[name] = {}; local psClone = clone(g_currentMission.wheelDirt.referencePS[name].shape, true, false, true); ParticleUtil.loadParticleSystemFromNode(psClone, wheel.dirtPS[name], false, g_currentMission.wheelDirt.referencePS[name].worldSpace, g_currentMission.wheelDirt.referencePS[name].forceFullLifespan); ParticleUtil.setEmitterShape(wheel.dirtPS[name], psEmitterShape); wheel.dirtPS[name].isActive = false; wheel.dirtPS[name].isActiveSend = false; wheel.dirtPS[name].particleSpeed = ParticleUtil.getParticleSystemSpeed(wheel.dirtPS[name]); wheel.dirtPS[name].particleRandomSpeed = ParticleUtil.getParticleSystemSpeedRandom(wheel.dirtPS[name]); --wheel.dirtPS[name].particleNormalSpeed = ParticleUtil.getParticleSystemNormalSpeed(wheel.dirtPS[name]); --wheel.dirtPS[name].particleTangentSpeed = ParticleUtil.getParticleSystemTangentSpeed(wheel.dirtPS[name]); end end end function GroundResponse:delete() for ,wheel in pairs(self.wheels) do ParticleUtil.deleteParticleSystems(wheel.dirtPS); if wheel.additionalWheels ~= nil then for ,additionalWheel in pairs(wheel.additionalWheels) do ParticleUtil.deleteParticleSystems(additionalWheel.dirtPS); end end end end function GroundResponse:mouseEvent(posX, posY, isDown, isUp, button) end function GroundResponse:keyEvent(unicode, sym, modifier, isDown) end function GroundResponse:readUpdateStream(streamId, timestamp, connection) if connection:getIsServer() then local dirty = streamReadBool(streamId); if dirty then for ,wheel in pairs(self.wheels) do wheel.dirtParticlesActive = streamReadBool(streamId); end end end end function GroundResponse:writeUpdateStream(streamId, connection, dirtyMask) if not connection:getIsServer() then if streamWriteBool(streamId, bitAND(dirtyMask, self.dirtParticleSystemDirtyFlag) ~= 0) then for ,wheel in pairs(self.wheels) do streamWriteBool(streamId, wheel.dirtParticlesActive); end end end end function GroundResponse:update(dt) if self.isServer then if self:getIsActive() then self:updateWheelSink(dt); self:applyRandomForceToWheels(dt); end end end function GroundResponse:updateTick(dt) if self.isClient then for ,wheel in pairs(self.wheels) do if wheel.dirtPS ~= nil then if wheel.netInfo.xDriveLast == nil then wheel.netInfo.xDriveLast = wheel.netInfo.xDrive; end local xDriveDiff = wheel.netInfo.xDrive - wheel.netInfo.xDriveLast; if xDriveDiff > math.pi then wheel.netInfo.xDriveLast = wheel.netInfo.xDriveLast + 2*math.pi; elseif xDriveDiff < -math.pi then wheel.netInfo.xDriveLast = wheel.netInfo.xDriveLast - 2*math.pi; end xDriveDiff = wheel.netInfo.xDrive - wheel.netInfo.xDriveLast; wheel.netInfo.xDriveLast = wheel.netInfo.xDrive; local wheelRotSpeed = math.deg(xDriveDiff) / (0.001 * dt); local maxWheelRotSpeed = 1080; local wheelRotFactor = math.abs(wheelRotSpeed) / maxWheelRotSpeed; wheelRotFactor = wheelRotFactor * wheel.radius; self:updateWheelDirtPS(wheel, wheelRotFactor, wheel.steeringAngle); if wheel.additionalWheels ~= nil then for ,additionalWheel in pairs(wheel.additionalWheels) do self:updateWheelDirtPS(additionalWheel, wheelRotFactor, wheel.steeringAngle); end end end end end end function GroundResponse:updateWheelDirtPS(wheel, wheelRotFactor, steeringAngle) if wheel.dirtPS ~= nil then local sizeScale = 2 * wheel.width * wheel.radius; for ,ps in pairs(wheel.dirtPS) do ParticleUtil.setEmittingState(ps, ps.isActive); if ps.isActive then -- emit count local speedEmitScale = wheelRotFactor * sizeScale; local speedEmitScaleWet = math.pow( 2*wheelRotFactor*sizeScale*gcurrentMission.environment.groundWetness, 2 ); local emitScale = 0.5 * (speedEmitScale + speedEmitScaleWet); ParticleUtil.setEmitCountScale(ps, emitScale); -- speeds local speedFactor = 0.3 * wheelRotFactor; local speed = ps.particleSpeed * speedFactor; speed = math.min(speed, 0.001); ParticleUtil.setParticleSystemSpeed(ps, speed); --ParticleUtil.setParticleSystemNormalSpeed(ps, 1.0 ); --ParticleUtil.getParticleSystemTangentSpeed(ps, 0.4 ); ParticleUtil.setParticleSystemSpeedRandom(ps, ps.particleRandomSpeed * speedFactor); -- adjust position local dirSign = 1; if self.movingDirection < 0 then dirSign = -1; end local x,y,z; if wheel.wheelTire == nil then x,y,z = localToLocal(wheel.driveNode, getParent(ps.emitterShape), wheel.xOffset, 0, 0); else x,y,z = localToLocal(wheel.wheelTire, getParent(ps.emitterShape), 0, 0, 0); end setTranslation(ps.emitterShape, x,y,z); if self.movingDirection < 0 then setRotation(ps.emitterShape, 0,math.pi+steeringAngle,0); else setRotation(ps.emitterShape, 0,steeringAngle,0); end end end end end function GroundResponse:draw() end function GroundResponse:updateWheelSink(dt) local speed = self:getLastSpeed(); local detailId = g_currentMission.terrainDetailId; for ,wheel in pairs(self.wheels) do local width = 0.25 * wheel.width; local length = 0.25 * wheel.width; local x0,y0,z0; local x1,y1,z1; local x2,y2,z2; if wheel.repr == wheel.driveNode then x0,y0,z0 = localToWorld(wheel.node, wheel.positionX + width, wheel.positionY, wheel.positionZ - length); x1,y1,z1 = localToWorld(wheel.node, wheel.positionX - width, wheel.positionY, wheel.positionZ - length); x2,y2,z2 = localToWorld(wheel.node, wheel.positionX + width, wheel.positionY, wheel.positionZ + length); else local x,,z = localToLocal(wheel.driveNode, wheel.repr, 0,0,0); x0,y0,z0 = localToWorld(wheel.repr, x + width, 0, z - length); x1,y1,z1 = localToWorld(wheel.repr, x - width, 0, z - length); x2,y2,z2 = localToWorld(wheel.repr, x + width, 0, z + length); end local x,z, widthX,widthZ, heightX,heightZ = Utils.getXZWidthAndHeight(nil, x0,z0, x1,z1, x2,z2); setDensityCompareParams(detailId, "greater", 0); local density, area, _ = getDensityParallelogram(detailId, x,z, widthX,widthZ, heightX,heightZ, g_currentMission.terrainDetailTypeFirstChannel, g_currentMission.terrainDetailTypeNumChannels); setDensityCompareParams(detailId, "greater", -1); local terrainValue = 0; if area > 0 then terrainValue = math.floor(density/area + 0.5); end local minVal, maxVal = 0, 1; local sinkSpeed = (dt/1000) * (speed/10) * (0.01 * math.random(120)); local maxSink = math.min(0.3, wheel.radius*0.7 * (0.8 + 0.5*g_currentMission.environment.groundWetness)) * 1.0; -- Multiplikator Zieleinsinktiefe von 0.6 - 1.3 if terrainValue == 1 then -- cultivator_gegrubberter Boden minVal, maxVal = 180, 180; -- Verhealtniswert im Ziel zum maximalem Einsinken sinkSpeed = sinkSpeed * 0.5; elseif terrainValue == 2 then -- plough_gepflügter Boden minVal, maxVal = 100, 100; sinkSpeed = sinkSpeed * 0.6; elseif terrainValue == 3 then -- sowing_gesähter Boden wie Weizen_Gerste_Raps minVal, maxVal = 110, 110; sinkSpeed = sinkSpeed * 0.3; elseif terrainValue == 4 then -- sowingWidth_gedrillter Boden wie Mais_Sonnenblumen minVal, maxVal = 120, 120; sinkSpeed = sinkSpeed * 0.4; elseif terrainValue == 5 then -- grass_Gras minVal, maxVal = 20, 30; sinkSpeed = sinkSpeed * 0.5; end local ploughEffect = false; if area == 0 then wheel.sinkTarget = 0; else if wheel.sink == wheel.sinkTarget or wheel.lastTerrainValue ~= terrainValue then local currentSink = self:getWheelCurrentSink(wheel); wheel.sinkTarget = math.min(maxSink, 0.01 * math.random(minVal, maxVal) * currentSink); -- 'ploughing effect' if terrainValue == 2 and wheel.oppositeWheelIndex ~= nil then local oppositeWheel = self.wheels[wheel.oppositeWheelIndex]; if oppositeWheel.lastTerrainValue ~= nil and oppositeWheel.lastTerrainValue ~= 2 then wheel.sinkTarget = wheel.sinkTarget * 1.5; ploughEffect = true; end end end end if wheel.sinkTarget ~= wheel.sink then local sinkDelta = maxSink * sinkSpeed; if terrainValue ~= wheel.lastTerrainValue then sinkDelta = maxSink * (dt/250); end if wheel.sink < wheel.sinkTarget then wheel.sink = math.min(wheel.sinkTarget, wheel.sink + sinkDelta); elseif wheel.sink > wheel.sinkTarget then wheel.sink = math.max(wheel.sinkTarget, wheel.sink - sinkDelta); end wheel.radius = wheel.radiusOriginal - wheel.sink; self:updateWheelBase(wheel); local sinkFactor = (wheel.sink/maxSink) * (0.4 + 0.6*g_currentMission.environment.groundWetness); -- bestimmt Einsinkverhalten_erste Zahl trockener Boden_zweite Zahl nasser Boden wheel.sinkFrictionScaleFactor = (1.0 - math.min(0.7, sinkFactor)); -- Traktion bei Einsinktiefe wheel.sinkLongStiffnessFactor = (1.0 - math.min(0.2, sinkFactor)); -- Bodensteiffigkeit in Fahrtrichtung beim Einsinken wheel.sinkLatStiffnessFactor = (1.0 - math.min(0.0, sinkFactor)); -- Bodensteiffigkeit in Querrichtung beim Einsinken self:updateWheelTireFriction(wheel); end wheel.lastTerrainValue = terrainValue; if wheel.dirtPS ~= nil then local enableSoilPS = false; if terrainValue == 1 then -- cultivator enableSoilPS = true; elseif terrainValue == 2 then -- plough enableSoilPS = true; elseif terrainValue == 3 then -- sowing enableSoilPS = true; elseif terrainValue == 4 then -- sowingWidth enableSoilPS = true; elseif terrainValue == 5 then -- grass enableSoilPS = false; end for ,ps in pairs(wheel.dirtPS) do ps.isActive = false; end if enableSoilPS and (speed > 1) and wheel.sink > 0 then if gcurrentMission.environment.groundWetness > 0.2 then if wheel.dirtPS["soilWet"] ~= nil then wheel.dirtPS["soilWet"].isActive = true; end else if wheel.dirtPS["soilDry"] ~= nil then wheel.dirtPS["soilDry"].isActive = true; end end end if wheel.additionalWheels ~= nil then for ,additionalWheel in pairs(wheel.additionalWheels) do for ,ps in pairs(additionalWheel.dirtPS) do ps.isActive = enableSoilPS and (speed > 1) and wheel.sink > 0; end end end end end end function GroundResponse:getWheelCurrentSink(wheel) if wheel.maxDeformation == nil or wheel.wheelTire == nil then return 0; end local gravity = 9.81; local tireLoad = getWheelShapeContactForce(wheel.node, wheel.wheelShape); if tireLoad ~= nil then local nx,ny,nz = getWheelShapeContactNormal(wheel.node, wheel.wheelShape); local dx,dy,dz = localDirectionToWorld(wheel.node, 0,-1,0); tireLoad = -tireLoad*Utils.dotProduct(dx,dy,dz, nx,ny,nz); tireLoad = tireLoad + math.max(ny*gravity, 0.0) * wheel.mass; -- add gravity force of tire else tireLoad = 0; end tireLoad = tireLoad / gravity; local loadFactor = (tireLoad / wheel.restLoad); local totalWidth = wheel.width; if wheel.additionalWheels ~= nil then for ,additionalWheel in pairs(wheel.additionalWheels) do totalWidth = totalWidth + additionalWheel.width; end end local length = 2 * math.pi * (wheel.radius 1.5) (20/360); -- Tragfähigkeit Reifenumfang local area = totalWidth * length; local loadFactor = math.min(10, loadFactor * 0.4 * (1.0/area) * (0.5 + (0.5*gcurrentMission.environment.groundWetness))); -- bestimmt Einfluss der Ladung auf das Einsinken maxSink = loadFactor * wheel.maxDeformation; return maxSink; end function GroundResponse:updateWheelTireFriction(superFunc, wheel) if self.isServer and self.isAddedToPhysics then setWheelShapeTireFriction(wheel.node, wheel.wheelShape, wheel.sinkFrictionScaleFactor*wheel.maxLongStiffness, wheel.sinkLatStiffnessFactor*wheel.maxLatStiffness, wheel.maxLatStiffnessLoad, wheel.sinkFrictionScaleFactor*wheel.frictionScale*wheel.tireGroundFrictionCoeff); end; end function GroundResponse:applyRandomForceToWheels(dt) local numWheels = table.getn(self.wheels); if numWheels == 0 or not self:getIsActive() then return; end local speed = self:getLastSpeed(); local forceFactor = 0.001; local totalMass = 0; for ,component in pairs(self.components) do totalMass = totalMass + getMass(component.node); end for i=1, numWheels do local wheel = self.wheels[i]; if speed > 1 then if wheel.nextRandomHitTime == nil then local hitDistance = math.random(1, numWheels) * 0.5; local speedMS = speed / 3.6; local timeDelta = math.min(1000, (1000 * hitDistance / speedMS)); wheel.nextRandomHitTime = gcurrentMission.time + timeDelta; end end if wheel.nextRandomHitTime ~= nil and wheel.nextRandomHitTime < g_currentMission.time then if wheel.hasGroundContact and wheel.contact == Vehicle.WHEEL_GROUND_CONTACT and wheel.forcePercentage == nil then local r1, r2 = Utils.getNormallyDistributedRandomVariables(5, 5*0.333); r1 = math.max(0.0001, r1); r2 = math.max(1, r2); -- linear influence of speed results in too intense hits --local force = forceFactor * totalMass * speed * r1; -- square root is better local force = forceFactor * totalMass * math.sqrt(speed) * r1 * 0.2; local maxForce = forceFactor * (totalMass * 0.5); force = math.min(force, maxForce); wheel.timeTillFullForce = r2 * 50; -- max. ~500ms wheel.forcePercentage = 0; wheel.currentForce = force; end end if wheel.currentForce ~= nil then local delta = (dt/wheel.timeTillFullForce) * 0.01 * math.random(20); if speed > 1 and not wheel.maxForceReached then wheel.forcePercentage = math.min(1, wheel.forcePercentage + delta); else wheel.forcePercentage = math.max(0, wheel.forcePercentage - delta); end local currentForce = wheel.forcePercentage * wheel.currentForce; local dx,dy,dz = 0,-currentForce,0; --local dx,dy,dz = localDirectionToWorld(wheel.node, 0,-currentForce,0); local px,py,pz = localToLocal(wheel.driveNode, wheel.node, 0,0,0); addImpulse(wheel.node, dx,dy,dz, px,py,pz, true); --addForce(wheel.node, dx,dy,dz, px,py,pz, true); if wheel.forcePercentage == 1 then wheel.maxForceReached = true; end if wheel.maxForceReached and wheel.forcePercentage == 0 then wheel.forcePercentage = nil; wheel.currentForce = nil; wheel.nextRandomHitTime = nil; wheel.maxForceReached = false end end end end
LUA call stack: =C:/Users/olhun/Documents/My Games/FarmingSimulator2017/mods/FS17_ForRealModule03_GroundResponse/register.lua (71) : delete dataS/scripts/BaseMission.lua (371) : deleteMap dataS/scripts/FSBaseMission.lua (537) : delete dataS/scripts/utils/Utils.lua (1870) : oldFunc dataS/scripts/utils/Utils.lua (1858) : oldFunc dataS/scripts/missions/mission00.lua (84) : delete dataS/scripts/events.lua (125) : delete dataS/scripts/gui/InGameMenu.lua (457) : OnInGameMenuMenu dataS/scripts/gui/InGameMenu.lua (715) : leaveCurrentGame dataS/scripts/gui/dialogs/YesNoDialog.lua (62) : callbackFunc dataS/scripts/gui/dialogs/YesNoDialog.lua (50) : sendCallback dataS/scripts/gui/elements/ButtonElement.lua (191) : raiseCallback dataS/scripts/gui/elements/GuiElement.lua (279) : mouseEvent dataS/scripts/gui/elements/GuiElement.lua (279) : mouseEvent dataS/scripts/gui/elements/GuiElement.lua (279) : mouseEvent dataS/scripts/gui/elements/GuiElement.lua (279) : mouseEvent dataS/scripts/gui/elements/Gui.lua (270) : mouseEvent dataS/scripts/main.lua (1857) : mouseEvent
hallo rachederrasen kann man diese groundresponse.lua auch mit giants neuem groundresponsemod v 1.0.2.0 verwenden? lg andreas
Das Ground Response Modul 3: V1.0.2.0 von Giants ist kompatibel mit meiner GroundResponse.lua V1.5 und V1.6 (Da beim Update nur die ModDesc und register.lua von Giants Modul 3 V1.0.2.0 bestehen bleiben und ja identisch zu deren V1.0.1.0 ist, braucht ihr das Update ohnehin nicht machen, denn die groundResponse.lua ist ja entscheidend). Gruß Andy
Hab ich noch nicht getestet. Gege Bescheid, wenn ich das erledigt habe. Eigentlich braucht ihr das Modul garnicht updaten, denn dadurch wird ja der Inhalt (die groundresponse.lua) von mir durch eine von Giants ersetzt. Gruß Andy
Moin, ich habe mal eine Frage. Dein Script läuft super und es macht riesig Spaß aber beim Mod-Traktor "John Deere 7R TechMod V2" klappt es nicht! Dieser rutscht und hat auf dem Feld nur durchdrehende Reifen. Die einsinktiefen auf den Böden sind auch deutlich höher! Muss ich bei dem Traktor (Reifen) noch etwas anpassen? Gruß Gerrit
Moin Gerrit, das Problem haben leider einige Modschlepper. Ich suche schon länger nach einer Lösung innerhalb der Fahrzeugmods (z.B. der Xerion, sobald der Breitreifen drauf hat, das gleiche Problem, der JD 7030 Premium auf der Vorderachse, der 6R,..usw). Die Werte sehen aber scheinbar alle richtig aus, die Pfade zu den Trelleborg stimmen auch,... War nur die letzte Zeit sehr verhindert durch einen Banscheibenvorfalls. Deshalb kann ich nur 5 min am Tag am PC sitzen... Gruß Andy
Moin Andy, erst einmal Danke, dass du dich so bemühst den Fehler zu finden! Ich habe noch ein bisschen getestet und ich weis nicht woran es lag, aber der Fehler ist weg. Frag mich nicht woran es jetzt lag. Ich habe zwar immer noch den ,,Fehler", dass die Trecker beim original Modul ein/zwei mal schaukeln, aber bei der überarbeiteten Version ist dies weg. Falls du mal sehen willst, was ich meine kann ich dir ein Video schicken, wo das zu sehen ist. Gruß Omat :D
Moin Omat, danke für die Rückmeldung :) Glaube ich dir auch so, brauchst kein Video machen. Werde weiter forschen (soweit die Zeit es zulässt) woran das liegen könnte. Bis bald Gruß Andy
Kommentarfunktion immer noch inaktiv... Hier das Video zum Test mit dem MF 7700: https://www.youtube.com/watch?v=bHvn0MkCaO8 Gruß Andy
Moin Omat, danke für die Info. Habe jetzt noch mal kurz auf der Testmap getestet nur mit dem Modul 3 V1.5.2, Drive Controll, FillMassAdjust, Gearbox, und den Fahrzeugmods...Kein Schaukeln :( bin ratlos Kanns mir net erklären, habe den 7700 MF mal aufgenommen auf der "an der Ostsee"-Map, meinem TestAreal, der hat die beladenen Bandit 750 und den Fetten Krone Tridem hinter, auf 3 verschidenen Untergründen (Gras, Feld, Straße), kein Schaukeln, auf der neuen Südharz-Map schon. Das ist für mich grad unverständlich... Lade gerne ein Video hoch zum Beweis. Gruß Andy
Moin Omat. Das Problem, das du beschreibst, mit dem Schaukeln ist mir (wenn auch nur in abgeschwächter Form) auch aufgefallen. Nur bei mir sind nur einige Tridem (und auch nur voll beladen) betroffen. Der Bandit 750 machts z.B. net. Wenn ich die nächsten Tage mal wieder Zeit finde mich etwas länger an den PC zu setzen, als nur 5 min, dann schaue ich mal wo durch dies ausgelöst werden könnte. Hatte auch schon mal in einem meiner unzähligen Tests beobachtet, dass das Schaukeln mit dem Standart Modul 3 genau so auftritt. Könnte auch an einer anderen Mod liegen,... Um nach dem Problem mit einigen Rädern von Modschleppern zu suchen bin ich auch nocht nicht gekommen,... Gruß Andy
Guten Tag, ich habe selber gestern ein bisschen rumgetestet und mir ist aufgefallen das es nicht an einer anderen Mod liegt und das der Effekt durch die bearbeitete lua nur verstärkt wird. Der Effekt tritt nämlich auch auf wenn man das Original Modul ohne überarbeitete lua verwendet, allerdings schaukelt das Gespann dann nur ein/zwei mal und dann steht es. Außerdem habe ich bemerkt, dass der Effekt am stärksten mit dem MF 7700 ist und z.B. mit dem Fendt 900 gar nicht auftritt. Vielleicht hilft dir das weiter bei der Lösung. LG Omat
Moin Moin, ich habe dieses Skript runtergeladen und war erst einmal begeistert. Endlich müssen die Schlepper auch mal n bisschen Leistung haben um die Maschinen zu ziehen. Jetzt habe ich aber folgendes Problem entdeckt: Wenn ich an einen Schlepper einen Tandem oder Tridem Hänger hänge fängt dieser im Stillstand an zu schaukeln, was sich nur ändert wenn ich den Hänger abkoppel. Besonders fällt es auf mit dem MF 7700 und dem Krampe Bandit 750 auf einem Feld (egal ob gegrubert/gepflügt oder abgeerntet). Ich habe schon viel ausprobiert finde den Fehler aber nicht. Ich nutze das Modul 03 in der neuesten Version ( 1.0.1.0 ) und die Ground Response Version 1.5. kann mir einer helfen oder hat einer das gleiche Problem ? Grüße Omat
Habe erst kürzlich mal Zeit gefunden es zu testen die neueste Version und muss sagen Top. Volle Punktzahl und klare Empfehlung aufjedenfall. Einzig bei einem vollen Ballenwagen wie dem Brandtner den man über Modhub beziehen kann, kann es passieren das der Hinterteil manchmal wegdriftet. Aufjedenfall genial und ein muss auf der Sosnovkamap da es ja in den Ostblockstaaten ja eh etwas rauher und schwerer zugeht mit dem lehmartigen Boden. Wer es noch realistischer mag kann auch den Manual Attacher nutzen. Danke fürs teilen.