fix(marker): slip kun et sæt når spilleren faktisk kører det (> 3 km/t uden AD/CP) (v1.21.5.0)

In-game 25/9: læssevognen blev sluppet ved ankomsten til F22, fordi spilleren sad stille i førersædet.
This commit is contained in:
2026-09-25 23:11:50 +02:00
parent 6f387c051f
commit 52250dc35e
4 changed files with 8 additions and 4 deletions
+5 -1
View File
@@ -10,6 +10,7 @@ ADFieldJobs.TICK_MS = 1000
ADFieldJobs.ARRIVE_DISTANCE = 30
ADFieldJobs.IDLE_CONFIRM_MS = 5000
ADFieldJobs.START_TIMEOUT_MS = 60000
ADFieldJobs.PLAYER_DRIVING_KMH = 3
-- Courseplay kan efterlade hjørner på skæve marker: efter så mange færdige slå-ture går marken videre.
ADFieldJobs.MAX_MOW_PASSES = 2
ADFieldJobs.state = {fields = {}, fleet = {}, assignments = {}}
@@ -299,7 +300,10 @@ local function follow(adEnv, assignment)
-- Kun når spilleren selv KØRER (hverken Courseplay eller AutoDrive styrer): at sætte sig ind for at
-- kigge på HUD'en mens CP slår, må ikke slippe sættet (in-game 25/9: F22 blev aldrig sendt hjem).
local steeredByAi = ADCpBridge.isWorking(vehicle) or isAdActive(vehicle) or assignment.phase == "starting"
if isControlledByPlayer(vehicle) and not steeredByAi then
-- ...og at sidde stille i førersædet når AutoDrive lige er nået frem, er heller ikke at køre selv
-- (in-game 25/9: læssevognen blev sluppet ved ankomsten til F22). Spilleren kører = den bevæger sig.
local speed = vehicle.getLastSpeed ~= nil and vehicle:getLastSpeed() or 0
if isControlledByPlayer(vehicle) and not steeredByAi and speed > ADFieldJobs.PLAYER_DRIVING_KMH then
if assignment.handle ~= nil then assignment.handle.cancelled = true end
log(assignment.fieldId, "'%s' frigivet — spilleren kører det", ADRuns.vehicleLabel(vehicle))
return release(assignment)