S.T.A.L.K.E.R.: Global War <<<>>> Инструмент - теперь и для ТЧ! <<<>>> NS OGSR: Сборка от 30.12.2023
-
Число публикаций
47 -
Регистрация
-
Последнее посещение
-
AMKoin
4,061 [Подарить AMKoin]
Сообщения опубликованы Shkiper2012
-
-
23 часа назад, StormBreaker сказал:
куда кидать эти правки?
"Кидать" не надо.
Эти правки вводятся "ручками" в соответствующие файлы исходников движка.
- 1
-
Парни, может кто знает, как изменить скорость проигрывания звука(ускорить)? Нужно для дела.
Сейчас разбираюсь в исходниках "xrSound/xrGame" и не знаю с какой стороны подступится.
Движок ЗП.
-
12 часов назад, ARTLantist сказал(а):
чтобы убрать автоперезарядку оружия?
Здесь можешь посмотреть, хотя там про ТЧ, для ЗП будет примерно так же.
- 1
-
@AndreySol Да, уже разобрался.
-
Движок ЗП.
Что означает аббревиатура "SLS"?
Встречается у некоторых файлов/функций (например: Level_SLS_Default.cpp).
Вырезаю мп и всякий мусор, не могу понять - для чего и нужны ли...
-
13 часов назад, ARTLantist сказал(а):
убрать звуки счётчика нпс?
Адрес звука:
"sounds\detectors\contact_1.ogg".— Прописан в файлах: —system.ltx →[maingame_ui]snd_new_contact = detectors\contact_1maingame(_16).xml --><new_contact_snd>detectors\contact_1</new_contact_snd>
Можно поменять на "заглушку" типа "$nosound".
Либо только через движок, там это прописано. -
Друзья, не завалялся ли у кого-нибудь DocViewer или 2D HUD Viewer, версии для ЗП?
-
В 18.11.2018 в 17:48, Fenrir02 сказал:
Как именно применить это на практике?
в нужную функцию вставляем:
level.send_event_key_press(DIK_keys.DIK_F3)
-- вместо "DIK_F3" может быть любая другая клавиша.
Результатом будет имитация нажатия,
как будто ты нажал на кл."F3" (не касаясь пальцем физически).
Только вот не помню, должна ли быть локация загружена в этот момент,
так как используется пространство "level".
На всякий, может проверку поставить, типа "if level then ... end"
- 1
-
[ЗП/СоС]
Как прочесть/выставить режим огня для оружия, с помощью нет-пакетов?
Если есть готовые примеры, ткните, пожалуйста.
-
[ЗП, СоС]
Как заставить нпс скриптом перезарядить оружие, которое держит в руках (с анимацией и прочим)?
Смотрел как сделано у @Bak в AI Additions, но так до конца и не понял.
Вроде используется такая штука, после кучи проверок:
npc:set_item(object.aim_force_full1,wpn)
Пытаюсь сделать по аналогии, типа так:
Скрытый текст-- добавление недостающих команд для оружия if not object.aim_force_full1 then object.aim_ready1 = object.drop+1 -- eObjectActionAimReady1 = 12 object.aim_ready2 = object.aim_ready1+1 -- eObjectActionAimReady2 = 13 object.aim_force_full1 = object.aim_ready2+1 -- eObjectActionAimForceFull1 = 14 object.aim_force_full2 = object.aim_force_full1+1 -- eObjectActionAimForceFull2 = 15 end local target_obj = level.get_target_obj() local npc = target_obj local wpn = npc and npc:active_item() if npc and wpn then log("reloading wpn -- start --") -- 1 -- Либо так: -- -- npc:set_item( object.reload, wpn ) -- npc:set_item( object.reload1, wpn ) -- npc:set_item( object.reload2, wpn ) -- 2 -- или так: npc:set_item( object.aim_force_full1, wpn ) log("reloading wpn -- end --") end
Ничего "не выходит" - нпс просто стоит "как ни в чем не бывало".
Или парой строк скрипта не обойтись (нужно писать схему поведения, добавлять в планировщик и т.д.)?
-
Где в файлах прописана дистанция использования/диалога/шмона трупов/ящиков - когда жмёшь кл."F" ?
Можно ли её (дистанцию) менять в игре?
Или она зашита в движок?
(...если ответ уже где-то был дан, пожалуйста, ткните где копать...)
-
[ЗП, СоС]
Как скриптово отследить в каком положении находится актор (идёт/бежит/сидит/в глубоком присяди/и т.п...).
Есть ли какой-либо флаг/метод/что-либо?
-
[ЗП, СоС]
Можно ли скриптово отловить момент(...какой-либо флаг, поршень, окно...),
когда при разговоре с механиком, открыто окно с ремонтом/апгрейдами для предметов?
-
[ ЗП_1.6.02 / СоС_1.4/1.5 ]
В каком порядке движок "читает" db-файлы?
Как влияет расположение папок с ресурсами игры на это "чтение"?
Знаю только, что распакованную "gamedata" в последнюю очередь.
Интересуют как оригинальный двиг, так и от СоС.
Смотрел исходники, но не разобрался.
Заранее признателен.
-
Можно ли скриптом "повесить" актора в пространстве? Чтоб он завис в воздухе.
Пробовал делать через "db.actor:set_actor_position( ... точка в пространстве ... )",
и обновлять через апдейт - в результате камеру "колбасит не по-детстки".
Можно конечно, что-нибудь спавнить под актором и фиксировать, но это не то.
Есть варианты? Именно скриптом.
-
Вывод: прямо из скрипта нельзя настроить группирование/торгуемость (другие флаги не проверял)
(в xp-dev движке, на данный момент, для отдельно-взятого предмета).
Так? Или есть другие варианты?
Раньше я игрался с "кондишен" предмета для этих целей, либо использовал X-Ray extensions с их "set_inventory_item_int16".
А тут такой облом.
-
@dsh Наспавнил 5 бутылок водки в инвентарь гг.
Беру одну бутылку и пытаюсь установить ей флаг "не-группируемости" или "не-торгуемости".
Но, никакого результата (либо я его не вижу).Что делал:
Скрытый текст-- dbg_logf - это тот же log1, только для дебага. -- Ставим флаг. -- function set_item_ungroupable( item ) if not item then return end dbg_logf("* set_item_ungroupable -- 0 -- sect: "..tostring( item:section() ).." id: "..tostring( item:id() )) local f = item:get_inventory_item_flags() dbg_logf("* set_item_ungroupable -- 1 -- ") f:set( 16384, true ) -- const FIUngroupable = 16384; -- f:set( 8192, true ) -- const FIAlwaysUntradable = 8192; dbg_logf("* set_item_ungroupable -- 2 -- ") item:set_inventory_item_flags( f ) dbg_logf("* set_item_ungroupable -- 3 -- ") end -- Поиск предмета по секции в инвентаре. -- function search_item_in_inv( section ) for i=0, db.actor:object_count()-1 do local obj = db.actor:object(i) if obj:section() == section then dbg_logf("* search_item_in_inv >>> sect: "..tostring(section).." >>> id: "..tonumber(obj:id())) -- return obj:id() -- предмет найден return obj -- предмет найден end end return nil end local sec = "vodka" local act = db.actor if act then local obj = search_item_in_inv(sec) if obj then dbg_logf("* set_item_ungroupable -- start -- ") set_item_ungroupable(obj) dbg_logf("* set_item_ungroupable -- finish -- ") end end
Лог:
Скрытый текст[02.11.17 01:08:15.656] ~~Start TESTING script! [02.11.17 01:08:15.657] ~ -------------------------------------------------------- [02.11.17 01:08:15.658] * search_item_in_inv >>> sect: vodka >>> id: 16905 [02.11.17 01:08:15.658] * set_item_ungroupable -- start -- [02.11.17 01:08:15.658] * set_item_ungroupable -- 0 -- sect: vodka id: 16905 [02.11.17 01:08:15.658] * set_item_ungroupable -- 1 -- [02.11.17 01:08:15.658] * set_item_ungroupable -- 2 -- [02.11.17 01:08:15.658] * set_item_ungroupable -- 3 -- [02.11.17 01:08:15.658] * set_item_ungroupable -- finish -- [02.11.17 01:08:15.658] ~ -------------------------------------------------------- [02.11.17 01:08:15.658] ~~Finish TESTING script!
Ожидания:
Скрытый текстБутылка с флагом "должна" отделится от группы остальныих или, при торговле "должна быть": закрашена красным и не доступна, при соответствующем флаге, конечно. Но, этого не происходит.
Что я делаю не так?
-
- Это популярное сообщение.
- Это популярное сообщение.
ТЧ 1.0007rc1
// Уменьшаем вес и цену предмета после использования. //
Скрытый текст/* #define EAT_PORTIONS_INFLUENCE // Уменьшаем вес и цену предмета после использования. Автор идеи: Real Wolf. В движке из репо на 'xp-dev.com' [ТЧ 1.0007rc1] - есть наработки от Real Wolf по этой теме. В файле "eatable_item.cpp" есть строки: #if defined(EAT_PORTIONS_INFLUENCE) но дефайн нигде не был объявлен. Собрав движок с объявленным #define EAT_PORTIONS_INFLUENCE - ничего не изменилось. Правка не работала. Немного доработал правку. Работает. Файлы для правки: X:\trunk\xray\xr_3da\xrGame\eatable_item.h X:\trunk\xray\xr_3da\xrGame\eatable_item.cpp X:\trunk\xray\xr_3da\xrGame\inventory_item.h */
// eatable_item.h //
Скрытый текст//////////////////// // eatable_item.h // //////////////////// class CEatableItem : public CInventoryItem { // ... // После строки: int GetPortionsNum() const { return m_iPortionsNum; }; // Добавляем это: int GetStartPortionsNum() const { return m_iStartPortionsNum; }; // <--- // Не используется, но может пригодится. // float GetOnePortionWeight(); // <--- // u32 GetOnePortionCost(); // <--- // };
// eatable_item.cpp //
Скрытый текст////////////////////// // eatable_item.cpp // ////////////////////// BOOL CEatableItem::net_Spawn (CSE_Abstract* DC) { // ... if (CSE_ALifeItemEatable* se_eat = smart_cast<CSE_ALifeItemEatable*>(DC)) { m_iPortionsNum = se_eat->m_portions_num; #if defined(EAT_PORTIONS_INFLUENCE) // Уменьшаем вес и цену после использования. // by Real Wolf // /* Это можно удалять, если было! m_weight -= m_weight / m_iStartPortionsNum * m_iPortionsNum; m_cost -= m_cost / m_iStartPortionsNum * m_iPortionsNum; */ if( m_iPortionsNum > 0 ){ float w = GetOnePortionWeight(); float weight = w * m_iPortionsNum; u32 c = GetOnePortionCost(); u32 cost = c * m_iPortionsNum; SetWeight ( weight ); SetCost ( cost ); } #endif } else m_iPortionsNum = m_iStartPortionsNum; return TRUE; } void CEatableItem::UseBy (CEntityAlive* entity_alive) { // ... //уменьшить количество порций if(m_iPortionsNum > 0) --(m_iPortionsNum); else m_iPortionsNum = 0; #if defined(EAT_PORTIONS_INFLUENCE) // Уменьшаем вес и цену после использования. // by Real Wolf // /* Это можно удалять, если было! auto sect = object().cNameSect().c_str(); auto weight = READ_IF_EXISTS(pSettings, r_float, sect, "inv_weight", 0.0f); auto cost = READ_IF_EXISTS(pSettings, r_float, sect, "cost", 0.0f); m_weight -= weight / m_iStartPortionsNum; m_cost -= cost / m_iStartPortionsNum; */ float w = GetOnePortionWeight(); float weight = m_weight - w; u32 c = GetOnePortionCost(); u32 cost = m_cost - c; SetWeight ( weight ); SetCost ( cost ); #endif // ... } // В конце файла, добавляем новые методы класса: // float CEatableItem::GetOnePortionWeight() { float rest = 0.0f; LPCSTR sect = object().cNameSect().c_str(); float weight = READ_IF_EXISTS( pSettings, r_float, sect, "inv_weight", 0.100f ); s32 portions = pSettings->r_s32( sect, "eat_portions_num" ); if( portions > 0 ){ rest = weight / portions; }else{ rest = weight; } return rest; } u32 CEatableItem::GetOnePortionCost() { u32 rest = 0; LPCSTR sect = object().cNameSect().c_str(); u32 cost = READ_IF_EXISTS( pSettings, r_u32, sect, "cost", 1); s32 portions = pSettings->r_s32( sect, "eat_portions_num" ); if( portions > 0 ){ rest = cost / portions; }else{ rest = cost; } return rest; }
// inventory_item.h //
Скрытый текст////////////////////// // inventory_item.h // ////////////////////// class CInventoryItem : public CAttachableItem, public CHitImmunity #ifdef DEBUG , public pureRender #endif { // ... // После строк: virtual u32 Cost () const { return m_cost; } virtual void SetCost (u32 cost) { m_cost = cost; } virtual float Weight () { return m_weight;} // Добавить это: virtual void SetWeight (float w) { m_weight = w; } // <--- // // ... };
// У бинокля меньшая кратность зума изначально. //
Скрытый текст/* Когда пользуешься биноклем, изначально кратность зума почему-то всегда максимальная. Это не всегда удобно. Правка делает кратность зума(при загрузке локации) равной = g_fov актора, т.е. как будто смотришь без бинокля. Вместо g_fov можно использовать свои настройки. !!! Обратите внимание. !!! Если делать оружие на классе бинокля, то эту правку нужно откорректировать под ваши задачи/оружие. X:\trunk\xray\xr_3da\xrGame\WeaponBinoculars.cpp */ BOOL CWeaponBinoculars::net_Spawn (CSE_Abstract* DC) { // m_fRTZoomFactor = m_fScopeZoomFactor; // <--- Было <--- // m_fRTZoomFactor = g_fov; // <--- Стало <--- // // ... }
// Убираем троеточие в строках, при загрузке локации, типа: "Клиент: Синхронизация..." //
Скрытый текст/* Вроде мелочь, а (по моему скромному мнению) выглядит лучше без точек. X:\trunk\xray\xr_3da\xrGame\GamePersistent.cpp */ void CGamePersistent::LoadTitle(LPCSTR str) { // ... // sprintf_s (buff, "%s...", CStringTable().translate(str).c_str()); // <--- Было <--- // sprintf_s (buff, "%s", CStringTable().translate(str).c_str()); // <--- Стало <--- // // ... }
// Убираем прогресс-бары "точности, скорострельности и т.д." для ножа. //
Скрытый текст/* Правка убирает прогресс-бары в описании предметов: ножа, ПБС/глушителей, и бинокля. Для ПБС и бинокля они были убраны изначально. А для ножа - нет. Сделал так, что бы проверка на "Показывать прогресс-бар?" была не по секции предмета, как было изначально в оригинале игры, а по классу предмета. Тем самым, можно на этих классах делать другие предметы, не опасаясь, что в описании будут "полоски" характеристик для оружия. !!! Обратите внимание. !!! Если делать оружие на классе бинокля, то эту правку нужно откорректировать под ваши задачи/оружие. X:\trunk\xray\xr_3da\xrGame\ui\UIWpnParams.cpp */ bool CUIWpnParams::Check(const shared_str& wpn_section){ if (pSettings->line_exist(wpn_section, "fire_dispersion_base")) { /* Это можно удалять! if (0==xr_strcmp(wpn_section, "wpn_addon_silencer")) return false; if (0==xr_strcmp(wpn_section, "wpn_binoc")) return false; if (0==xr_strcmp(wpn_section, "mp_wpn_binoc")) return false; */ const char* wpn_clsid_str = pSettings->r_string( wpn_section, "class" ); if( strstr( wpn_clsid_str, "KNIFE") || strstr( wpn_clsid_str, "SILENC") || strstr( wpn_clsid_str, "BINOC") ){ return false; } return true; } else return false; }
- 1
- 2
- 1
- 4
-
[ТЧ 1.0007rc1 (xp-dev.com)]
Методы для CInventoryItem: set_inventory_item_flags(flags16) и get_inventory_item_flags()
Если, есть те, кто разобрался как ими пользоваться.
Подскажите, пожалуйста (с примерами, если не трудно).
В движке из репо на xp-dev.com -- при обыске трупа или открытия ящика -- не работает выпадающий список действий (при нажатии правой клавиши мыши) на предмет.
Может, кто-нибудь поправил это? Если да - как исправить?
-
Снимаю флаг flUsedAI_Locations (в данном примере для предметов из ящиков, чтоб не проваливались)
local sobj_item = alife():object( obj_itm.id ) local pk = m_netpk.get( sobj_item ) local data = pk:get() data.object_flags = bit_and( data.object_flags, bit_not( 128 ) ) -- снять флаг flUsedAI_Locations pk:set( data )
Как выставить флаг обратно, так же скриптом? (В побитовой математике не шарю.)
@TIGER_VLAD Можно попробовать, через имитацию нажатия клавиши (если есть такой функционал).
-
- Это популярное сообщение.
- Это популярное сообщение.
// Зум в один клик. Теперь не нужно удерживать клавишу для прицеливания. //
Скрытый текст#define ONE_CLICK_ZOOM // Зум в один клик. Теперь не нужно удерживать клавишу прицеливания. /* В оригинальной игре чтобы целится через мушку/прицел/наблюдение в бинокль, - нужно было удерживать клавишу зума. Не знаю точно, это баг или так и задумано. Эта правка делает прицеливание в одно нажатие клавиши(без удержания): нажал - целишься, нажал снова - оружие к бедру. X:\trunk\xray\xr_3da\xrGame\Weapon.cpp Сделал через дефайн, для возможности вкл./выкл. этой правки. В функции: bool CWeapon::Action(s32 cmd, u32 flags) нужно дополнить: case kWPN_ZOOM: */ bool CWeapon::Action(s32 cmd, u32 flags) { ... switch (cmd) { ... ... case kWPN_ZOOM: if (IsZoomEnabled()) { #ifdef ONE_CLICK_ZOOM if( flags&CMD_START && !IsPending() && !IsZoomed() ) OnZoomIn(); else if( flags&CMD_START && IsZoomed() ) OnZoomOut(); #else if (flags&CMD_START && !IsPending()) OnZoomIn(); else if (IsZoomed()) OnZoomOut(); #endif return true; } else return false; case kWPN_ZOOM_INC: case kWPN_ZOOM_DEC: ... ... } ... }
- 2
- 1
- 5
-
- Это популярное сообщение.
- Это популярное сообщение.
Порция мелких правок.
Скрытый текстДвижок 1.0007rc1 (xp-dev), для других версий, возможно будет по-другому.
Делал с дефайнами для возможности вкл/выкл.
Тут элементарные фишки, которые мне были нужны, решил выложить, может пригодится кому-нибудь.
Дефайны можно добавить в 'build_config_defines.h' (если такой есть), либо в начало файла с правкой.// Убираем возможность переключаться между слотами колесиком мыши + небольшая правка для зума. //
Скрытый текст#define NO_MOUSE_WHELL_SWITCH_SLOT // Убираем возможность переключаться между слотами колесиком мыши + небольшая правка для зума. /* Убираем возможность переключаться между слотами колесиком мыши. Мне это было нужно, по-этому решил убрать. И тут же поправим кратность зума. Зум будет меняться, только если целимся или смотрим в бинокль. В конфиги бинокля и оружия (у которого хотите сделать динамический зум) нужно добавить: scope_dynamic_zoom = true X:\trunk\xray\xr_3da\xrGame\ActorInput.cpp */ void CActor::IR_OnMouseWheel(int direction) { /* Это убрал: if(inventory().Action( (direction>0)? kWPN_ZOOM_DEC:kWPN_ZOOM_INC , CMD_START)) return; Короткие записи - они, конечно, компактнее, но их читабельность ниже. */ if( IsZoomAimingMode() ) { if( direction > 0 ){ inventory().Action( kWPN_ZOOM_INC, CMD_START ); return; }else{ inventory().Action( kWPN_ZOOM_DEC, CMD_START ); return; } } #ifndef NO_MOUSE_WHELL_SWITCH_SLOT if (direction>0) OnNextWeaponSlot(); else OnPrevWeaponSlot(); #endif }
// Блокируем авто-перезарядку и сброс зума, когда закончились патроны. //
Скрытый текст#define NO_AUTO_RELOAD_WPN // Блокируем авто-перезарядку и сброс зума, когда закончились патроны. /* Когда в оружие закончаться патроны анимация "прицеливания" не будет уходить в исходное положение "от бедра". X:\trunk\xray\xr_3da\xrGame\WeaponMagazined.cpp */ void CWeaponMagazined::FireEnd() { inherited::FireEnd(); // 1/2 // Блокируем авто-перезарядку и сброс зума, когда закончились патроны. // #ifndef NO_AUTO_RELOAD_WPN // Если делать без дефайна, то этот код нужно закомментировать. // --> // CActor *actor = smart_cast<CActor*>(H_Parent()); if (!iAmmoElapsed && actor && GetState() != eReload){ Reload(); } // <-- // #endif } void CWeaponMagazined::switch2_Empty() { // 2/2 // Блокируем авто-перезарядку и сброс зума, когда закончились патроны. // #ifdef NO_AUTO_RELOAD_WPN if (smart_cast<CActor*>(H_Parent()) != NULL) { OnEmptyClick(); return; } #endif OnZoomOut(); ... }
// Bug_Fix: Убираем звук перезарядки, если прячем оружие. //
Скрытый текст// Bug_Fix: Убираем звук перезарядки, если прячем оружие. // /* Когда оружие только начало перезаряжаться, и тут же его спрятали или переключились на другой слот - звук перезарядки продолжается проигрываться. Чтобы остановить звук перезарядки, нужно добавить в функции ниже: HUD_SOUND::StopSound(sndReload); X:\trunk\xray\xr_3da\xrGame\WeaponMagazined.cpp */ void CWeaponMagazined::switch2_Hiding() { CWeapon::FireEnd(); HUD_SOUND::StopSound(sndReload); // <--- // PlaySound(sndHide, get_LastFP()); PlayAnimHide(); m_bPending = true; } void CWeaponMagazined::switch2_Hidden() { CWeapon::FireEnd(); HUD_SOUND::StopSound(sndReload); // <--- // if (m_pHUD) m_pHUD->StopCurrentAnimWithoutCallback(); signal_HideComplete(); RemoveShotEffector(); }
// Спрячем/показываем предмет в руках, когда откр./закр. инвентарь. //
Скрытый текст#define HIDE_WEAPON_IN_INV // Спрячем/показываем предмет в руках, когда откр./закр. инвентарь. /* Из названия, думаю, всё понятно: Открыли инвентарь - оружие(или что-либо в руках) убрали, Закрыли инвентарь - снова достали, то что было в руках. X:\trunk\xray\xr_3da\xrGame\ui\UIInventoryWnd.cpp */ void CUIInventoryWnd::Show() { ... Update (); PlaySnd (eInvSndOpen); // в конец функции нужно добавить: #ifdef HIDE_WEAPON_IN_INV if( IsGameTypeSingle() ) { CActor* pAct = smart_cast<CActor*>(Level().CurrentEntity()); if( pAct ){ pAct->SetWeaponHideState(INV_STATE_BLOCK_ALL, true); } } #endif } void CUIInventoryWnd::Hide() { ... ... SendInfoToActor ("ui_inventory_hide"); ClearAllLists (); // тут нужно добавить: #ifdef HIDE_WEAPON_IN_INV if( IsGameTypeSingle() ) { CActor* pAct = smart_cast<CActor*>(Level().CurrentEntity()); if( pAct ){ pAct->SetWeaponHideState(INV_STATE_BLOCK_ALL, false); } } #endif //достать вещь в активный слот CActor *pActor = smart_cast<CActor*>(Level().CurrentEntity()); ... ... }
- 2
- 2
- 3
-
5 часов назад, abramcumner сказал:
в этой строке?
В этой строчке '{'
Скрытый текст5 часов назад, abramcumner сказал:геймдата
Да от 6-го, но добавлены файлы из папки 'resources' (те, что в репо xp-dev).
-
Приветствую.
Собираю исходники ТЧ 1.0007rc1 от xp-dev (ревизии 188 и 201). Всё собирается и запускается.
Но, есть небольшая проблема: в игре при окончании разговора с НПС (кликаю в диалоге "До свидания.") - вылет.
Вылетает только(!) с тем НПС, которые в конце диалога что-нибудь выдают актору. С другими всё в порядке.
Например, в начале игры: Сидор - выдает нож в начале игры; Волк - выдает пистолет, патроны, аптечку; Шустрый - выдает флэшку для Сидора.
Каждый диалог заканчивается таким вылетом:(лог разбил на две части, для удобства восприятия текста)
Скрытый текст[10/03/17 21:09:05] * Detected CPU: GenuineIntel Intel(R) Celeron(R) CPU 925 @ 2.30GHz, F6/M23/S10
[10/03/17 21:09:05] * CPU Features: RDTSC, MMX, SSE, SSE2, SSE3
[10/03/17 21:09:05]
[10/03/17 21:09:05] Initializing File System...
[10/03/17 21:09:05] !WARNING: CLocatorAPI::check_for_file not found file fsgame.ltx in files list (size = 26)
[10/03/17 21:09:05] !WARNING: CLocatorAPI::check_for_file not found file d:\games\s.t.a.l.k.e.r\bin\fsgame.ltx in files list (size = 26)
[10/03/17 21:09:05] CLocatorAPI::ProcessArchive, path = d:\games\s.t.a.l.k.e.r\gamedata.db0
[10/03/17 21:09:05] CLocatorAPI::ProcessArchive, path = d:\games\s.t.a.l.k.e.r\gamedata.db1
[10/03/17 21:09:05] CLocatorAPI::ProcessArchive, path = d:\games\s.t.a.l.k.e.r\gamedata.db2
[10/03/17 21:09:05] CLocatorAPI::ProcessArchive, path = d:\games\s.t.a.l.k.e.r\gamedata.db3
[10/03/17 21:09:05] CLocatorAPI::ProcessArchive, path = d:\games\s.t.a.l.k.e.r\gamedata.db4
[10/03/17 21:09:05] CLocatorAPI::ProcessArchive, path = d:\games\s.t.a.l.k.e.r\gamedata.db5
[10/03/17 21:09:05] CLocatorAPI::ProcessArchive, path = d:\games\s.t.a.l.k.e.r\gamedata.db6
[10/03/17 21:09:05] CLocatorAPI::ProcessArchive, path = d:\games\s.t.a.l.k.e.r\gamedata.db7
[10/03/17 21:09:05] CLocatorAPI::ProcessArchive, path = d:\games\s.t.a.l.k.e.r\gamedata.db8
[10/03/17 21:09:05] CLocatorAPI::ProcessArchive, path = d:\games\s.t.a.l.k.e.r\gamedata.db9
[10/03/17 21:09:05] CLocatorAPI::ProcessArchive, path = d:\games\s.t.a.l.k.e.r\gamedata.dba
[10/03/17 21:09:05] CLocatorAPI::ProcessArchive, path = d:\games\s.t.a.l.k.e.r\gamedata.dbb
[10/03/17 21:09:05] CLocatorAPI::ProcessArchive, path = d:\games\s.t.a.l.k.e.r\gamedata.dbc
[10/03/17 21:09:05] CLocatorAPI::ProcessArchive, path = d:\games\s.t.a.l.k.e.r\gamedata.dbd
[10/03/17 21:09:05] using fs-ltx fsgame.ltx
[10/03/17 21:09:05] --found external arch mp_military_2.xdb0
[10/03/17 21:09:05] CLocatorAPI::ProcessArchive, path = d:\games\s.t.a.l.k.e.r\mods\mp_military_2.xdb0
[10/03/17 21:09:05] FS: 28833 files cached, 4271Kb memory used.
[10/03/17 21:09:05] Init FileSystem 2.171648 sec
[03.10.17 21:09:05.223] 'xrCore' build 6815, Oct 3 2017
[03.10.17 21:09:05.223]
[03.10.17 21:09:05.738] Initializing Engine...
[03.10.17 21:09:05.738] Loading config for renderer
[03.10.17 21:09:05.738] Executing config-script "user.ltx"...
[03.10.17 21:09:05.769] [d:\games\s.t.a.l.k.e.r\stalker-shoc\user.ltx] successfully loaded.
[03.10.17 21:09:05.769] Starting INPUT device...
[03.10.17 21:09:06.081] Loading DLL: xrRender_R1.dll
[03.10.17 21:09:06.581] Loading DLL: xrGame.dll
[03.10.17 21:09:06.986] * [win32]: free[2012212 K], reserved[18520 K], committed[66356 K]
[03.10.17 21:09:06.986] * [ D3D ]: textures[0 K]
[03.10.17 21:09:06.986] * [x-ray]: crt heap[5991 K], process heap[647 K], game lua[0 K], engine lua[0 K], render[0 K]
[03.10.17 21:09:06.986] * [x-ray]: economy: strings[1032 K], smem[0 K]
[03.10.17 21:09:07.017] Executing config-script "d:\games\s.t.a.l.k.e.r\gamedata\config\default_controls.ltx"...
[03.10.17 21:09:07.080] cant convert dik_name for dik[144], prop=[
[03.10.17 21:09:07.111] [d:\games\s.t.a.l.k.e.r\gamedata\config\default_controls.ltx] successfully loaded.
[03.10.17 21:09:07.111] Executing config-script "user.ltx"...
[03.10.17 21:09:07.127] Executing config-script "d:\games\s.t.a.l.k.e.r\gamedata\config\rspec_minimum.ltx"...
[03.10.17 21:09:07.142] Unknown command: r__dtex_range
[03.10.17 21:09:07.142] Unknown command: r__ssa_glod_end
[03.10.17 21:09:07.142] Unknown command: r__ssa_glod_start
[03.10.17 21:09:07.142] Unknown command: rs_detail
[03.10.17 21:09:07.142] Unknown command: rs_skeleton_update
[03.10.17 21:09:07.142] Unknown command: vid_bpp
[03.10.17 21:09:07.142] [d:\games\s.t.a.l.k.e.r\gamedata\config\rspec_minimum.ltx] successfully loaded.
[03.10.17 21:09:07.142] Executing config-script "d:\games\s.t.a.l.k.e.r\gamedata\config\default_controls.ltx"...
[03.10.17 21:09:07.142] [d:\games\s.t.a.l.k.e.r\gamedata\config\default_controls.ltx] successfully loaded.
[03.10.17 21:09:07.173] [d:\games\s.t.a.l.k.e.r\stalker-shoc\user.ltx] successfully loaded.
[03.10.17 21:09:07.236] SOUND: OpenAL: enumerate devices...
[03.10.17 21:09:07.236] SOUND: OpenAL: EnumerationExtension Present
[03.10.17 21:09:07.345] devices Generic Hardware
[03.10.17 21:09:07.361] SOUND: OpenAL: system default SndDevice name is Generic Hardware
[03.10.17 21:09:07.361] SOUND: OpenAL: default SndDevice name set to Generic Software
[03.10.17 21:09:07.860] SOUND: OpenAL: All available devices:
[03.10.17 21:09:07.860] 1. Generic Software, Spec Version 1.1 (default)
[03.10.17 21:09:07.860] 2. Generic Software, Spec Version 1.1 (default)
[03.10.17 21:09:07.860] SOUND: OpenAL: SelectBestDevice is Generic Software 1.1
[03.10.17 21:09:07.910] SOUND: OpenAL: Required device: Generic Software. Created device: Generic Software.
[03.10.17 21:09:07.910] * sound: EAX 2.0 extension: absent
[03.10.17 21:09:07.910] * sound: EAX 2.0 deferred: absent
[03.10.17 21:09:07.938] * sound : cache: 49155 kb, 5707 lines, 8820 bpl
[03.10.17 21:09:07.942] Starting RENDER device...
[03.10.17 21:09:08.248] * GPU [vendor:8086]-[device:2A42]: Mobile Intel(R) 4 Series Express Chipset Family
[03.10.17 21:09:08.248] * GPU driver: 8.15.10.2869
[03.10.17 21:09:11.867] * CREATE: DeviceREF: 1
[03.10.17 21:09:11.867] * Vertex Processor: PURE HARDWARE
[03.10.17 21:09:11.947] * Texture memory: 817 M
[03.10.17 21:09:11.947] * DDI-level: 9.0
[03.10.17 21:09:13.137] * GPU shading: vs(fffe0300/3.0/30), ps(ffff0300/3.0/30)
[03.10.17 21:09:13.152] * GPU vertex cache: recognized, 32
[03.10.17 21:09:13.243] * DVB created: 4096K
[03.10.17 21:09:13.243] * DIB created: 512K
[03.10.17 21:09:15.618] count of .thm files=4
[03.10.17 21:09:15.835] load time=826 ms
[03.10.17 21:09:15.882] * distortion: used, dev(30),need(14)
[03.10.17 21:09:15.882] * SSample: 1280x768
[03.10.17 21:09:16.569] * SSample: enabled
[03.10.17 21:09:16.916] Script debugger succesfully restarted.
[03.10.17 21:09:17.448] Starting engine...
[03.10.17 21:09:19.629] Loading DLL: xrGameSpy.dll
[03.10.17 21:09:26.248] * DVB created: 4096K
[03.10.17 21:09:26.248] * DIB created: 512K
[03.10.17 21:09:26.248] * SSample: 1280x768
[03.10.17 21:09:26.260] * SSample: enabled
[03.10.17 21:09:26.260] * GPU shading: vs(fffe0300/3.0/30), ps(ffff0300/3.0/30)
[03.10.17 21:09:26.260] * GPU vertex cache: recognized, 32
[03.10.17 21:09:26.260] *** RESET [119 ms]
[03.10.17 21:09:26.305] "d:\games\s.t.a.l.k.e.r\bin\xr_3da.exe" -nointro
[03.10.17 21:09:26.307] * phase time: 0 ms
[03.10.17 21:09:26.309] * phase cmem: 84278 K
[03.10.17 21:09:26.309] Кэширование объектов...
[03.10.17 21:09:26.359] Loading objects...
[03.10.17 21:09:26.359] Loading models...
[03.10.17 21:09:43.513] * [prefetch] time: 17146 ms
[03.10.17 21:09:43.513] * [prefetch] memory: 82621Kb
[03.10.17 21:09:43.636] * phase time: 17328 ms
[03.10.17 21:09:43.645] * phase cmem: 163007 K
[03.10.17 21:09:43.645] Сервер: Старт...
[03.10.17 21:09:43.996] * phase time: 359 ms
[03.10.17 21:09:44.005] * phase cmem: 158431 K
[03.10.17 21:09:44.005] Сервер: Загрузка симуляции жизни...
[03.10.17 21:09:44.052] * phase time: 56 ms
[03.10.17 21:09:44.062] * phase cmem: 158431 K
[03.10.17 21:09:44.062] Загрузка игры "day_01_time_07_00_l01_escape.sav"...
[03.10.17 21:09:44.109] SE_DBG: CALifeSimulatorBase 'alife' ->m_objects = 0x0C79A680
[03.10.17 21:09:44.155] * Loading spawn registry...
[03.10.17 21:09:45.616] * 8641 spawn points are successfully loaded
[03.10.17 21:09:45.616] * Loading objects...
[03.10.17 21:09:46.260] * 17209 objects are successfully loaded
[03.10.17 21:09:48.588] * Game day_01_time_07_00_l01_escape is successfully loaded from file 'd:\games\s.t.a.l.k.e.r\stalker-shoc\savedgames\day_01_time_07_00_l01_escape.sav' (4.583s)
[03.10.17 21:09:48.588] * phase time: 4536 ms
[03.10.17 21:09:48.599] * phase cmem: 190379 K
[03.10.17 21:09:48.599] Сервер: Соединяемся...
[03.10.17 21:09:48.629] MaxPlayers = 32
[03.10.17 21:09:48.700] * phase time: 111 ms
[03.10.17 21:09:48.715] * phase cmem: 190411 K
[03.10.17 21:09:48.715] Клиент: Соединение с localhost...
[03.10.17 21:09:48.716] Player not found. New player created.
[03.10.17 21:09:48.746] * client : connection accepted - <>
[03.10.17 21:09:48.770] * phase time: 70 ms
[03.10.17 21:09:48.780] * phase cmem: 190459 K
[03.10.17 21:09:48.780] Открытие потока...
[03.10.17 21:09:48.823] * phase time: 53 ms
[03.10.17 21:09:48.833] * phase cmem: 190459 K
[03.10.17 21:09:48.833] Загрузка формы объектов...
[03.10.17 21:09:54.522] * phase time: 5699 ms
[03.10.17 21:09:54.535] * phase cmem: 263128 K
[03.10.17 21:09:54.535] Загрузка шейдеров...
[03.10.17 21:09:56.749] * phase time: 2226 ms
[03.10.17 21:09:56.759] * phase cmem: 264610 K
[03.10.17 21:09:56.759] Загрузка геометрии...
[03.10.17 21:09:56.992] * [Loading VB] 65532 verts, 2047 Kb
[03.10.17 21:10:00.203] * [Loading VB] 65525 verts, 2047 Kb
[03.10.17 21:10:00.237] * [Loading VB] 65535 verts, 2047 Kb
[03.10.17 21:10:00.272] * [Loading VB] 65466 verts, 2045 Kb...
Скрытый текст...
[03.10.17 21:10:01.592] * [Loading IB] 1048575 indices, 2047 Kb
[03.10.17 21:10:01.632] * [Loading IB] 228285 indices, 445 Kb
[03.10.17 21:10:01.694] * phase time: 4944 ms
[03.10.17 21:10:01.704] * phase cmem: 264965 K
[03.10.17 21:10:01.704] Загрузка базы пространств...
[03.10.17 21:10:05.610] * phase time: 3916 ms
[03.10.17 21:10:05.621] * phase cmem: 269003 K
[03.10.17 21:10:05.621] Загрузка детальных объектов...
[03.10.17 21:10:05.756] * [DETAILS] VertexConsts(256), Batch(61)
[03.10.17 21:10:05.757] * [DETAILS] 40687 v(20), 26352 p
[03.10.17 21:10:05.757] * [DETAILS] Batch(61), VB(794K), IB(154K)
[03.10.17 21:10:05.760] * phase time: 150 ms
[03.10.17 21:10:05.771] * phase cmem: 269062 K
[03.10.17 21:10:05.771] Загрузка секторов и порталов...
[03.10.17 21:10:05.826] * Loading HOM: d:\games\s.t.a.l.k.e.r\gamedata\levels\l01_escape\level.hom
[03.10.17 21:10:05.865] * phase time: 104 ms
[03.10.17 21:10:05.875] * phase cmem: 269203 K
[03.10.17 21:10:05.875] Загрузка ИИ объектов...
[03.10.17 21:10:06.094] - Loading music tracks from 'l01_escape_musics'...
[03.10.17 21:10:06.211] * phase time: 346 ms
[03.10.17 21:10:06.222] * phase cmem: 269258 K
[03.10.17 21:10:06.222] Клиент: Создание...
[03.10.17 21:10:06.373] - Game configuring : Started
[03.10.17 21:10:06.419] - Game configuring : Finished
[03.10.17 21:10:07.305] * phase time: 1094 ms
[03.10.17 21:10:07.318] * phase cmem: 284949 K
[03.10.17 21:10:07.318] Загрузка текстур...
[03.10.17 21:10:13.352] * t-report - base: 864, 47944 K
[03.10.17 21:10:13.352] * t-report - lmap: 10, 10241 K
[03.10.17 21:10:13.352] ***FATAL***: Too many lmap-textures (limit: 8 textures or 32M).
[03.10.17 21:10:13.381] Reduce pixel density (worse) or use more vertex lighting (better).
[03.10.17 21:10:13.382] * phase time: 6076 ms
[03.10.17 21:10:13.394] * phase cmem: 284950 K
[03.10.17 21:10:13.394] Клиент: Синхронизация...
[03.10.17 21:10:13.459] * phase time: 76 ms
[03.10.17 21:10:13.471] * phase cmem: 284950 K
[03.10.17 21:10:13.536] * [win32]: free[1362276 K], reserved[58760 K], committed[676052 K]
[03.10.17 21:10:13.536] * [ D3D ]: textures[58185 K]
[03.10.17 21:10:13.536] * [x-ray]: crt heap[284950 K], process heap[6470 K], game lua[22400 K], engine lua[168 K], render[0 K]
[03.10.17 21:10:13.536] * [x-ray]: economy: strings[3729 K], smem[28221 K]
[03.10.17 21:10:13.814] * phase time: 432 ms
[03.10.17 21:10:13.825] * phase cmem: 284973 K
[03.10.17 21:10:13.826] st_actor_netspawn...
[03.10.17 21:10:14.076] * phase time: 231 ms
[03.10.17 21:10:14.088] * phase cmem: 285019 K
[03.10.17 21:10:14.151] * [win32]: free[1361380 K], reserved[58688 K], committed[677020 K]
[03.10.17 21:10:14.151] * [ D3D ]: textures[58191 K]
[03.10.17 21:10:14.151] * [x-ray]: crt heap[285019 K], process heap[6470 K], game lua[23294 K], engine lua[168 K], render[0 K]
[03.10.17 21:10:14.151] * [x-ray]: economy: strings[3818 K], smem[28221 K]
[03.10.17 21:10:30.069] * MEMORY USAGE: 303628 K
[03.10.17 21:11:06.961] *** break by StackWalk ***
[03.10.17 21:11:06.961] DEBUG CONTEXT DUMP:
[03.10.17 21:11:06.961] [21:10:50.766]. $#CONTEXT: cl remove [641][28064790] esc_zone_witches_galantine_0006, from v = 0C9D7B24, v.size = 335
[03.10.17 21:11:06.961] [21:10:48.614]. $#CONTEXT: cl remove [155][1AFED0F8] vodka0155, from v = 0C9D7B34, v.size = 637
[03.10.17 21:11:06.961] [21:10:44.626]. $#CONTEXT: cl remove [635][280631A0] esc_zone_witches_galantine_0000, from v = 0C9D7B24, v.size = 335
[03.10.17 21:11:06.961] [21:10:42.260]. $#CONTEXT: cl remove [850][24C0B510] esc_trup_bratka, from v = 0C9D7B24, v.size = 336
[03.10.17 21:11:06.961] [21:10:38.184]. $#CONTEXT: cl remove [850][24C0B510] esc_trup_bratka, from v = 0C9D7B34, v.size = 636
[03.10.17 21:11:06.961] [21:10:33.465]. $#CONTEXT: cl remove [472][17B56910] wpn_ak74u0472, from v = 0C9D7B34, v.size = 637
[03.10.17 21:11:06.961] [21:10:33.465]. $#CONTEXT: cl remove [472][17B56910] wpn_ak74u0472, from v = 0C9D7B24, v.size = 335
[03.10.17 21:11:06.961] [21:10:33.414]. $#CONTEXT: cl remove [497][17B582A0] wpn_ak74u0497, from v = 0C9D7B34, v.size = 637
[03.10.17 21:11:06.961] [21:10:33.414]. $#CONTEXT: cl remove [497][17B582A0] wpn_ak74u0497, from v = 0C9D7B24, v.size = 335
[03.10.17 21:11:06.961] [21:10:33.259]. $#CONTEXT: cl remove [639][28064040] esc_zone_witches_galantine_0004, from v = 0C9D7B24, v.size = 336
[03.10.17 21:11:06.961] [21:10:33.044]. $#CONTEXT: cl remove [429][17B53E60] wpn_ak74u0429, from v = 0C9D7B34, v.size = 636
[03.10.17 21:11:06.961] [21:10:33.044]. $#CONTEXT: cl remove [429][17B53E60] wpn_ak74u0429, from v = 0C9D7B24, v.size = 336
[03.10.17 21:11:06.961] [21:10:32.741]. $#CONTEXT: cl remove [480][17B57190] wpn_ak74u0480, from v = 0C9D7B34, v.size = 636
[03.10.17 21:11:06.961] [21:10:32.741]. $#CONTEXT: cl remove [480][17B57190] wpn_ak74u0480, from v = 0C9D7B24, v.size = 336
[03.10.17 21:11:06.961] [21:10:32.389]. $#CONTEXT: cl remove [439][17B546F0] wpn_ak74u0439, from v = 0C9D7B34, v.size = 636
[03.10.17 21:11:06.961] Unhandled exception stack trace:
[03.10.17 21:11:06.961]
[03.10.17 21:11:06.998] 001B:522A3260 (0x0018C300 0x2896B6BC 0x2896B748 0x0018C328) xrGame.dll, CVertex<CPhrase *,shared_str,CGraphAbstract<CPhrase *,float,shared_str> >::add_edge, x:\trunk\xray\xr_3da\xrgame\graph_vertex_inline.h, 68
[03.10.17 21:11:06.998] 001B:522A302A (0x280A5C60 0x0018C300 0x24E2AF90 0x52D6A1E0) xrGame.dll, CGraphAbstract<CPhrase *,float,shared_str>::add_edge(), x:\trunk\xray\xr_3da\xrgame\graph_abstract_inline.h, 59
[03.10.17 21:11:06.998] 001B:524C6B9B (0x24E2AF90 0x00000000 0x2896B740 0x0018C318) xrGame.dll, CPhraseDialog::AddPhrase(), x:\trunk\xray\xr_3da\xrgame\phrasedialog.cpp, 271
[03.10.17 21:11:06.998] 001B:522A39FA (0x03BF23D0 0x03D72B18 0x00D183F0 0xFFFFD8F0) xrGame.dll, CPhraseDialog::AddPhrase_script(), x:\trunk\xray\xr_3da\xrgame\phrasedialog.h, 132
[03.10.17 21:11:06.998] 001B:522A4075 (0x522A3980 0x00000000 0x6E192A4D 0x0A905100) xrGame.dll, luabind::detail::returns<CPhrase *>::call<CPhraseDialog,CPhraseDialog,luabind::detail::null_type,char const *,char const *,char const *,int>(), x:\trunk\xray\luabind\luabind\detail\call.hpp, 161
[03.10.17 21:11:06.998] 001B:522A3EED (0x0A905100 0x04420018 0x0A901CC8 0x6E1D74DD) xrGame.dll, boost::detail::function::function_obj_invoker1<luabind::detail::mem_fn_callback<CPhrase * (__thiscall CPhraseDialog::*)(char const *,char const *,char const *,int),CPhraseDialog,luabind::detail::null_type>,int,lua_State *>::invoke(), x:\trunk\3rd party\boost\boost\function\function_template.hpp, 117
[03.10.17 21:11:06.998] 001B:6E192A4D (0x04420018 0x00000000 0x0E7DD8B0 0x04420018) luabind.dll, luabind::detail::overload_rep::call(), x:\trunk\xray\luabind\luabind\detail\overload_rep_impl.hpp, 35
[03.10.17 21:11:06.998] 001B:6E19A91F (0x04420018 0x0BC304F0 0xFFFFFFFF 0x04420018) luabind.dll, luabind::detail::class_rep::function_dispatcher(), x:\trunk\xray\luabind\src\class_rep.cpp, 694
[03.10.17 21:11:06.998] 001B:6E1C62D3 (0xFFFFFFFF 0x0E7DD850 0x04420018 0x00000070) lua5.1.dll, luaJIT_run(), x:\trunk\xray\luajit\src\ljit_core.c, 223
[03.10.17 21:11:06.998] 001B:6E1CFE29 (0x04420018 0x0E7DD7F0 0x00000000 0x04420018) lua5.1.dll, luaD_precall(), x:\trunk\xray\luajit\src\ldo.c, 282
[03.10.17 21:11:06.998] 001B:6E1D00A4 (0x04420018 0x0E7DD7F0 0x00000000 0x6E1CF8AA) lua5.1.dll, luaD_call(), x:\trunk\xray\luajit\src\ldo.c, 384
[03.10.17 21:11:06.998] 001B:6E1D7E55 (0x04420018 0x0018C598 0x04420018 0x00000001) lua5.1.dll, f_call(), x:\trunk\xray\luajit\src\lapi.c, 795
[03.10.17 21:11:06.998] 001B:6E1CF8AA (0x04420018 0x6E1D7E40 0x0018C598 0x00000000) lua5.1.dll, luaD_rawrunprotected(), x:\trunk\xray\luajit\src\ldo.c, 120
[03.10.17 21:11:06.998] 001B:6E1D0258 (0x6E1D7E40 0x0018C598 0x00000050 0x04420018) lua5.1.dll, luaD_pcall(), x:\trunk\xray\luajit\src\ldo.c, 465
[03.10.17 21:11:06.998] 001B:6E1D81D1 (0x04420018 0x00000001 0x00000000 0x00000000) lua5.1.dll, lua_pcall(), x:\trunk\xray\luajit\src\lapi.c, 816
[03.10.17 21:11:06.998] 001B:6E199736 (0x04420018 0x00000001 0x00000000 0x0AB8DB40) luabind.dll, luabind::detail::pcall(), x:\trunk\xray\luabind\src\pcall.cpp, 40
[03.10.17 21:11:06.998] 001B:522A2BF8 (0x14B11120 0x24E2AF90 0x0018C61C 0x52D5A3B0) xrGame.dll, luabind::detail::proxy_functor_void_caller<boost::tuples::tuple<CPhraseDialog * const *,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type> >::~proxy_functor_void_caller<boost::tuples::tuple<CPhraseDialog * const *,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type(), x:\trunk\xray\luabind\luabind\functor.hpp, 284
[03.10.17 21:11:06.998] 001B:524C7220 (0x00000000 0x524C6A58 0x0AB71FC0 0x24E2AF90) xrGame.dll, CPhraseDialog::load_shared(), x:\trunk\xray\xr_3da\xrgame\phrasedialog.cpp, 223
[03.10.17 21:11:06.998] 001B:522A2B99 (0x0AB71FC0 0x24E2AF90 0x524C6335 0x0AB71FC0) xrGame.dll, CSharedClass<SPhraseDialogData,shared_str,0>::load_shared(), x:\trunk\xray\xr_3da\xrgame\shared_data.h, 101
[03.10.17 21:11:06.998] 001B:524C6A58 (0x0AB71FC0 0x00000002 0x24BDDC00 0x14B1111C) xrGame.dll, CPhraseDialog::Load(), x:\trunk\xray\xr_3da\xrgame\phrasedialog.cpp, 185
[03.10.17 21:11:06.998] 001B:524C6335 (0x0AB71FC0 0x0C7BCE38 0x1B0DC4DC 0x0C4F6100) xrGame.dll, CPhraseDialogManager::AddAvailableDialog(), x:\trunk\xray\xr_3da\xrgame\phrasedialogmanager.cpp, 110
[03.10.17 21:11:06.998] 001B:524EEF47 (0x0C7BCE38 0x1B0DC4DC 0x24B85EA0 0x0018C6B4) xrGame.dll, CActor::UpdateAvailableDialogs(), x:\trunk\xray\xr_3da\xrgame\actor_communication.cpp, 195
[03.10.17 21:11:06.998] 001B:523D5B6D (0x280AA930 0x523E260F 0x00000006 0x01036400) xrGame.dll, CUITalkWnd::UpdateQuestions(), x:\trunk\xray\xr_3da\xrgame\ui\uitalkwnd.cpp, 130
[03.10.17 21:11:06.998] 001B:523D624F (0x00000006 0x01036400 0x00F70BDE 0x01036240) xrGame.dll, CUITalkWnd::Update(), x:\trunk\xray\xr_3da\xrgame\ui\uitalkwnd.cpp, 229
[03.10.17 21:11:06.998] 001B:523E260F (0x01036240 0x00FB303C 0x01036534 0x01036414) xrGame.dll, CDialogHolder::OnFrame(), x:\trunk\xray\xr_3da\xrgame\uidialogholder.cpp, 213
[03.10.17 21:11:06.998] 001B:00F70BDE (0x01036534 0x01036414 0x00000000 0x01036240) XR_3DA.exe, CRegistrator<pureRender>::Process(), x:\trunk\xray\xr_3da\pure.h, 77
[03.10.17 21:11:06.998] 001B:00FB303C (0x69402AD0 0x0018E804 0x0018C730 0x00000000) XR_3DA.exe, CRenderDevice::FrameMove(), x:\trunk\xray\xr_3da\device.cpp, 426
[03.10.17 21:11:06.998] 001B:00FB35C1 (0x01041048 0x0018E804 0x0018C748 0x00000000) XR_3DA.exe, CRenderDevice::Run(), x:\trunk\xray\xr_3da\device.cpp, 275
[03.10.17 21:11:06.998] 001B:00FDCDD9 (0x01041048 0x002124F0 0x00000000 0x00000000) XR_3DA.exe, Startup(), x:\trunk\xray\xr_3da\x_ray.cpp, 300
[03.10.17 21:11:06.998] 001B:00FDD5C4 (0x00F30000 0x00000000 0x002124F0 0x00000001) XR_3DA.exe, WinMain_impl(), x:\trunk\xray\xr_3da\x_ray.cpp, 745
[03.10.17 21:11:06.998] 001B:00FDD7A3 (0x00F30000 0x00000000 0x002124F0 0x00000001) XR_3DA.exe, WinMain(), x:\trunk\xray\xr_3da\x_ray.cpp, 805
[03.10.17 21:11:06.998] 001B:00F8BEF7 (0x7FFDB000 0x0018FB8C 0x770337EB 0x7FFDB000) XR_3DA.exe, __tmainCRTStartup(), f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c, 547
[03.10.17 21:11:06.998] 001B:7628ED6C (0x7FFDB000 0x7752B0AB 0x00000000 0x00000000) kernel32.dll, BaseThreadInitThunk()
[03.10.17 21:11:06.999] 001B:770337EB (0x00F8C03A 0x7FFDB000 0x00000000 0x00000000) ntdll.dll, RtlInitializeExceptionChain()
[03.10.17 21:11:06.999] 001B:770337BE (0x00F8C03A 0x7FFDB000 0x00000000 0x00000000) ntdll.dll, RtlInitializeExceptionChain()Что делал:
Скрытый текстОтслеживал работу скриптов - ставил лог-сообщения. Скрипты отрабатываю нормально: выдают, определяют кто есть кто.
С этим вроде все нормально. Хотя, до конца не уверен.
Сравнивал файлы, которые указаны в логе (типа: ...\xrgame\graph_vertex_inline.h, 68 и т.д.) с другими исходниками (не от xp-dev)
Изменений нет. Сам ничего не правил в этих файлах.
Число в конце строки (например: 68) - это, наверное строка в файле (например: xrgame\graph_vertex_inline.h,) ???
Если так, то номер строки обычно ничего не проясняет (для меня)
- он, обычно, указывает на пустую строку, либо на закрывающую фигурную скобку, либо на что-либо ещё мало информативное (для меня).
Уже раз 8 пере-собирал исходники с нуля с разными дэфайнами из build_config_defines.h - результат тот же.
Исходные данные:
Win7 x86 Ultimate, VS2010_sp1, WinSDK_7.1, DX_SDK_Aug_2007, DX_SDK_June_2010 - инклуды и либы прописаны.
Исходники:
X-Ray 1.0007rc1 от репо XP-DEV (by alpet, KD) - собирал ревизии 188 и 201.
Если нужно выложу логи сборки движка.
Буду рад любой инфе по этой теме. У кого-либо было что-то подобное, если да, как "лечили эту болезнь"?
И ещё вопрос: так как я сам не-программист, то очень интересует,
как грамотно разбирать такие логи с адресами памяти,
когда нет привычного сообщения в стиле "FATAL ERROR: bla_bla_bla"?
[SOC] Мелкие правки движка
в Скрипты / конфиги / движок
Опубликовано
Когда открываешь спойлер, то сначала идёт описание правки, затем путь к нужному файлу.
В данном, конкретном случае это:
X:\trunk\xray\xr_3da\xrGame\WeaponMagazined.cpp
Нужные строки обычно помечены комментарием, типа такого: // <-- // или что-то подобное.
Рекомендую, как можно точнее формулировать свой вопрос (правильно заданный вопрос - это уже половина ответа).
Мало-вероятно, что кто-то будет за тебя догадываться, что ты имел в виду.