Issues with weather in Command

Post bug reports and ask for game support here.

Moderator: MOD_Command

thewood1
Posts: 10130
Joined: Sun Nov 27, 2005 6:24 pm
Location: Boston

Re: Issues with weather in Command

Post by thewood1 »

Again, the custom zone will manage the conflict, if one exists. The CZs have full lua support and setting a CZ's temp will completely override any global temp in that region.
thewood1
Posts: 10130
Joined: Sun Nov 27, 2005 6:24 pm
Location: Boston

Re: Issues with weather in Command

Post by thewood1 »

Uzabit
Posts: 135
Joined: Fri Jul 13, 2018 6:03 pm

Re: Issues with weather in Command

Post by Uzabit »

@Nikel

Here's a corrected code snippet for the temperature simulation script you posted. I should now work as I just tested it in a scenario. It still counteracts the internal temperature engine of CMO. So I'm not sure how useful it is.

Code: Select all

-- Daily temperature simulation script (Command: Modern Operations)

local baseTemp  = 15   -- Average temperature (°C)
local amplitude = 5    -- Half of the total daily range (°C)
local peakHour  = 15   -- Hour of peak temperature (3 PM)

-- Get current scenario time and extract the hour (00–23)
local scenTime = ScenEdit_CurrentTime()
local hour

if type(scenTime) == "string" then
    -- Expected format: "YYYY-MM-DD HH:MM:SS"
    hour = tonumber(string.sub(scenTime, 12, 13))
else
    -- Fallback if an epoch-like number is returned
    hour = tonumber(os.date("!%H", scenTime))
end

-- Calculate smooth daily temperature curve
-- Use cosine so the maximum occurs at 'peakHour'
local pi = math.pi
local temp = baseTemp + amplitude * math.cos((2 * pi / 24) * (hour - peakHour))

-- Get current global weather (fields: temp, rainfall, undercloud, seastate)
local w = ScenEdit_GetWeather()

-- Apply new temperature while preserving rainfall, cloud cover, and sea state
local ok = ScenEdit_SetWeather(temp, w.rainfall, w.undercloud, w.seastate)

-- Optional: log the update to console
if ok then
    print(string.format(
        "Hour: %02d | Temp set to: %.2f°C | Rainfall: %.1f | Undercloud: %.2f | SeaState: %d",
        hour, temp, w.rainfall, w.undercloud, w.seastate
    ))
else
    print("ScenEdit_SetWeather failed.")
end
*Edit* Replaced math.sin() with math.cos() to ensure the temperature peak aligns correctly with peakHour (15:00).
Post Reply

Return to “Tech Support”