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

Редактирование движка X-Ray


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

Есть один вопрос. Как сделать через движок отдельную заглушку музыкального эмбиента на локациях? Как в OGSR например, но без перезахода на локацию. Хотелось бы чтобы всё срабатывало сразу и так же сразу его можно было бы обратно включить.

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

Тут, кое кто, писал о проблеме потери патронов в шотгане при загрузке.

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

BOOL	CWeaponShotgun::net_Spawn(CSE_Abstract* DC)
{
	BOOL	res = inherited::net_Spawn(DC);
	CSE_ALifeItemWeaponShotGun*		E = smart_cast<CSE_ALifeItemWeaponShotGun*>(DC);
	u32	ammoCount = E->m_AmmoIDs.size();
	if(ammoCount>0){
		m_magazine.clear();
		for (u32 i=0; i<ammoCount; i++){
			u8			ammoType = E->m_AmmoIDs[i];
			CCartridge	cartidge; cartidge.m_flags.zero();
			cartidge.Load(*m_ammoTypes[ammoType], ammoType);
			m_magazine.push_back(cartidge);
		}
	}
	return res;
}

 

Ещё надо в заголовках не забыть прописать этот метод.

	virtual BOOL	net_Spawn			(CSE_Abstract* DC);

Да если кто не заметил, то при загрузке, весь магазин шотгана оказывается заряжен последним типом патрона, наследник РГ-6 соответственно тоже. blink.gif

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

...в конце концов, важен лишь, машинный код.

СТАЛКЕР только для ПК!

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

Ребят, поясните с чего начать, чтобы поковырять движок. Я ноль в программировании, но принцип мне понятен. Я имею ввиду, что разобраться постепенно я смогу.

Вопрос с чего начать? Допустим движок версии ТЧ, для начала неплохо было бы научиться разбирать и собирать...

Изменено пользователем Tolyan
Ссылка на комментарий
3 минуты назад, WizziGun сказал:

@Tolyan, Мой опыт окончился на том что я скачал исходники, и установил студию. Всё :biggrin:

А откуда качать их? И какие студии нужны для открытия и как это вообще делать? Есть где-то хоть какие-то инструкции?

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

@Tolyan, Как я заметил, основная тусовка парней которые в этом точно шарят на gameru.
ИМХО

Изменено пользователем WizziGun
  • Согласен 1

- Пролетарии всех стран, соединяйтесь!

 

Ссылка на комментарий
33 минуты назад, Tolyan сказал:

регаться на другом форуме вообще не хочется.

У тебя с этим проблемы ?

1 час назад, Tolyan сказал:

Вопрос с чего начать?

Начни с этого...

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

Доброе утро всем всем всем. Парни Вы смотрели фильм " Тупой ещё тупее". Это про меня.  Хуч убейте, ни как не могу понять.     Игра одна. Движок один и тот же. Патчи разные. Почему я не могу взять блоки из движка первого патча и тупо вставить в движок пятого патча?   Я не вношу ни каких изменений. Эти блоки с этого движка. Тем более они вырезаны только в xrGame.dll. В XR_3DA они присутствуют, и в остальных файлах тоже.    

MinyaUr.gif

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

@Minya это странное описание для модификаций движка и программ в целом.

Нету там никаких блоков. Любая версия (читай патч) движка - это правильно собранный (скомпилированный) набор инструкций и данных который может выполнять операционная система.

Нельзя взять кусок этого в засунуть в другой файл. Частично это можно делать, пример проект XRE, но сложность таких изменений еще выше чем сборка из исходников.

Если есть желание вносить туда правки - добро пожаловаться в мир движков из исходников. Пример проекта для ТЧ https://github.com/OGSR/OGSR-Engine

Сложность сборки минимальная, сложность правок уже зависит от того, что хочеться поменять.

 

ЗЫ: это если я правильно понял смысл вопроса, если нет - уточняйте.

Изменено пользователем lordmuzer
  • Нравится 1
Ссылка на комментарий
20 часов назад, Tolyan сказал:

Пока конечно, ни черта не понятно))

Начало для всех одинаковое:

- скачать исходники соответствующей версии движка.

- скачать VS от мелкомягких, установить, запустить.

- портировать проект в выбранную студию. Родная VS, в которой изначально создан движок ТЧ(для других частей не знаю) - Visual Studio 2005. В статье, с указанного выше ресурса, "Сборка движка X-Ray" - читаем как портировать проект на более современную студию(там для 2010 разжевано).

- собираем проект. Если все срослось - радуемся жизни. Если нет - курим скачанные из инета самоучители по работе с VS, задаем вопросы в профильных темах тута и на Stalkerin.

- после того, как удалось собрать проект, на мой взгляд лучше всего начать с внесения мелких правок, описанных в теме "Мелкие правки движка". Полезно будет для начала.

Изменено пользователем AndreySol
  • Спасибо 1
  • Согласен 1
Ссылка на комментарий
1 час назад, lordmuzer сказал:

ЗЫ: это если я правильно понял смысл вопроса, если нет - уточняйте.

Уточняю. В ОП-2.1 разработчики вырезали в третьем патче команду blinker. Вырезана она только в движке xrGame.dll. Я установил программу IDA PRO, обнаружил от куда её вырезали. В остальном он везде присутствует. Может я туплю, прошу не судить строго. В этой команде два блока. Взять эти блоки из первого патча и вставить в пятый. Вот я и хотел узнать что для этого требуется? Игра одна движки одни и те же. Я не собираюсь вносить изменения в движок. просто слегка подлечить.

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

MinyaUr.gif

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

Такой возможно. Но туториала как сделать - нету.

Это с родни правок exe файлов на ассемблере. Нужно точно знать что ты правишь и где. Просто так вставить в то же самое место не получиться.

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

@AndreySol Там тишина.

Изменено пользователем W.A.S.P.
оверквотинг
Добавлено  Опричник,

Изучите "Правила цитирования". https://www.amk-team.ru/forum/topic/13514-obyavleniya/

MinyaUr.gif

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

Всем привет, кто нибудь делал подобную правку на ЗП? Подскажите куда копать? Ибо в ЗП иной спавн/респавн артов.

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

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

Нашел такое в движке:

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

 

LPCSTR CFontManager::GetFontTexName (LPCSTR section)
{
    static char* tex_names[]={"texture800","texture","texture1600"};
    int def_idx        = 1;//default 1024x768
    int idx            = def_idx;

#if 0
    u32 w = Device.dwWidth;

    if(w<=800)        idx = 0;
    else if(w<=1280)idx = 1;
    else             idx = 2;
#else
    u32 h = Device.dwHeight;

    if(h<=600)        idx = 0;
    else if(h<=900)    idx = 1;
    else             idx = 2;
#endif

    while(idx>=0)
    {
        if( pSettings->line_exist(section,tex_names[idx]) )
            return pSettings->r_string(section,tex_names[idx]);
        --idx;
    }
    return pSettings->r_string(section,tex_names[def_idx]);
}

 

Поясните, как работает в этом случае #if 0... ?

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

 

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

void CFontManager::Render()
{
    FONTS_VEC_IT it        = m_all_fonts.begin();
    FONTS_VEC_IT it_e    = m_all_fonts.end();
    for (; it != it_e; ++it)
    {
        if (**it)
            (**it)->OnRender();
    }
}

Кто в курсе, для чего собственно это ->OnRender() ?

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

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

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

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

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

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

Войти

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

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

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