Выключить слушатель как?

Nova

Пользователь
11 Янв 2020
16
0
Проект
Замес в туалете 322
StopListeningToAllGameEvents (что сюда?)
StopListeningToGameEvent (что сюда?)
и в чем отличие
функцию слушателя я наименовать смог через Dynamic_Wrap получается
 
Последнее редактирование:

DDSuper

Друзья CG
31 Май 2019
405
57
Очевидно что первое останавливает все прослушаемые тобой ивенты без аргументов
Второй уже конкретный останавливает который ты указал внутри функции как аргумент
 
  • Нравится
Реакции: Nova

Nova

Пользователь
11 Янв 2020
16
0
Проект
Замес в туалете 322
Очевидно что первое останавливает все прослушаемые тобой ивенты без аргументов
Второй уже конкретный останавливает который ты указал внутри функции как аргумент
останавливает все слушатели , прям все в игре. или в этом файле.
а во втором я указывал аргументом но чет не пашет, как примерно должно выглядеть?
 

Nova

Пользователь
11 Янв 2020
16
0
Проект
Замес в туалете 322
dota_player_used_ability
слушатель например
останавливает все слушатели , прям все в игре. или в этом файле.
а во втором я указывал аргументом но чет не пашет, как примерно должно выглядеть?
 

ZLOY

Администратор
Команда форума
27 Июн 2016
953
182
Lua:
local listenerID = ListenToGameEvent(...)
StopListeningToGameEvent(listenerID)

ListenToGameEvent("dota_player_used_ability", function, unit)
ListenToGameEvent("entity_killed", function, unit)
ListenToGameEvent("dota_item_picked_up", function, unit)
StopListeningToAllGameEvents(unit)
 

Nova

Пользователь
11 Янв 2020
16
0
Проект
Замес в туалете 322
Lua:
local listenerID = ListenToGameEvent(...)
StopListeningToGameEvent(listenerID)

ListenToGameEvent("dota_player_used_ability", function, unit)
ListenToGameEvent("entity_killed", function, unit)
ListenToGameEvent("dota_item_picked_up", function, unit)
StopListeningToAllGameEvents(unit)
При выкладывании предмета не выключился слушатель (обрезано скинул) (в консоли нет ошибок)

function modifier_item_philosophers:OnCreated( kv )
ListenToGameEvent( 'dota_player_used_ability', Dynamic_Wrap(modifier_item_philosophers, "PHILO"), self)
end

function modifier_item_philosophers:OnRemoved( kv )
local Id2=ListenToGameEvent( 'dota_player_used_ability', Dynamic_Wrap(modifier_item_philosophers, "PHILO"), self)
StopListeningToGameEvent(Id2)
end
 
Последнее редактирование:

ZLOY

Администратор
Команда форума
27 Июн 2016
953
182
Очевидно, что ты создал новый листенер и удалил его же , а старый остался как и был
 

ZLOY

Администратор
Команда форума
27 Июн 2016
953
182
Используй StopListeningToAllGameEvents(self) чтобы не морочить голову
 

Nova

Пользователь
11 Янв 2020
16
0
Проект
Замес в туалете 322
Используй StopListeningToAllGameEvents(self) чтобы не морочить голову
ну вообще нет, я выложил предмет, поднял, стало 2 листенера. А StopListeningToAllGameEvents не подходит, если он выключать будет все слушатели на персе
 

DDSuper

Друзья CG
31 Май 2019
405
57
При выкладывании предмета не выключился слушатель (обрезано скинул) (в консоли нет ошибок)

function modifier_item_philosophers:OnCreated( kv )
ListenToGameEvent( 'dota_player_used_ability', Dynamic_Wrap(modifier_item_philosophers, "PHILO"), self)
end

function modifier_item_philosophers:OnRemoved( kv )
local Id2=ListenToGameEvent( 'dota_player_used_ability', Dynamic_Wrap(modifier_item_philosophers, "PHILO"), self)
StopListeningToGameEvent(Id2)
end
self.listener = ListenToGameEvent( 'dota_player_used_ability', Dynamic_Wrap(modifier_item_philosophers, "PHILO"), self)
StopListeningToGameEvent(self.listener)
 

Nova

Пользователь
11 Янв 2020
16
0
Проект
Замес в туалете 322
ААААА, всё я понял. оказывается если я назвал переменную также как слушатель
self.listener = ListenToGameEvent( 'dota_player_used_ability', Dynamic_Wrap(modifier_item_philosopherss, "PHILO"), self)
то включается слушатель, кто бы мог подумать.
 

Nova

Пользователь
11 Янв 2020
16
0
Проект
Замес в туалете 322
еще вопрос можно ли ли слушать применение скилов только владельца предмета, или мне самому фильтровать по кастеру
 

DDSuper

Друзья CG
31 Май 2019
405
57
ААААА, всё я понял. оказывается если я назвал переменную также как слушатель
self.listener = ListenToGameEvent( 'dota_player_used_ability', Dynamic_Wrap(modifier_item_philosopherss, "PHILO"), self)
то включается слушатель, кто бы мог подумать.
Просто вместо local прописать self тобишь это переменная скила/модификатора
 
Реклама: