- 16 Окт 2015
- 85
- 0
Приветствую. Я уже перепробовал кучу вариантов. Мне нужно чтобы entity ( Область ) реагировала на соприкосновение с ней другой entity(снаряд) .
Важный момент : Этот entity является не героем . Триггеры , которые пробовал : trigger_dota ; trigger_hero . У всех этих триггеров есть события OnStartTouch . Так вот это событие срабатывает только тогда когда в область попадает герой, а мне нужно чтобы оно срабатывало когда туда попадает любой другой entity.
function onHit(trigger)
print("onHit")
end
Добавление проверки на совпадение координат в таймер не предлагать - ресурсозатратно , не красиво , вообще не правильно -)
Маскировку героя под снаряд тоже не предлагать - слишком накручено. должен быть другой способ.
Решили вместе с напарником Ильей -) . Оказалось у триггера ДВОЙНАЯ фильтрация. Изначально выбирается критерий всех активаторов , затем добавляются исключения из них. И если триггер является например "IsRealHero" то автоматически в критерий активаторов попадает только RealHero. Нужно было поменять тип сущности на нужный и делов то. Чтобы в этом разобраться пришлось просмотреть файл dota.fgd и посмотреть как работает фильтрация. gg easy. -)) Всем спасибо!
Вот что помогло разобраться в фильтрации.
Важный момент : Этот entity является не героем . Триггеры , которые пробовал : trigger_dota ; trigger_hero . У всех этих триггеров есть события OnStartTouch . Так вот это событие срабатывает только тогда когда в область попадает герой, а мне нужно чтобы оно срабатывало когда туда попадает любой другой entity.
function onHit(trigger)
print("onHit")
end

Добавление проверки на совпадение координат в таймер не предлагать - ресурсозатратно , не красиво , вообще не правильно -)
Маскировку героя под снаряд тоже не предлагать - слишком накручено. должен быть другой способ.
Решили вместе с напарником Ильей -) . Оказалось у триггера ДВОЙНАЯ фильтрация. Изначально выбирается критерий всех активаторов , затем добавляются исключения из них. И если триггер является например "IsRealHero" то автоматически в критерий активаторов попадает только RealHero. Нужно было поменять тип сущности на нужный и делов то. Чтобы в этом разобраться пришлось просмотреть файл dota.fgd и посмотреть как работает фильтрация. gg easy. -)) Всем спасибо!
Вот что помогло разобраться в фильтрации.
@BaseClass base( teamnumber ) = dota_entity_filter_flags
[
invert_filter_check( boolean ) : "Invert Filter" : "0"
every_unit( boolean ) : "Every Unit" : "0"
UnitName( string ) : "Unit Name" : ""
IsAncient( boolean ) : "IsAncient" : "0"
IsNeutralUnitType( boolean ) : "IsNeutralUnitType" : "0"
IsSummoned( boolean ) : "IsSummoned" : "0"
IsHero( boolean ) : "IsHero" : "0"
IsRealHero( boolean ) : "IsRealHero" : "1"
IsTower( boolean ) : "IsTower" : "0"
IsMechanical( boolean ) : "IsMechanical" : "0"
IsPhantom( boolean ) : "IsPhantom" : "0"
IsIllusion( boolean ) : "IsIllusion" : "0"
IsCreep( boolean ) : "IsCreep" : "0"
IsLaneCreep( boolean ) : "IsLaneCreep" : "0"
]
[
invert_filter_check( boolean ) : "Invert Filter" : "0"
every_unit( boolean ) : "Every Unit" : "0"
UnitName( string ) : "Unit Name" : ""
IsAncient( boolean ) : "IsAncient" : "0"
IsNeutralUnitType( boolean ) : "IsNeutralUnitType" : "0"
IsSummoned( boolean ) : "IsSummoned" : "0"
IsHero( boolean ) : "IsHero" : "0"
IsRealHero( boolean ) : "IsRealHero" : "1"
IsTower( boolean ) : "IsTower" : "0"
IsMechanical( boolean ) : "IsMechanical" : "0"
IsPhantom( boolean ) : "IsPhantom" : "0"
IsIllusion( boolean ) : "IsIllusion" : "0"
IsCreep( boolean ) : "IsCreep" : "0"
IsLaneCreep( boolean ) : "IsLaneCreep" : "0"
]
Последнее редактирование модератором: