Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: denis2000, FantomICW  
Модостроение. Общие вопросы и ответы
denis2000Дата: Сб, 15.06.2013, 11:51 | Сообщение # 1
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Помощь тем кто хочет знать больше о игре и модах

Если у вас появились вопросы по модостроению в игре 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]
 
НаблюдательДата: Вт, 24.05.2016, 16:54 | Сообщение # 1876
Ветеран
Пользователи
Сообщений: 400
Награды: 1
Репутация: [ 59 ]

Здравствуйте Всем! Джентльмены, обратил внимание, что во фриплее ЗП, в прачечной Припяти, во время выброса сталкеры умирают?! Это можно как то исправить, или это баг ЗП? А то как то не комильфо, сидят, смеются, тут бац выброс и все мёртвые?!
 
sergej5500Дата: Вт, 24.05.2016, 17:07 | Сообщение # 1877
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Наблюдатель,

Я бы сначала проверил, есть ли в Прачечной укрытие для НПС. Можно заспавнить тестовый сквад вояк с целевым смартом в Прачечной (чтобы они не ушли в симуляцию). Сквад должен быть без СТОРИ-ИД (чтобы не было иммунитета от выброса). Заспавните сквад до наступления фриплея. Дождитесь выброса. Посмотрите, помрут или нет.
 
denis2000Дата: Вт, 24.05.2016, 17:25 | Сообщение # 1878
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Наблюдатель, Рестриктор укрытия от выброса покрывает не всю прачечную, помещение со стиральными машинами и помещения на втором этаже кроме комнаты Ковальского смертельны при выбросе. Два пути расширить рестриктор или убрать точки для НПС не защищенные от выброса (которые добавлены модом, поскольку в оригинале этих точек нет).

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
AkameДата: Ср, 25.05.2016, 09:04 | Сообщение # 1879
Удаленные



Как сделать так чтоб трупы долгое время не исчезали ?
устал от того что трупы быстро исчезают.... wacko Мощный комп, а сделано будто для очн слабых...
как можно дольше! желательно!
че та нашел,.. опробовал и нифига не работает, все равно исчезают..... ммм


Сообщение отредактировал Akame - Ср, 25.05.2016, 10:17
 
denis2000Дата: Ср, 25.05.2016, 12:26 | Сообщение # 1880
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата Akame ()
Мощный комп, а сделано будто для очн слабых...

Странное заявление, вы еще первому Думу попеняйте на отсутствие текстур высокого разрешения комп то позволяет! Сделано то не просто так. Ищите файл release_body_manager.script и правьте параметр:
Код
self.body_max_count = 15 -- количество тел которое одновременно может находится в игре


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
НаблюдательДата: Ср, 25.05.2016, 12:27 | Сообщение # 1881
Ветеран
Пользователи
Сообщений: 400
Награды: 1
Репутация: [ 59 ]

Цитата Akame ()
Как сделать так чтоб трупы долгое время не исчезали ?

Здравствуйте Всем! Аkame, идёте по адресу: gamedata\configs\creatures\monsters. Открываете его блокнотом и правите опции:
[monsters_common]
corpse_remove_game_time_interval = 65535 ; in hours
stay_after_death_time_interval = 65535 ; in hours
Я Вам написал количество часов, как в оригинальном ЗП. В Моде стоит, по моему, 6 часов. Выберите то значение, которое Вам надо. smile


Сообщение отредактировал Наблюдатель - Ср, 25.05.2016, 12:29
 
denis2000Дата: Ср, 25.05.2016, 15:10 | Сообщение # 1882
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Наблюдатель, Огорчу вас. Параметр corpse_remove_game_time_interval движку по барабану, он его вообще не читает. Параметр stay_after_death_time_interval читается движком, но работает не так как бы вам хотелось. При сохранении игры информация о объектах-мутантах, со времени смерти которых прошло времени больше, чем stay_after_death_time_interval, не сохраняется. Тем самым, только после загрузки сейва их не окажется на локации (ну или после переходов между ГГ локациями).

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
lychagin0Дата: Сб, 28.05.2016, 08:56 | Сообщение # 1883
Легенда Зоны
Вольные сталкеры
Сообщений: 1303
Награды: 9
Репутация: [ 278 ]

Добрый день. Долго думал в какой теме задать вопрос, думаю правильней здесь. Проблема в следующем: в СДК подправил локацию, присоединил с помощью программы АМК к СГМ-2.2, всё прекрасно работает (все спавн элементы на месте), но исчез спавн всех сквадов через simulation.ltx Сразу оговорюсь, конфиги полностью рабочие, т.к. это уже действующее моё дополнение. Спавнил сквад через рестриктор появляется на своём месте и дружно становится на работы. sim_board.script
подправил в функции fill_start_position(). Т.е. до правок собраное прогой АМК всё работало, собирал с помощью СЛК всё работало ( но потом понял, что переделать спавн через скрипт мне не по силам) вернулся к АМК и сквады исчезли.
Видно на старости лет всё таки отупел, не знаю даже где искать, ткните мордой лица в какую сторону копать.
Спасибо.


 
makdmДата: Сб, 28.05.2016, 10:45 | Сообщение # 1884
Рожденный в СССР
Разработчики
Сообщений: 1294
Награды: 29
Репутация: [ 1909 ]

lychagin0, правил как здесь написано? УРОК 63

http://sigerous.ru/forum/17-208-1174622-16-1374746538


Терпение......
И все получится!
 
lychagin0Дата: Сб, 28.05.2016, 11:06 | Сообщение # 1885
Легенда Зоны
Вольные сталкеры
Сообщений: 1303
Награды: 9
Репутация: [ 278 ]

Цитата makdm ()
правил как здесь написано? УРОК 63
Можно сказать так, у меня была рабочая лока, я добавил для снайпера на вышке аи-сетку и парочку рестрикторов, а вот ещё два групповых объекта. Всё скомпилил в игре всё есть. Смарты есть ,функция create_squad работает для всех сквадов.
Только что побегал по локе и всё таки один сквад монстров заспавнился.


 
denis2000Дата: Сб, 28.05.2016, 12:51 | Сообщение # 1886
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

lychagin0, Все таки затык в функции fill_start_position(), а значит нужно анализировать ее работу и что там происходит.
Может setting_ini:line_count(section_name) = 1, может таблица self.smarts_by_names не заполнена должным образом, может еще что.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
lychagin0Дата: Сб, 28.05.2016, 21:59 | Сообщение # 1887
Легенда Зоны
Вольные сталкеры
Сообщений: 1303
Награды: 9
Репутация: [ 278 ]

Цитата denis2000 ()
Все таки затык в функции fill_start_position()
Спасибо, попробую посмотреть. Ещё бы понять как её проанализировать.

Добавлено (28.05.2016, 15:29)
---------------------------------------------
denis2000, ещё раз здравствуйте и спасибо. Симуляционные сквады (звуршки) забегали, а вот человеков нет.
Все смарты со сталкерами имеют эксклюзивы. Т.е. не появились не симуляционные сквады.

Добавлено (28.05.2016, 21:59)
---------------------------------------------
И всё таки я склоняюсь к мысли, что беда в ал-спавне или самой локе. Я взял с хранения свою старую геймдату и вставил туда новый спавн и локацию, получил тот же результат: отсутствие сквадов в начале игры. Может ли причина быть в гейм-графах? У меня они конечно же есть, но если такая вероятность есть то можно и переделать.


 
denis2000Дата: Вс, 29.05.2016, 16:44 | Сообщение # 1888
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата lychagin0 ()
И всё таки я склоняюсь к мысли, что беда в ал-спавне или самой локе.

Вы называете очевидные вещи, но которые не приводят вас к ответу на вопрос в чем именно проблема. Да проблема или в спавне (часть файла all.spawn) или в АИ-сетке (файл в папке локации level.ai). Но в каком направлении искать? Нужно четко знать, что происходит при отработки функции fill_start_position(). А графпоинты? Что с ними не так?


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
lychagin0Дата: Пн, 30.05.2016, 01:27 | Сообщение # 1889
Легенда Зоны
Вольные сталкеры
Сообщений: 1303
Награды: 9
Репутация: [ 278 ]

Цитата denis2000 ()
Что с ними не так?

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

Добавлено (30.05.2016, 00:27)
---------------------------------------------
denis2000, вот такой вылет при принятии анабиотика во время выброса
[cut noguest=лог]FATAL ERROR

[error]Expression : I != levels().end()
[error]Function : GameGraph::CHeader::level
[error]File : d:\prog_repository\sources\trunk\xrgame\game_graph_inline.h
[error]Line : 153
[error]Description : there is no specified level in the game graph : 20[/cut]
Локация везде зарегистрирована.
Укрытий на локе нет я их ещё не делал. Я понимаю что не видит локацию, но она есть, какие могут быть причины?

Добавлено (30.05.2016, 01:27)
---------------------------------------------
Поковырялся и думаю, вся беда и вылета и отсутствия сквадов в попытке получить айдишник локации через alife():level_name(level_id) level_id не соответствует ни одному уровню. Вот из сим воард как раз строка:
local section_name = "start_position_" .. alife():level_name(level.id)
но почему так и не понял. Локация везде прописана. Всё работает(квесты) я нужные сквады заспавнил через рестриктор и проверил, чудеса.
denis2000, подскажите где искать причину.




Сообщение отредактировал lychagin0 - Пн, 30.05.2016, 02:08
 
denis2000Дата: Пн, 30.05.2016, 08:15 | Сообщение # 1890
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата lychagin0 ()
подскажите где искать причину

Теперь очевидно, что в геймграфе. Локация криво вклеена в единое АИ-пространство игры. Начинайте с валидности АИ-сетки этой локации и заканчивая стыковочными графпоинтами и левел ченджерами.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
Поиск: