XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
Игнорировать событие
Я сделал система в ходе которой вызывается событие Юнит теряет\получает предмет. Из за этого моя система очень часто глючит тк сторонние триггеры работающие на это событие сбивают алгоритм системы. Вопрос : можно ли избежать вызова этого события ?
Старый 27.09.2008, 19:30
__Dark Lord__

offline
Опыт: 5,262
Активность:
Можно его не обрабатывать)
И можно поподробнее про сторонние тригеры...
Старый 27.09.2008, 19:37
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
Сторонние триггеры которые юзают это событие могут изменять передаваемый предмет что мне совершенно не нужно при передаче его между дамми - юнитами. Не обрабатывать нельзя тк я не могу отслеживать все чужие триггеры.
Старый 27.09.2008, 19:41
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Избежать события нельзя, если, конечно, не совершать соответствующего действия.
Отключай "сторонние триггеры" перед тем, как убираешь/добавляешь предмет, а затем включай их. Либо ставь условие у "сторонних триггеров", например, что юнит, теряющий предмет, не дамми.
Старый 27.09.2008, 19:42
J
expert
offline
Опыт: 48,447
Активность:
PlayerDark сделай какуюнибудь булевую глобальную переменую, и нацепи на триггер событие чтобы эта переменая была ровна false
и когда в стороних триггерах используеш действия типо дать юниту предмет, и не хочеш чтобы выполнялся триггер то перед дачей предмета устанавливай переменую в true а после в false
Старый 27.09.2008, 19:44
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
Я так и пытался делать но мне это показалось слишком геморно. Вобще можно ли изменить механизм передачи предмета так что бы событие не срабатывало ?
Старый 27.09.2008, 19:44
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
или, как вариант, сделать в сторонних триггерах проверку на тип юнита
Старый 27.09.2008, 19:46
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
Jon те событие отключить нельзя никак.
Старый 27.09.2008, 19:46
J
expert
offline
Опыт: 48,447
Активность:
какое событие?
триггер не выполницо и все будет хорошо в чем проблемо?
я несолько раз сталкивался с этой проблемой когда делал инвентарь
Старый 27.09.2008, 19:46
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
Суть проблемы в том что у меня есть несколько систем каждая из которых юзает этот эвент. Некоторые из этих систем создают динамические триггеры с этим событием. При этом системы начинают перекрывать друг друга в результате чего все аццко глючит.Jon, Van Damm по видимому придется редактировать все системы добавляя туда эту проверку. В том числе и чужие.

PlayerDark добавил:
Jon я тоже делаю инвентарь. У меня есть несколько сумок - юнитов (ну можно конечно и без них но это уже тема) и юнит к которому привязаны эти сумки. И есть допустим система сложения зарядов которая контролирует сбрасвание предметов (по одному заряду) в рез - те чего нормальная передача предметов между сумкой и юнитом становится невозможной...
Старый 27.09.2008, 19:53
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
Некоторые из этих систем создают динамические триггеры с этим событием. При этом системы начинают перекрывать друг друга в результате чего все аццко глючит

ну я же сказал, когда создаются динамические триггеры вешай на них условие чтобы например булевая переменая была ровна false, а когда передаеш предметы между сумкой и юнитом то ставь эту переменую в true, и сразу же потом в false, в результате триггер не выполницо и нечего не збойнёт...
Старый 27.09.2008, 20:02
adic3x

offline
Опыт: 108,439
Активность:
ну ваши системы тупо конфликтуют
хм, оно же потоки при получение итема пересекаються? тогда булевой все решается... или проверкой на юнит тип
ну а в идеале все системы надо обьеденять, переписывать и подгонять, т.е. что бы тригер был один на полученние предмета и он все контролировал
Старый 28.09.2008, 18:59
NETRAT

offline
Опыт: 83,712
Активность:
либо флаг (аки булева переменная) либо вручную отключать триггеры
Старый 29.09.2008, 11:15
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 04:21.