Простые вопросы #2

Hulimontana

Новичок
19 Апр 2019
6
1
Разобрал чужую кастомку чтобы посмотреть как реализован интерфейс, но столкнулся с такой проблемой - например есть файл стилей dota_hud_health_mana.vcss_c и по коду видно что он нужный, без него ни как, но он нигде не подключается! Я шел абсолютно по всей цепочке подключений всех файлов, искал через нотпад++ по содержимому во всех файлах этой кастомки.
И это не единственный такой файл, их несколько, которые ни где не подключаются, но они важны.
Некоторые файлы отсутствуют, в xml подключается 2 css файла, которых просто нет в указанной директории.
А что самое интересное, если создать карту на основе этой кастомки, то все работает! Как это возможно?
 
Последнее редактирование:
20 Дек 2016
791
120
Некоторые файлы отсутствуют, в xml подключается 2 css файла, которых просто нет в указанной директории.
Ты можешь подключать в xml уже существующие стили (написанные разрабами доты) из pak01_dir
 
  • Нравится
Реакции: Hulimontana

Hulimontana

Новичок
19 Апр 2019
6
1
Ты можешь подключать в xml уже существующие стили (написанные разрабами доты) из pak01_dir
Спасибо! А что с файлами панорамы, которые ни где не подключаются, но они важны? Я реально вчера убил очень много времени на поиски, как же они подключаются и где, искал несколько часов, все перепроверил. В распакованной кастомке чего-то не хватает? Но ведь она работает если запустить.
 

CryLegion

Пользователь
28 Фев 2019
27
1
Подскажите как создать дополнительную панельку в лавке
 

CryLegion

Пользователь
28 Фев 2019
27
1
Подскажите, пожалуйста, как при поведении "DOTA_ABILITY_BEHAVIOR_TOGGLE" менять иконки предмета( вкл. - 1, выкл. - 2)
 

LAPKI

Активный
26 Окт 2018
78
13
точно не знаю как поставить вопрос, в общем, для всех кнопок (итерации для кнопок проходят нормально) ставится ивент исходя из индекса последней итерации на onactivate, а мне надо чтобы ставился ивент по своему индексу, вот цикл, в котором я все это обрабатываю
Код:
counter = 0;
for (tab in tabs) {
              /* тут он берет нужный tab*/  tab.SetPanelEvent("onactivate", function () { /* а вот уже внутри этой функции counter берется с моей последней итерации, в моем случае - 1 */
                    end = 0;
                    if ((counter) * 3 > panels_content_item_row.length) { end = panels_content_item_row.length; } else { end = (counter) * 3; }
                    for (row = (counter - 1) * 3; row < end; row++) {
                        panels_content_item_row[row].AddClass("active");
                    }
                });
                counter = counter + 1;
            }
как это можно поправить?
 

Niker323

Пользователь
25 Сен 2018
32
24
Проект
Element Arena
точно не знаю как поставить вопрос, в общем, для всех кнопок (итерации для кнопок проходят нормально) ставится ивент исходя из индекса последней итерации на onactivate, а мне надо чтобы ставился ивент по своему индексу, вот цикл, в котором я все это обрабатываю
Код:
counter = 0;
for (tab in tabs) {
              /* тут он берет нужный tab*/  tab.SetPanelEvent("onactivate", function () { /* а вот уже внутри этой функции counter берется с моей последней итерации, в моем случае - 1 */
                    end = 0;
                    if ((counter) * 3 > panels_content_item_row.length) { end = panels_content_item_row.length; } else { end = (counter) * 3; }
                    for (row = (counter - 1) * 3; row < end; row++) {
                        panels_content_item_row[row].AddClass("active");
                    }
                });
                counter = counter + 1;
            }
как это можно поправить?
После установки ивентов counter равен кол-ву tab'ов.
Чтобы всё работало как ты хочешь тебе нужно получать индекс в самой функции или передавать индекс в функцию.
Я обычно делаю так:
XML:
Код:
onactivate="OnSelect(1)"
JS:
Код:
function OnSelect(num) {
//num == индекс
}
 

I_GRIN_I

Друзья CG
15 Мар 2016
1,334
99
точно не знаю как поставить вопрос, в общем, для всех кнопок (итерации для кнопок проходят нормально) ставится ивент исходя из индекса последней итерации на onactivate, а мне надо чтобы ставился ивент по своему индексу, вот цикл, в котором я все это обрабатываю
Код:
counter = 0;
for (tab in tabs) {
              /* тут он берет нужный tab*/  tab.SetPanelEvent("onactivate", function () { /* а вот уже внутри этой функции counter берется с моей последней итерации, в моем случае - 1 */
                    end = 0;
                    if ((counter) * 3 > panels_content_item_row.length) { end = panels_content_item_row.length; } else { end = (counter) * 3; }
                    for (row = (counter - 1) * 3; row < end; row++) {
                        panels_content_item_row[row].AddClass("active");
                    }
                });
                counter = counter + 1;
            }
как это можно поправить?
Тебе нужно использовать замыкание. Дело в том, что ты объявляешь counter 1 раз, а функция вызывается, когда этот counter уже прибавился, переменная не сохраняет значение внутри функции, а берет уже его из наружной переменной
 

LAPKI

Активный
26 Окт 2018
78
13
как отключить возможность перемещения по нажатию ПКМ? чтобы выделение героя осталось, но он не реагировал на команду
 

SniperX

Друзья CG
26 Фев 2018
318
32
steamcommunity.com
Проект
Белоозерская Потасовка - Updated
Подскажите, пожалуйста, как при поведении "DOTA_ABILITY_BEHAVIOR_TOGGLE" менять иконки предмета( вкл. - 1, выкл. - 2)
Через SwapAbilities (если не знаешь Lua) (1 скилл тролля в SpellLibrary)
 

SniperX

Друзья CG
26 Фев 2018
318
32
steamcommunity.com
Проект
Белоозерская Потасовка - Updated
Кто-нибудь знает где находится файл addon_english или addon_russian в доте?
 

SniperX

Друзья CG
26 Фев 2018
318
32
steamcommunity.com
Проект
Белоозерская Потасовка - Updated
Как сделать неограниченный пик героев (в herolist.txt -1 не работает)
 
Реклама: