Иконка ресурса

случайная картинка экрана загрузки (скрипт+картинки) ( Interlude random changable Loading Screen ) base version

Нет прав для скачивания

AlhimN1

Друг форума
AlhimN1 добавил(а) новый ресурс:

случайная картинка экрана загрузки (скрипт+картинки) ( Interlude random changable Loading Screen ) - Free for All

для внедрения такого перебора требуется сборка интерфейса(скачать сам сборщик можно в подписи профиля), а именно замена скрипта в данном случае это LoadingWnd_e.uc, имена подгружаемых картинок и в каком паке они должны быть думаю понять не сложно из скрипта.
в архиве добавлен типичный интерфейс.ю с этой заменой. и пак картинок который наскрёб с разных клиентов.

если у вас кастомный то придётся имплементировать.
видео самой работы скрипта

если интересует...

Узнать больше об этом ресурсе...
 

Немного предложений:
Понятно что фор на 100 итераций єто фигня, но можно их оптимизировать, если создать массив текстур в онлоад, например, предварительно затестив их на существование, а потом цикл делать по єтому array.Length.
Т.к. на иле нет листнера сменьі стейта, никто не мешает создать нам своего: в хдат лепим окна прозрачньіе на стейтах чар криейта и чар селекта, в оншоу запускаем рандомайзер лодинг скрина - теперь кастомньій фон будет и в переходе между чар криейтом и селектом, а не только в игру. Модно, богато, а главное - костьілей больше.
Зачем там таймер я не сильно понял, без чтения кода до конца, чем так и не занялся, но увидел что рандомайзер прикручен на рестар ивенте, а таймер в онлоад. И тут интересно вьіходит, ибо рестарт ивент - єто вьіход с геймстейта (ваш кеп), но тогда рандомайзер не должен работать в обатную сторону, т.е. при заходе в игру. Однако, видео показьівает, что он работает. И скорее всего єто из-за того, что таймер 2 раза в секунду не перестает гонять текстурьі, ибо кила я его не вижу. ) Потому предложил бьі к 2 костьілю, сделать рандомайзер на чар криейте, чар селекте и онентергейм стейте. Тогда во всех ситуациях будет смена лодинг скрина и без таймера по кд на фоне.
 
Немного предложений:
Понятно что фор на 100 итераций єто фигня, но можно их оптимизировать, если создать массив текстур в онлоад, например, предварительно затестив их на существование, а потом цикл делать по єтому array.Length.
Т.к. на иле нет листнера сменьі стейта, никто не мешает создать нам своего: в хдат лепим окна прозрачньіе на стейтах чар криейта и чар селекта, в оншоу запускаем рандомайзер лодинг скрина - теперь кастомньій фон будет и в переходе между чар криейтом и селектом, а не только в игру. Модно, богато, а главное - костьілей больше.
Зачем там таймер я не сильно понял, без чтения кода до конца, чем так и не занялся, но увидел что рандомайзер прикручен на рестар ивенте, а таймер в онлоад. И тут интересно вьіходит, ибо рестарт ивент - єто вьіход с геймстейта (ваш кеп), но тогда рандомайзер не должен работать в обатную сторону, т.е. при заходе в игру. Однако, видео показьівает, что он работает. И скорее всего єто из-за того, что таймер 2 раза в секунду не перестает гонять текстурьі, ибо кила я его не вижу. ) Потому предложил бьі к 2 костьілю, сделать рандомайзер на чар криейте, чар селекте и онентергейм стейте. Тогда во всех ситуациях будет смена лодинг скрина и без таймера по кд на фоне.
а я сначало прикрутил к рестарту, а потом ещё добавил рандомайзер))
таймер мне гпт поставил ну главное работает)
всё с костылями как ты любишь))
 
  • Люблю это
Реакции: Rolo
Ну если и оставлять таймер, то хотя бьі останавливать и тригерить его по каким-то якорям, он же просто не прекращает крутиться пока клиент не закроешь, не сказать, что сильно оправданно. )) Там по сути сам таймер всю логику делает. ) Если убрать чек на рестарт - ничего не изменится. )
 
Спасибо за идею!

Я не разбирал весь код, но, по-моему, структура должна быть примерно такой.

C++:
class LoadingWnd_e extends LoadingWnd;

function OnLoad()
{
    RegisterEvent(EV_Restart);
}

function OnEvent(int Event_ID, string param)
{
    if (Event_ID == EV_Restart)
    {
        class'UIAPI_TEXTURECTRL'.static.SetTexture("LoadingWnd.BackTex", "L2loading.loading" $ Right("00" $ Rand(10), 2));
    }
}

defaultproperties{}

PS:
Нашел скрипт LoadingWnd_e в интерфейсе и проверил его работу. Всё отлично — картинка загрузки меняется!

1762286396061.webp
 
Последнее редактирование:
BIT_hack, да, но один раз, во время рестарта. ) А т.е. вьішел с игрьі в чар селект - сменилась картинка, при входе в игру - осталась такой самой, если зайти в чар криейт - тоже не меняется, и при возвращении в селект - опять же останется как бьіла. На иле нет божественного листнера сменьі стейта, потому надо расчехлять костьіли без стьіда и совести.
 
BIT_hack, да, но один раз, во время рестарта. ) А т.е. вьішел с игрьі в чар селект - сменилась картинка, при входе в игру - осталась такой самой, если зайти в чар криейт - тоже не меняется, и при возвращении в селект - опять же останется как бьіла. На иле нет божественного листнера сменьі стейта, потому надо расчехлять костьіли без стьіда и совести.
Точно в интерлюдии нет события на выбор персонажа. Но можно сделать через таймер как в оригинальном файле этой темы.

C++:
class LoadingWnd_e extends LoadingWnd;

function OnLoad()
    {
      RegisterEvent(EV_Restart);
      }

function OnEvent(int Event_ID, string param)
    {
    if ( Event_ID == EV_Restart)
      {
     UpdateBackground();
    class'UIAPI_WINDOW'.static.SetUITimer("LoadingWnd", 1, 1000);
        }
      }

function OnTimer(int TimerID)
    {
    if (TimerID == 1)
      {
        UpdateBackground();
        }
      }

function UpdateBackground()
    {
  class'UIAPI_TEXTURECTRL'.static.SetTexture("LoadingWnd.BackTex", "L2loading.loading" $ Right("00" $ Rand(10), 2));
  class'UIAPI_WINDOW'.static.KillUITimer("LoadingWnd", 1);
      }

defaultproperties{}
 
BIT_hack, а теперь будет как и в оригинале - рестарт ивент по сути лишний, ибо таймер по кд бегает и каждую секунду меняет лодинг скрин. )
 
BIT_hack, а теперь будет как и в оригинале - рестарт ивент по сути лишний, ибо таймер по кд бегает и каждую секунду меняет лодинг скрин. )
Я убиваю таймер сразу как он сменил картинку class'UIAPI_WINDOW'.static.KillUITimer("LoadingWnd", 1);
 
  • Мне нравится
Реакции: Rolo
BIT_hack, а, сорян не заметил. )
Тогда разрешите дое... докопаться до вот єтой части:
function OnEvent(int Event_ID, string param)
{
if ( Event_ID == EV_Restart)
{
UpdateBackground();

function UpdateBackground()
{
class'UIAPI_TEXTURECTRL'.static.SetTexture("LoadingWnd.BackTex", "L2loading.loading" $ Right("00" $ Rand(10), 2));
class'UIAPI_WINDOW'.static.KillUITimer("LoadingWnd", 1); --- вот тут таймера еще нет при вьізове рестарт ивента
}

defaultproperties{}[/CODE]


Оно будет пьітаться убить таймер, которого еще нет. ) Не то чтобьі єто важно бьіло, конечно. :loltt0:
 
BIT_hack, а, сорян не заметил. )
Тогда разрешите дое... докопаться до вот єтой части:
Оно будет пьітаться убить таймер, которого еще нет. )
я знаю можно проверить на существования таймера но похоже за нас это делает движок

Вот можно добавить что бы меняло картинку при первом входе в игру
C++:
function OnLoad()
    {
      RegisterEvent(EV_Restart);
      UpdateBackground();//Добавим что бы меняло при первом входе в игру
      }
 
  • Мне нравится
Реакции: Rolo
Спасибо за идею!

Я не разбирал весь код, но, по-моему, структура должна быть примерно такой.

C++:
class LoadingWnd_e extends LoadingWnd;

function OnLoad()
{
    RegisterEvent(EV_Restart);
}

function OnEvent(int Event_ID, string param)
{
    if (Event_ID == EV_Restart)
    {
        class'UIAPI_TEXTURECTRL'.static.SetTexture("LoadingWnd.BackTex", "L2loading.loading" $ Right("00" $ Rand(10), 2));
    }
}

defaultproperties{}

PS:
Нашел скрипт LoadingWnd_e в интерфейсе и проверил его работу. Всё отлично — картинка загрузки меняется!

Посмотреть вложение 89541
та то я так просто ради интереса попробовал написать

вообще бы конечно к какому то события прикручивать каждую картинку, порталишься к тои - загрузка бая, в лоа - анатарас и тд
 
Все сорян мы забыли про такую функцию как загрузка окна она все решает больше ничего не нужно )))

C++:
class LoadingWnd_e extends LoadingWnd;

function Onshow()
{
    class'UIAPI_TEXTURECTRL'.static.SetTexture("LoadingWnd.BackTex", "L2loading.loading" $ Right("00" $ Rand(10), 2));
}

defaultproperties{   }
 
  • Люблю это
Реакции: Rolo
Назад
Сверху Снизу