Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: 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]
 
denis2000Дата: Пн, 25.01.2016, 18:55 | Сообщение # 1651
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата sergej5500 ()
Поставил вокруг костров анимпойнты с анимацией sit_low.

Эта анимация рассчитана, на то что НПС будет сидеть на невысоком объекте например матрасе.
Цитата sergej5500 ()
Анимпойнты точно на сетке.

Анимпоинт подгоняется некоторых пределах по высоте, для того чтобы НПС сидел точно задом на объекте.
Цитата sergej5500 ()
Можно ли заменить анимацию sit_low в анимпойнтах на sit_ass?

Да например отредактировав all.spawn после и поставив в смарт ковер другие анимации.
Цитата sergej5500 ()
СДК такой анимпойнт сделать не позволяет.

Чтобы позволил нужно отредактировать скрипты из папки SDK\gamedata, как редактировать примерно описано в КМБ Урок 60. Или смотрите как прописаны существующие анимации в скриптах SDK и прописываете свои.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
asd123Дата: Вт, 26.01.2016, 08:56 | Сообщение # 1652
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

Цитата denis2000 ()
asd123, Пробуйте так:

Доброго времени суток, читатели. Вообщем, Денис.. Немного подправил вашу функцию, а то она координаты в лог не выдавала. Вместо этого она просто показывала "Points.ltx" и всё.. Теперь эта функция показывает все координаты( кроме directionH. Я даже не знаю для чего это нужно biggrin ) и записывает их в лог
[cut=Функция для отображения координат ГГ]
function main_menu:OnButton_coord_pos_clicked()
news_text="Позиция:\\nX= "..db.actor:position().x..
"\\nY= "..db.actor:position().y..
"\\nZ= "..db.actor:position().z..
"\\nlevel_vertex= "..db.actor:level_vertex_id()..
"\\ngame_vertex_id= "..db.actor:game_vertex_id()..
"\\ndirectionH= "..db.actor:direction():getH()..
"\\ndirectionX= "..db.actor:direction().x..
"\\ndirectionY= "..db.actor:direction().y..
"\\ndirectionZ= "..db.actor:direction().z
file_text="Position "..db.actor:position().x..","..db.actor:position().y..","..db.actor:position().z..","..
db.actor:level_vertex_id()..","..db.actor:game_vertex_id()..
", Direction "..db.actor:direction().x..","..db.actor:direction().y..","..db.actor:direction().z
news_manager.send_tip(db.actor,news_text,0,mutant_hunter,10000,nil,"Координата")
fill_log(db.actor:position().x..","..db.actor:position().y..","..db.actor:position().z..","..
db.actor:level_vertex_id()..","..db.actor:game_vertex_id()..
","..db.actor:direction().x..","..db.actor:direction().y..","..db.actor:direction().z)
debug_to_file("points.txt",file_text)
end[/cut]


У мутантов тоже есть группировки. © Движок X-Ray




Сообщение отредактировал asd123 - Вт, 26.01.2016, 09:59
 
БарменДата: Пт, 29.01.2016, 01:22 | Сообщение # 1653
Ветеран
Свобода
Сообщений: 370
Награды: 11
Репутация: [ 105 ]

Всем привет. Народ как заставить НПС бормотать, типо глюки у него. Платформа ЗП.
 
sergej5500Дата: Пт, 29.01.2016, 17:17 | Сообщение # 1654
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата Бармен ()
Народ как заставить НПС бормотать, типо глюки у него.


Можно попробовать применить функцию play_sound из xr_effects. Сейчас у меня нет нужных файлов, поэтому в названии функции могу ошибиться.

Вызываете функцию из логики НПС.

%=play_sound(секция озвучки)%

Секцию озвучки нужно прописать в файле configs\misc\script_sound_... В этой секции задаете ссылку на звуковые файлы и другие параметры звука.
 
БарменДата: Пт, 29.01.2016, 23:17 | Сообщение # 1655
Ветеран
Свобода
Сообщений: 370
Награды: 11
Репутация: [ 105 ]

sergej5500, Спасибо. Сможешь еще с этим помочь. Это происходит, при компиляции локации платформа ЗП.
 
denis2000Дата: Вс, 31.01.2016, 18:42 | Сообщение # 1656
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Бармен, Make Details делали? Не разломали ли инициализацию Detail объектов некорректными действиями с травой на локации?

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
БарменДата: Вс, 31.01.2016, 21:57 | Сообщение # 1657
Ветеран
Свобода
Сообщений: 370
Награды: 11
Репутация: [ 105 ]

Цитата denis2000 ()
Make Details делали?

Вроде делал, я саму траву не добавлял еще. До этого когда локация была пустая, ну как пустая не было НПС, объектов и т.д. Все нормально компилировалось.
 
denis2000Дата: Пн, 01.02.2016, 08:26 | Сообщение # 1658
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Бармен, Локация новая? Траву еще не инициализировали, а Мейк травы уже делали, зачем? Попробуйте переименовать файл detail_object.part и почистите директории временных файлов.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
Dwarf33Дата: Пн, 01.02.2016, 10:25 | Сообщение # 1659
Отмычка
Пользователи
Сообщений: 31
Награды: 0
Репутация: [ 0 ]

Здравствуйте! Господа подскажите пожалуйста как вернуть оружию возможность апгрейда? Установил SGM 2.2 c аддоном от ЕНОТА и выяснил для себя один не приятный момент. ЕНОТ зачем то убрал возможность апгрейда у ВАЛа. Хочу вернуть, апгрейд и возможность установки на автомат оптики. Заранее благодарен. Если написал не в той теме, прошу прощения. Перенаправьте пожалуйста в нужную тему. Спасибо.
 
БарменДата: Пн, 01.02.2016, 11:32 | Сообщение # 1660
Ветеран
Свобода
Сообщений: 370
Награды: 11
Репутация: [ 105 ]

Цитата denis2000 ()
Локация новая?

Если имеете виду не оригинал ЗП, то да новая.
Цитата denis2000 ()
Попробуйте переименовать файл detail_object.part и почистите директории временных файлов.

Хорошо попробую сделать.


denis2000, У меня к вам еще такой вопрос, сделал respawn монстров все прописал захожу в игру и бац вылет: Платформа ЗП.
Код
FATAL ERROR

[error]Expression    : !m_error_code
[error]Function      : raii_guard::~raii_guard
[error]File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
[error]Line          : 748
[error]Description   : ...e.r. - Зов Припяти\gamedata\scripts\xr_logic.script:939: bad argument #1 to 'gfind' (string expected, got nil)

stack trace:

Где моя ошибка?


Сообщение отредактировал Бармен - Пн, 01.02.2016, 11:32
 
sergej5500Дата: Пн, 01.02.2016, 11:41 | Сообщение # 1661
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата Бармен ()
Где моя ошибка?


Что написано в gamedata\scripts\xr_logic в 939 строке?
 
БарменДата: Пн, 01.02.2016, 12:41 | Сообщение # 1662
Ветеран
Свобода
Сообщений: 370
Награды: 11
Репутация: [ 105 ]

Цитата sergej5500 ()
Что написано в gamedata\scripts\xr_logic в 939 строке?

Да я вообще xr_logic не трогал.
 
sergej5500Дата: Пн, 01.02.2016, 12:51 | Сообщение # 1663
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Бармен,

Если вы не меняли xr_logic, то выложите 939 строку из оригинального файла xr_logic Зова Припяти. Проблема именно в этом файле. Он дает сбой. У меня сейчас этого файла нет. Я смогу посмотреть xr_logic только после 20-00. Если вы выложите строку, то совет смогу дать раньше.
 
БарменДата: Пн, 01.02.2016, 13:25 | Сообщение # 1664
Ветеран
Свобода
Сообщений: 370
Награды: 11
Репутация: [ 105 ]

sergej5500, Хорошо вот держите:
Код
for fld in string.gfind(src, "%s*([^,]+)%s*") do
 
sergej5500Дата: Пн, 01.02.2016, 13:27 | Сообщение # 1665
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата Бармен ()
for fld in string.gfind(src, "%s*([^,]+)%s*") do


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