rbfishcss

rbfishcss

0 de inscritos

Atividade

rbfishcss rbfishcss respondeu a um comentário em um mod
Michalob

Great mod, just to let you know when i set the region to UK it always reverts back to Germany the default when I reload the game. Just to add its sometime random.

@Sinterra Something still feels off, I was able to reproduce it once, and then i saved and exited, reloaded and it was set correctly. Very strange

rbfishcss rbfishcss respondeu a um comentário em um mod
Michalob

Great mod, just to let you know when i set the region to UK it always reverts back to Germany the default when I reload the game. Just to add its sometime random.

@Sinterra @Sherman200 This bug still persists on the latest version (v1.4.0.6). 

1. Set region to not schleswig-holstein, save game. Exit game, re-load save, region setting is reverted back to schleswig-holstein. Super annoying.

Also the weather forecast still doesn't persist between saves.

rbfishcss rbfishcss respondeu a um comentário em um mod
Michalob

Great mod, just to let you know when i set the region to UK it always reverts back to Germany the default when I reload the game. Just to add its sometime random.

@Sinterra Ok I will have to test on the latest version, I will report back when i do so. Thanks.

rbfishcss rbfishcss respondeu a um comentário em um mod
Michalob

Great mod, just to let you know when i set the region to UK it always reverts back to Germany the default when I reload the game. Just to add its sometime random.

@Michalob that bug has been in the mod for as long as the mod has been around, never seems to get fixed annoyingly. Are you on the latest version?

rbfishcss rbfishcss comentou um mod

Interesting, i'll keep my eye on this. Do you have a github for issues?

rbfishcss rbfishcss comentou um mod

looks ridiculous

rbfishcss rbfishcss comentou um mod

Betreff: 1.4.0.27 – Region/Land-Auswahl wird bei neuem Spielstand zurückgesetzt

Hallo Sherman,

kurzer Fehlerbericht zu 1.4.0.27.

Datei: rwsmSavegameSync.lua
Funktion: RWSM112StateManager.loadState()

Symptom
Bei einem neuen Spielstand wird die Land/Region-Auswahl (z.B. Polen/Mitte) kurz nach dem Setzen automatisch wieder auf den Standard (Deutschland/Nord) zurückgesetzt, noch bevor überhaupt gespeichert wird. Der nächste reguläre Spielstand schreibt dadurch den Standardwert statt der gewählten Einstellung. Bei einem bereits einmal gespeicherten Spielstand tritt das Problem nicht auf.

Ursache
loadState() ruft weather.loadSettings() nur auf, wenn rwsmState_v2.xml bereits existiert:

    if not fileExists(path) then
        RWSM112StateManager.loaded = true
        RWSM112StateManager.existingStateLoaded = false
        RWSM112StateManager.saveBlocked = false
        RWSM112StateManager.saveBlockReason = nil
        RWSM112StateManager.stateRevision = 0
        do end
        return
    end

Bei einem neuen Spielstand existiert die Datei noch nicht, der Zweig kehrt zurück ohne weather.loadSettings() aufzurufen. RWSM53WeatherSystem.loaded bleibt false.

In rainstarWeatherSystem.lua sorgt update(dt) eigentlich für genau diesen Fall (Speicherpfad bei loadMap noch nicht bereit) mit einem Retry:

    if not RWSM53WeatherSystem.loaded then
        RWSM53WeatherSystem.loadSettings()
    end

Das läuft alle ~500ms. Da loaded nie gesetzt wurde, feuert dieser Retry kurz nachdem die Region geändert wurde erneut. WS.loadSettings() in rwsmGlobalClimateExtension.lua setzt locationMode/regionIndex/stateIndex/configRevision dabei bedingungslos auf die Defaults zurück, bevor rainstarWeather.xml gelesen wird - die bei einem neuen Spielstand ebenfalls noch nicht existiert. Der Reset bleibt also stehen, und der nächste Spielstand schreibt ihn fest.

Vorschlag
weather.loadSettings() auch im "Datei existiert nicht"-Zweig aufrufen:

    if not fileExists(path) then
        RWSM112StateManager.loaded = true
        RWSM112StateManager.existingStateLoaded = false
        RWSM112StateManager.saveBlocked = false
        RWSM112StateManager.saveBlockReason = nil
        RWSM112StateManager.stateRevision = 0
        if RWSM53WeatherSystem ~= nil and RWSM53WeatherSystem.loadSettings ~= nil then
            RWSM53WeatherSystem.loadSettings()
        end
        return
    end

Damit wird loaded schon beim ersten Durchlauf korrekt gesetzt (auf Defaults, da ja nichts zu laden ist), und der Retry in update() greift nicht mehr ein, nachdem die Region geändert wurde.

Getestet auf 1.4.0.27, neuer Spielstand, Wechsel Deutschland -> Polen/Mitte.

Viele Grüße

rbfishcss rbfishcss comentou um mod

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 rbfishcss comentou um mod

I think there is a bug in this mod that causes unrealistic crop destruction, was able to reproduce on a planted grass field and a canola field.

rbfishcss rbfishcss respondeu a um comentário em um mod
Cabbage

Thanks for the update. 

Weather region is now reliably saved on dedicated servers - what about SP saves? Is there a fix we can do from our end?

@Sinterra that's the bug (or one of them)