Fixing problem with AI cargo helicopter pickup

This commit is contained in:
FlightControl
2018-09-09 18:44:04 +02:00
parent 492563d6f3
commit 5c5b9df470
2 changed files with 12 additions and 6 deletions

View File

@@ -903,7 +903,8 @@ function AI_CARGO_DISPATCHER:onafterMonitor()
if not self.PickupZoneSet or PickupZone then if not self.PickupZoneSet or PickupZone then
for CarrierPickup, Coordinate in pairs( self.PickupCargo ) do for CarrierPickup, Coordinate in pairs( self.PickupCargo ) do
if CarrierPickup:IsAlive() == true then if CarrierPickup:IsAlive() == true then
if CargoCoordinate:Get2DDistance( Coordinate ) <= 100 then if CargoCoordinate:Get2DDistance( Coordinate ) <= 25 then
self:F( { "Coordinate not free for ", Cargo = Cargo:GetName(), Carrier:GetName(), PickupCargo = self.PickupCargo[Carrier] ~= nil } )
CoordinateFree = false CoordinateFree = false
break break
end end
@@ -1025,6 +1026,7 @@ function AI_CARGO_DISPATCHER:onafterTransport( From, Event, To, Carrier, Cargo )
end end
end end
self:F( { Carrier = Carrier:GetName(), PickupCargo = self.PickupCargo } )
self.PickupCargo[Carrier] = nil self.PickupCargo[Carrier] = nil
end end

View File

@@ -254,7 +254,6 @@ function AI_CARGO_HELICOPTER:onafterLanded( Helicopter, From, Event, To )
--self:Load( Helicopter:GetPointVec2() ) --self:Load( Helicopter:GetPointVec2() )
self:Load( self.PickupZone ) self:Load( self.PickupZone )
self.RoutePickup = false self.RoutePickup = false
self.Relocating = true
end end
end end
@@ -262,8 +261,6 @@ function AI_CARGO_HELICOPTER:onafterLanded( Helicopter, From, Event, To )
if Helicopter:GetHeight( true ) <= 5 and Helicopter:GetVelocityKMH() < 10 then if Helicopter:GetHeight( true ) <= 5 and Helicopter:GetVelocityKMH() < 10 then
self:Unload( self.DeployZone ) self:Unload( self.DeployZone )
self.RouteDeploy = false self.RouteDeploy = false
self.Transporting = false
self.Relocating = false
end end
end end
@@ -410,6 +407,7 @@ function AI_CARGO_HELICOPTER:onafterPickedUp( Helicopter, From, Event, To, Picku
self:F( { Helicopter, From, Event, To } ) self:F( { Helicopter, From, Event, To } )
if Helicopter and Helicopter:IsAlive() then if Helicopter and Helicopter:IsAlive() then
self.Relocating = false
self.Transporting = true self.Transporting = true
end end
end end
@@ -437,6 +435,8 @@ function AI_CARGO_HELICOPTER:onafterDeployed( Helicopter, From, Event, To, Deplo
end, Helicopter end, Helicopter
) )
self.Transporting = false
end end
--- On after Pickup event. --- On after Pickup event.
@@ -500,7 +500,9 @@ function AI_CARGO_HELICOPTER:onafterPickup( Helicopter, From, Event, To, Coordin
Helicopter:Route( Route, 1 ) Helicopter:Route( Route, 1 )
self.PickupZone = PickupZone self.PickupZone = PickupZone
self.Transporting = true
self.Relocating = true
self.Transporting = false
end end
end end
@@ -577,6 +579,8 @@ function AI_CARGO_HELICOPTER:onafterDeploy( Helicopter, From, Event, To, Coordin
-- Now route the helicopter -- Now route the helicopter
Helicopter:Route( Route, 0 ) Helicopter:Route( Route, 0 )
self.Relocating = false
self.Transporting = true
end end
end end