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

Nova

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

iCrying | DDSuper

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

Nova

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

Nova

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

ZLOY

Администратор
Команда форума
27 Июн 2016
870
147
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
870
147
Очевидно, что ты создал новый листенер и удалил его же , а старый остался как и был
 

ZLOY

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

Nova

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

iCrying | DDSuper

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

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
еще вопрос можно ли ли слушать применение скилов только владельца предмета, или мне самому фильтровать по кастеру
 

iCrying | DDSuper

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