{ A anti-German French script } const LAND = 0; const AIR = 1; const SEA = 2; NbrZones := GetZoneCount(); NbrUnits := GetUnitCount(); CurrentPlayer := GetCurrentPlayer(); Version( 4.0 ); US := -1; USSR := -1; Germany := -1; Italy := -1; Japan := -1; Spain := -1; For i := 0 to getnationcount() - 1 do begin name := getnationname(i); If name = 'Germany' then Germany := i; If name = 'United States' then US := i; If name = 'Spain' then Spain := i; end; If (getnationdiplomaticactions(CurrentPlayer) > 0) then If (isnationactive(US)) AND (getnationstance(CurrentPlayer, US) < 100) AND (getnationstance(CurrentPlayer, US) > -100) then orderdiplomatic(US, 3) else if (isnationactive(Spain)) AND (getnationstance(CurrentPlayer, Spain) < 100) AND (getnationstance(CurrentPlayer, Spain) > -100) then orderdiplomatic(Spain, 3) else If isnationactive(Germany) then orderdiplomatic(Germany,1); MyCap := FindZoneName( 'Northern France' ); Algeria := FindZoneName( 'Algeria' ); OrderGlobalRouteResources( MyCap, 20 ); OrderGlobalRouteResources( Algeria, 5 ); OrderAutoRouteResources( Algeria, MyCap ); Troops := getzoneresources(MyCap) div 2; If getzoneforcecountdefense(MyCap, True, false, false, true, false, false) < 600 then orderbuildarmy(MyCap, 0, 0, Troops, 0) else orderbuildarmy(MyCap, Troops, 0, 0, 0); DefUnit := -1; AttUnit := -1; Artillery := 0; For i := 0 to Getzoneunitcount(MyCap) - 1 do begin unit := getzoneunit(MyCap, i); Artillery := Artillery + getunitforcecounttype(unit, 1); end; Attack := Artillery >= 25; for i := 0 to NbrUnits - 1 do begin if ( GetUnitOwner( i ) = CurrentPlayer ) then begin uc := GetUnitClass( i ); nCode := GetUnitID( i ); sCode := IntToStr( nCode ); uZone := getunitzone(i); if ( uc = LAND ) then begin defender := getunitforcecounttype(i, 3) > 0; If uZone = MyCap then if defender then begin if DefUnit = -1 then DefUnit := i else OrderUnitMerge( DefUnit, i ); end else begin if AttUnit = -1 then AttUnit := i else OrderUnitMerge( AttUnit, i ); end; If (isnationactive(Germany)) AND (iszoneneighbor(uZone, MyCap)) then begin orderunitmove(i, MyCap) end else if (isnationactive(Germany)) AND (uZone = MyCap) then begin If (NOT defender) AND (Attack) then orderunitinvade(i, findzonename('Germany')); end else begin nTarget := FindClosestEnemyZone( GetUnitZone( i ), 20 ); if ( nTarget >= 0 ) then begin if IsZoneNeighbor( GetUnitZone( i ), nTarget ) then OrderUnitInvade( i, nTarget ) else OrderUnitMove( i, nTarget ); end; end; end else if ( uc = AIR ) then begin if GetZoneOwner( GetUnitZone( i ) ) <> CurrentPlayer then begin if GetZoneForceCount( GetUnitZone( i ), false, true, true, true, true, true ) = 0 then OrderUnitReturnToBase( i ); end else begin If getunitorder(i) <> 0 then begin orderunitreturntobase(i); end else begin If isnationactive(Germany) then begin If uZone <> MyCap then orderunitrebase(i, MyCap) else if attack then orderunitairstrike(i, findzonename('Germany')); end else begin nTarget := FindClosestEnemyZone( GetUnitZone( i ), 99999 ); If (getunitrange(i) >= truedistance(nTarget, uZone)) AND (ntarget <> -1) then orderunitairstrike(i, nTarget) else orderunitrebase(i, MyCap); end; end; end end else if ( uc = SEA ) then begin e := findzonename('Germany'); If e <> -1 then orderunitbombard(i, e); end; end; end;