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

Reontix

Новичок
12 Май 2021
7
0
Проект
Libyrinth of the Ancients
Как сделать так, чтобы при повышении уровня героя на экране появлялась панорама
 

Bacchus

Пользователь
25 Ноя 2021
17
1
Проект
Gods&Avatars
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

Reontix

Новичок
12 Май 2021
7
0
Проект
Libyrinth of the Ancients
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. ИМХО лучше сделать появление окна при нажатии на кнопочку, а то неожиданно всплывшее окно будет мешать геймплею.
Возможно это покажется глупым, но я не совсем понял как это делать. Можешь чуть по подробнее расписать?
 
Реклама: