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

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


Rolan

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

Вот, кстати, правка для LA - убрал баг в авто, когда нет худа. Просто подсунул визуал ГГ. Камеру настройте в системном файле, как надо вам.

https://yadi.sk/d/Y_Vz8_FNsc5bf

Изменено пользователем Дизель
  • Нравится 1

andreyholkin.gif

rod_cccp.gif

 

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


Ссылка на сообщение

Можно ли разогнать компилятор визуалки 2008г? Оператива позволяет. Там похоже ядерность процессора не задействована.


В шапке темы пустая ссылка:

Цитата(Kolmogor)
Вот исходники доработок для ЗП , в том числе и машинки: http://www.sendspace.com/file/3bo9xx

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

andreyholkin.gif

rod_cccp.gif

 

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


Ссылка на сообщение

@!SkIF!, какой двиг собираешь и на чём? Если ЗП 1602 - проконсультирую, могу Лост-альфу подсказать в vs 2008.

  • Спасибо 1

andreyholkin.gif

rod_cccp.gif

 

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


Ссылка на сообщение

@!SkIF!,

 

1. Установи  vs 2008 английскую версию en_visual_studio_2008_professional_x86_dvd_X14-26326

2.Скачай SP 1 VS90sp1-KB945140-ENU.exe для неё.

3.Установи Direct X - DXSDK_Mar09.exe, DXSDK_Jun10.exe

4.Создай диск Х (не обязательно). Или С пойдёт.

5.Создай на этом диске папку и в ней еще папку (английский текст (можно цифры), без пробелов, любое название).

6 engine.vc2008.fixed.rar распакуй во вторую папку.

7.stasvn.7z из этого архива выдерни папку SDK  и закинь во вторую папку.

8.опять из engine.vc2008.fixed.rar выдерни папку sdk   и с заменой 11 (там их всего) файлов закинь во вторую.

 

 

Выполнять пункты по-порядку, так как СДК Директ Х должны быть установлены после визуалки и SP1

Если делать всё по-порядку, то в Визуалке не придётся подключать Директ X библиотеки.

 

Bот так подключать библиотеки direct x

 

2a3005c49fa1t.jpg

ec8239cfd611t.jpg

3c7931503de4t.jpg

04eeaed20ec2t.jpg

 

 

Правильно или нет, но у меня работает.

 

 Для спецов (создать раздел для диска X):

Визуалка 2008 не видит виртуальные диски, поэтому надо создать в Computer Management диск -> Управление дисками.

Ужать существующий диск, и на базе свободного пространства создать новый том ( с учетом всех расспаковок и созданных файлов 5 Гигов хватит).

 

На диске С всё прекрасно компилируется, условие - запуск Визуалки от админа, и в свойствах корневой папки не должно быть "только для чтения всем вложенным файлам".

 

Исходники ЗП 1602

Изменено пользователем Дизель
  • Спасибо 1
  • Нравится 1

andreyholkin.gif

rod_cccp.gif

 

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


Ссылка на сообщение

@!SkIF!, не видит файла визуалка. Я уже раз десять подключал исходники. Вот такая беда была, но я не помню почему. Я вечером поздно тебе свои исходники скину, для теста.

 

Совет на рисунке посмотри:

e320f5822c98t.jpg

 

Вот мои исходники - только для теста компиляции, потому как, для тебя, там не будет хватать файлов в  gamedata .

Изменено пользователем Дизель
  • Спасибо 1

andreyholkin.gif

rod_cccp.gif

 

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


Ссылка на сообщение

@!SkIF!, a ты как начинаешь компиляцию? Наводи курсор на папку или проект и правой кнопкой мыши выбирай rebuild (не советую делать build).

Изменено пользователем Дизель
  • Спасибо 1

andreyholkin.gif

rod_cccp.gif

 

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


Ссылка на сообщение

@!SkIF!, LINK : fatal error LNK1181: cannot open input file '..\..\..\libraries\xrsound.lib'

 

Теперь жми на xrsound ребилд, так как ты не собрал библиотеку.

  • Спасибо 1

andreyholkin.gif

rod_cccp.gif

 

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


Ссылка на сообщение

Потратил пару часов на доработку настроек травы в движке - для поднятия ФПС при езде на авто или быстром беге ГГ, когда трава просто валила ФПС.

 

DetailManager.h

 

#else
	const int	dm_max_decompress	= 4802; //7//2401//4802//скорость прорисовки
#endif
const int		dm_size			= 192; //24	//192// радиус							
const int 		dm_cache1_count		= 4;								
const int 		dm_cache1_line		= dm_size*2/dm_cache1_count;		
const int		dm_max_objects		= 256; //64//256
const int		dm_obj_in_slot		= 4;
const int		dm_cache_line		= dm_size+1+dm_size;
const int		dm_cache_size		= dm_cache_line*dm_cache_line;
const float		dm_fade			= float(0.3*dm_size)-.0f; // float(2*dm_size)-.5f// масштаб деталей к краю
const float		dm_slot_size		= DETAIL_SLOT_SIZE;

Работает для гонок БТР с бешенной скоростью. К сожалению количество деталей нельзя увеличивать, будет просадка ФПС.

Изменено пользователем Дизель
  • Нравится 1
  • Полезно 1

andreyholkin.gif

rod_cccp.gif

 

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


Ссылка на сообщение

Надо собрать правки исходников, с подробным описанием в отдельную тему. Хотя желающих делиться, то не особо то будет, по простой причине, по причине того, что все хвосты правки сложно найти в движке ( и еще по причине алчности и гордыни). Вот меня лично подводит память, я не всегда делаю комментарии, а потом не помню, где и что правил. :unsure:

Изменено пользователем Дизель
  • Нравится 3

andreyholkin.gif

rod_cccp.gif

 

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


Ссылка на сообщение

Нашел вылет в движке ЗП 1602 случайно, по логу игры: HW.cpp

 

.6        _tmp.back()                    = xr_strdup(str);

 

Вот такая бяка: .6 - зачем в начале строки это? Это опечатка или так надо. Но явно в игре об это есть спотыкание. Я убрал, короче.

 

 

void fill_vid_mode_list(CHW* _hw)
{
    if(vid_mode_token != NULL)        return;
    xr_vector<LPCSTR>    _tmp;
    u32 cnt = _hw->pD3D->GetAdapterModeCount    (_hw->DevAdapter, _hw->Caps.fTarget);

    u32 i;
    for(i=0; i<cnt;++i)
    {
        D3DDISPLAYMODE    Mode;
        string32        str;

        _hw->pD3D->EnumAdapterModes(_hw->DevAdapter, _hw->Caps.fTarget, i, &Mode);
        if(Mode.Width < 800)        continue;

        xr_sprintf                        (str,sizeof(str),"%dx%d", Mode.Width, Mode.Height);
    
        if(_tmp.end() != std::find_if(_tmp.begin(), _tmp.end(), _uniq_mode(str)))
            continue;

        _tmp.push_back                (NULL);
//.6        _tmp.back()                    = xr_strdup(str); //Diesel было так
        _tmp.back()                    = xr_strdup(str); //Diesel
    }

    u32 _cnt                        = _tmp.size()+1;

    vid_mode_token                    = xr_alloc<xr_token>(_cnt);

    vid_mode_token[_cnt-1].id            = -1;
    vid_mode_token[_cnt-1].name        = NULL;

#ifdef DEBUG
    Msg("Available video modes[%d]:",_tmp.size());
#endif // DEBUG
    for(i=0; i<_tmp.size();++i)
    {
        vid_mode_token.id        = i;
        vid_mode_token.name        = _tmp;
#ifdef DEBUG
        Msg                            ("[%s]",_tmp);
#endif // DEBUG
    }
}

 

 

Кстати, легко, знаю как вернуть вектор направления движения в ЗП автомобиля после сохранения на юг. Пару строчек в коде исходников подшаманить.

Ищем:

xrServer_Objects_ALife.cpp

 

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

void CSE_ALifeCar::data_load(NET_Packet    &tNetPacket)

 

    //tNetPacket.r_vec3(o_Angle); //Меняем на ниже:
        tNetPacket.r_vec3 (o_Angle.set (0.f,0.f,0.f));//Diesel

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

void CSE_ALifeCar::data_save(NET_Packet &tNetPacket)

 

    //tNetPacket.w_vec3(o_Angle); //Меняем на ниже:
        tNetPacket.w_vec3 (o_Angle.set (0.f,0.f,0.f));//Diesel

 

Автор идеи: Я!

Но это не является искоренением проблемы. Камеру надо возвращать мышкой самому.

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

andreyholkin.gif

rod_cccp.gif

 

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


Ссылка на сообщение

@mortan, я не смог записать сразу лог. Что то крутил с СCar или с памятью (хотел расшарить), и вот туда и упёрся. Это же явный баг разрабов. Я такого кода не встречал, вообще, что бы строка так начиналась.

 

... Я создал  на практике новый класс лодки, а в точнее авто-амфибии. !!! Правда камыши и кустарники труднопроходимые - думаю в материалах доканаю их.

40 дней выводил совершенно новый класс - не Ccar, а новый. Хотел сделать вертолёт сперва - упёрся в управление, делал вертолёт - получилась лодка. :)

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

andreyholkin.gif

rod_cccp.gif

 

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


Ссылка на сообщение

@mortan, странный вопрос - это спонтанный вылет был в игре. Видимо Визуалка считает это нормальным явлением.

andreyholkin.gif

rod_cccp.gif

 

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


Ссылка на сообщение

@mortan, скорее всего не существует сорцев даже у автора.. Там только погодой, скриптами и партиклом выброса (нелеквидным).

 

Там рендер травы и Fov есть правленые - причём я бы их не стал внедрять ( скорее всего там через патчи сделано).

 

Или ты про какой атмосфир толкуешь?

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

andreyholkin.gif

rod_cccp.gif

 

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


Ссылка на сообщение

@mortan, Cromm Cruac.

Тогда да. Нет сорцев однако. Мод делался в 2011 году и тогда был дефицит с сорцами.

andreyholkin.gif

rod_cccp.gif

 

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


Ссылка на сообщение

@mortan, а зачем тебе левая делка рендера? Свою доработай.

В делках рендера Атмосфера, 100% ничего нового, там только настройка цифер.

  • Нравится 1

andreyholkin.gif

rod_cccp.gif

 

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


Ссылка на сообщение

@mortan, атмосфир работает без рендера и без правок движка. Лог вылета смотри - там вылет идёт по партиклу выброса - ищи в скриптах и меняй партикл, либо добавляй в xr

andreyholkin.gif

rod_cccp.gif

 

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


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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