Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!

> Помощь по разделу

Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов

> Редактирование движка
RayTwitty
сообщение 22.01.2016, 17:18
Сообщение #3641


Игровой Бог
**********************

Репутация:   648  
Группа: Участник
Сообщений: 5354
Регистрация: 24.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа



Редактирование собранного движка
Проект X-Ray extensions и его вики
Lua-перехватчик от alpet
xrLuaFix от RvP
xrLuaFix в редакции от Artos
xrLuaFix в редакции от svarog2741
LuaXML библиотека парсинга xml-файлов из скриптов (подключается при помощи функции require, которая есть в xrLuaFix)
NoProtect 1.0006 исполнительные файлы из Steam-версии без защиты
Документация к X-Ray (11.10.2004)
Файл заголовков от отладочного 6 патча
Cut X-Ray
Цель проекта - создание отдельных изменений движка игры с их последующей комбинацией с другими правками.
Авторы: SkyLoader, _призрак_
Для платформ: ТЧ 1.0004 и 1.0006, ЧН 1.5.10, ЗП 1.6.02
Адрес проекта на Google Code: https://code.google.com/p/cut-x-ray-project/
Страница на Moddb: http://www.moddb.com/mods/cut-x-ray-project-soc-cs-cop
Пак 1
1. Исправление вылета "can't find rank" для оружий.

2. Смерть от первого лица.
Видео: https://www.youtube.com/watch?v=c-4dNyvizxY

3. Collide
Возвращена коллизия мертвых тел с неписями и актором, как она сделана в старой физике билдов.
Видео: https://www.youtube.com/watch?v=1xNn04f3djc

4. Круглый прицел.
Возвращен круглый прицел вместо перекрестья, как билдах.

5. Исправление вида от 3-го лица.
Изменено положение камеры от 3-го лица (1). Стрельба идет по перекрестью, а не по направлению актора. Если включить вид от 3-го лица (1) и удерживать Shift, то ГГ будет автоматически целиться в ближайшего непися или монстра.
Проблемы: Стрельба по перекрестью идет также при виде от 3-го лица (2). Если при автоматическом нацеливании непись/монстр удалится или перейдет в оффлайн, будет движковый безлоговый вылет. Я думал вырезать это нацеливание, но решил оставить.
Пак 2
1. Luminosity progress (только ТЧ)
Возвращение шкалы освещения вместо шкалы "заметности" ГГ, как в билдах.

2. Запрет на доставание оружия в машине (только ТЧ и ЧН) и на лестнице (ТЧ, ЧН, ЗП).

3. Руки на руле в машине. (только ТЧ и ЧН)
Видео: https://www.youtube.com/watch?v=nYrnrfGkO7Y

4. Отсутствие распознавания неписей перекрестием:
При наведении на непися перекрестье имеет дефолтный цвет. Также не показывает информацию о неписе, если смотреть на него.

5. Bind_object:
Возможность использовать скрипты в мультиплеере.

6. Из оружия на классе бинокля можно стрелять (только ТЧ)
Пак 3
1. Включение некоторых команд без использования ярлыка. Можно патчить по отдельности. Команды: -smap_4096 (максимально улучшенные карты теней), -mblur (включение блюра).

2. Измененная анимация безоружного гг.

3. Увеличение дистанции диалога с неписями (для создания сценок на расстоянии)

4. Исправление вылета при использовании предметов из трупов неписей.
В отличии от версии Kolmogor'а, здесь отключено само меню использования.

5. Возможность поднимать болты как обычные инвентарные предметы (комбинировать с модом Charsi "Заканчивающиеся болты")
Скачать все паки
Правки от RayTwitty aka Shadows
Geometry LOD fix (CS 1.5.10) – расширение диапазона консольной команды r__geometry_lod
Camblu crosshair for build 1865 – замена перекрестия прицела на кружок в билде 1865
Vertex buffer fix for NC Project – исправление вылета по переполнению буфера в NC Project
NO 100 sovetov fix (COP 1.6.02) – убирает надписи "100 советов" с экрана загрузки
Demo Record fix (SOC 1.0006) – убирает красные надписи в режиме demo_record
Weapon Bobbing Beta (SOC 1.0006) – раскачка оружия при ходьбе (бета-версия)
Build Loadscreen (SOC 1.0006) – билдовский экран загрузки со статичным изображением
Detail Density fix (SOC 1.0006) – расширение диапазона консольной команды r__detail_density
Mipbias fix (SOC 1.0006) – расширение диапазона консольных команд r1_tf_mipbias и r2_tf_mipbias
No Quick Use fix (SOC 1.0006) – запрет на использование аптечек и бинтов по быстрым клавишам
Sun Near fix (SOC 1.0006) – расширение диапазона консольной команды r2_sun_near
Target Font (SOC 1.0006) – замена шрифта под перекрестием прицела на шрифт DI
Unload Magazine fix (SOC 1.0006) – фикс скриптовой функции unload_magazine - теперь патроны разряжаются в инвентарь
PNG Screenshots (SOC 1.0006) – игра теперь делает качественные скриншоты в формате png

Скачать все правки
Правки от K.D.
xrPatch v0.8 – патчер для увеличения радиуса прорисовки травы
detail radius+density fix [SOC 1.0006] – добавляет регулировку радиуса отрисовки травы через консольную команду и расширяет диапазон регулировки плотности травы до 0.02
Правки от macron
Исправленный экзешник для SoC 1.0006
Доработанный и исправленный экзешник для ТЧ 1.0006 (на основе Steam-версии без защиты)
Включает в себя исправления вылетов, а также очистку лога игры от засоряющих сообщений. Более подробное описание внутри архива.

Ссылка: https://yadi.sk/d/At9Tw0ueSaDyS
X-Ray extensions portable
Портативная версия расширений движка "X-Ray extensions"
Платформы: ТЧ 1.0006, ЧН 1.5.10, ЗП 1.6.02
Эта версия имеет все нужные библиотеки и патчеры, а также настроенные bat-файлы для успешной компиляции. Более подробное описание внутри архива.

Ссылка: https://yadi.sk/d/OLYPbDXWjyEkH
Правки от Kolmogor
Правленный xrGame для SoC 1.0004
Изменения:
1. Добавлена консольная команда fov [5.0, 180.0] - изменяет глобальный FOV камеры.
2. Добавлена консольная команда k_ammo_on_belt [on\off] - включает\выключает использование патронов с пояса.
3. Артефакты работают из рюкзака, а пояс служит контейнером.

Ссылка: http://rusfolder.com/42636653
Правки от Kontro-zzz
Изменение значения hud_fov
Правки фиксированных значений параметра hud_fov - 0.37 либо 0.53, для CS 1.5.10 и для билда 3120.
Должно работать на GOG версии и no DVD.
Редактирование исходников
Скачать все исходники отсюда или с оригинальных постов SoC 1.0007rc1 SoC и CS CoP X-Ray 2
Репозитории

[SoC]
() Alpet & KD / оригинальное репо [Архивная ценность]
() xrDev [Архивная ценность]
() CleanXR [Архивная ценность]
() KRoddin [Архивная ценность][/b]
() Lost Alpha old [Архивная ценность]
() Репозиторий OGSE | Самый актуальный форк (KRoddin) | Версия от Abramcumner с небольшими исправлениями
() 1exx [Архивная ценность]
() Shkiper2012 [Архивная ценность]
() Morrey (dx10) [Архивная ценность]
() OP Engine (Winsor)
() Kondr48 [Архивная ценность]

[CS]
() RedPython [Архивная ценность]
() xrDev [Архивная ценность]
() OpenXRay [Архивная ценность]
() Charsi82 [Архивная ценность]
() Abramcumner | drksnc (MP) [Архивная ценность]
() RainbowZerg [Архивная ценность]

[CoP]
() Forser
() OpenXRay
() CoC | Demosfen | Last Day
() Abramcumner
() Im-Dex [Архивная ценность]
() xrDev [Архивная ценность]
() Tron [Архивная ценность]
() mrmnwar [Архивная ценность]
() Avo [Архивная ценность]
() vincent-t [Архивная ценность] | Старый репозиторий
() Shoкer
() Morrey CS-COP [Архивная ценность]
() Morrey [Архивная ценность]

[2.0]
() Saas
() xrOxy
Компиляторы x64: SoC CS CoP
NDA GSC
Оригинальные версии движков
Могут понадобиться для восстановления оригинальных библиотек.
SoC SoC ENG CS CoP
GOG version [1.0006, 1.5.10, 1.6.02]
Multi-patch version [1.0006, 1.5.10, 1.6.02]
Официальный мультиплеерный (невышедший) патч для SoC 1.0007rc1.
Уроки
Изменение плотности травы и создание патча через IDA Pro
Автор: _призрак_
edited by: RayTwitty aka Shadows

Для редактирования нам понадобится программа IDA Pro.

1. Запускаем IDA Pro.
2. Загружаем бинарник рендера xrRender_R1.dll или xrRender_R2.dll.
3. Теперь необходимо найти, где регистрируется консольная команда. Жмем Ctrl+T и вводим r__detail_density.
4. Находим функцию и тщательно ее разбираем (я ее полностью разбирать не буду, только укажу, где задаются параметры:
Код регистрации консольной команды
Код
fld ds:flt_10064400 -- нижнее ограничение равное 0.6
or dword_1007CACC, 8
sub esp, 8
fstp [esp+30h+var_2C]
mov ecx, offset unk_1007CA9C
fld ds:flt_10064380 -- верхнее ограничение равное 0.2
fstp [esp+30h+var_30]
push offset aSs; "ЪЩЩ>"
push offset aR__detail_dens; "r__detail_density"
call ds:??0CCC_Float@@QAE@PBDPAMMM@Z; CCC_Float::CCC_Float(char const *,float *,float,float)
push offset sub_1005E080; void (__cdecl *)()
call _atexit
add esp, 4
Если вы заметили, чтобы трава стала плотней нужно уменьшить параметр, а чтобы травы стало меньше, нужно параметр увеличить
5. Нам нужно увеличить плотность травы: следовательно нужно изменить верхнее ограничение. Как это сделать? Есть три варианта:

Первый и самый логичный вариант: изменить переменную. Но тут есть небольшой подвох на котором я попался - этой переменной может пользоваться не одна функция, а несколько. И не ясно, что вы можете сломать, поменяв одну циферку на другую.

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

Третий: создать переменную. Отличный вариант. Единственный минус - я не знаю как это сделать smile.gif

Я пошел по второму пути. Два раза щелкнув на ds:flt_10064380, IDA отправила меня в дебри под названием .rdata. Там я нашел переменную, которая называлась - flt_1006452C и которая имела значение 0.0720999.
Насколько я понял, flt_1006452C - не является названием переменной, это сборка из двух показателей - (тип числа)_(смещение). В нашем случае это число типа float, которое находится по адресу 1006452C. Ну что же, приступим к редактированию!
6. Отправляемся в самое начало файла. Как? Сверху есть что-то типа статус-бара - строка состоящая из синего, серого, черного цвета. Нажимаем там в любом месте мышкой и ведем влево до конца.
7. Опять ищем r__detail_density. Находим в этой функции строку fld ds:flt_10064338. Дальше самое интересное - жмем на вкладку Hex View и там у нас выделяются какие-то цифры. Это наша переменная 10064338, только написано наоборот. Сравните:
Код
38 43 06 10
10 06 43 38
Похоже, не правда ли? smile.gif
8. Начинаем редактировать. Нам нужно поменять 4338 на 452C (т.е. заменить ссылку с одной переменной на другую). Жмем правой кнопкой мыши на этих цифрах и выбираем пункт Edit. Меняем 38 43 на 2С 45. Дальше жмем где-нибудь в коде (это нужно сделать обязательно!).
9. После этого жмем правой кнопкой мыши и выбираем commit changes. Таким образом, мы поменяли ссылку на переменную и теперь верхнее ограничение будет равно значению из другой переменной.
Но IDA не меняет исходный файл. В нашем случае мы можем только создать файл изменений. Делается это так: File -> Produce file -> Create DIF file. Назовем его test. Этот файл можно открыть при помощи блокнота и посмотреть, что получилось.
10. Теперь необходимо внести изменения из этого файла в движок. Это можно сделать при помощи патчера bpatch. Качаем, смотрим и запускаем bpatch.cmd. Я думаю, что батник вы сможете изменить самостоятельно (настроить пути файлов и т.п.) - там все элементарно.
11. Все! Изменения внесены в движок, можно тестировать smile.gif

Огромное спасибо Kolmogor'у и malandrinus'у. Если бы не они, я бы ничего не сделал. Спасибо вам еще раз.
Спасибо и Rolan'у, с которым я очень много беседовал и тоже узнал много чего smile.gif




Сообщение отредактировал RayTwitty - 27.08.2021, 00:15
Перейти в начало страницы
 
242 страниц V  « < 181 182 183 184 185 > »   
Начать новую тему
Ответов
iOrange
сообщение 16.05.2019, 07:07
Сообщение #3642
BFG9000 owner

Половина землекопа
**************

Репутация:   247  
Группа: Припаркованный аккаунт
Сообщений: 1813
Награды: 3
Регистрация: 30.03.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(xrModder @ 16.05.2019, 05:29) *
Быстрее уже точно не будет.

Откуда интересно пошло это распространенное заблуждение, что если написать код вручную на ассемблере - то это будет самый быстрый вариант?

Ну ладно 20 лет назад такое прокатывало - компиляторы были тупые, процессоры простые (не очень), а многоядерность только в датацентрах.
Но сегодня то?


--------------------
Hello worlds!
Перейти в начало страницы
 
ForserX
сообщение 16.05.2019, 09:54
Сообщение #3643


Почти Игроман
*********

Репутация:   91  
Группа: Модератор
Сообщений: 516
Награды: 4
Регистрация: 19.07.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Кажись я начал топик на тему "Best of the Best C++ Compiler".
Ладно, вот вам результаты тестов. Выбираем на вкус и цвет, а вообще CLang в народ!
Цитата
Казалось бы, вывод о самом эффективном компиляторе напрашивается сам собой - это Borland Builder C++. Но не стоит спешить. Многие разработчики указывают на ошибки при формировании кода у Borland Builder (в частности, при использовании ссылок его поведение становится непредсказуемым). Кроме того, Borland Builder C++ явно наследует многое от Delphi (один модификатор вызова метода DYNAMIC чего стоит), в результате чего при компилировании абсолютно правильного С++ кода могут возникать ошибки (например, отсутствие множественного наследования для VCL-классов; а все потомки от TObject являются VCL-классами).

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

MSVC++ или Intel Compiler не имеют явно выраженных недостатков, так что их позиции примерно равны.

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

(предоставлено: http://citforum.ru/programming/C_comp/)


--------------------

В армии по 01.07.2020.
Перейти в начало страницы
 
xrModder
сообщение 16.05.2019, 12:51
Сообщение #3644


Мастер Игры
************

Репутация:   104  
Группа: Участник
Сообщений: 1331
Регистрация: 08.08.2018




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(iOrange @ 16.05.2019, 10:07) *
Откуда интересно пошло это распространенное заблуждение, что если написать код вручную на ассемблере - то это будет самый быстрый вариант?

Ну ладно 20 лет назад такое прокатывало - компиляторы были тупые, процессоры простые (не очень), а многоядерность только в датацентрах.
Но сегодня то?

Не думаю что это заблуждение. Программы написанные на ассемблере всегда работают быстрее (Си-шные программы не в счёт). Зачем вставляют ассемблерные вставки в коде Си/С++? Но всё это при условии ассемблериста-задрота.
Перейти в начало страницы
 
cjayho
сообщение 16.05.2019, 16:19
Сообщение #3645


Мастер Игры
************

Репутация:   248  
Группа: Участник
Сообщений: 1363
Награды: 4
Регистрация: 08.03.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


QUOTE (NanoBot-AMK @ 15.05.2019, 01:26) *
Вес установщика GCC 8.2.0 x86-32 = 86М
Вес установщика GCC 8.2.0 x86-32 = 106М


эм.. unsure.gif

QUOTE (ForserX @ 15.05.2019, 18:08) *
Пишите нормальный CPUID и работайте с Intel intrinsics. Будем вам и SSE, AVX, AES, FMA, 3DNow! и прочее.


3DNow! уже не будет. технология давно объявлена устаревшей.

QUOTE (iOrange @ 16.05.2019, 06:07) *
QUOTE (xrModder @ 16.05.2019, 05:29) *
Быстрее уже точно не будет.

Откуда интересно пошло это распространенное заблуждение, что если написать код вручную на ассемблере - то это будет самый быстрый вариант?

Ну ладно 20 лет назад такое прокатывало - компиляторы были тупые, процессоры простые (не очень), а многоядерность только в датацентрах.
Но сегодня то?


Все кто имел дело с такими штуками, скажут что будет не самый быстрый вариант а самый повторяемый. Когда точно не нужно никакой отсебятины от компилятора. В тех местах кода где может наступить бутылочное горлышко, это наиболее актуально, потому что написанный на ассемблере код будет работать всегда одинаково, в отличие от сгенеренного компилятором (разные компиляторы, даже один и тот же но разных версий или с разными флагами компиляции, генерят сильно разный итоговый код).


--------------------
Набор шейдеров для S.T.A.L.K.E.R: Shadow of chernobyl: ECB-Shaderpack - https://github.com/cjayho/ecb-shaderpack/

------

Продюсер электронной музыки в стиле Dark Ambient, автор саундтрека для Desowave S.T.A.L.K.E.R.: Lost Alpha.

Spotify | Apple Music | YouTube | BandCamp | AudioMack
Перейти в начало страницы
 
Diesel
сообщение 16.05.2019, 16:31
Сообщение #3646


Почти Мастер
***********

Репутация:   111  
Группа: Участник
Сообщений: 1158
Награды: 3
Регистрация: 07.08.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Пару палок дёгдя: не тем вы занимаетесь. Умничаете. Я вот нифига в этом не шарю, но пытаюсь методом тыка, что то сварганить. Нужны опыты от вас, а не таблица Менделеева.

Вертолёт (не скриптовый) изобретите, будет вам уважуха.

Сообщение отредактировал Дизель - 16.05.2019, 16:32
Перейти в начало страницы
 
NanoBot-AMK
сообщение 16.05.2019, 16:43
Сообщение #3647


Почти Мастер
***********

Репутация:   75  
Группа: Участник
Сообщений: 1168
Награды: 4
Регистрация: 10.11.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Ассемблер не всегда быстр. Для x86-32, x86-64 надо уметь программировать, это сложные архитектуры и лепить код под них не так просто. Да. К сожалению компиляторы не всегда делают хороший код, вот тогда и выигрывает ассемблер.


--------------------
СТАЛКЕР только для ПК!
Перейти в начало страницы
 
ForserX
сообщение 16.05.2019, 23:32
Сообщение #3648


Почти Игроман
*********

Репутация:   91  
Группа: Модератор
Сообщений: 516
Награды: 4
Регистрация: 19.07.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(cjayho @ 16.05.2019, 16:19) *
3DNow! уже не будет. технология давно объявлена устаревшей.

Однако 3DNow!Ext имеется. (Я про свой проц). Единственное, что мне зашло из 3DNow!/3DNow!Ext - кеширование в L1.
Цитата(NanoBot-AMK @ 16.05.2019, 16:43) *
Ассемблер не всегда быстр. Для x86-32, x86-64 надо уметь программировать, это сложные архитектуры и лепить код под них не так просто. Да. К сожалению компиляторы не всегда делают хороший код, вот тогда и выигрывает ассемблер.

Ой, ну хорош, а? Сколько уже можно со своим ассемблером?! Я конечно понимаю А вот в наше время!!111!, но оно уже прошло.
Цитата(xrModder @ 16.05.2019, 12:51) *
Зачем вставляют ассемблерные вставки в коде Си/С++? Но всё это при условии ассемблериста-задрота.

Привет SSE линейке и ей подобным. Раньше такое делали через вставки. Сейчас это можно задать разными способами, к примеру:
Код
// Говорит компилятору какие функции менять на SSE аналоги
#pragma intrinsic(pow abs...)

// А Я ХОЧУ САМ ВЫЗВАТЬ
#include <tmmintrin.h>
__m64 as;
__m64 test = _mm_abs_pi16 (__m64 as)


Сообщение отредактировал ForserX - 16.05.2019, 23:33


--------------------

В армии по 01.07.2020.
Перейти в начало страницы
 
atanda
сообщение 16.05.2019, 23:33
Сообщение #3649
Pro gamer

Почти Игроман
*********

Репутация:   72  
Группа: Участник
Сообщений: 622
Регистрация: 05.11.2017




Вставить ник Цитировать выделенное в форуму быстрого ответа


Вижу топик обсуждаем.
Часто после вылета в нижнем левом углу экран появляется окошко "msctfime ui". С чем оно связано и в какую сторону копать?
Перейти в начало страницы
 
ForserX
сообщение 16.05.2019, 23:35
Сообщение #3650


Почти Игроман
*********

Репутация:   91  
Группа: Модератор
Сообщений: 516
Награды: 4
Регистрация: 19.07.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Дизель @ 16.05.2019, 16:31) *
Пару палок дёгдя: не тем вы занимаетесь. Умничаете. Я вот нифига в этом не шарю, но пытаюсь методом тыка, что то сварганить. Нужны опыты от вас, а не таблица Менделеева.

Все мы с этого начинали. Я свой опыт высказал. Дальше дело ваше.

P.S. Я забил на это всё, т.к. было пару проблем с шейдерами, а HLSL мне учить лень (я про кости)

buffy, я такое видел один раз на Win8. Больше не сталкивался. Попробуй нагуглить, мб локальная проблема


--------------------

В армии по 01.07.2020.
Перейти в начало страницы
 
cjayho
сообщение 16.05.2019, 23:38
Сообщение #3651


Мастер Игры
************

Репутация:   248  
Группа: Участник
Сообщений: 1363
Награды: 4
Регистрация: 08.03.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


QUOTE (ForserX @ 16.05.2019, 22:32) *
Привет SSE линейке и ей подобным. Раньше такое делали через вставки. Сейчас это можно задать разными способами, к примеру:
CODE
// Говорит компилятору какие функции менять на SSE аналоги
#pragma intrinsic(pow abs...)

// А Я ХОЧУ САМ ВЫЗВАТЬ
#include <tmmintrin.h>
__m64 as;
__m64 test = _mm_abs_pi16 (__m64 as)


можно и с помощью openMP:

CODE
#pragma omp simd
for (i = 0; i < count; i++)
{
    a[i] = b[i] + 1;
}


--------------------
Набор шейдеров для S.T.A.L.K.E.R: Shadow of chernobyl: ECB-Shaderpack - https://github.com/cjayho/ecb-shaderpack/

------

Продюсер электронной музыки в стиле Dark Ambient, автор саундтрека для Desowave S.T.A.L.K.E.R.: Lost Alpha.

Spotify | Apple Music | YouTube | BandCamp | AudioMack
Перейти в начало страницы
 
ForserX
сообщение 17.05.2019, 00:04
Сообщение #3652


Почти Игроман
*********

Репутация:   91  
Группа: Модератор
Сообщений: 516
Награды: 4
Регистрация: 19.07.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


cjayho, я сомневаюсь просто, что кто-то будет их вставками развертывать. А так - да.


--------------------

В армии по 01.07.2020.
Перейти в начало страницы
 
atanda
сообщение 17.05.2019, 15:27
Сообщение #3653
Pro gamer

Почти Игроман
*********

Репутация:   72  
Группа: Участник
Сообщений: 622
Регистрация: 05.11.2017




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(buffy @ 16.05.2019, 23:33) *
Вижу топик обсуждаем.
Часто после вылета в нижнем левом углу экран появляется окошко "msctfime ui". С чем оно связано и в какую сторону копать?

Вопрос всё ещё актуален.

Товарищ iOrange бывалый прогер, может он что-нибудь подскажет? Хотя бы что это и куда копать?

Сообщение отредактировал buffy - 17.05.2019, 15:27
Перейти в начало страницы
 
Zagolski
сообщение 17.05.2019, 16:04
Сообщение #3654


Почти Игроман
*********

Репутация:   59  
Группа: Участник
Сообщений: 629
Награды: 1
Регистрация: 13.12.2016




Вставить ник Цитировать выделенное в форуму быстрого ответа


Ни разу не встречал на родном движке. Но, если юзать альпетовский перехватчик, то да, эта менюшка у меня постоянно после вылета вылазиет, пока систему не перезагрузишь (и вин7 и вин10). Причем кажется только в полном экране.

Сообщение отредактировал Zagolski - 17.05.2019, 16:43
Перейти в начало страницы
 
atanda
сообщение 17.05.2019, 17:54
Сообщение #3655
Pro gamer

Почти Игроман
*********

Репутация:   72  
Группа: Участник
Сообщений: 622
Регистрация: 05.11.2017




Вставить ник Цитировать выделенное в форуму быстрого ответа


Собстно, кажется отловил. Окно появляется при свёртывании игры в xrCore
Код
ShowWindow(GetTopWindow(NULL), SW_MINIMIZE);
ShowCursor(TRUE);

Добавил код из репо xp_dev и не протестировал. z_crazy.gif

К слову говоря, окно так и не свернулось, хотя вроде всё должно работать.
Перейти в начало страницы
 
ForserX
сообщение 17.05.2019, 18:45
Сообщение #3656


Почти Игроман
*********

Репутация:   91  
Группа: Модератор
Сообщений: 516
Награды: 4
Регистрация: 19.07.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


buffy, возьми у нас в репо


--------------------

В армии по 01.07.2020.
Перейти в начало страницы
 
abramcumner
сообщение 17.05.2019, 19:42
Сообщение #3657


Игровое Воплощение
*********************

Репутация:   394  
Группа: Участник
Сообщений: 4791
Награды: 4
Регистрация: 27.04.2011




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(buffy @ 17.05.2019, 17:54) *
Собстно, кажется отловил. Окно появляется при свёртывании игры в xrCore
Код
ShowWindow(GetTopWindow(NULL), SW_MINIMIZE);
ShowCursor(TRUE);

Как обычно все работает ровно так, как и написано в коде smile.gif
Окно исправно сворачивается, только вот не сталкерское. GetTopWindow(NULL) возвращает окно msctfime ui
Возьми хендл сталкеровского окна из CRenderDevice.m_hWnd
Перейти в начало страницы
 
atanda
сообщение 17.05.2019, 20:19
Сообщение #3658
Pro gamer

Почти Игроман
*********

Репутация:   72  
Группа: Участник
Сообщений: 622
Регистрация: 05.11.2017




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(abramcumner @ 17.05.2019, 19:42) *
GetTopWindow(NULL) возвращает окно msctfime ui

Емнип, GetTopWindow(NULL) возвращает высшее по иерархии окно, что в этот момент может быть выше сталкерского? msctfime ui? И что это за окно такое?

Сообщение отредактировал buffy - 17.05.2019, 20:19
Перейти в начало страницы
 
Молния в вакууме
сообщение 17.05.2019, 20:27
Сообщение #3659


Почти Игроман
*********

Репутация:   187  
Группа: Участник
Сообщений: 647
Награды: 4
Регистрация: 05.05.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Xottab_DUTY @ 16.05.2019, 03:51) *
Я уже перестал её изучать, но, в целом, до сих пор актуально. Ибо там довольно интересная фс, может пригодится)

Там сложно весьма всё устроено. Почти всё обращения к файлам многопоточные, т.е. вместо простого открытия файла делается запрос на открытие файла, ядро его запоминает и каким-то специальным потоком обрабатывает, потом вызывается коллбэк который был передан при запросе, в коллбэке уже проверяется открылся ли файл успешно или нет, читаются данные из него и т.п.

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

Сообщение отредактировал Молния в вакууме - 17.05.2019, 20:28
Перейти в начало страницы
 
iOrange
сообщение 17.05.2019, 20:42
Сообщение #3660
BFG9000 owner

Половина землекопа
**************

Репутация:   247  
Группа: Припаркованный аккаунт
Сообщений: 1813
Награды: 3
Регистрация: 30.03.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Молния в вакууме @ 17.05.2019, 19:27) *
вместо простого открытия файла делается запрос на открытие файла, ядро его запоминает и каким-то специальным потоком обрабатывает, потом вызывается коллбэк который был передан при запросе, в коллбэке уже проверяется открылся ли файл успешно или нет, читаются данные из него и т.п.

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

Цитата(Молния в вакууме @ 17.05.2019, 19:27) *
У разработчиков наверно была какая-то документация к этой системе

У нас всех она есть - https://docs.microsoft.com/en-us/windows/de...ase-_overlapped


--------------------
Hello worlds!
Перейти в начало страницы
 
ed_rez
сообщение 17.05.2019, 21:27
Сообщение #3661


Почти Игроман
*********

Репутация:   42  
Группа: Участник
Сообщений: 626
Награды: 1
Регистрация: 10.12.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


iOrange,
чисто ради теории. Если беглый взгляд мог ухватиться, вообще реально Сталкер "посадить" на все ядра, которые есть у "железа"?


--------------------
Перейти в начало страницы
 

242 страниц V  « < 181 182 183 184 185 > » 
Ответить в данную темуНачать новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 05.05.2024, 19:26