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

Как создать мод для оживления мертвых НПС для S.T.A.L.K.E.R.: ТЧ неофиц. патч 1.0007

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

 

Как создать мод для оживления любых мертвых НПС для S.T.A.L.K.E.R.: Тень Чернобыля неофициальный патч 1.0007. В интернете находил с артефактом - mega_heart, но у меня с ним вылетает игра, что похоже связанно с неофицальным патчем. Прошу помощи: как самому создать такой мод.

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


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

Вопрос конечно интересный

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


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

Вопрос конечно интересный

Так поможешь или нет?

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


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

Спидран по моддингу:

  1. Пытаемся установить правку как есть.
  2. Пытаемся запустить мод
  3. Если всё работает ок - см. п. 8
  4. Если ошибка - ищем лог и смотрим в нём, в чём причина (как правило, это последние строки лог). Ещё можно сразу после вылета открыть любой текстовый документ и нажать Ctrl + V (когда происходит вылет и есть его лог - игра автоматически записывает его лог в буфер обмена).
  5. Гуглим, в о чём лог
  6. По рекомендациям из инета вносим нужные правки.
  7. Повторяем п. 2
  8. Вуаля! Ты теперь модмейкер, можно выходить на Ap-Pro Showcase с трейлером своего супер-пупер мода
    (походу, так как раз и рассуждают создатели васянских сборок на СоС'оиды)

Если серьёзно, очень и очень неопределённый вопрос. В целом, алгоритм выше рабочий, но для чего-то серьёзного придётся учиться и учиться. Начинать лучше с простого (правки параметров в конфигах, торговли, создание диалога и т.д.).
Точкой входа во всё это я б назвал гуглёж "Как <сделать что-то> в сталкер <ТЧ/ЧН/ЗП/...>?" и дальнейшее разбирательство что, зачем и почему.

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

Мод в разработке - X-7: Эпицентр

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


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

Можешь по конкретнее сказать пожалуйста, как научиться создать мод по типу моего. Ещё ты написал про существующий мод, а я хочу с нуля создать.

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

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


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

У меня НС 2010 на 1.0004 патче тоже вылетала с этим артом, когда пытался шустрого воскресить

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


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

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

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

  • Лайк 1

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


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

Никакого опыта по сталкерскому моддингу не было. Скрипты тоже не знаю, не знаю с чего начать, просто хотел мод сделать для неофициального мода патча.

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


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

а я хочу с нуля создать.

Учи Lua, изучай скрипты скакалкер и модов, гугли и МОЖЕТ БЫТЬ научишься.

А вообще с конфигов начинай.

А по твоему вопросу - капай НС или ОП, смотри как там накодированно и списывай попутно пытаясь понять. Если так и не выйдит, то можешь какому-нибудь модмейкеру запашлять за такой мод


Дополнено 1 минуту спустя
33 минуты назад, Skel сказал:

Никакого опыта по сталкерскому моддингу не было. Скрипты тоже не знаю, не знаю с чего начать, просто хотел мод сделать для неофициального мода патча.

В таком случаи начни с малого, научись количество патрон в ПМ менять

  • Лайк 2

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


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

Учи Lua, изучай скрипты скакалкер и модов, гугли и МОЖЕТ БЫТЬ научишься.

А вообще с конфигов начинай.

А по твоему вопросу - капай НС или ОП, смотри как там накодированно и списывай попутно пытаясь понять. Если так и не выйдит, то можешь какому-нибудь модмейкеру запашлять за такой мод


Дополнено 1 минуту спустя

В таком случаи начни с малого, научись количество патрон в ПМ менять

---___---
Ты серьезно? 


Дополнено 1 минуту спустя
9 часов назад, Skel сказал:

Как создать мод для оживления любых мертвых НПС для S.T.A.L.K.E.R.: Тень Чернобыля неофициальный патч 1.0007. В интернете находил с артефактом - mega_heart, но у меня с ним вылетает игра, что похоже связанно с неофицальным патчем. Прошу помощи: как самому создать такой мод.

Мне нужна ссылка на то, откуда ты этот мод взял, и мне нужен лог вылета, а также скрины твоей имплементации этой правки.

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

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


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

---___---
Ты серьезно? 
Человеку нужно конкретное решение для конкретной проблемы, ему не нужно менять параметры в конфиге ПМа, ему не нужно учить LUA, ему не нужно "МОЖЕТ БЫТЬ" научиться. Человеку на одно прохождение нужно починить правку, взятую из интернета.

Где ты увидел о том, что он хочет на одно прохождение?

Screenshot_20231024_222231_Chrome.jpg.8dae141d845240539111e68543ab949c.jpg

Какой вопрос - такой ответ.


Дополнено 1 минуту спустя

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

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

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


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

Никакого опыта по сталкерскому моддингу не было. Скрипты тоже не знаю, не знаю с чего начать, просто хотел мод сделать для неофициального мода патча.

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

Вот тебе основы LUA для корректной работы со скриптами
https://zserge.wordpress.com/2012/02/23/lua-за-60-минут/

Вот тебе статья о базовом устройстве игрового движка
https://3dnews.ru/183337

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


Дополнено 0 минут спустя
4 минуты назад, Paracetamol сказал:

Где ты увидел о том, что он хочет на одно прохождение?

Screenshot_20231024_222231_Chrome.jpg.8dae141d845240539111e68543ab949c.jpg

Какой вопрос - такой ответ.


Дополнено 1 минуту спустя

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

Я прошу прощения, потому что я слишком сильно устал и не заметил контекста. Зря быканул

  • Лайк 2

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


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

Вот тебе плейлист основ С++, который позволит тебе иметь базовое понимание того как код устроен

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

А вот уже основы Lua - самое то. Конфиги и скрипты надо в первую очередь смотреть. А дальше изучать по обстановке.

22 минуты назад, Deathman сказал:

Я прошу прощения, потому что я слишком сильно устал и не заметил контекста. Зря быканул

Ладно, прощаем:). Сообщение выше скорее адресовано ТСу, а не тебе, чтобы он всё-таки не пытался в движок сразу залезть. Там и у опытных далеко не сразу получится разобраться.

Изменено пользователем Prostomod
  • Лайк 1
  • Мастер! 1

Мод в разработке - X-7: Эпицентр

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


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

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

А вот уже основы Lua - самое то. Конфиги и скрипты надо в первую очередь смотреть. А дальше изучать по обстановке.

Ладно, прощаем:). Сообщение выше скорее адресовано ТСу, а не тебе, чтобы он всё-таки не пытался в движок сразу залезть. Там и у опытных далеко не сразу получится разобраться.

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

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


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

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

Пожалуй соглашусь, что самое базовое понимание работы движка знать полезно. Однако, как по мне, в начале лучше просто абстрактно представлять анатомию движка без подробностей, а не разбираться с плюсовом коде самому. Примерно на уровне как раз тех статей на тему "Как работают игровые движки".
Всё-таки С++ далеко не самый простой язык, новичок в лучшем случае ничего не поймёт, а в худшем попытка разобраться в работе движка просматривая код отпугнёт (если только этот "новичок" уже не является С++ программистом). Для новичка пусть все подробности движка остаются внутри т.н. "чёрного ящика", хотя бы на первое время.
Лучше пусть будет известно на уровне скриптов lua где и как что срабатывает, на уровне конфигов где и как читается, а так-же где и что надо прописать своё, чтобы оно работало (огромное количество инфы об этом есть в интернете + никто не отменял эксперименты). А "чёрный ящик" (если вообще понадобится) уже открывать тогда, когда есть понимание работы более высокоуровневых процессов - будут известны хоть какие-то отправные точки, через которые можно связать С++ код с конфигами, скриптами и прочими вещами и начать разбираться в движке.


Мод в разработке - X-7: Эпицентр

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


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

Пожалуй соглашусь, что самое базовое понимание работы движка знать полезно. Однако, как по мне, в начале лучше просто абстрактно представлять анатомию движка без подробностей, а не разбираться с плюсовом коде самому. Примерно на уровне как раз тех статей на тему "Как работают игровые движки".
Всё-таки С++ далеко не самый простой язык, новичок в лучшем случае ничего не поймёт, а в худшем попытка разобраться в работе движка просматривая код отпугнёт (если только этот "новичок" уже не является С++ программистом). Для новичка пусть все подробности движка остаются внутри т.н. "чёрного ящика", хотя бы на первое время.
Лучше пусть будет известно на уровне скриптов lua где и как что срабатывает, на уровне конфигов где и как читается, а так-же где и что надо прописать своё, чтобы оно работало (огромное количество инфы об этом есть в интернете + никто не отменял эксперименты). А "чёрный ящик" (если вообще понадобится) уже открывать тогда, когда есть понимание работы более высокоуровневых процессов - будут известны хоть какие-то отправные точки, через которые можно связать С++ код с конфигами, скриптами и прочими вещами и начать разбираться в движке.

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

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


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

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

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

Сам список, как по мне, является стандартным для любого ЯП, на котором собираешься что-то более-менее серьёзное делать (в т.ч. Lua). Но вот для движка по хорошему нужно знать и про работу с памятью (в С++ нет сборщика мусора - легко забить всю память или потерять в производительности, если сделать что-то неправильно), и про указатели (очень опасная вещь, если толком не понимаешь, что делаешь). Да и понимание ООП и всяких алгоритмов и структур данных поможет комфортнее разобраться со всем.
И я очень сомневаюсь, что новичок, который решит начать делать мод, с радостью побежит первым делом учить всю эту прелесть, особенно если его цель - сделать сюжетный мод без каких-то особых выкрутасов, или реализовать не особо сложную механику. Можно конечно всё это выучить "в боевых условиях", но тут опять вопрос с том, стоит ли?

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

Мод в разработке - X-7: Эпицентр

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


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

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

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

Для новичка, который не проектирует свой софт нет смысла знать про работу с памятью, компилятор и много что другое еще долго будет уметь работать с ней лучше него, от него будет достаточно уметь понятно написать и знать что он пишет

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


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

и знать что он пишет

2 часа назад, Deathman сказал:

нет смысла знать про работу с памятью, компилятор и много что другое

Как по мне, тут есть противоречие: если кто-то не знает, как работает память в коде или указатели/ссылки, то откуда он может знать, что у него происходит в коде? Ок, часть его косяков компилятор оптимизирует, но много чего останется. Допустим, получилось скомпилировать такой код. Хорошо, если это выльется в "относительно безобидную" просадку ФПС (Например, каждый тик пытается передать в функцию массив из условно 1000 элементов какого-то класса в том месте, где правильнее было передать по константной ссылке? И не один раз за тик, а раз 100. Да ещё и возвращать каждый раз такой-же массив.). А ведь это может превратиться и в утечку памяти или неопределённому поведению. Хороший получится мод, который лагает и постоянно вылетает (или вообще не запускается) из-за косяков движковых правок. Хоть за счёт красивого кода мб ему будет легче получить помощь, но такое обучение явно будет не самым комфортным.
Если уж и хочется движок править, то, думаю, в большинстве случаев лучше понять, что от него вообще ожидается (=как его API выглядит в скриптах, конфигах и других местах, что означает, что нужно поковырять геймдату и мб что-то реализовать без движка), потом в стерильных условиях (=какой-то мелкий учебный проект на любую идею, какая нравится) отработать навыки в С++, и только потом лезть.

Если есть желание - можно и сразу с нулевыми знаниями пытаться его править. А при должном усердии даже сделать что-то рабочее (и даже что-то крутое, если постараться), и даже без каких-то серьёзных косяков. Но в большинстве случаев, как мне кажется, начинать изучать моддинг сталкера с исходников движка со всеми его подробностями, а не его API (конфиги, Lua и остальное) - такая себе идея.

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

Мод в разработке - X-7: Эпицентр

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


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

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

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


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

---___---
Ты серьезно? 


Дополнено 1 минуту спустя

Мне нужна ссылка на то, откуда ты этот мод взял, и мне нужен лог вылета, а также скрины твоей имплементации этой правки.

Вот отсюда скачал:
https://disk.yandex.ru/d/EbziGqlJ3TMkVj

Сделал все по инструкции из readme.txt

Взял из интернета спавнер предметов и прописал в ui_main_menu.script:
elseif db.actor~=nil and dik==DIK_keys.DIK_F6 then
alife():create("mega_heart",db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())

"mega_heart" название артефакта взятое из gamedata\config\misc\ressurect.ltx.
В readme.txt прописано:

Артефакт, который воскрешает всех подряд

Использование: Положить в труп окно закроется, труп исчезнет и появится живой НПС

Когда ложу в труп этот артефакт игра вылетает с логом на Ctrl+V:

Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : .\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ....r. Тень Чернобыля\gamedata\scripts\ressurect.script:31: attempt to index field 'convert_npc' (a nil value)
 

 

Screenshot_745.png

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

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


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

Skel это для амк, ищи версию под чистую игру

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


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

Аааа... там же вроде можно просто скрипт amk докинуть?

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


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

Аааа... там же вроде можно просто скрипт amk докинуть?

А можно обьяснить что такое amk? Или можно как-то переделать скрипт?

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


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

А можно обьяснить что такое amk? Или можно как-то переделать скрипт?

Это скрипт такой


Дополнено 0 минут спустя

Ищи амк мод и оттуда скрипт кидай amk

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


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

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

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

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

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

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

Войти

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

Войти

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

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