Realistic Mod Scripter
Betreff: 1.4.0.6.. gemähtes Gras wird als Stoppel eingestuft (mit Patch)
Hallo Sherman,
kurzer Fehlerbericht zu 1.4.0.6, inklusive Patch.
Datei: scripts/SoilCompaction.lua
Funktion: VisualMudTracks:getIsHarvestedStubbleCrop(crop)
Symptom
Auf gemähten Grasflächen entstehen schon nach der ersten Überfahrt kahle Erdstellen statt platt gedrückter Fahrspuren. Bei Ackerfrüchten verhält es sich korrekt.
Ursache
Gras besitzt einen gültigen desc.cutState. Die Schleife über stubbleStates prüft diesen Zustand, bevor der Namensfilter (GRASS/CLOVER/ALFALFA/LUCERNE) ausgewertet wird. Gemähtes Gras liefert deshalb true und gilt als Stoppel. Daraus folgt zweierlei:
1. shouldApplyPartialCropDamage wird übersprungen:
if not isHarvestedStubble and not self:shouldApplyPartialCropDamage(...)
Dadurch kommt getMownGrassDamageFactor mit seinem Faktor 0 nie zum Tragen.
2. mechanicalFailure ist sofort true, sodass updateDestroyCommonArea bereits bei der ersten Überfahrt ausgelöst wird statt erst ab der zweiten.
Der Namensfilter wirkt derzeit nur auf den Fallback über getIsCropInCutState, nicht auf den Zustandsvergleich darüber.
Vorschlag
Die Namensprüfung vor die Schleife ziehen und bei Grasarten früh aussteigen:
local desc = self:getFruitDescriptionByIndex(crop.fruitTypeIndex)
if desc == nil then
return false
end
-- Grasartige Früchte sind nie Stoppel. Gemähtes Gras hat einen gültigen
-- cutState, daher muss der Namensfilter vor dem Zustandsvergleich laufen.
local name = string.upper(tostring(crop.cropName or crop.cropTitle or ""))
local isArableCrop = not (
string.find(name, "GRASS", 1, true)
or string.find(name, "CLOVER", 1, true)
or string.find(name, "ALFALFA", 1, true)
or string.find(name, "LUCERNE", 1, true)
)
if not isArableCrop then
return false
end
local state = tonumber(crop.growthState) or -1
local stubbleStates = {
desc.cutState,
desc.cutGrowthState,
desc.harvestedState,
desc.harvestState,
desc.stubbleState,
desc.minHarvestingGrowthState ~= nil
and (tonumber(desc.minHarvestingGrowthState) - 1)
or nil
}
for _, stubbleState in ipairs(stubbleStates) do
if stubbleState ~= nil and state == tonumber(stubbleState) then
return true
end
end
-- Manche Maps stellen nur einen generischen cutState bereit. Bei
-- Ackerfrüchten ist das der Stoppelzustand.
return self:getIsCropInCutState(crop)
Ansonsten ändert sich nichts: Ackerfrüchte durchlaufen die Schleife unverändert, nur die Reihenfolge der beiden Prüfungen wird getauscht.
Getestet auf 1.4.0.6, Wiesen und Raps.
Viele Grüße
@rbfishcss moin, danke gehe ich morgen bei habe auch schon den Fehler gefunden warum sich die Rillen wieder hoch schreiben morgen kommt ein fix und dann hoffe ich alles gefunden zu haben an Fehlern 🙈🙈🙈
Podczas deszczu gdy jest 100% wilgotność na polu podczas orki drastycznie spada FPS. I gdy stanie się ciągnikiem ruszy się do przodu i natychmiast w tył to deformacja się odnawia i ciągnik wrzuca do góry.
@Alk Zar Test this Plz https://sharemods.com/px9a24r2rokn/FS25_VisualMudTracks.zip.html
Also when i have the Mod enabled on Dedi Server, the NPC dont work on their field. Plants just die and they dont seed any new or cultivate the field.
@dcision Hello, thanks for your report; that’s exactly what I need, since the mod is so extensive. Many thanks. Please test this:https://sharemods.com/we691hfydymm/FS25_RealisticWaterSoilManagement.zip.html