Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
Tawean

menu.layout (Предупреждение)

Решил я убрать предупреждение об использовании модифированной версии от богемии. 


Шаг первый - >  Очищаем MultilineTextWidgetClass ModdedWarning из main_menu.layout   (text "#str_modded_version_warning0" - как раз текст)

Шаг второй -> Очищаем  m_ModdedWarning  = TextWidget.Cast( layoutRoot.FindAnyWidget( "ModdedWarning" ) );  в main.menu.c (5_Mission)

Шаг третий -> Впихиваем к себе в мод по всем правилам два вышеперечисленных файлика.

 

??? Надпись остаётся. WTF?

 

Чёт не пойму, что не так? UPD: Пути в main.menu прописаны и новый layout читаем! Все изменения, что внесены видны, но надпись чёт есть.

Edited by Tawean (see edit history)

Share this post


Link to post
Share on other sites

Recommended Posts

  • 0
8 минут назад, Tawean сказал:

Я подтёр, что бы не распространяться, пути там есть =D

Кстати, вот сейчас пытаюсь так же впихнуть: (Аналогичные сходства в moddded_warnings0) 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

scripts\3_Game\DayZGame.c

функция void LoadingScreen(DayZGame game)

m_WidgetRoot = game.GetLoadingWorkspace().CreateWidgets("gui/layouts/loading.layout");

создание окна загрузки игры

Class.CastTo(m_ModdedWarning, m_WidgetRoot.FindAnyWidget("ModdedWarning"));

как раз уведомление искомое. Думаю это оно/

Будет класс для 3_Game

modded class LoadingScreen
{
	override LoadingScreen(DayZGame game)
	{
		super.LoadingScreen(game);
		if(m_ModdedWarning)
		{
			m_ModdedWarning.Show( false );
		}
	} 
}

 

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites









  • 1

Расположение файлов: scripts\3_Game 

Название необходимого для нас: .c файла: DayZGame.c

 

Цитата

Ищем: void LoadingScreen(DayZGame game)
m_ModdedWarning.Show( false ); Ищем и меняем на это. Всё, что ниже - удаляем. (Только функцию m_modded)

 

Ну а кто юзает кастом лоадинг - можете скачать образец: 
Там достаточно просто вставить в окончание функции m_ModdedWarning.Show( false );

 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Edited by Tawean (see edit history)

Share this post


Link to post
Share on other sites
  • 0

Проверь вообще читаются ли эти функции при запуске клиента, например выводом в лог Print("test log");

Share this post


Link to post
Share on other sites
  • 0
14 часов назад, 123new сказал:

Проверь вообще читаются ли эти функции при запуске клиента, например выводом в лог Print("test log");

Ага. У меня подозрение на следующее: 

 

Цитата

class MainMenu extends UIScriptedMenu

protected ref TextWidget        m_ModdedWarning;

 

 

Ну и редактирование тоже ни к чему не привело:

Цитата

m_ModdedWarning.Show( GetGame().GetModToBeReported() );
        
        if( modArray.Count() > 100 )
        {
            layoutRoot.FindAnyWidget("ModsSimple").Show( false );
            m_ModsTooltip = new ModsMenuTooltip(layoutRoot);

            m_ModsDetailed = new ModsMenuDetailed(modArray, layoutRoot.FindAnyWidget("ModsDetailed"), m_ModsTooltip, this);
            
            m_ModsSimple = new ModsMenuSimple(modArray, layoutRoot.FindAnyWidget("ModsSimple"), m_ModsDetailed);
        }
    }

 

 

Не, ну пробовал просто изменить в layout текст, а в скрипте прописать: 

Цитата

override void LoadMods()
    {
        super.LoadMods();
        
        m_ModdedWarning.Show( false );
        layoutRoot.FindAnyWidget("ModsSimple").Show( false );
    }

 

Собстна че странно, так это то, что остальные элемементы заменяются спокойно. Вот, сижу ломаю голову. Надпись эта уже все мозги проела.

Edited by Tawean (see edit history)

Share this post


Link to post
Share on other sites
  • 0

попробуй:

override void LoadMods()
{
	super.LoadMods();
	m_ModdedWarning.Show( false );
	if( modArray.Count() > 0 )
	{
		layoutRoot.FindAnyWidget("ModsSimple").Show( false );
		if( m_ModsSimple )
			delete m_ModsSimple;
		if( m_ModsDetailed )
			delete m_ModsDetailed;
	}
} 

 

Share this post


Link to post
Share on other sites
  • 0
36 минут назад, 123new сказал:

попробуй:

override void LoadMods() { super.LoadMods(); m_ModdedWarning.Show( false ); if( modArray.Count() > 0 ) { layoutRoot.FindAnyWidget("ModsSimple").Show( false ); if( m_ModsSimple ) delete m_ModsSimple; if( m_ModsDetailed ) delete m_ModsDetailed; } }


override void LoadMods()
{
	super.LoadMods();
	m_ModdedWarning.Show( false );
	if( modArray.Count() > 0 )
	{
		layoutRoot.FindAnyWidget("ModsSimple").Show( false );
		if( m_ModsSimple )
			delete m_ModsSimple;
		if( m_ModsDetailed )
			delete m_ModsDetailed;
	}
} 

 

 

Не-а, кстати, еще ругаться начал на строку if( modArray.Count() > 0 ).  (( Сant Find varrible modArray.))
Но до ошибки все-равно надпись вылезла.

 

UPD: Я использую от ультимы меню, но она настолько урезана, что есть только четыре кнопки, играть, вк, дискорд и выход =D =D

Edited by Tawean (see edit history)

Share this post


Link to post
Share on other sites
  • 0
11 минут назад, Tawean сказал:

 

Не-а, кстати, еще ругаться начал на строку if( modArray.Count() > 0 ).  (( Сant Find varrible modArray.))
Но до ошибки все-равно надпись вылезла.

 

UPD: Я использую от ультимы меню, но она настолько урезана, что есть только четыре кнопки, играть, вк, дискорд и выход =D =D

так у тебя может и менюшка то ультимовская какая?))

Share this post


Link to post
Share on other sites
  • 0
20 минут назад, 123new сказал:

так у тебя может и менюшка то ультимовская какая?))

Не понял)

Share this post


Link to post
Share on other sites
  • 0
8 минут назад, Tawean сказал:

Не понял)

в моде ультимы может чего-то изменено, это имею ввиду

override void LoadMods()
{
	super.LoadMods();
	ref array<ref ModInfo> modArray = new array<ref ModInfo>;		
    GetGame().GetModInfos( modArray );

	m_ModdedWarning.Show( false );
	if( modArray.Count() > 0 )
	{
		layoutRoot.FindAnyWidget("ModsSimple").Show( false );
		if( m_ModsSimple )
			delete m_ModsSimple;
		if( m_ModsDetailed )
			delete m_ModsDetailed;
	}
} 

пробуй,

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites
  • 0
33 минуты назад, 123new сказал:

в моде ультимы может чего-то изменено, это имею ввиду

override void LoadMods() { super.LoadMods(); ref array<ref ModInfo> modArray = new array<ref ModInfo>; GetGame().GetModInfos( modArray ); m_ModdedWarning.Show( false ); if( modArray.Count() > 0 ) { layoutRoot.FindAnyWidget("ModsSimple").Show( false ); if( m_ModsSimple ) delete m_ModsSimple; if( m_ModsDetailed ) delete m_ModsDetailed; } }


override void LoadMods()
{
	super.LoadMods();
	ref array<ref ModInfo> modArray = new array<ref ModInfo>;		
    GetGame().GetModInfos( modArray );

	m_ModdedWarning.Show( false );
	if( modArray.Count() > 0 )
	{
		layoutRoot.FindAnyWidget("ModsSimple").Show( false );
		if( m_ModsSimple )
			delete m_ModsSimple;
		if( m_ModsDetailed )
			delete m_ModsDetailed;
	}
} 

пробуй,

Тоже нет. Ошибка ушла. Вот, скинул файлы. Может так станет понятнее нам.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Share this post


Link to post
Share on other sites
  • 0
10 минут назад, Tawean сказал:

Тоже нет. Ошибка ушла. Вот, скинул файлы. Может так станет понятнее нам.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

как бы 1107255166_.png.a15e1afe41362ad98bcb914c5be79909.png

наблюдаю другой код 😃

Да и вообще напрашивается такой вывод, что мы не тот класс редактим, т.к.  вот это

22835600_.png.03c77346d53b692082fe67b2acd8df9c.png

больше на главное меню игры похоже, нежели на экран загрузки миссии игры или сервера.

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites
  • 0
7 минут назад, 123new сказал:

как бы 1107255166_.png.a15e1afe41362ad98bcb914c5be79909.png

наблюдаю другой код 😃

Да и вообще напрашивается такой вывод, что мы не тот класс редактим, т.к.  вот это

22835600_.png.03c77346d53b692082fe67b2acd8df9c.png

больше на главное меню игры похоже, нежели на экран загрузки миссии игры или сервера.

Тааак. Я то думал, что это взаимосвязано. хм. Где же тогда искать?

Share this post


Link to post
Share on other sites
  • 0
4 минуты назад, Tawean сказал:

Тааак. Я то думал, что это взаимосвязано. хм. Где же тогда искать?

каждый отдельный экран в игре - виджет по сути. Т.е. mainmanu.c (что смутить изначально должно было, см. перевод с англ.) это априори скорее всего гл меню игры, missiongameplay.c - скорее всего экран загрузки миссии на стороне клиента игры и его обработки

Share this post


Link to post
Share on other sites
  • 0
1 минуту назад, 123new сказал:

каждый отдельный экран в игре - виджет по сути. Т.е. mainmanu.c (что смутить изначально должно было, см. перевод с англ.) это априори скорее всего гл меню игры, missiongameplay.c - скорее всего экран загрузки миссии на стороне клиента игры и его обработки

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.


Да, но его нет здесь. За отображение информации и текста отвечает как раз файл перевода #modding ,,,,, , а он  и его путь мне встретился только в main menu.c =D

Share this post


Link to post
Share on other sites
  • 0
9 минут назад, 123new сказал:

каждый отдельный экран в игре - виджет по сути. Т.е. mainmanu.c (что смутить изначально должно было, см. перевод с англ.) это априори скорее всего гл меню игры, missiongameplay.c - скорее всего экран загрузки миссии на стороне клиента игры и его обработки

Упоминания во всех папках 5_mission нашёл только два файла. хм.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Share this post


Link to post
Share on other sites
  • 0
5 минут назад, Tawean сказал:

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.


Да, но его нет здесь. За отображение информации и текста отвечает как раз файл перевода #modding ,,,,, , а он  и его путь мне встретился только в main menu.c =D

хмм... Тоже верно...

А в

layoutRoot = GetGame().GetWorkspace().CreateWidgets( "" );

мы собстно что указываем то? пустоту?)))

Share this post


Link to post
Share on other sites
  • 0
3 минуты назад, 123new сказал:

хмм... Тоже верно...

А в

layoutRoot = GetGame().GetWorkspace().CreateWidgets( "" );


layoutRoot = GetGame().GetWorkspace().CreateWidgets( "" );

мы собстно что указываем то? пустоту?)))

Я подтёр, что бы не распространяться, пути там есть =D

Кстати, вот сейчас пытаюсь так же впихнуть: (Аналогичные сходства в moddded_warnings0) 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Share this post


Link to post
Share on other sites
  • 0
9 минут назад, 123new сказал:

хмм... Тоже верно...

А в

layoutRoot = GetGame().GetWorkspace().CreateWidgets( "" );


layoutRoot = GetGame().GetWorkspace().CreateWidgets( "" );

мы собстно что указываем то? пустоту?)))

 

Тоже не помогло. Странно. Более нигде нет совпадений.  Скидываю все в целостности:

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Edited by Tawean (see edit history)

Share this post


Link to post
Share on other sites
  • 0
11 минут назад, 123new сказал:

scripts\3_Game\DayZGame.c

функция void LoadingScreen(DayZGame game)

m_WidgetRoot = game.GetLoadingWorkspace().CreateWidgets("gui/layouts/loading.layout");


m_WidgetRoot = game.GetLoadingWorkspace().CreateWidgets("gui/layouts/loading.layout");

создание окна загрузки игры

Class.CastTo(m_ModdedWarning, m_WidgetRoot.FindAnyWidget("ModdedWarning"));


Class.CastTo(m_ModdedWarning, m_WidgetRoot.FindAnyWidget("ModdedWarning"));

как раз уведомление искомое. Думаю это оно/

Будет класс для 3_Game

modded class LoadingScreen { override LoadingScreen(DayZGame game) { super.LoadingScreen(game); if(m_ModdedWarning) { m_ModdedWarning.Show( false ); } } }


modded class LoadingScreen
{
	override LoadingScreen(DayZGame game)
	{
		super.LoadingScreen(game);
		if(m_ModdedWarning)
		{
			m_ModdedWarning.Show( false );
		}
	} 
}

 

 

Да, скорее всего оно. Только я пытаюсь безуспешно куда-нибудь это всунуть, т.к я юзаю мод на загрузочных экран. Не поможете? Куда вставить?

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Share this post


Link to post
Share on other sites
  • 0
5 минут назад, Tawean сказал:

 

Да, скорее всего оно. Только я пытаюсь безуспешно куда-нибудь это всунуть, т.к я юзаю мод на загрузочных экран. Не поможете? Куда вставить?

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

по аналогии с гайдом

делаем клиентский мод, в 3_Game размещаем свои скрипты так как в оригинале класс находится именно там

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

 

Сам же код можно как отдельным файлом, так и в этот же файл в конце добавить, роли не играет

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites
  • 0
1 минуту назад, 123new сказал:

по аналогии с гайдом

делаем клиентский мод, в 3_Game размещаем свои скрипты так как в оригинале класс находится именно там

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

 

Сам же код можно как отдельным файлом, так и в этот же файл в конце добавить, роли не играет

 

 

Не, я не про это. Это всё понятно. Именно сюда куда вставлять? как бы да, есть класс LoadingScreen, далее под ним идёт void LoadingScreeen. Чем VOID отличается в нашем случае от override LoadingScreen(DayZGame game) ? Вот в чём вопрос.

Share this post


Link to post
Share on other sites
  • 0
3 минуты назад, Tawean сказал:

 

 

Не, я не про это. Это всё понятно. Именно сюда куда вставлять? как бы да, есть класс LoadingScreen, далее под ним идёт void LoadingScreeen. Чем VOID отличается в нашем случае от override LoadingScreen(DayZGame game) ? Вот в чём вопрос.

void  - функция без возврата значения, override - перезапись (см. перевод с англ.), т.е. override void - перезапись оригинальной функции без возврата значения.

super.{имя функции}({переменные в функцию, которые изначально заданы}) - собственно вызов родной функции в коде, дабы не ломать другие моды и родной код игры

а вставлять функцию именно в тот же класс, в котором оригинальная и лежит. Т.е. оригинальная у нас в class LoadingScreen лежит (открой оригинальный скрипт, найди функцию и промотай вверх немного, увидишь какой класс открывался перед заданием функций в коде), вот в нее и вставляется изменение функции нужной нам.

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites
  • 0
1 минуту назад, 123new сказал:

void  - функция без возврата значения, override - перезапись (см. перевод с англ.), т.е. override void - перезапись оригинальной функции без возврата значения.

super.{имя функции}({переменные в функцию, которые изначально заданы}) - собственно вызов родной функции в коде, дабы не ломать другие моды и родной код игры

а вставлять функцию именно в тот же класс, в котором оригинальная и лежит. Т.е. оригинальная у нас в class LoadingScreen лежит (открой оригинальный скрипт, найди функцию и промотай вверх немного, увидишь какой класс открывался перед заданием функций в коде), вот в нее и вставляется изменение функции нужной нам.

 

Очень доступно и понятно. Спасибо. Я вечером опробую, отпишусь! 

Share this post


Link to post
Share on other sites
  • 0
59 минут назад, 123new сказал:

void  - функция без возврата значения, override - перезапись (см. перевод с англ.), т.е. override void - перезапись оригинальной функции без возврата значения.

super.{имя функции}({переменные в функцию, которые изначально заданы}) - собственно вызов родной функции в коде, дабы не ломать другие моды и родной код игры

а вставлять функцию именно в тот же класс, в котором оригинальная и лежит. Т.е. оригинальная у нас в class LoadingScreen лежит (открой оригинальный скрипт, найди функцию и промотай вверх немного, увидишь какой класс открывался перед заданием функций в коде), вот в нее и вставляется изменение функции нужной нам.

Добрый, а можно попросить уточнить, что значит " функция без возврата значения". Просто в моем понимании перезапись как-бы подразумевает, что значение какое-то меняется на другое. Тогда в чем отличие от void, если это функция без возврата значения? Спасибо!

Share this post


Link to post
Share on other sites
  • 0
52 минуты назад, rbogaty сказал:

Добрый, а можно попросить уточнить, что значит " функция без возврата значения". Просто в моем понимании перезапись как-бы подразумевает, что значение какое-то меняется на другое. Тогда в чем отличие от void, если это функция без возврата значения? Спасибо!

Функция без вовзрата

есть например
 

int getint()
{
	int a = 2;
	bool b = GetVseGovnorazrabotchkovDAYZ(); //полезные действия
	if (!b)
	{
		a = 5; //к сожалению это невозможно
	}
	return a;
}

ты можешь вызвать ее как хочешь - хоть с присвоением значения хоть без (как обычную void)

 

a = getint(); //можно так

getint(); //можно и так

 

и что там внутри нее происходит - это ее дело

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.