Есть некоторые условия, на которых основаны действия всех скиллов. Через эти условия цепляет группу юнитов и накладывает на них эффекты/дамажит/хилит их.
Изначальное:
((constant function IsUnitAliveAndAlly takes unit u,unit s returns boolean
return not IsUnitType(u,UNIT_TYPE_DEAD)and IsUnitAlly(u,GetOwningPlayer(s))
endfunction
constant function IsUnitAlive takes unit u returns boolean
return not IsUnitType(u,UNIT_TYPE_DEAD)and pV[GetPlayerId(GetOwningPlayer(u))]
endfunction
))
После добавления условия о невыделяемости (чтобы не цепляло лишние даммики)
Клац:
((constant function IsUnitAliveAndAlly takes unit u,unit s returns boolean
return not IsUnitType(u,UNIT_TYPE_DEAD)and IsUnitAlly(u,GetOwningPlayer(s))and GetUnitAbilityLevel(u,'Aloc')<1
endfunction
constant function IsUnitAlive takes unit u returns boolean
return not IsUnitType(u,UNIT_TYPE_DEAD)and pV[GetPlayerId(GetOwningPlayer(u))] and GetUnitAbilityLevel(u,'Aloc')<1
endfunction
))
После добавления в любую из этих (и других) функций карта отказывается работать(вылетает в главное меню после попытки захостить)
Прошу помощи у форумчан в этом несложном вопросе.

Принятый ответ

про москитов вот
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
17
6 лет назад
0
Как показывает практика, на даммиках появляются эффекты и их уничтожает спеллами, которые напрямую убивают юнитов (не через дамаг) функцией GroupEnumUnitsInRange()
Даммиков* = юнитов со способностью Москиты - Aloc
0
32
6 лет назад
0
PyCCKuu_4eJl, скорее на мертвых и так далее, москиты не попадают в групуу при пике в области.
0
17
6 лет назад
Отредактирован N1ghtSiren
0
Это не отменяет главной проблемы :d
Карта не хочет воспринимать проверку юнита на наличие способности Москиты, хотя синтаксис вроде верен
функция должна возвращать "True":
return not IsUnitType(u,UNIT_TYPE_DEAD) юнит НЕ мёртв = да
IsUnitAlly(u,GetOwningPlayer(s)) юнит дружественен к кастеру = да
GetUnitAbilityLevel(u,'Aloc')<1 абилка Москиты ниже нуля (отсутствует) = да
=== возвращает да
но при этом если добавить проверку на москитов вот сюда:
function IsUnitAliveAndEnemyNotAvul takes unit u,unit s returns boolean
return UnitAlive(u)and IsUnitEnemy(u,GetOwningPlayer(s))and GetUnitAbilityLevel(u,'Avul')==0 and GetUnitAbilityLevel(u,'Aloc')==0
endfunction
то всё спокойно работает
1
32
6 лет назад
Отредактирован quq_CCCP
1
PyCCKuu_4eJl, кривые руки? Или сборка редактора хз откуда?
Проверять на 'Avul' глупо, кроме зданий ни у кого нету такой абилки, что мастера клинка, что паладина эта проверка не отсеет.
Еще раз, москиты не попадают в группу, так что проблема где то еще:..
Загруженные файлы
0
17
6 лет назад
Отредактирован N1ghtSiren
0
quq_CCCP, на 'Avul' проверяется для того, чтобы спеллы, так или иначе двигающие/перекрашивающие/оглушающие/поджигающие/и тд цель не влияли на нипов в городах, окружение типо выделяемого окружения - оленей, рыб, собак и тд...
Спасибо за наглядную демонстрацию работы эффекта :3
quq_CCCP, Можете подсказать, какие из локальных переменных необходимо очищать/обнулять и есть ли смысл в call DestroyGroup(g) и set g=null для локальных групп? :d
Загруженные файлы
0
32
6 лет назад
0
PyCCKuu_4eJl, ну разумеется нужно удалять и очищать группу, а так же обнулять локалку.
Для мгновенных дейсвтий, не нужно создавать локальную группу, достаточно одной глобальной группы, которую нужно очищать перед использованием.
0
27
6 лет назад
Отредактирован MpW
0
про москитов вот
Принятый ответ
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.