Этот скрипт эмулирует то, что юнит может кастовать.
Если кастовать, то вызовется !?BG с параметром действия 10 (как и должно быть)
Использование: В любой момент установи переменную v1234 на одно из следующих значений:
0: Колдовать нельзя
1: Колдовать можно на союзников
2: Колдовать можно на противников
3: Колдовать можно на всех.
Если требуется чтобы заклинание можно было использовать не на всех существ (например, исключить осадные орудия), то придется прописать дополнительно
Код
Используемые переменные: v1234 - Класс заклинания
v1235 - Текущая цель для заклинания
!?MM0; Водим мышкой по экрану битвы
!!FU27830:P?y1; Вызываем функцию, получаем результат
!!UN&v1235=-1/y1>-1:R5/3/0; Курсор меняем на анимированный спелбук если колдовать можно
!!VRz1&y1>-1:S^Сотворить заклинание^; Устанавливаем нужный текст
!!MM&y1>-1:Mz1;
!!UN&v1235>-1/y1=-1:R5/0/0; Или на стандартный если нельзя
!!VRv1235:Sy1; Устанавливаем новую цель
!?FU27830;
!!VRx1:S-1; Результат по умолчанию - -1 (цели нет)
!!MM:D?y1; Получаем номер клетки куда навели мышь
!!FU|y1<0/y1>188:E; Выход если некорректный номер клетки
!!BU:Ey1/?y2; Получаем номер монстра в этой клетке
!!BG:N?y3; Получаем номер текущего активного монстра
!!FU|y2=-1/y2=y3:E; Если монстра под мышкой нет или навели на себя то выходим
!!BMy2:I?y4; За кого играет цель?
!!BMy3:I?y5; За кого играет кастер?
!!VRy6:Sv1234:2; Можно ли кастовать на врагов?
!!VRy7:Sv1234%2; Можно ли кастовать на своих?
!!FU&y4=y5/y7=0:E; Выходим если навели на своего, а низя
!!FU&y4<>y5/y6=0:E; Выходим если навели на врага, а низя
* Ура! Можно колдовать!
!!FU27831:Py3/y2/?y8; Дополнительная проверка
!!VRx1&y8=1:Sy2;
!?FU27831; Дополнительная проверка можно ли колдовать.
* Эту функцию надо реализовать самому.
* x1 - кто колдует, x2 - на кого колдуют
* Вернуть результат в x3 - вернуть 1 если колдовать можно.
* Так например можно запретить колдовать на осадные орудия или иммунных существ
!!VRx3:S1; Разрешаем колдовать на всех!
!?CM4&v1235>-1; Щелкнули на поле боя - колдуем?
!!CM:S?y1D?y2; Как щелкнули? Куда?
!!FU&y1<>12:E; Выходим если не нажатие левой кнопкой мыши
!!CM:R0; Отменяем стандартную реакцию
!!BU:Ey2/?y3; Получаем номер монстра в этой клетке
!!BG:Dy2S-1Ey3A10; Колдуем!
!?BG0; Любое действие
!!VRv1234:S0;
!!VRv1235:S0; Сбрасываем значения переменных
v1235 - Текущая цель для заклинания
!?MM0; Водим мышкой по экрану битвы
!!FU27830:P?y1; Вызываем функцию, получаем результат
!!UN&v1235=-1/y1>-1:R5/3/0; Курсор меняем на анимированный спелбук если колдовать можно
!!VRz1&y1>-1:S^Сотворить заклинание^; Устанавливаем нужный текст
!!MM&y1>-1:Mz1;
!!UN&v1235>-1/y1=-1:R5/0/0; Или на стандартный если нельзя
!!VRv1235:Sy1; Устанавливаем новую цель
!?FU27830;
!!VRx1:S-1; Результат по умолчанию - -1 (цели нет)
!!MM:D?y1; Получаем номер клетки куда навели мышь
!!FU|y1<0/y1>188:E; Выход если некорректный номер клетки
!!BU:Ey1/?y2; Получаем номер монстра в этой клетке
!!BG:N?y3; Получаем номер текущего активного монстра
!!FU|y2=-1/y2=y3:E; Если монстра под мышкой нет или навели на себя то выходим
!!BMy2:I?y4; За кого играет цель?
!!BMy3:I?y5; За кого играет кастер?
!!VRy6:Sv1234:2; Можно ли кастовать на врагов?
!!VRy7:Sv1234%2; Можно ли кастовать на своих?
!!FU&y4=y5/y7=0:E; Выходим если навели на своего, а низя
!!FU&y4<>y5/y6=0:E; Выходим если навели на врага, а низя
* Ура! Можно колдовать!
!!FU27831:Py3/y2/?y8; Дополнительная проверка
!!VRx1&y8=1:Sy2;
!?FU27831; Дополнительная проверка можно ли колдовать.
* Эту функцию надо реализовать самому.
* x1 - кто колдует, x2 - на кого колдуют
* Вернуть результат в x3 - вернуть 1 если колдовать можно.
* Так например можно запретить колдовать на осадные орудия или иммунных существ
!!VRx3:S1; Разрешаем колдовать на всех!
!?CM4&v1235>-1; Щелкнули на поле боя - колдуем?
!!CM:S?y1D?y2; Как щелкнули? Куда?
!!FU&y1<>12:E; Выходим если не нажатие левой кнопкой мыши
!!CM:R0; Отменяем стандартную реакцию
!!BU:Ey2/?y3; Получаем номер монстра в этой клетке
!!BG:Dy2S-1Ey3A10; Колдуем!
!?BG0; Любое действие
!!VRv1234:S0;
!!VRv1235:S0; Сбрасываем значения переменных