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

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

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

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

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • 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 читаем! Все изменения, что внесены видны, но надпись чёт есть.

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

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


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

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

  • 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 );
		}
	} 
}

 

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

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


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





  • 1

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

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

 

Цитата

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

 

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

 

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

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

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

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


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

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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 );
    }

 

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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;
	}
} 

 

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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

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

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


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

 

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

 

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

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

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


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

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

Не понял)

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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;
	}
} 

пробуй,

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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;
	}
} 

пробуй,

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

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

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

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


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

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

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

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

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

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

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

22835600_.png.03c77346d53b692082fe67b2acd8df9c.png

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

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

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


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

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

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

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

22835600_.png.03c77346d53b692082fe67b2acd8df9c.png

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

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

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


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

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

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

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


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

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

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


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

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


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

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

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

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

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

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


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

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


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

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

А в

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

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

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


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

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

А в

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


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

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

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

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

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

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

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


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

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

А в

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


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

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

 

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

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

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

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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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 );
		}
	} 
}

 

 

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

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

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


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

 

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

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

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

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

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

 

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

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

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


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

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

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

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

 

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

 

 

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

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


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

 

 

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

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

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

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

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

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


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

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

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

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

 

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

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


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

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

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

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

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

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


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

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

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

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

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

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

 

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

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

 

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

 

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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