Вопрос к имеющим опыт работы с событиями.(Решено! )

  • Автор темы Автор темы xxNpCxx
  • Дата начала Дата начала

xxNpCxx

Активный
16 Окт 2015
85
0
Приветствую. Я уже перепробовал кучу вариантов. Мне нужно чтобы entity ( Область ) реагировала на соприкосновение с ней другой entity(снаряд) .
Важный момент : Этот entity является не героем . Триггеры , которые пробовал : trigger_dota ; trigger_hero . У всех этих триггеров есть события OnStartTouch . Так вот это событие срабатывает только тогда когда в область попадает герой, а мне нужно чтобы оно срабатывало когда туда попадает любой другой entity.

function onHit(trigger)
print("onHit")
end
image.jpg


Добавление проверки на совпадение координат в таймер не предлагать - ресурсозатратно , не красиво , вообще не правильно -)
Маскировку героя под снаряд тоже не предлагать - слишком накручено. должен быть другой способ.

Решили вместе с напарником Ильей -) . Оказалось у триггера ДВОЙНАЯ фильтрация. Изначально выбирается критерий всех активаторов , затем добавляются исключения из них. И если триггер является например "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"
]
 
Последнее редактирование модератором:
Re: Вопрос к имеющим опыт работы с событиями.

Хмммм

А что за идея? Может, можно как-то по другому ее реализовать?
 
Re: Вопрос к имеющим опыт работы с событиями.

Ладно, допустим, ты хочешь следующее:

В зону обзора крипа входит другой крип и тогда первый выдает сообщение в игре: "Hello".


Если я уловил смысл, то сойдемся на этом. Подумаю, как можно это реализовать, если никто другой не придумает быстрее.
 
Последнее редактирование модератором:
Re: Вопрос к имеющим опыт работы с событиями.

Просмотрев все возможные события, что я знаю, мне на ум ничего не приходит, кроме только варианта с касанием юнита: ну, то есть можно перехватить событие атаки на него и что-то сделать в этот момент.
 
Re: Вопрос к имеющим опыт работы с событиями.

Просмотрев все возможные события, что я знаю, мне на ум ничего не приходит, кроме только варианта с касанием юнита: ну, то есть можно перехватить событие атаки на него и что-то сделать в этот момент.

Ладно. Раз недостаточно информации придется раскрыть карты -) . Задача у меня такова. Отловить событие , когда снаряд попадает в зону. Я думал о том чтобы в таймере встроеном проверять позицию снарядов и сравнивать ее с позицией зоны но это мне показалось слишком ресурсоемким .

Еще есть запасной вариант . Написать свой класс на c++ , который будет использован в качестве триггера этой области(entity) .
Опять же это все нехочется делать по той причине что такое событие обязано уже быть в редакторе. Ну слишком оно простое.

Действительно интересно . Почему trigger_dota жестко отлавливает только героев. Есть же другой триггер , который называется trigger_hero....

Еще на ум пришла мысль о том чтобы снаряды сделать героями , но с соответствующей моделью снаряда , запретить выделение снаряда и убрать HUD с верхней панели героев при создании снаряда. Но опять же зачем так усложнять если скорее всего в редакторе должен быть более простой способ.
 
Последнее редактирование модератором:
Re: Вопрос к имеющим опыт работы с событиями.

Я тоже думал, что должна быть галочка у вещей на их дроп, подобно рапире, а нефига подобного.


Слушай, может тебе кнопку в том месте сделать просто?
 
Re: Вопрос к имеющим опыт работы с событиями.

Я тоже думал, что должна быть галочка у вещей на их дроп, подобно рапире, а нефига подобного.


Слушай, может тебе кнопку в том месте сделать просто?

А кнопка включается если в ее области появляется снаряд ? или юнит , неважно что лиж бы не герой. ?
так то мне неважно чем будет являться эта область , я ее все равно маскирую в игре. А на ее месте выставляю декорации.

А что касается рапиры , да. вальв как-то не логично к этому вопросу подошли . взяли забили жестко эту особенность предмета в его описание в текстовом файле. И выходит так что предмет изначально либо выпадает либо нет , а игровые события никак не влияют на это. Я посмотрел твою тему. Мне понравилось решение. И таблицу с моделью с множественным наследованием entity я себе сохранил -) Полезную вещ ты заметил -)
 
Последнее редактирование модератором:
Re: Вопрос к имеющим опыт работы с событиями.

А кнопка включается если в ее области появляется снаряд ? или юнит , неважно что лиж бы не герой. ?
так то мне неважно чем будет являться эта область , я ее все равно маскирую в игре. А на ее месте выставляю декорации.


