Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • 0
matiqof

Создание меняющихся экранов загрузки

Помогите пожалуйста, у меня есть несколько .paa фотокарточек, мне нужно, чтобы они менялись. То есть ты загружаешься на сервер, у тебя одна картника, вышел, снова зашел - другая картинка. У меня получилось только в каждой из функций Show(), сделать свой загрузочный экран, но он должен быть рандомным только один раз и во всех функциях Show() одинаковым. Есть вот такой код:

modded class LoadingScreen
{
	ref TStringArray ScreenMass = {
		"MOD\\data\\DayZ_BackGround.paa",
        "MOD\\data\\DayZ_BackGround_v2.paa",
        "MOD\\data\\DayZ_BackGround_v3.paa"
    };

	override void Show()
	{		
		string preel = "MOD\\data\\DayZ_BackGround_v3.paa"; //Тут должен быть один из экранов из ScreenMass выше
		m_ImageWidgetBackground.LoadMaskTexture("MOD/data/ls_mask.paa");
		m_ImageWidgetBackground.LoadImageFile(0, preel);
        m_ImageLogoMid.Show(false);
		m_ImageLogoCorner.Show(false);	    	
		m_ModdedWarning.Show(false);
		super.Show();
	}
}


modded class LoginTimeBase extends UIScriptedMenu
{
    override void Show()
    {
        super.Show();
        if (layoutRoot)
        {
            string preel = screen; //Тут должен быть один из экранов из ScreenMass выше
            ImageWidget background = ImageWidget.Cast( layoutRoot.FindAnyWidget("Background"));
            background.LoadImageFile(0, preel);  
        }
    }
}


modded class LoginQueueBase extends UIScriptedMenu
{
    override void Show()
    {
        super.Show();
        if (layoutRoot)
        {
            string preel = screen; //Тут должен быть один из экранов из ScreenMass выше
            ImageWidget background = ImageWidget.Cast( layoutRoot.FindAnyWidget("Background"));
            background.LoadImageFile(0, preel);  
        }
    }
}

 

Изменено пользователем matiqof (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0

есть такая штука сделанная уже на карте Припять, есть в мастерской. я когда то там подглядывал и делал свое, но делал и не доделал... мб ты доделаешь..)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MagicByte MagicByte MagicByte
  • 1
class LS
{
    private    static    string    m_ScreenPath    =    "MOD\\data\\DayZ_BackGround_v";    //    Путь к изображениям.( Имена одинаковые, кроме цифры в конце )
    private    static    int        m_ScreenCount    =    5;                                //    Кол-во изображений.
    private    static    string    m_OldScreen        =    "";
    
    static string GetRandomScreen()
    {
        m_OldScreen    =    string.Format( "%1%2.paa",m_ScreenPath,Math.RandomInt( 0, m_ScreenCount ) );
        return GetOldScreen();
    }
    
    static string GetOldScreen()
    {
        return m_OldScreen;
    }
}

modded class LoadingScreen
{
    override void Show()
    {        
        m_ImageWidgetBackground.LoadMaskTexture( "MOD/data/ls_mask.paa" );
        m_ImageWidgetBackground.LoadImageFile(0, LS.GetRandomScreen() );
        m_ImageLogoMid.Show( false );
        m_ImageLogoCorner.Show( false );            
        m_ModdedWarning.Show( false );
        super.Show();
    }
}

modded class LoginTimeBase extends UIScriptedMenu
{
    override void Show()
    {
        super.Show();
        
        if (layoutRoot )
        {
            ImageWidget background    =    ImageWidget.Cast( layoutRoot.FindAnyWidget( "Background" ) );
            background.LoadImageFile( 0, LS.GetOldScreen() );  
        }
    }
}


modded class LoginQueueBase extends UIScriptedMenu
{
    override void Show()
    {
        super.Show();
        
        if ( layoutRoot )
        {
            ImageWidget background = ImageWidget.Cast( layoutRoot.FindAnyWidget( "Background" ) );
            background.LoadImageFile( 0, LS.GetOldScreen() );  
        }
    }
}

 

Изменено пользователем NoNameUltima (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 1

или так
 

class LS
{
    private    static    string    m_ScreenPath    =    "MOD\\data\\DayZ_BackGround_v";    //    Путь к изображениям.( Имена одинаковые, кроме цифры в конце )
    private    static    int        m_ScreenCount    =    5;                                //    Кол-во изображений.
    private    static    string    m_OldScreen        =    "";
    
    static string GetRandomScreen()
    {
        m_OldScreen    =    string.Format( "%1%2.paa",m_ScreenPath,Math.RandomInt( 0, m_ScreenCount ) );
        return m_OldScreen;
    }
    
    static void SetBackground( Widget v_Widget )
    {
        ImageWidget v_ImageWidget;
        
        if ( !v_Widget )
        {
            return;
        }
        v_ImageWidget    =    ImageWidget.Cast( v_Widget.FindAnyWidget( "Background" ) );
        if ( !v_ImageWidget )
        {
            return;
        }
        v_ImageWidget.LoadImageFile( 0, m_OldScreen );          
    }
}

modded class LoadingScreen
{
    override void Show()
    {        
        m_ImageWidgetBackground.LoadMaskTexture( "MOD/data/ls_mask.paa" );
        m_ImageWidgetBackground.LoadImageFile( 0, LS.GetRandomScreen() );
        m_ImageLogoMid.Show( false );
        m_ImageLogoCorner.Show( false );            
        m_ModdedWarning.Show( false );
        super.Show();
    }
}

modded class LoginTimeBase extends UIScriptedMenu
{
    override void Show()
    {
        super.Show();
        
        LS.SetBackground( layoutRoot );
    }
}


modded class LoginQueueBase extends UIScriptedMenu
{
    override void Show()
    {
        super.Show();
        
        LS.SetBackground( layoutRoot );
    }
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
background.LoadImageFile(0, preel); 

номер картинки здесь вроде менять можно, но для этого надо их сформировать заранее как-то

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 час назад, 123new сказал:

background.LoadImageFile(0, preel);


background.LoadImageFile(0, preel); 

номер картинки здесь вроде менять можно, но для этого надо их сформировать заранее как-то

Это понятно, я и спрашиваю, как их возможно сформировать

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
36 минут назад, matiqof сказал:

Это понятно, я и спрашиваю, как их возможно сформировать

dayz tools, workbench, все что могу сказать. ПОмнится делать надо Imageset. Как - я пожалуй тоже посижу на лавочке, ответа послушаю более грамматного, чем сам когда-то накликал случайно)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
5 часов назад, Elk сказал:

есть такая штука сделанная уже на карте Припять, есть в мастерской. я когда то там подглядывал и делал свое, но делал и не доделал... мб ты доделаешь..)

Там немногно не то, что мне надо, там меняется экран на разных стадиях загрузки, когда идет полоска загрузки - один экран, когда идет время загрузки - другой экран, мне надо, чтобы на этих стадиях он был одинаков, но был разный при перезаходе в игру

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

    static int TotalBackgroundsNumber;
    static int RandomBackgroundNumber;
    ImageWidget m_Loading_aod;

////////////////////////////////////////////

m_Loading_aod = ImageWidget.Cast( m_WidgetRoot.FindAnyWidgetById(2729) );
        m_Loading_aod.LoadImageFile( 0, GetRandomLoadingBackground() );
///////////////////////////////////////////

static string GetRandomLoadingBackground()
    {
        TStringArray backgrounds = new TStringArray;
        backgrounds.Insert("MainMenu/data/Loadingscreen.edds");
        backgrounds.Insert("MainMenu/data/Loadingscreen2.edds");
        backgrounds.Insert("MainMenu/data/Loadingscreen3.edds");
        //backgrounds.Insert("LoadingScreen/data/2.edds");
        
        
        TotalBackgroundsNumber = backgrounds.Count();
        RandomBackgroundNumber = Randomer(0, (TotalBackgroundsNumber - 1));
            
         return backgrounds[RandomBackgroundNumber];
    }



Если сам не додумаешься сам то отпиши мне в дискорд.
Skar713#5961

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Всем привет. Подскажите пожалуйста, у кого то есть готовое решение?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Вот спасибо люди добрые!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
7 часов назад, NoNameUltima сказал:

class LS { private static string m_ScreenPath = "MOD\\data\\DayZ_BackGround_v"; // Путь к изображениям.( Имена одинаковые, кроме цифры в конце ) private static int m_ScreenCount = 5; // Кол-во изображений. private static string m_OldScreen = ""; static string GetRandomScreen() { m_OldScreen = string.Format( "%1%2.paa",m_ScreenPath,Math.RandomInt( 0, m_ScreenCount ) ); return GetOldScreen(); } static string GetOldScreen() { return m_OldScreen; } } modded class LoadingScreen { override void Show() { m_ImageWidgetBackground.LoadMaskTexture( "MOD/data/ls_mask.paa" ); m_ImageWidgetBackground.LoadImageFile(0, LS.GetRandomScreen() ); m_ImageLogoMid.Show( false ); m_ImageLogoCorner.Show( false ); m_ModdedWarning.Show( false ); super.Show(); } } modded class LoginTimeBase extends UIScriptedMenu { override void Show() { super.Show(); if (layoutRoot ) { ImageWidget background = ImageWidget.Cast( layoutRoot.FindAnyWidget( "Background" ) ); background.LoadImageFile( 0, LS.GetOldScreen() ); } } } modded class LoginQueueBase extends UIScriptedMenu { override void Show() { super.Show(); if ( layoutRoot ) { ImageWidget background = ImageWidget.Cast( layoutRoot.FindAnyWidget( "Background" ) ); background.LoadImageFile( 0, LS.GetOldScreen() ); } } }


class LS
{
    private    static    string    m_ScreenPath    =    "MOD\\data\\DayZ_BackGround_v";    //    Путь к изображениям.( Имена одинаковые, кроме цифры в конце )
    private    static    int        m_ScreenCount    =    5;                                //    Кол-во изображений.
    private    static    string    m_OldScreen        =    "";
    
    static string GetRandomScreen()
    {
        m_OldScreen    =    string.Format( "%1%2.paa",m_ScreenPath,Math.RandomInt( 0, m_ScreenCount ) );
        return GetOldScreen();
    }
    
    static string GetOldScreen()
    {
        return m_OldScreen;
    }
}

modded class LoadingScreen
{
    override void Show()
    {        
        m_ImageWidgetBackground.LoadMaskTexture( "MOD/data/ls_mask.paa" );
        m_ImageWidgetBackground.LoadImageFile(0, LS.GetRandomScreen() );
        m_ImageLogoMid.Show( false );
        m_ImageLogoCorner.Show( false );            
        m_ModdedWarning.Show( false );
        super.Show();
    }
}

modded class LoginTimeBase extends UIScriptedMenu
{
    override void Show()
    {
        super.Show();
        
        if (layoutRoot )
        {
            ImageWidget background    =    ImageWidget.Cast( layoutRoot.FindAnyWidget( "Background" ) );
            background.LoadImageFile( 0, LS.GetOldScreen() );  
        }
    }
}


modded class LoginQueueBase extends UIScriptedMenu
{
    override void Show()
    {
        super.Show();
        
        if ( layoutRoot )
        {
            ImageWidget background = ImageWidget.Cast( layoutRoot.FindAnyWidget( "Background" ) );
            background.LoadImageFile( 0, LS.GetOldScreen() );  
        }
    }
}

 

Если я все правильно понял, из мода пустышки (шаблона) мы редактируем фаил Loadingscreen.pbo в нем Loadingscreen.с . В нем 500 строк. Эти записи мы добавляем или заменяем какую то часть? Заранее прошу прощения, только учусь. Просидел 4 часа и так не вдуплил как привязать эти записи. Пересмотрел 1000 гайдов как меняют фаил картинки. С этим как раз вопросов нет. Картинки уже подготовлены и переконвертированы. Вопрос. Эти записи это к добавлению в фаил, частичной замене или полной замене. Я вообще тот фаил ковыряю?)))) Если не сложно объясните для деревянных как я. Возможно многим полезно будет. Так вроде все понятно с записями, но куда их внедрить?

Изменено пользователем Sklif1985 (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.

Поддержка