Урок 3 ( ищем и собираем бонусы ).

Ищем бонусы

Cканирование местности мы уже сделали в предудущем уроке, поэтому будем использовать его результаты.
Используем переменные BulletBonus, RocketBonus и RepairBonus. Запомним их значения в собственные переменные, если они не равны 0 ( т.е. если бонусы вообще были засечены ).

;-------------------------------
If BulletBonus <> 0          ; если радар нашел бонус
  If bul_b% = 0              ; если наша переменная для бонуса равна 0
   bul_b% = BulletBonus      ; заносим бонус в переменную
  EndIf
EndIf
;-------------------------------
If RocketBonus <> 0
  If roc_b% = 0
   roc_b% = RocketBonus
  EndIf
EndIf
;-------------------------------
If RepairBonus <> 0
  If rep_b% = 0
   rep_b% = RepairBonus
  EndIf
EndIf


Собираем бонусы

Теперь, если нам понадобится бонус, мы ищем его уже в собственных переменных и поворачиваем бот на них. Для поворота используем функцию DeltaYaw(entity_1, entity_2) (возвращает угол по оси Y, на который нужно повернуть первый объект, чтобы он смотрел на второй ) :

;-------------------------------
If bullets < 10                         ; если у нас мало патронов
  If bul_b% <> 0                       ; если в переменной есть бонус
    TurnCorpus = DeltaYaw ( corpus%, bul_b% ) ; поворачиваем бот на бонус
  EndIf
EndIf
;-------------------------------
If rockets = 0                          ; если у нас нет ракет
  If roc_b% <> 0
    TurnCorpus = DeltaYaw ( corpus%, roc_b% )
  EndIf
EndIf
;-------------------------------
If MyLives < 5                          ; если наш бот сильно поврежден ( 10 жизней максимум )
  If rep_b% <> 0
    TurnCorpus = DeltaYaw ( corpus%,rep_b% )
  EndIf
EndIf

Приоритеты (какой бонус брать первым) сделайте сами, в зависимости от своей тактики боя.
Этот код поставьте сразу после сканирования радаром.