abramcumner 1229 Опубликовано 29 Октября 2015 Поделиться Опубликовано 29 Октября 2015 0023:0835392D xrRender_R4.dll [error][ 298] : Слишком много попыток занесения события для семафора. На все эти описания можно смело забивать - это выводится результат работы последней вызванной WinApi функции. Движок при своей работе не вызывает winapi. Конкретно эта ошибка вообще могла остаться еще со старта игры от проверки запуска нескольких копий. 2 2 Ссылка на комментарий
AzzzA 4 Опубликовано 29 Октября 2015 Поделиться Опубликовано 29 Октября 2015 Кто-нибудь пытался восстановить блудмарки? Ссылка на комментарий
slim_shady 18 Опубликовано 3 Ноября 2015 Поделиться Опубликовано 3 Ноября 2015 Это можно играть anim_moving анимации в STALKER SOC? Ссылка на комментарий
Dennis_Chikin 3664 Опубликовано 4 Ноября 2015 Поделиться Опубликовано 4 Ноября 2015 (изменено) Гм, а может кто-нибудь, у кого все под руками, глянет, как именно, по каким условиям, неписи забывают своего best_enemy() ? Ну и best_danger() ? в смысле, не просто поменять одного на другого, а вообще забыть ? Или "какой-нибудь враг найдется всегда" ? Изменено 4 Ноября 2015 пользователем Dennis_Chikin Ссылка на комментарий
Старлей 88 Опубликовано 4 Ноября 2015 Поделиться Опубликовано 4 Ноября 2015 Товарищи, подскажите пожалуйста, может кто уже делал правку или знает где править, чтобы получить динамический граф диалогов, а не нынешний, который строится только один раз. Подробное изложение вопроса: Здесь идет считывание <phrase_list> или <init_func>. void CPhraseDialog::load_shared (LPCSTR) ... //заполнить граф диалога фразами data()->m_PhraseGraph.clear(); XML_NODE* phrase_list_node = pXML->NavigateToNode(dialog_node, "phrase_list", 0); if(NULL == phrase_list_node){ LPCSTR func = pXML->Read(dialog_node, "init_func", 0, ""); luabind::functor<void> lua_function; bool functor_exists = ai().script_engine().functor(func ,lua_function); THROW3(functor_exists, "Cannot find precondition", func); lua_function (this); return; } ... Вызывается эта функцию отсюда: void CPhraseDialog::Load(shared_str dialog_id) { m_DialogId = dialog_id; inherited_shared::load_shared(m_DialogId, NULL); } Эта в свою очередь отсюда: bool CPhraseDialogManager::AddAvailableDialog(shared_str dialog_id, CPhraseDialogManager* partner) { // PHRASE_DIALOG_INDEX dialog_index = CPhraseDialog::IdToIndex(dialog_id); if(std::find(m_CheckedDialogs.begin(), m_CheckedDialogs.end(), dialog_id) != m_CheckedDialogs.end()) return false; m_CheckedDialogs.push_back(dialog_id); DIALOG_SHARED_PTR phrase_dialog(xr_new<CPhraseDialog>()); phrase_dialog->Load(dialog_id); ... Она в свою очередь: void CActor::UpdateAvailableDialogs (CPhraseDialogManager* partner) Могу и далее расписать стек вызовов, но смысла не вижу, т.к. сам ничего не нашел... Суть в том что, граф фраз строится один раз, и дальше обновляются все фразы в этом графе на доступность для произношения. Вопрос: Каким образом можно обновлять и граф фраз? Ссылка на комментарий
Карлан 1050 Опубликовано 4 Ноября 2015 Поделиться Опубликовано 4 Ноября 2015 (изменено) @Старлей, я класс написал для динамического построения диалога и фраз, который, к слову, слабо пересекается с тем что есть, так как стандартный вариант диалогов слабо пригоден для этих целей (насколько я помню там довольно трудно вклиниваться в то что есть, если вообще возможно (опять же разумеется без перелопачивания всего что есть)). Разберись с интерфейсами, там не сказать что сильно сложно. А так смотри, можешь написать обработку m_PhraseGraph, но задача довольно не тривиальна, так как в графах диалога сложные массивы, явно работать как с простым вектором не выйдет. Еще также замечу, что можно сделать на скриптах, у меня это есть в планах и делается, но там будет несколько уже возможность применения, то есть на ходу активный диалог выстраивать будет нельзя, но тем не менее в игре можно будет добавлять свои диалоги и сохранять так же во внешних файлах. Изменено 5 Ноября 2015 пользователем Карлан Ссылка на комментарий
Стрелоk 14 Опубликовано 7 Ноября 2015 Поделиться Опубликовано 7 Ноября 2015 Всем привет. В ЗП у ПДА есть такая возможность - если закрыть его и открыть снова, то будет открыта последняя вкладка. Что именно отвечает за это? И вопрос вдогонку - как принудительно активировать определенную вкладку? Ссылка на комментарий
Graff46 619 Опубликовано 7 Ноября 2015 Поделиться Опубликовано 7 Ноября 2015 Всем привет, я тут на просторах интернета нашел статейку повествующую о некотором билде Метро 2033 заделаном на модифицированном X-Ray'ее, даже ссылка на билд есть и есть. Интересно из него можно что полезного получить? 1 Ссылка на комментарий
Expropriator 2119 Опубликовано 8 Ноября 2015 Поделиться Опубликовано 8 Ноября 2015 @Graff46, интересно. Какой то гибрид движков - и сталкер и не сталкер. Посмотрим на досуге. Ссылка на комментарий
Graff46 619 Опубликовано 8 Ноября 2015 Поделиться Опубликовано 8 Ноября 2015 @Дизель, Я сам архив с билдом не качал, но просматривал его содержимое на Яндекс диске, структура файлов в папке content аналогична геймдате в сталкере, только в папке anims есть неизвестные мне файлы с форматом *trk Ссылка на комментарий
Earth2Space 308 Опубликовано 8 Ноября 2015 Поделиться Опубликовано 8 Ноября 2015 @Graff46, его уже давным давно расковыряли. Ничего такого там нет. 1 2 Ссылка на комментарий
HESH 64 Опубликовано 8 Ноября 2015 Поделиться Опубликовано 8 Ноября 2015 @Дизель, это не микс, это почти чистый X-Ray, приблизительно между 1.0007 и 1.5. Так сказать, 1.3. Даже эффекты почти совпадают. Солидарен с @Earth2Space - там нет ничего интересного. Добавлено RayTwitty, 10 Ноября 2015 Движок метро имеет очень отдаленное отношение к сталкерскому, говорить что это "почти чистый х-рей" в корне неправильно. 2 Ссылка на комментарий
Стрелоk 14 Опубликовано 9 Ноября 2015 Поделиться Опубликовано 9 Ноября 2015 Всем привет. В ЗП у ПДА есть такая возможность - если закрыть его и открыть снова, то будет открыта последняя вкладка. Что именно отвечает за это? И вопрос вдогонку - как принудительно активировать определенную вкладку? Вопрос закрыл. За это отвечает проверка if ( !m_pActiveDialog ) в UIPdaWnd.cpp 2 Ссылка на комментарий
Graff46 619 Опубликовано 14 Ноября 2015 Поделиться Опубликовано 14 Ноября 2015 (изменено) Такой вопрос у меня появился. Известно, что X-RAY считывает некоторые ресурсы (XML, текстуры и др.) в самом начале запуска программы (когда мы видим заставки), а некоторые другие ресурсы при загрузке уровня. Так вот если, мы хотим изменить некоторые ресурсы или их параметры в "горячем режиме" (во время "работы" игры) которые прогружаються с запуском программы, то что бы увидеть изменения в игре нам понадобиться полностью выйти из игры и зайти снова притом всякие действия вида: vid_restart 1 или перезагрузка локации нам не помогут. Возможно ли движковыми правками сделать перечитывание игрой оных ресурсов не выходя из игры, например скриптовой ф-цией (и) или консольной командой? если руки прямые. Вот в этом главная проблема... Изменено 14 Ноября 2015 пользователем Graff46 Добавлено RayTwitty, 14 Ноября 2015 Ну текстуры перезагружать научились ведь, так что остальное тоже можно, если руки прямые. 1 Ссылка на комментарий
Карлан 1050 Опубликовано 14 Ноября 2015 Поделиться Опубликовано 14 Ноября 2015 @Graff46, да, вполне возможно, и скорость кстати говоря выше ожидаемой, я себе сделал несколько функций которые перегружает и ltx и xml, местами сделал нормально, но что-бы все сделать по хорошему надо там подольше посидеть, а мне без острой надобности пока. Я тут, к примеру, когда-то писал о пространстве для работы со строками, которое я себе добавил, вот по аналогии можно с чем угодно поступить в подобном роде. Но в некоторых местах это будет весьма нетривиальное занятие. вот тут кое-что можно прочесть http://pastebin.com/dXjwaFLv, в принципе по вектору развития не много прибавилось, сейчас в основном работаю над оптимизацией того что есть, то есть убираю все уродские скриптовые костыли с помощью движка, количество ВСЕХ скриптов уже сейчас меньше чем в среднестатистическом глобальнике, то есть вся обвязка уже достаточно ясно видна, хоть и есть еще около 10 кандидатов на ликвидацию . Ссылка на комментарий
Это популярное сообщение. SkyLoader 53 Опубликовано 15 Ноября 2015 Это популярное сообщение. Поделиться Опубликовано 15 Ноября 2015 Кому интересно, нашел некоторые ошибки оригинала, которые удалось пофиксить: Не работает вертикальная синхронизация [ТЧ, ЧН, ЗП] Из-за этой проблемы у некоторых людей горели видеокарты, так как не было ограничения кадров в игре. У Лохотрона, например, так сгорело две видюхи, т.к. в меню выдавало аж 6000 кадров в секунду. Для DX9 это фиксится в файле HW.cpp: DevPP.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE; и P.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE; меняются на: DevPP.PresentationInterval = selectPresentInterval(); и соответственно P.PresentationInterval = selectPresentInterval(); Для DX10/11 в dxRenderDeviceRender.cpp: HW.m_pSwapChain->Present( 0, 0); Добавляем проверку на включение вертикальной синхронизации: HW.m_pSwapChain->Present(psDeviceFlags.test(rsVSync) ? 1 : 0, 0); Эффектор перезарядки срабатывает не каждый раз [ЗП] Ну тут всё просто, просто перезапускаем активный эффектор. Заходим в player_hud.cpp, находим строки 380-381: if(NULL==ec) { Эти две строки с закрывающейся скобкой удаляем. Вместо этого вставляем: if(ec) current_actor->Cameras().RemoveCamEffector(eCEWeaponAction); Теперь эффектор работает при каждой перезарядке. Очень странный вылет [ТЧ, ЧН, ЗП] Данная проблема была в свое в ЛА еще в 2013 году, и я очень долго не мог найти причину вылета, так как вылет каждый раз ссылался на разные некорректные по его мнению объекты. Причем возникал не всегда и можно было его поймать только при выходе из игры. Спустя несколько месяцев чудом проблема была найдена. Оказывается, проблема была в лампочках, которые включались и выключались скриптово. Игра ловила крэш при 255 и более включении и выключении лампочки. Фиксится в HangingLamp.cpp в строках: } if(!PPhysicsShell())//if we have physiccs_shell it will call processing deactivate when disable processing_deactivate (); Удаляем if(!PPhysicsShell()), теперь processing_deactivate(); будет срабатывать всегда, как и должен, и мы можем включать и выключать лампочки сколько угодно раз. Причину бага с глитчами камеры в ЗП я так найти не смог. Может кто находил причину? Проверить баг просто: перезаряжаемся и стрефимся. При одном активном эффекторе, окончание второго эффектора глитчит камеру. 6 Ссылка на комментарий
Карлан 1050 Опубликовано 15 Ноября 2015 Поделиться Опубликовано 15 Ноября 2015 Причину бага с глитчами камеры в ЗП я так найти не смог. Такова селяви. И глитчится она, к слову, не только при перезарядке, это если тебе скажут еще к чему-нибудь ее прикрутить . Ссылка на комментарий
SkyLoader 53 Опубликовано 15 Ноября 2015 Поделиться Опубликовано 15 Ноября 2015 И глитчится она, к слову, не только при перезарядке, это если тебе скажут еще к чему-нибудь ее прикрутить Баг происходит, когда заканчивается один эффектор при активности другого. Т.е. если минимум два эффектора активны. Ссылка на комментарий
Карлан 1050 Опубликовано 15 Ноября 2015 Поделиться Опубликовано 15 Ноября 2015 Я стесняюсь спросить о напрашивающемся выводе. В своем время поимел дивных впечатлений от этих камэффектов которые глитчили камеру так что было ощущение что я в аномалию попал. Ссылка на комментарий
TIGER_VLAD 361 Опубликовано 15 Ноября 2015 Поделиться Опубликовано 15 Ноября 2015 Проверить баг просто: перезаряжаемся и стрефимся Да уже поднадоело это передёргивание камеры при перезарядке. Может и вправду уже кто-то исправил? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти