CustomGames.ru - Dota 2 пользовательские игры

Слушатели

0 Пользователей и 1 Гость просматривают эту тему.

Онлайн RecoveryIt

  • 72
  • Мощь: 1
Слушатели
« : 15-06-2016, 10:59:22 »
Корректна ли следующая запись?
Код
ListenToGameEvent('dota_player_gained_level', Dynamic_Wrap(GameMode, 'OnPlayerLevelUp'), self)
ListenToGameEvent('dota_player_gained_level', Dynamic_Wrap(GameMode, 'SomeFunction1'), self)
ListenToGameEvent('dota_player_gained_level', Dynamic_Wrap(GameMode, 'SomeFunction2'), self)
А также, если использовать custom_events , как должен выглядеть слушатель?
Есть предположение что так же как и стандартные , но что то не идет, хотя мб я где-то косячу  :-[


Оффлайн CryDeS

  • Друзья CG
  • 1200
  • Мощь: 12
Re: Слушатели
« Ответ #1 : 15-06-2016, 11:02:36 »
Корректна ли следующая запись?
Код
ListenToGameEvent('dota_player_gained_level', Dynamic_Wrap(GameMode, 'OnPlayerLevelUp'), self)
ListenToGameEvent('dota_player_gained_level', Dynamic_Wrap(GameMode, 'SomeFunction1'), self)
ListenToGameEvent('dota_player_gained_level', Dynamic_Wrap(GameMode, 'SomeFunction2'), self)
А также, если использовать custom_events , как должен выглядеть слушатель?
Есть предположение что так же как и стандартные , но что то не идет, хотя мб я где-то косячу  :-[
Код
CustomGameEventManager:RegisterListener("custom_event", Dynamic_Wrap( GameMode,"somefunction"))

Онлайн RecoveryIt

  • 72
  • Мощь: 1
Re: Слушатели
« Ответ #2 : 15-06-2016, 11:09:26 »
Код
CustomGameEventManager:RegisterListener("custom_event", Dynamic_Wrap( GameMode,"somefunction"))

То есть такой же как и для ивентов из панорамы? Спасибо.
А что насчет первого вопроса? Могу я их так использовать?

Оффлайн CryDeS

  • Друзья CG
  • 1200
  • Мощь: 12
Re: Слушатели
« Ответ #3 : 15-06-2016, 11:13:45 »
То есть такой же как и для ивентов из панорамы? Спасибо.
А что насчет первого вопроса? Могу я их так использовать?
Несколько слушателей можешь вполне, а вот для кастомных вроде надо через кастомэвентменеджер

Онлайн RecoveryIt

  • 72
  • Мощь: 1
Re: Слушатели
« Ответ #4 : 15-06-2016, 11:21:49 »
Несколько слушателей можешь вполне, а вот для кастомных вроде надо через кастомэвентменеджер

Я щас чекаю гитхаб PMP от Noya , у него имеется 2 кастомных ивента, вот код который он использует для них:
Код
FireGameEvent( 'ability_values_send', { player_ID = pID, val_1 = 0, val_2 = 0, val_3 = 0, val_4 = 0, val_5 = 0, val_6 = 0 } )
FireGameEvent( 'ability_values_send_items', { player_ID = pID, val_1 = 0, val_2 = 0, val_3 = 0, val_4 = 0, val_5 = 0, val_6 = 0 } )
Как я понял, этими строчками он их запускает вручную. Но чот не могу найти слушатели для них, ибо ни в обычных ListenToGameEvent, ни в CustomGameEvent их нет.

Онлайн RecoveryIt

  • 72
  • Мощь: 1
Re: Слушатели
« Ответ #5 : 15-06-2016, 11:55:39 »
Проверил. Предположение подтвердилось, слушатель для custom_event такой же как и для стандартных - ListenToGameEvent.
С помощью FireGameEvent запускаешь когда нужно, ну и следовательно, функция из слушателя, делает то что ты хочешь.
Общий вид того, что я делал:
Код
"CustomEvents"
{
"test_event"
{
"TestText" "string"
"TestValue" "short"
}
}

Код
ListenToGameEvent("test_event", Dynamic_Wrap(GameMode, 'OnTestEvent'), self)

Код
FireGameEvent('test_event', { TestText = "TEST TEXT FOR EVENT", TestValue = 4 })
Код
function GameMode:OnTestEvent( event )
  local text = event.TestText
  local number = event.TestValue
  DebugPrint(text)
  DebugPrint(number)
end
« Последнее редактирование: 15-06-2016, 11:58:19 от RecoveryIt »

Оффлайн CryDeS

  • Друзья CG
  • 1200
  • Мощь: 12
Re: Слушатели
« Ответ #6 : 15-06-2016, 19:03:11 »
Хорош, держи плюсик за такое дело.