Модостроение. Общие вопросы и ответы
|
|
denis2000 | Дата: Сб, 15.06.2013, 11:51 | Сообщение # 1 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Помощь тем кто хочет знать больше о игре и модах Если у вас появились вопросы по модостроению в игре S.T.A.L.K.E.R. Задавайте их в этой теме - умные головы, модосторители и просто разбирающиеся в программировании люди вам ответят.
Много интересного материала здесь (wiki), Lua_help.script, Help из SDK 0.7
Сборник модостроения ЗП v10.10.11 (автор: XOBAH): *.CHM, *.HTML [cut noguest=Если у вас не открывается файл CHM]Если у вас не открывается файл: 1. Запустите [Пуск]=>[Выполнить] (либо хот-кей [WIN]+[R]) 2. Введите команду (без кавычек) "regsvr32 %windir%\system32\hhctrl.ocx" 3. Если вылезло окно об успешном завершении вы все сделали правильно и можете перезагружать компьютер (а может и не надо) Также: файлы МОГУТ не открываться если в пути к файлу есть: символы кириллицы, "_", "#" Также: есть не стандартные программы-просмоторщики CHM файлов. Например: FBReader[/cut] [cut=Где найти лог игры после вылета]Что такое LOG ошибки, и как мне его найти? Это система отладки происходивших вылетов, которая подается игрой в форме текста, хотя не всегда. Для того чтоб найти LOG необходимо зайти вот сюда:
В Win хр лог находится:
C:\Documents and Settings\All Users\Документы\S.T.A.L.K.E.R. - Зов Припяти\logs
Затем открываете первый файл в формате TXT, и в нем отбираете с низу 25 строчек. После кидаете эти 25 строчек в сообщение на форум.
В Win7 лог находится C:\Users\Public\Documents\S.T.A.L.K.E.R. - Зов Припяти\logs
Путь к папке с логом можно найти открыв файл fsgame.ltx который находится в корневой директории ЗП, за это отвечает строка: ... $app_data_root$ = true | false| $fs_root$| users\(тут мы указываем что папка пользователя, будет хранится рядом с Fsgame.ltx) ... $logs$ = true| false| $app_data_root$| logs\(а тут мы указываем что в папке пользователя, в подпапке Logs будут храниться наши логи) ... [/cut][cut=Получение более подробной информации о вылете (ХОВАН)] Открываем файл _g.script и ищем такую функцию: function abort(fmt, ...) Там есть заккомментированная строчка "--error_log(reason)", ее и надо расскомментировать, должно получиться вот так: Код function abort(fmt, ...) local reason = string.format(fmt, ...) error_log(reason) end Вот для примера два одинаковых вылета, первый с функцией по умолчанию, второй - с поправленной функцией
Первый: Код Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ....a.l.k.e.r. - Зов Припяти\gamedata\scripts\_g.script:478: bad argument #2 to 'format' (string expected, got nil) Второй: Код Expression : 0 Function : ErrorLog File : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp Line : 49 Description : 'Attempt to read a non-existant string field 'path_walk' in section 'walker@mechanic' [/cut]
Перед тем, как задать вопрос в этой теме, прочтите все предыдущие страницы, статьи в wiki по ссылке из шапки и соседнюю тему "Курс молодого бойца", возможно Ваш вопрос уже рассматривался.
Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки. Помните чем подробнее вопрос, тем точнее ответ.
Посты, для которых есть свои категории, из этой темы будут удаляться или перемещаться в соответсвующую тему. Персональных извещений в ЛС о переносе\удалении поста не будет, ищите сами. Учитывайте, что в системах Ucoz тема не обновляется в статистике при переносе поста. Посты, написанные здесь-же после переноса, будут расцениваться как кросспостинг, со всеми вытекающими
[cut noguest=Первый юбилей нашей темы] Здравствуйте господа модостроители, и все так или иначе причастные к этому. Нашей теме исполнился 1 год. От души поздравляю Всех Вас дорогие друзья, творческих успехов. Хочу так же выразить отдельную благодарность denis2000 и ХОВАН. tracker 23.06.11
[/cut]
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 24.11.2017, 10:35 | Сообщение # 2746 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Наблюдатель, По крышам уйдите на Затон. Если прописывать новый диалог он все равно появиться только после начала новой игры.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Наблюдатель | Дата: Пт, 24.11.2017, 23:47 | Сообщение # 2747 |
Ветеран
Пользователи
Сообщений: 400
| Цитата denis2000 ( ) Если прописывать новый диалог он все равно появиться только после начала новой игры. Здравствуйте Всем! Благодарю за ответ, уважаемый denis2000! И отключение Атмосфер 3, которое Вы объяснили тоже пошло с НИ. Но переигрывать не хочу, много наград получил. Попытался решить проблему с Атмосфер по другому, забросил в мод ПЗ 1.1 и в нём выставил ясную погоду без смены. Всё пошло на ура, но при начале пси-шторма всегда ловлю вылет: Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...e.r. - Путь Бандита\gamedata\scripts\xr_logic.script:597: attempt to call field '?' (a nil value) Объясните, плиз, он ругается на отсутствие файла xr_logic.script? Я его в папке не нашёл.
|
|
|
Эти 0 пользователя(ей) поблагодарили Наблюдатель за это полезное сообщение: |
|
|
sergej5500 | Дата: Сб, 25.11.2017, 00:02 | Сообщение # 2748 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата Наблюдатель ( ) Объясните, плиз, он ругается на отсутствие файла xr_logic.script? Я его в папке не нашёл.
Он ругается на ошибку в функции из файла xr_logic.script. 597 строка. Если у вас этого файла нет, то он берется из оригинала ЗП.
В 597 строке написано
if xr_conditions[infop.func](actor, npc, infop.params) then
Какой то объект с логикой: сталкер, рестриктор, монстр и т.п. запрашивает функцию из xr_conditions. И не находит её. Или функция неверна.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
Voland-777 | Дата: Вс, 03.12.2017, 14:03 | Сообщение # 2749 |
Эмиссар
Пользователи
Сообщений: 1702
| Доброго времени суток. Подскажите, как подрубить функцию спавна артефактов в ящик в Припяти, добавленный в SGM 2.2 аддоном от makdm. Знаю, за это отвечает функция в bind_stalker.script, а где еще нужно отредактировать? Заранее благодарю.
|
|
|
Эти 0 пользователя(ей) поблагодарили Voland-777 за это полезное сообщение: |
|
|
sergej5500 | Дата: Вс, 03.12.2017, 14:12 | Сообщение # 2750 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата Voland-777 ( ) как подрубить функцию спавна артефактов в ящик в Припяти, добавленный в SGM 2.2 аддоном от makdm
Нужного файла у меня сейчас нет. Но функция вызывается аналогично функциям спавна в другие личные ящики.
А эти функции запускаются строками
self:check_detective_achievement() self:check_mutant_hunter_achievement()
в функции actor_binder:update(delta).
Ищите третью строку. Она наверняка рядом.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
Voland-777 | Дата: Вс, 03.12.2017, 14:47 | Сообщение # 2751 |
Эмиссар
Пользователи
Сообщений: 1702
| sergej5500, self:check_weapon_help_achievement()? Есть еще вот этот код, который касается этой фичи: [cut]stored_achievement_time = reader:r_bool() if stored_achievement_time == true then self.last_weapon_help_achievement_spawn_time = utils.r_CTime(reader) end[/cut] Это: [cut]if self.last_weapon_help_achievement_spawn_time == nil then packet:w_bool(false) else packet:w_bool(true) utils.w_CTime(packet, self.last_weapon_help_achievement_spawn_time) end[/cut] Этот, который напрямую определяет вещи в ящике: [cut]local weapon_help_achievement_items = {"af_cristall_flower","af_medusa","af_mincer_izumrud","af_atom","af_mox"} На ассортимент не обращайте внимания, правил под себя.[/cut] Это, наверное, установка на начало спавна после задания в Госпитале: [cut]function actor_binder:check_weapon_help_achievement() if dont_has_alife_info("pri_a17_actor_has_gauss_rifle") then return end if self.last_weapon_help_achievement_spawn_time == nil then self.last_weapon_help_achievement_spawn_time = game.get_game_time() end if game.get_game_time():diffSec(self.last_weapon_help_achievement_spawn_time) > 43200 then spawn_achivement_items(weapon_help_achievement_items, 2, "pri_a16_actor_treasure") xr_effects.send_tip(db.actor, nil, {"st_weapon_help_news","got_artefact"}) self.last_weapon_help_achievement_spawn_time = game.get_game_time() end
end[/cut] Это все тоже на снос?
|
|
|
Эти 0 пользователя(ей) поблагодарили Voland-777 за это полезное сообщение: |
|
|
sergej5500 | Дата: Вс, 03.12.2017, 15:04 | Сообщение # 2752 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата Voland-777 ( ) Это все тоже на снос?
Достаточно убрать строку self:check_weapon_help_achievement() из функции actor_binder:update(delta)
Она запускает всё остальное.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
Voland-777 | Дата: Вс, 03.12.2017, 15:09 | Сообщение # 2753 |
Эмиссар
Пользователи
Сообщений: 1702
| sergej5500, и этой же строкой фичу можно вернуть в любое время?
|
|
|
Эти 0 пользователя(ей) поблагодарили Voland-777 за это полезное сообщение: |
|
|
sergej5500 | Дата: Ср, 13.12.2017, 10:48 | Сообщение # 2754 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата Voland-777 ( ) и этой же строкой фичу можно вернуть в любое время?
Думаю, что да.Добавлено (13.12.2017, 10:48) --------------------------------------------- Добрый день. Возник такой вопрос.
Имеется оружейный пак от Газика версии 2.9. В чистом виде этот пак у меня не запускается. Причина в бинарных файлах пака. В теме пака внятного ответа не дали. Может быть, паку нужен какой то особый Зов Припяти.
Без папки bin пак запускается.
У меня есть идея использовать пак в качестве оружейной части будущего сюжетного аддона. Что бы пак запускался без папки bin, нужно выполнить следующие операции.
1. Восстановить работу скрипта подмены моделей (используется для установки прицелов). Соответствующий скрипт можно взять из старых версий пака.
2. Для устранения вылетов добавить стволы в mp_ranks.
По второй операции и возник вопрос. Если добавлять все стволы, то получится минимум 600 штук (с учетом всех прицелов).
Я на каком то сталкерском форуме читал, что есть ограничение на кол-во стволов в mp_ranks. За достоверность не ручаюсь (давно это было).
Собственно, вопросы такие.
1. Есть ли ограничение на кол-во стволов в mp_ranks? 2. Столько стволов можно добавить в этот файл?
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
denis2000 | Дата: Ср, 13.12.2017, 11:18 | Сообщение # 2755 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата sergej5500 ( ) Может быть, паку нужен какой то особый Зов Припяти. По заявлению автора нужна версия 1.602. Поскольку папка bin содержит все необходимые бинарные файлы, то проблема не в совместимости версий бинарных файлов, а в том что либо бинарники рассчитаны на другую ОС (например исключительно на 64 битную) или версия остальных файлов (скорее всего скриптов) у вас отличается от заявленной (лог вылета или сообщение об ошибке приветствуется).
Цитата sergej5500 ( ) Есть ли ограничение на кол-во стволов в mp_ranks? Есть ограничение, но не количество, а на длину строки в конфиг файле (вполне возможно что в бинарниках это было исправлено), слишком длинная строка рандомно приводит к движковому крашу.
Цитата sergej5500 ( ) Для устранения вылетов добавить стволы в mp_ranks. Есть бинарник игнорирующий отсутствие стволов в этом файле, в принципе это тоже решение проблемы (а может именно эта правка и использована в движке мода в комплекте с другими).
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
sergej5500 | Дата: Ср, 13.12.2017, 11:32 | Сообщение # 2756 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата denis2000 ( ) (лог вылета или сообщение об ошибке приветствуется)
Собственно, игра (1.602) с их папкой bin вообще не запускается. Пишет, что не установлен файл mcvsr120.dll (или что то в этом роде). Но этот файл в системе точно есть. В папке windows32. Я скопировал этот файл в папку bin ЗП. Ошибка стала такой. b000007 или что то в этом роде. Доступ к игровому ПК у меня будет только вечером. Тогда смогу сказать точнее.
У меня Зов Припяти 1.602 (лицензия). С правленым x-рау (что бы запускать без диска). Пак и крайний фикс скачан с Ап-Про.
Прочие моды запускаются без проблем. Пак Газика то же запускается, но без папки bin. При этом не работает смена прицелов и наблюдаются вылеты по mp_ranks.
Сообщение отредактировал sergej5500 - Ср, 13.12.2017, 11:36 |
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
denis2000 | Дата: Ср, 13.12.2017, 12:31 | Сообщение # 2757 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата sergej5500 ( ) Пишет, что не установлен файл mcvsr120.dll (или что то в этом роде). Но этот файл в системе точно есть. В папке windows32. Я скопировал этот файл в папку bin ЗП. Ошибка стала такой. b000007 или что то в этом роде. Это компонент Visual C++ для Visual Studio 2013. Он не имеет прямого отношения к движку и устанавливается отдельно (из доверенного источника!) подробнее здесь: http://remontka.pro/msvcr120-dll/ В него вынесены сторонние функции библиотеки языка С++ и движек собранный в Visual Studio 2013 использует их. К стати в шапке темы этого мода на Ап-про есть и описание вылета и метод решения (с ссылкой на инсталлятор пакета).
А вот примечания по бинарникам из темы мода: [cut]Примечание: Все файлы в папке bin нельзя менять вообще! В них включены важные правки по работе прицелов, злополучного mp_ranks, а так же добавлены следующие настройки: r__detail_density - настройка плотности травы. Рекомендуется ставить 0.4; r_detail_radius - настройка дальности прорисовки травы - от 49 до 250; fov - угол обзора, ставьте любой; hud_fov - угол обзора самого оружия, можете экспериментировать.[/cut]
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Hunter | Дата: Пт, 15.12.2017, 02:06 | Сообщение # 2758 |
Удаленные
| Есть ли способ разблокировать видимость оперативки для ЗП в движке? По дефолту он не видит больше 4 гб.
|
|
|
Эти 0 пользователя(ей) поблагодарили Hunter за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 15.12.2017, 11:00 | Сообщение # 2759 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Hunter, Воспользоваться исходниками движка и переписать его под 64 битную ОС или дождаться пока это сделают другие.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Voland-777 | Дата: Чт, 04.01.2018, 14:23 | Сообщение # 2760 |
Эмиссар
Пользователи
Сообщений: 1702
| Здравствуйте. Такое вот дело: открыл SAVandT, чтобы просмотреть комментарии, которые выставлены у музыки в СГМ. Выскакивает надпись вроде "comment block inserted", что вроде бы переводится как "блок комментариев выставлен". Это значит, что они уже есть, или наоборот?
|
|
|
Эти 0 пользователя(ей) поблагодарили Voland-777 за это полезное сообщение: |
|
|
|