Панорама при повышении уровня

  • Автор темы Автор темы Удалённый пользователь 1742
  • Дата начала Дата начала
  • Официальное уведомление администрации CustomGames.RU
    В связи с масштабным техническим сбоем в инфраструктуре прежнего хостинг-провайдера (Beget), работа форума CustomGames.RU была оперативно перенесена на новую серверную площадку и развёрнута из резервной копии базы данных.

    • Безопасность данных: учётные записи и данные пользователей находятся в полной безопасности. Все пароли и защищаемые параметры хранятся исключительно в криптографически зашифрованном (хэшированном) виде — никаких критических инцидентов для аккаунтов пользователей не произошло.
    • Временные технические ограничения: на этапе синхронизации файлового хранилища часть статических материалов (пользовательские аватары и архивные вложения) временно недоступна. По мере получения доступа к файловым архивам все материалы будут восстановлены в полном объёме.
У

Удалённый пользователь 1742

Guest
Как сделать так, чтобы при повышении уровня героя на экране появлялась панорама
 
1. Создаем панель панорамы https://customgames.ru/forum/threads/panorama-tooltip-panel.2982/
2. Подписываемся на событие в функции InitGameMode() :

Lua:
function MYGAME:InitGameMode()
---------
ListenToGameEvent('dota_player_gained_level', Dynamic_Wrap(MYGAME, 'OnPlayerLevelUp'), self)
-----
end


function MYGAME:OnPlayerLevelUp(keys)
    local player = EntIndexToHScript(keys.player)
    if player and not player:IsNull() then
        CustomGameEventManager:Send_ServerToPlayer(player, "show_my_panel", keys)
    end
end

3. Подписываемся на событие в панораме файле JavaScript:
JavaScript:
    GameEvents.Subscribe( "show_my_panel", ()=>dotaH.FindChildrenWithClassTraverse("stat-tooltip-root")[0].ToggleClass("show") );


P.S. ИМХО лучше сделать появление окна при нажатии на кнопочку, а то неожиданно всплывшее окно будет мешать геймплею.
 
  • Нравится
Реакции: vulkantsk
1. Создаем панель панорамы https://customgames.ru/forum/threads/panorama-tooltip-panel.2982/
2. Подписываемся на событие в функции InitGameMode() :

Lua:
function MYGAME:InitGameMode()
---------
ListenToGameEvent('dota_player_gained_level', Dynamic_Wrap(MYGAME, 'OnPlayerLevelUp'), self)
-----
end


function MYGAME:OnPlayerLevelUp(keys)
    local player = EntIndexToHScript(keys.player)
    if player and not player:IsNull() then
        CustomGameEventManager:Send_ServerToPlayer(player, "show_my_panel", keys)
    end
end

3. Подписываемся на событие в панораме файле JavaScript:
JavaScript:
    GameEvents.Subscribe( "show_my_panel", ()=>dotaH.FindChildrenWithClassTraverse("stat-tooltip-root")[0].ToggleClass("show") );


P.S. ИМХО лучше сделать появление окна при нажатии на кнопочку, а то неожиданно всплывшее окно будет мешать геймплею.
Возможно это покажется глупым, но я не совсем понял как это делать. Можешь чуть по подробнее расписать?
 
Реклама: