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

Мастерская по разбору "вылетов" X-Ray


aka_sektor

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

stack trace:

0023:04D92EB1 xrGame.dll, CDialogHolder::CDialogHolder()

 

Вылет (ЗП 1.6.02) происходит при убийстве нпс, если добавить в \configs\ui\map_spots_relations.xml,

	<deadbody_location hint="st_corpse">
		<level_map spot="deadbody_mini_spot"/> ; добавлено - отображение на карте в пда
		<mini_map spot="deadbody_mini_spot"/>
	</deadbody_location>

хотя, если спавнить трупы нпс, то они нормально отображаются на карте.

  • Полезно 1

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


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

В справочнике вылетов есть подробности по вылету Line: 63, только там из ЗП, а в ТЧ так:

Expression    : <no expression>
Function      : CBlender_default::Compile
File          : .\BlenderDefault.cpp
Line          : 50
Description   : fatal error
Arguments     : Not enought textures for shader, base tex: mtl\mtl_red_paint_iov

Происходит на стадии Loading models..., на рендере р1. Какая-то динамическая моделька использует шейдер для статич.объектов, а надо подходящий из models\.

Если добавить все модели в prefetch_single.ltx, и добавить вывод в лог, то проще будет найти косячную:

Скрытый текст
\xr_3da\xrRender\ModelPool.cpp
// дополнить функцию...
void CModelPool::Prefetch()
{
	Logging					(FALSE);
	// prefetch visuals
	string256 section;
	strconcat				(sizeof(section),section,"prefetch_visuals_",g_pGamePersistent->m_game_params.m_game_type);
	CInifile::Sect& sect	= pSettings->r_section(section);
	for (CInifile::SectCIt I=sect.Data.begin(); I!=sect.Data.end(); I++)	{
		const CInifile::Item& item= *I;
      	// ... строчкой ниже, для вывода в лог имя модели
		Msg("- Prefetch visual: %s", item.first.c_str());
		IRender_Visual* V	= Create(item.first.c_str());
		Delete				(V,FALSE);
	}
	Logging					(TRUE);
}

 

 

  • Нравится 1
  • Полезно 1

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


Ссылка на сообщение
1 час назад, AleBard сказал:

se_smart_cover.script:50

У ковера нет пресета анимаций в поле description (заполняется в сдк), или loopholes в acdc. Если в батнике, собирающий спавн, изменить путь к xrAI, на: bin\designer\mixed\xrAI.exe, то в логе будет имя ковера с ошибкой:

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

    level 101 test_map
[LUA] ...k_cop\editors\se_smart_cover:(43):name tsm_smart_cover descr nil
! [LUA] ...k_cop\editors\gamedata\scripts\se_smart_cover.script:50: attempt to index field '?' (a nil value)

 

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


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

@AleBard  раз в сдк настроено, сделать make game и собрать спавн, да закинуть в игровую геймдату.

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


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

@AleBard есть тестовая карта под чистый ЗП (+ исходник для сдк), с рабочими коверами: https://disk.yandex.ru/d/4a0IGDXzgsm_hQ

Посмотри как сделано, да сравни со своими данными, может найдёшь где ошибка.

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


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

@AleBard 

Как и говорил, у ковера нет пресета анимаций, а именно animpoint_sit_ass, а его в чистом ЗП нет. Ты добавил его в геймдату сдк, раз смог назначить в редакторе, а в игровой геймдате всё так же сделал?

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

\scripts\smart_covers.script

 

    --combat                     = smart_covers_combat.get_smart_cover(),
    combat_prone             = smart_covers_combat_prone.get_smart_cover(),
    combat_front            = smart_covers_combat_front.get_smart_cover(),
    animpoint_stay_wall     = smart_covers_animpoint_stay_wall.get_smart_cover(),
    animpoint_stay_table     = smart_covers_animpoint_stay_table.get_smart_cover(),

отсюда начинается регистрация animpoint_sit_ass
    animpoint_sit_high         = smart_covers_animpoint_sit_high.get_smart_cover(),
    animpoint_sit_normal     = smart_covers_animpoint_sit_normal.get_smart_cover(),
    animpoint_sit_low         = smart_covers_animpoint_sit_low.get_smart_cover(),

    animpoint_pri_a15         = smart_covers_animpoint_pri_a15.get_smart_cover(),
    anim_pri_a22             = smart_covers_anim_pri_a22.get_smart_cover()

 

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


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

@AleBard 

Берёшь папку scripts от оригинального ЗП 1.6.02, кладешь в игровую геймдату, и с помощью программы для сравнения файлов (Araxis Merge, Beyond Compare и т.п/), проверяешь её с scripts, которая в сдк. Переносишь различия из одной в другую, но тут нужно понимать, какие блоки кода касаются новых пресетов, но ничего, раза с 10-го получится :) 

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


Ссылка на сообщение
1 час назад, AleBard сказал:

'select_next_sound' (interval is empty)

Этот interval берётся из строки idle (первые два числа, где первое всегда <= второму) звуковой темы, что в script_sound_карта.ltx:

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

[meet_hello]
type = npc
avail_communities = army, stalker, bandit, dolg, freedom
npc_prefix = true
path = states\meet\meet_hello_
shuffle = rnd
idle = 2,2,100 или idle = 1,2,100, но idle = 2,1,100 - будет вылет

 

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


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

@AleBard 

Так сравни его с другими нпс.

И точно нет в configs\misc\script_sound.ltx своих правок? При подходе игрока без оружия или с ним, нпс выбирает соответствующую звук.тему: meet_hello, meet_hide_weapon. Могут быть другие, но это уже не оригинал ЗП. Эти темы находятся в том файле, и в какой-то ошибка.

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


Ссылка на сообщение
30 минут назад, Skridoxx сказал:

0 graph points loaded

Нужно расставить графпоинты, по ним двигается вся живность.

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


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

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

  • Куратор(ы) темы:

AMK-Team.ru

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