Как сделать случайные загрузачные экраны?

  • Автор темы Автор темы Ritsy
  • Дата начала Дата начала

Ritsy

Новичок
18 Сен 2024
6
0
Проект
Ragnarok
Сделал я значит следующий код, говорят мне другие челы мол вроде норм, а у меня он нефига не работает, че не так то!!!


<root>
<scripts>
<include src="file://{resources}/scripts/custom_game/custom_loading_screen.js" />
</scripts>
<Panel class="Root">
<Panel id="seq">
<Image id="seq_bg" class="SeqBg" />
</Panel>
</Panel>
</root>

(function() {
var numImages = 3;
var randomIndex = Math.floor(Math.random() * numImages) + 1;

// путь к изображению
var imagePath = "file://{images}/custom_game/loading_screen/loading_screen" + randomIndex + ".png";

// поиск элемента изображения
var bgImage = $.GetContextPanel().FindChildTraverse("seq_bg");
// отладка: вывод информации о пути к изображению и найденном элементе
console.log("Background image path:", imagePath);

if (bgImage) {
bgImage.SetImage(imagePath);
console.log("Successfully set background image:", imagePath);
} else {
console.error("Image element not found! Please check the ID.");
}
})();
 
Сделал я значит следующий код, говорят мне другие челы мол вроде норм, а у меня он нефига не работает, че не так то!!!


<root>
<scripts>
<include src="file://{resources}/scripts/custom_game/custom_loading_screen.js" />
</scripts>
<Panel class="Root">
<Panel id="seq">
<Image id="seq_bg" class="SeqBg" />
</Panel>
</Panel>
</root>

(function() {
var numImages = 3;
var randomIndex = Math.floor(Math.random() * numImages) + 1;

// путь к изображению
var imagePath = "file://{images}/custom_game/loading_screen/loading_screen" + randomIndex + ".png";

// поиск элемента изображения
var bgImage = $.GetContextPanel().FindChildTraverse("seq_bg");
// отладка: вывод информации о пути к изображению и найденном элементе
console.log("Background image path:", imagePath);

if (bgImage) {
bgImage.SetImage(imagePath);
console.log("Successfully set background image:", imagePath);
} else {
console.error("Image element not found! Please check the ID.");
}
})();
Я сделал следующие, и оно выводить в консоль что все нашлось и поставилось, только вот в самой доте 0 изменений.

<root>
<scripts>
<include src="file://{resources}/scripts/custom_game/custom_loading_screen.js" />
</scripts>
<Panel class="Root">
<Panel id="seq">
<Image id="seq_bg" class="SeqBg" />
</Panel>
</Panel>
</root>


(function() {
$.Schedule(0.1, function() {
var images = [
"file://{images}/custom_game/loading_screen/loading_screen5.png",
"file://{images}/custom_game/loading_screen/loading_screen5.png",
"file://{images}/custom_game/loading_screen/loading_screen3.png"
];
$.Msg("Код запущен");
var randomIndex = Math.floor(Math.random() * images.length);
var imagePath = images[randomIndex];
$.Msg("Случайный индекс: " + randomIndex);
$.Msg("Путь к изображению: " + imagePath);
var bgImage = $.GetContextPanel().FindChildInLayoutFile("seq_bg");
if (bgImage) {
$.Msg("Элемент seq_bg найден.");
bgImage.SetImage(imagePath);
$.Msg("Изображение установлено: " + imagePath);
} else {
$.Msg("Ошибка: Панель seq_bg не найдена.");
}
});
})();
 
Стоило бы проверить
  1. Пути
  2. Я не уверен, что setImage умеет в рантайме картинку менять. Может попробовать через css + background image? Я точный синтаксис не помню, но что-то такое
    JavaScript:
    panel.style["background-image"] = "url(" + my_image_url + ")";
    Поправьте, если не прав
 
  • Нравится
Реакции: .фи
Стоило бы проверить
  1. Пути
  2. Я не уверен, что setImage умеет в рантайме картинку менять. Может попробовать через css + background image? Я точный синтаксис не помню, но что-то такое
    JavaScript:
    panel.style["background-image"] = "url(" + my_image_url + ")";
    Поправьте, если не прав
Абсолютно верно.
1727555571953.png
 
Реклама: