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

Hulimontana

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

Hulimontana

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

CryLegion

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

CryLegion

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

LAPKI

Пользователь
26 Окт 2018
56
9
8
20
точно не знаю как поставить вопрос, в общем, для всех кнопок (итерации для кнопок проходят нормально) ставится ивент исходя из индекса последней итерации на 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
22
19
3
Проект
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,222
85
48
20
точно не знаю как поставить вопрос, в общем, для всех кнопок (итерации для кнопок проходят нормально) ставится ивент исходя из индекса последней итерации на 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 уже прибавился, переменная не сохраняет значение внутри функции, а берет уже его из наружной переменной
 
Реклама:
20 Дек 2016
680
97
28
11
Проект
DI:LS
Можно как-то изменить AI дефолтных нейтралов? Им тупо посрать на все ордера, даже на SetAttackCapability(0)
 

LAPKI

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

SniperX

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

SniperX

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

SniperX

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