Да, но ты, вроде бы, как раз это и пытался сделать :D

Просто, смотрел сегодня эту тему, показалось, что может быть тебе полезна.
 
Последнее редактирование модератором:
Re: Вопрос к имеющим опыт работы с событиями.

Если не найдешь возможности активации кнопки по любому касанию, чтобы не только для героев, то я вот сейчас продумываю, как бы замутить пассивку entity, которая отслеживала бы ее координаты. Это, все же, лучше счетчика, если такое возможно.
 
Re: Вопрос к имеющим опыт работы с событиями.

Тут тоже про кнопку, но, похоже она не на земле, а на панели персонажа.
 
Re: Вопрос к имеющим опыт работы с событиями.

[quote author=Илья link=topic=322.msg1751#msg1751 date=1445034410]
Тут тоже про кнопку, но, похоже она не на земле, а на панели персонажа.
[/quote]

Не. Так не получается -) . Я же в начале написал что пробовал уже триггер trigger_hero , и point_teleport . -) Они тоже только героев телепортируют.
 
Re: Вопрос к имеющим опыт работы с событиями.

А у тебя там одна команда игроков или несколько?
 
Re: Вопрос к имеющим опыт работы с событиями.

Если не найдешь возможности активации кнопки по любому касанию, чтобы не только для героев, то я вот сейчас продумываю, как бы замутить пассивку entity, которая отслеживала бы ее координаты. Это, все же, лучше счетчика, если такое возможно.

Можешь не трудиться. Я все равно так врятли сделаю. Это слишком затратный способ. У меня в игре будет куча снарядов , и нужно следить за каждым. Представь сколько тиков будет каждую сотую секунды.
 
Последнее редактирование модератором:
Re: Вопрос к имеющим опыт работы с событиями.

А у тебя там одна команда игроков или несколько?
2 команды. А как это влияет на вопрос ? Разве что мне нужно будет узнать владельца снаряда при попадании в область. Ну это не проблема.
 
Последнее редактирование модератором:
Re: Вопрос к имеющим опыт работы с событиями.

Илья, Мне главное чтобы эта область реагировала на любой entity, а там уже не сложно определить по условию конкретно снаряд.
 
Re: Вопрос к имеющим опыт работы с событиями.

Илья, Мне главное чтобы эта область реагировала на любой entity, а там уже не сложно определить по условию конкретно снаряд.

Да вот, сдается мне, мы вдвоем тут ничего не сообразим: у меня мало опыта.


А про башни - я думал пихнуть под землю башню и отслеживать убийство юнита : D
 
Последнее редактирование модератором:
Re: Вопрос к имеющим опыт работы с событиями.

Мины минера - вот, где можно найти ответ: они ведь entity и они же реагируют на entity.

Осталось лишь найти инфу: источник с описанием способностей мин, т.е. то, как они реагируют на касание.
 
Re: Вопрос к имеющим опыт работы с событиями.

Да вот, сдается мне, мы вдвоем тут ничего не сообразим: у меня мало опыта.


А про башни - я думал пихнуть под землю башню и отслеживать убийство юнита : D

ахах Чувствуется армейская смекалка. хахах Это из раздела как наебать редактор -) . Кстати очень даже неплохой вариант. Просто меня раздражает то что нельзя сделать все по человечески в этом редакторе . у blizzard был намного продуманней редактор. -)
 
Последнее редактирование модератором:
Re: Вопрос к имеющим опыт работы с событиями.

ахах Чувствуется армейская смекалка. хахах Это из раздела как наеб*** редактор -) . Кстати очень даже неплохой вариант. Просто меня раздражает то что нельзя сделать все по человечески в этом редакторе . у blizzard был намного продуманней редактор. -)

Точняк!! Парень: мутишь невидимую мину, кастомную и фигачишь ей взрыв по соприкосновению именно с крипом! Потом ловишь смерть твоего снаряда >< !!!
 
Последнее редактирование модератором:
Re: Вопрос к имеющим опыт работы с событиями.

Мины минера - вот, где можно найти ответ: они ведь entity и они же реагируют на entity.

Осталось лишь найти инфу: источник с описанием способностей мин, т.е. то, как они реагируют на касание.

Кажется я знаю где искать ответ. Ты случайно не знаешь как просмотреть список всех стандартных классов , которые можно присвоить объекту. В их число входит и trigger_dota и prop_static. Думаю там можно найти подходящий класс. Просто когда создаешь объект там в списке не показываются все классы.
 
Последнее редактирование модератором:
Реклама: