Перейти к контенту

[SoC] Ковыряемся в файлах


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

15 минут назад, xxXBroXxxApokalipsis сказал:

по подробнее

 

13 часов назад, AndreySol сказал:

END

 

Куда ещё подробнее?:) END нет там у тебя.

Изменено пользователем alex5773
  • Спасибо 1
Ссылка на комментарий
В 14.05.2019 в 13:37, Han Sola сказал:

Кто знает, как это можно провернуть?

Чуден парсер на X-Ray. Или чудён? :biggrin:

По факту, знатный такой костыль:

Скрытый текст

<string id="lname_stalker_0">
<text>***</text> 
</string>

Где *** - любой символ из ANSI Win-1251 кодировки, который не является пробелом, но в ui_font_***.ini имеет для отображения параметр пробела:

DEC(***) = 0, 0, 8, 16.

Хоть так &#DEC(***); , хоть этак &#xHEX(***); , хоть вручную.

 

  • Полезно 2
Ссылка на комментарий

@xxXBroXxxApokalipsis, Посмотри, как сделано в оригинале ТЧ. БТР там куча. На станции, в ТД. А лучше скопируй секцию и подставь в нее свои координаты и вертексы. И ссыль на свой конфиг.

Изменено пользователем AndrewMor

Сталкер - наше всё!

Ссылка на комментарий

Ребята, хочу сделать меньше курсор в меню, у меня монитор 2K курсор увеличенный и мутный. Помогите уменьшить. Stretchtexture только фиксирует x и у, recttexture только обрезает текстуру. 

Скрытый текст



#include "stdafx.h"
#include "uicursor.h"

#include "ui/UIStatic.h"
#include "ui/UIBtnHint.h"


#define C_DEFAULT	D3DCOLOR_XRGB(0xff,0xff,0xff)

CUICursor::CUICursor():m_static(NULL),m_b_use_win_cursor(false)
{    
	bVisible				= false;
	vPrevPos.set			(0.0f, 0.0f);
	vPos.set				(0.f,0.f);
	InitInternal			();
	Device.seqRender.Add	(this,-3/*2*/);
	Device.seqResolutionChanged.Add(this);
}
//--------------------------------------------------------------------
CUICursor::~CUICursor	()
{
	xr_delete				(m_static);
	Device.seqRender.Remove	(this);
	Device.seqResolutionChanged.Remove(this);
}

void CUICursor::OnScreenResolutionChanged()
{
	xr_delete					(m_static);
	InitInternal				();
}

void CUICursor::InitInternal()
{
	
	m_static					= xr_new<CUIStatic>();
	m_static->InitTexture		("ui\\ui_cursor", "hud\\cursor");
	Frect						rect;
	rect.set					(0.0f,0.0f,40.0f,40.0f);
	m_static->SetTextureRect	(rect);
	
	Fvector2					sz;
	sz.set						(rect.rb);
	sz.x						*= UI().get_current_kx();
	
	m_static->SetWndSize		(sz);
    m_static->SetStretchTexture	(true);

	u32 screen_size_x	= GetSystemMetrics( SM_CXSCREEN );
	u32 screen_size_y	= GetSystemMetrics( SM_CYSCREEN );
	m_b_use_win_cursor	= (screen_size_y >=Device.dwHeight && screen_size_x>=Device.dwWidth);
}

//--------------------------------------------------------------------
u32 last_render_frame = 0;

void CUICursor::OnRender	()
{
	g_btnHint->OnRender();
	g_statHint->OnRender();

	if( !IsVisible() ) return;
#ifdef DEBUG
	VERIFY(last_render_frame != Device.dwFrame);
	last_render_frame = Device.dwFrame;

	if(bDebug)
	{
	CGameFont* F		= UI().Font().pFontDI;
	F->SetAligment		(CGameFont::alCenter);
	F->SetHeightI		(0.02f);
	F->OutSetI			(0.f,-0.9f);
	F->SetColor			(0xffffffff);
	Fvector2			pt = GetCursorPosition();
	F->OutNext			("%f-%f",pt.x, pt.y);
	}
#endif

	m_static->SetWndPos	(vPos);
	m_static->Update	();
	m_static->Draw		();
}

Fvector2 CUICursor::GetCursorPosition()
{
	return  vPos;
}

Fvector2 CUICursor::GetCursorPositionDelta()
{
	Fvector2 res_delta;

	res_delta.x = vPos.x - vPrevPos.x;
	res_delta.y = vPos.y - vPrevPos.y;
	return res_delta;
}

void CUICursor::UpdateCursorPosition(int _dx, int _dy)
{
	Fvector2	p;
	vPrevPos	= vPos;
	if(m_b_use_win_cursor)
	{
		POINT		pti;
		BOOL r		= GetCursorPos(&pti);
		if(!r)		return;
		p.x			= (float)pti.x;
		p.y			= (float)pti.y;
		vPos.x		= p.x * (UI_BASE_WIDTH/(float)Device.dwWidth);
		vPos.y		= p.y * (UI_BASE_HEIGHT/(float)Device.dwHeight);
	}else
	{
		float sens = 1.0f;
		vPos.x		+= _dx*sens;
		vPos.y		+= _dy*sens;
	}
	clamp		(vPos.x, 0.f, UI_BASE_WIDTH);
	clamp		(vPos.y, 0.f, UI_BASE_HEIGHT);
}

void CUICursor::SetUICursorPosition(Fvector2 pos)
{
	vPos		= pos;
	POINT		p;
	p.x			= iFloor(vPos.x / (UI_BASE_WIDTH/(float)Device.dwWidth));
	p.y			= iFloor(vPos.y / (UI_BASE_HEIGHT/(float)Device.dwHeight));

	SetCursorPos(p.x, p.y);
}

 


 

Добавлено  Опричник,

Длинные тексты пожалуйста под спойлер. Выделить текст и нажать на панели инструментов кнопку с глазом.

Ссылка на комментарий
1 час назад, AndreySol сказал:

Размер 40х40. Уменьши как тебе надо.

вот почему-то не работает, квадрат уменьшается, а масштаб текстуры нет - она тупо обрезается, хотя stretch true

 

Я делаю 2k текстуры для меню lost alpha (ТЧ) и проблема такая: stretch не работает на элементах ui_cursor, ui_checker, ui_slider.

Ссылка на комментарий

@Stepikkkk

Вообще-то в LA правленный движок, может тебе лучше в профильную тему? Там есть раздел правок мода.

 

Поглядел в исходники, там ведь не просто текстура, а типа анимированного курсора. В папке с текстурами имеется ui_ani_cursor.seq и к нему набор собственно текстур. Видимо для такого типа ф-ция масштабирования(SetStretchTexture) не работает. Возможно это дело можно в СДК править или просто сам набор текстур в каком нить Паинт.нет уменьшить до нужного.

Изменено пользователем AndreySol
Ссылка на комментарий

@Stepikkkk, SetTextureRect задет координаты, по которым  берется текстура из файла, размер окна задается далее, вот тут:

m_static->SetWndSize(sz);

Можно задать размер здесь, sz - экземпляр класса Fvector2.

  • Спасибо 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий
4 часа назад, naxac сказал:

@Stepikkkk, SetTextureRect задет координаты, по которым  берется текстура из файла, размер окна задается далее, вот тут:

m_static->SetWndSize(sz);

Можно задать размер здесь, sz - экземпляр класса Fvector2.

Ура, получилось! Спасибо! Сделал так:     

    //sz.set                    (rect.rb);
    //sz.x                      *= UI().get_current_kx();
    
    //m_static->SetWndRect      (rect);
    m_static->SetWndSize        (sz.set(20,20));

 

Изменено пользователем Stepikkkk
Ссылка на комментарий

Если кому надо, написал код для курсора (анимированные тоже работают), можно менять размеры через файл gamedata/config/ui/ui_cursor.xml, чтобы задать размеры для широкоформатного разрешения делаем длину меньше, чем высоту.

Скрытый текст

void CUICursor::InitInternal()
{
	m_static					= xr_new<CUIStatic>();
	m_static->InitTextureEx		("ui\\ui_ani_cursor", "hud\\cursor");
	Frect						rect;
	rect.set					(0.0f,0.0f,40.0f,40.0f);
	m_static->SetTextureRect	(rect);

	CUIXml xml_doc;
	xml_doc.Load				(CONFIG_PATH, UI_PATH, "ui_cursor.xml");
	float width  = xml_doc.ReadAttribFlt("ui_cursor", 0, "width", 40.0f);
	float height = xml_doc.ReadAttribFlt("ui_cursor", 0, "height", 40.0f);
	
	
	m_static->SetWndSize		(Fvector2().set(width, height));
    m_static->SetStretchTexture	(true);

	u32 screen_size_x	= GetSystemMetrics( SM_CXSCREEN );
	u32 screen_size_y	= GetSystemMetrics( SM_CYSCREEN );
	m_b_use_win_cursor	= (screen_size_y >=Device.dwHeight && screen_size_x>=Device.dwWidth);
}

 

 

Скрытый текст

<?xml version="1.0" encoding="utf-8"?>
<a>
    <ui_cursor width="15" height="20">
    </ui_cursor>
</a>

 

Изменено пользователем Stepikkkk
  • Полезно 1
Ссылка на комментарий

Здрасьте.

Прописал для всех модов оружия другие текстуры и частично другие модели, начал новую игру: все оружие, которое кому-то принадлежит, обновилось полностью, а у свободно лежащего оружия (скорострельный АКС Стрелка в подземке НИИ и снайперский мод LR-300 на складах) обновилась только модель в руках – модель со стороны старая. Правки были однотипные, модели спавнил в инвентарь и проверял оба визуала, так что ошибка в ссылках исключается. В чем может быть причина? ТЧ 1.0006 без глобальных модов.

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
1 час назад, Norman Eisenherz сказал:

В чем может быть причина?

Причина в том, что пути до этих моделек хранятся в all.spawn. Вот его родного и надо ковырять.

  • Согласен 1
  • Сочувствую 1
Ссылка на комментарий

Всем привет. Прошу подсказать, в каком файле (файлах) можно увеличить пробел между иконкой ГГ и текстом вот здесь:

ccb00a18ebdbb314100c7e87b85a03ad1f84f934

как вот тут:

f45d724ea3dababe2252293684aa3a4f1f84f934

?

И второй вопрос: в каком файле (файлах) можно сдвинуть этот скролл:

a0e21f111f7fa90e701bea2d8b7e503d1f84f934

?

Изменено пользователем monk
Ссылка на комментарий

@monk

1. pda_dialog_character_16.xml, все значения x="ХХХ"  заменить на нужное тебе значение.

2. carbody_new_16.xml, в блоке dragdrop_list_our x="17" y="35" width="303" height="410" нужно подобрать нужное тебе значение для width="303" (для твоего скрина нужно увеличить число)

И, соответственно, то же самое проделать для файлов без "_16".

  • Спасибо 1
Ссылка на комментарий

@varan, спасибо, помогло.

Ещё вопрос, если не возражаешь: что нужно поправить, чтобы в этом поле появилась информация о данном НПС (БИО):

883247804a6c170962f9b764a6dc69191f84f934

  • Согласен 1
Ссылка на комментарий

@monk

1. [config\ui\pda_dialog_character.xml] (не знаю, почему это считается диалогом), найти все значения x="165", увеличить до желаемого.

2. [config\ui\carbody_new.xml], увеличить значение width="…" примерно до габаритов текстуры в разделах <dragdrop_list_our …> и <dragdrop_list_other …>.

  • Спасибо 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

@monk

Цитата

информация о данном НПС (БИО)

gamedata\config\ui\stalkers_ranking_character.xml и stalkers_ranking_character_16.xml стереть символ "_" перед biography_list.     

Скрытый текст

<!-- BIO -->
    <biography_list x="0" y="143" width="273" height="268" always_show_scroll="0" left_ident="23" scroll_profile="pda">
        <font font="letterica16" r="190" g="190" b="225"/>
    </biography_list>

 

Изменено пользователем ctepbrthik
  • Спасибо 2
  • Согласен 2
  • Полезно 1
Ссылка на комментарий

@monk, пользуюсь ХРЕ с включенной правкой "фикс статика биографии в ПДА, в "Рангах"", то все нормально. А вот как быть без нее даже и не знаю.
 

Ссылка на комментарий

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

Комментарии могут оставлять только зарегистрированные пользователи

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

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

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

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...