Перейти к содержанию
AziatkaVictor

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

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

 

Автор темы: ForserX

Предложения по правкам движка

Сборки:

Правки:

Спойлер

Ссылка: ЯндексДиск

Изменения:

  • Отсутствие старфорсоов и сопутствующих проблем
  • В nodvd-вариантах из за сбоев в циклах движка могли происходить вылеты, которые здесь невозможны
  • Нормальная система отлова багов, в nodvd её по сути не было, движковые логи не писало
  • Если у НПЦ проблемы с логикой, nodvd-вариант сразу крешится без лога и бьются сейвы, тут это пофиксено
  • Фикс ошибки "(bytes_need<=mSize) && vl_Count" на r2, связанной с перегрузками видеобуфера
  • Оптимизация требований к памяти (GlobalMemoryStatus вместо GlobalMemoryStatusEx)
  • Возможность менять hud_fov (несколько предустановок, рассчитано исключительно на данный экзешник)
  • Возможность менять fov для xrgame.dll от 1.0006 (несколько предустановок)
  • Отключено загаживание консоли/лога сообщениями "CL setdestroy"
  • Расширено меню установки fov для xrgame.dll
  • Добавлены опциональные (необязательные к установке) фиксы. Запуск и выбор - через 10006_patcher.cmd:
  • Увеличение числа стеков памяти
  • Увеличение DVB (Vertices Buffer) до 6 mb
  • Увеличение DIB (Indices Buffer) до 1 mb
  • Отключение ругательств рендера на шейдеры
  • Отключение ругательств на неправильное положение солнца в погодном конфиге (by lvg_brest)
  • Отключение разных дебаг-сообщений в xrgame.dll
  • Основан на новом экзешнике от GSC с принудительным ограничением кадров (защита от перегрева видеокарт/БП)
  • Возможность опционально отключать ограничитель кадров (защиту от перегрева видеокарт/БП)
  • Теперь единый экзешник + внешние патчеры ru/ww
  • Теперь единый fov/hud_fov switcher
  • Новый xrGameSpy.dll (сетевая игра переключается на сервер GSC)

Спойлер

Спойлер

Ссылка: ЯндексДиск

Изменения:

  • Анимация ходьбы anim_walk для пистолетов
  • Новые скриптовые методы:
    • inv_weight - получить вес макс. вес
    • set_inv_weight - установить макс. вес
    • move_on_belt - переместить предмет на пояс
    • item_on_belt - получить предмет на поясе
    • set_ammo_type - установить тип патронов
  • Новые скриптовые кaллбэки:
    • on_item_belt - перемещение предмета на пояс
    • on_item_ruck - перемещение предмета в рюкзак
    • on_item_slot - перемещение предмета в слот
    • on_switch_nightvision - переключение ПНВ
  • Новые консольные команды:
    • fov [5.0, 180.0] - глобальный fov камеры
    • k_ammo_on_belt [on\off] - патроны на поясе
  • Артефакты работают только из рюкзака, на поясе не действуют на ГГ - пояс теперь по сути контейнер артефактов. Из инвентаря действуют абсолютно все свойства артефактов (радиоизлучение, пулестойкость, хим. защита и т.д.).

Спойлер

Вылечивает xrgame.dll ТЧ 1.0006 от засирания лога/консоли ненужными дебаг-сообщениями вида:

  • --NeedToDestroyObject
  • Destroying local grenade
  • sv destroy object
  • ge_destroy not found on server
  • sv ownership id_parent id_entity
  • sv !ownership (entity already has parent)
  • sv reject. id_parent id_entity
  • [16-9] get_xml_name for

Проверялся как на чистой dll, так и на пропатченной через x-ray extensions/cut x-ray.
С мультиплеером правка несовместима.

Ссылка: ЯндексДиск

Установка: Скопировать clear_xrGame.cmd и patch2.exe в папку с xrgame.dll и запустить clear_xrGame.cmd.

Также для полной чистоты лога рекомендуется использовать "Исправленный экзешник для S.T.A.L.K.E.R ТЧ 1.0006 (v2)" или в своем экзешнике хекс-редактором найти и обнулить байты фразы: cl setDestroy [%d][%d]


Спойлер

Основан на X-Ray extensions portable r230

Изменения:

  • Включены худовые анимации спринта для ножа,болта,гранат,бинокля
  • Исправлено положение при виде с внешней камеры для ножа,болта,гранат,бинокля
  • Болту увеличено время жизни, cокращено время набора силы броска по ПК, возвращена старая анимация
  • Исправлена модель худа SPAS-12
  • Альтернативная анимация стрельбы из SPAS-12
  • Для xrgame применены стандартные настройки из X-Ray extensions portable r230 (пропатченный xrgame.dll необходим для работы скрипта восстанавливающего спринт)
  • Работают команды cam_fov/hud_fov, включено солнце и т.п.
  • Пара правок bind_stalker для повышения стабильности (by makdm и Zander_driver)

Ссылка: ЯндексДиск


Спойлер






Спойлер

Советы:

Так же в теме можно задавать различные вопросы, связанные с редактированием движка.

  • Лайк 2
  • Хабар 1
  • Спасибо 2

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


Ссылка на сообщение
Поделиться на другие сайты
 

Для себя чуток поковырял тему анимки без оружия в ТЧ (она же используется и для бинокля). Называется norm_torso_0_aim_0. На крайняк на ТЧ можно прицепить билдовариант, чтобы не бегал враскоряку. Из проблем, с ней торс  немного поворачивает, хотя в сдк нормально. Видимо, как-то под билдомодели настроена.

527e7f6908dc7ec.jpgaec1a674b850396.jpgdf70ad655147f8f.jpgee0b4156624e1a6.jpg

  

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

liner глупо говорить "учите с++", как правило, такие "изучения" приводят к примитивным инициализациям переменных и некоторым циклам и разветвлениям. По сути, это все что может понадобиться (очень утрированно). Но если знаешь основы, это не значит, что сможешь понять что там ПЫС в 2007 написали. Одно дело работать со своим кодом, где понятно, какая функция за что отвечает. И другое дело, когда среди куч функций чужого кода, промелькивают понятные тебе кусочки. Тут нужно не учит язык, а учить движок и понимать, как он устроен. Понимать, какой файл за что отвечает, а сделать это без сторонней помощи очень трудно, наверное даже труднее, чем разобраться в СДК.

  • Аплодисменты 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

AziatkaVictor но это не отменяет необходимости изучения самого языка. Да, структуру проекта тоже важно понимать, но, как правило, это приходит с практикой работы на том ЯП, на которым и был сделан проект. У ПЫСов не какая-то явно-отличная структура от других проектов на Cpp.

А насчёт качества "изучений" - тут уж никто не застрахован. Все равно с опытом прийдет осознание своих ошибок.

Тут скорее вопрос в цели - если хочется просто чужие правки тянуть из репозов а-ля OXR, то может, знание языка и не столько нужно, сколько понимание структуры проекта, в остальном - начинать стоит с самого ЯП.

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

ggGhosTt ну это понятно. Я имел ввиду то, что человеку явно нужна небольшая правка, в движке он не разбирается, а начинать его изучать, явно долгое и непростое занятие. Одно требует знание второго, второе третьего и так далее.

К чему я клоню, не стоит так давить на новичков словами "За вас всё время работать не собираются", так как смысл этой темы просто пропадает, если нельзя надеяться на чужую помощь.

  • Лайк 1
  • Мастер! 1

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


Ссылка на сообщение
Поделиться на другие сайты
 
17 часов назад, antosha сказал:

раскачка для ЗП

Нету на ЗП никакой раскачки. Да и не нужна: у вас же есть возможность назначать анимации ходьбы
 

 

17 часов назад, antosha сказал:

исходниках нету файлов weaponhud.cpp и weaponhud.h

Это нормально. В ЗП другая система оружия (насколько я помню)

  • Лайк 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Ребят, а возможно ли вытащить из движка некоторые конфиги? Типо что бы не компилировать каждый раз по часу, а сделать ссылки из движка на такой-то конфиг допустим или как...  Например сделать ссылку из XrGame на dllку с одним только файлом UiMainIngameWindow.cpp (ну, так, к слову), что бы весь движок не пересобирать а только эту дллку?

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


Ссылка на сообщение
Поделиться на другие сайты
 
40 минут назад, ZV4X сказал:

Ребят, а возможно ли вытащить из движка некоторые конфиги? Типо что бы не компилировать каждый раз по часу, а сделать ссылки из движка на такой-то конфиг допустим или как...  Например сделать ссылку из XrGame на dllку с одним только файлом UiMainIngameWindow.cpp (ну, так, к слову), что бы весь движок не пересобирать а только эту дллку?

К сожалению, "конфигов" в движке как-то не водится, поэтому вытащить их возможным не представляется ?. А вот вытащить отдельные функции и классы для ускорения сборку в отдельную DLL вполне возможно, хотя и немного геморно. Впрочем, в сети хватает примеров - например, тут.

  • Лайк 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Sin! Спасибо, поглядим. А возможно-ли как-нибудь декомпилировать dll-ки? Просто у меня другой xrGame(как я понял) и исходников с него у меня нету, да и нигде нету походу. А править мне нужно именно его, ибо я только что правил исходники, собрал xrGame и в логе игры получил ошибку "error 2" Не пашет короче... 

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


Ссылка на сообщение
Поделиться на другие сайты
 
22 минуты назад, ZV4X сказал:

А возможно-ли как-нибудь декомпилировать dll-ки?

Смотря что понимать под декомпиляцией. Если получение полностью готового к сборке набора исходников - то, естественно, нет. Компиляция - процесс однонаправленный, и её результат, подобно фаршу, в обратную сторону не провернёшь. Но если задача заключается в исправлении уже готового бинарного файла (не самое простое занятие, предупреждаю), то декомпилировать машинный код из него в Си-подобный псевдокод вполне можно. Да, собрать обратно результат такой декомпиляции не выйдет, но вот анализировать происходящее "под капотом" движка после этого может стать полегче. Выбор инструментария, который может подойти для этой цели, невелик - на ум приходят разве что Hex-Rays Decompiler (плагин для IDA Pro) и Ghidra.

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


Ссылка на сообщение
Поделиться на другие сайты
 

Sin! Блиин. Короче у меня есть исходники не от моей версии так сказать, так вот, я знаю что мне нужно поменять и в каком файле, но после сборки оно всё не работает(не подходит видимо(там даже размеры файлов отличаются на 300кб)). Задача - изменить готовый dll не прибегая к использованию исходников. Ибо их нет. Сделать патч допустим через иду или как-то ещё.

Цитата

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

Можно ли после подобных манипуляций типо "редактировать Си-подобный псевдокод" собрать патч с правками для готового длл, раз саму длл не получится собрать? Потому что больше даже идей нету как сделать можно что-то такое

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
28 минут назад, ZV4X сказал:

Можно ли после подобных манипуляций типо "редактировать Си-подобный псевдокод" собрать патч с правками для готового длл, раз саму длл не получится собрать? Потому что больше даже идей нету как сделать можно что-то такое

Нет, редактирование псевдокода ничего не даст - декомпиляторы созданы для облегчения анализа, а не для патчинга. Придется (так или иначе) править сам машинный код. Если при этом хочется иметь поменьше дел с ассемблером и побольше с языками уровнем повыше  (по-моему, нормальное желание вменяемого любого прогера), то могу посоветовать изучить, как устроены движковые правки в GUNSLINGER и FreeZone (из последнего, кстати, можно еще и мини-фреймворк утащить для удобного создания врезок по нужным адресам, чтобы совсем избавиться от асмы в коде). Да, там всё реализовано на Delphi, но суть не меняется, эту схему можно заюзать и на любом другом языке (лишь бы WinAPI дёргать позволял напрямую). Суть у неё такова: сначала на нашем любимом языке высокого уровня пишем DLL, которая реализует требуемый функционал и в нужных местах пропатчит нам движок врезками, а потом где-нибудь на старте движка инжектим эту ДЛЛ в процесс игры и наслаждаемся результатом.

  • Лайк 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Sin! Спасибо за много инфы:) В общем я заставил работать собраный движок ?

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

Может быть кто-нибудь подскажет - как подредачить версию игры? Сначала хочу попробовать оригинальной движок удалить это "ver. 1.0006", потом уже ОГСРку можно попробовать.

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


Ссылка на сообщение
Поделиться на другие сайты
 
16 минут назад, antosha сказал:

При компиляции движка выскакивает 8к ошибок, которые ссылаются на файлы, которых в исходниках нет вообще!

Мб тебе нужно перенастроить решение. 
Такое обычно бывает, когда двиг задан под, например, win8 sdk, а у тебя этого компонента нету

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


Ссылка на сообщение
Поделиться на другие сайты
 

А нет исходников СДК случайно? Где-то видел, но потерял.

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


Ссылка на сообщение
Поделиться на другие сайты
 

