Добавлен N1ghtSiren
Есть некоторые условия, на которых основаны действия всех скиллов. Через эти условия цепляет группу юнитов и накладывает на них эффекты/дамажит/хилит их.
Изначальное:
((constant function IsUnitAliveAndAlly takes unit u,unit s returns boolean
return not IsUnitType(u,UNIT_TYPE_DEAD)and IsUnitAlly(u,GetOwningPlayer(s))
endfunction
endfunction
constant function IsUnitAlive takes unit u returns boolean
return not IsUnitType(u,UNIT_TYPE_DEAD)and pV[GetPlayerId(GetOwningPlayer(u))]
endfunction
))
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
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
))
return not IsUnitType(u,UNIT_TYPE_DEAD)and pV[GetPlayerId(GetOwningPlayer(u))] and GetUnitAbilityLevel(u,'Aloc')<1
endfunction
))
После добавления в любую из этих (и других) функций карта отказывается работать(вылетает в главное меню после попытки захостить)
Прошу помощи у форумчан в этом несложном вопросе.
Прошу помощи у форумчан в этом несложном вопросе.
Принятый ответ
про москитов вот
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Даммиков* = юнитов со способностью Москиты - Aloc
Отредактирован N1ghtSiren
Карта не хочет воспринимать проверку юнита на наличие способности Москиты, хотя синтаксис вроде верен
функция должна возвращать "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
то всё спокойно работает
Отредактирован quq_CCCP
Проверять на 'Avul' глупо, кроме зданий ни у кого нету такой абилки, что мастера клинка, что паладина эта проверка не отсеет.
Еще раз, москиты не попадают в группу, так что проблема где то еще:..
Отредактирован N1ghtSiren
Спасибо за наглядную демонстрацию работы эффекта :3
quq_CCCP, Можете подсказать, какие из локальных переменных необходимо очищать/обнулять и есть ли смысл в call DestroyGroup(g) и set g=null для локальных групп? :d