Всем здравия желаю! У меня возник вопрос по поводу сборок файлов типа dll для сталкера ТЧ 1.0006. Я пытаюсь изменить название быстрого сохранения с "ИмяПользователя_quicksave" на "дата_quicksave". Меня сейчас интересует один момент. Какими программами нужно собирать dll файлы и с какими настройками, с каким компилятором (Я слышал, что используют VisualStudio, но можно ли использовать другие программы? К примеру, подойдёт ли codeblocks?)?

На данный момент мне уже не нужна помощь! Я уже решил свою задачу с сохранениями.

Изменено пользователем xorda
Решение своей задачи я выполнил через скрипты.)))

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 10.04.2021 в 18:28, !Samagon сказал:

А нет исходников СДК случайно? Где-то видел, но потерял.

Любые сорцы (ЧИСТЫЕ) выкачай, там и будут. 

  • Спасибо 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Приветствую.
 В исходнике движка Anomaly, создал секцию анимации оружия.
Собрал решение в Visual Studio, закинул билд в корень аномалии, прописал в конфиге анимацию.
В игре анимация не проигрывается. Возможна я не правильно закинул сборку.
Вопрос. Куда после компиляции решения, положить полученный билд?

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


Ссылка на сообщение
Поделиться на другие сайты
 
--[[ ---------------------------------------------
 File       : sk_actor_dead.script
 Description: Смерть ГГ от первого лица
 Copyright  : 2011 © Cut X-Ray mod
 Author     : SkyLoader
-------------------------------------------------]]

local flag = false

local flag_dead,flad_circle = false,false
local time,time_c = 0,time_global() + 500

function is_killed()
	if not db.actor:alive() then
		if not flag_dead and not flad_circle then
		local dir=device().cam_dir
		db.actor:set_actor_direction(dir.x,dir.y,0) --'выравниваем направление взгляда, чтобы было падение более реалистичным
 		level.add_cam_effector("camera_effects\\surge_03.anm", 2532, false, "")
		level.add_pp_effector("surge_fade.ppe", 2011, false)
		level.disable_input()
		time = time_global()
		flag_dead=true
		end
		if flag_dead then
			if time_global()-time>3000 then
			level.enable_input()
			level.add_pp_effector("deadcity_wake.ppe", 4467, false)
			flag_dead=false
			flad_circle=true
			end
		end
		if flad_circle then
			if time_c<=time_global() then
			level.remove_pp_effector(4467)
			level.add_pp_effector("deadcity_wake.ppe", 4467, false)
			time_c = time_global() + 500
			end
		end
	end
end

что дописать чтобы после выполнения сам выкидывал в меню

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


Ссылка на сообщение
Поделиться на другие сайты
 

Как правильно компилить движок CoC'а?

В исходниках вроде как в каждой папке есть свой компилятор библиотеки, мне например нада скомпилировать только xrGame, там должен иметься сборщик библиотеки.

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


Ссылка на сообщение
Поделиться на другие сайты
 

Всем привет

На одном сайте нашел

Цитата

свойства: bleeding (кровотечение), satiety (сытость) и alcohol (алкоголь), к сожалению, скриптовому воздействию не поддаются (?) и поэтому изменять их нужно посредством соответствующих движковых параметров в конфигах предметов.

Правильно ли я понимаю, что кровотечение и сытность нельзя менять с помощью скрипта, а только отслеживать. И в ТЧ, версии 1.0004 отслеживание происходит только кровотечения, а голода и алкоголя нет

Что можно сделать что бы обойти это ограничение и менять параметры сытности, кровотечения и алкоголя через скрипт?

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


Ссылка на сообщение
Поделиться на другие сайты
 

Кто-нибудь знает, как изменить параметр Viewport_near в gunslinger, у них же движок ассемблерный, на чистом зп наполовину работает, только артефакты начались, но это можно пофиксить. 

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


Ссылка на сообщение
Поделиться на другие сайты
 

Lagrange дождись обновы с грозой, разработчик уже сделал нужный фикс.


Boomsticks & Sharpsticks: https://discord.gg/vThnFWrbaA

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


Ссылка на сообщение
Поделиться на другие сайты
 

Черт побери, прекрасная новость, а то я так с ним намучался 

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 19.04.2021 в 12:05, mayki сказал:

что дописать чтобы после выполнения сам выкидывал в меню

Строку:

flad_circle=true

заменить на:

get_console():execute("main_menu on")

 


ts_logo.png.90641dc75d9a159811603d66254d25a9.png

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


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу