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

Цитата tan4ik75 ()
рикол в том что в чн его нету animpoint_stay_table

Значит есть что-то аналогичное.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
Voland-777Дата: Сб, 10.12.2016, 17:58 | Сообщение # 2192
Эмиссар
Пользователи
Сообщений: 1702
Награды: 9
Репутация: [ 474 ]

Доброго времени суток! Я решил снова поковыряться в играх, и на этот раз решил вскрыть all.spawn сборки Lost Soul. Вместо распаковки получил два вылета.
[cut noguest=Лог 1]E:\S.T.A.L.K.E.R. Call of Pripyat888 - копия\gamedata\spawns>perl universal_acdc
.pl -d all.spawn -out la -scan configs/ -sort complex
log inited: console
Universal ACDC v.1.38
checking version of all.spawn...
This is a spawn of S.T.A.L.K.E.R. Call Of Pripyat (any patch)
scanning configs...
problems occured while scanning configs. Try again...
done!
opening all.spawn...
reading header...
reading alife objects...

FATAL ERROR!
Function: stkutils::scan::get_class
Line: 1919
Description: cannot find clsid for class sgm_gravitational_field_average[/cut]

[cut noguest=Лог 2]E:\S.T.A.L.K.E.R. Call of Pripyat888 - копия\gamedata\spawns>perl universal_acdc
.pl -d all.spawn -out la -scan configs/ -sort complex
log inited: console
Universal ACDC v.1.38
checking version of all.spawn...
This is a spawn of S.T.A.L.K.E.R. Call Of Pripyat (any patch)
scanning configs...
problems occured while scanning configs. Try again...
done!
opening all.spawn...
reading header...
reading alife objects...

E:\S.T.A.L.K.E.R. Call of Pripyat888 - копия\gamedata\spawns>perl universal_acdc
.pl -d all.spawn -out la -scan configs/ -sort complex
log inited: console
Universal ACDC v.1.38
checking version of all.spawn...
This is a spawn of S.T.A.L.K.E.R. Call Of Pripyat (any patch)
scanning configs...
problems occured while scanning configs. Try again...
done!
opening all.spawn...
reading header...
reading alife objects...

FATAL ERROR!
Function: main
Line: 1448
Description: cannot open config\[/cut]
В чем причина, не понимаю. Возможно, первый вылет - ругань на секции мода? И это при том, что папку с конфигами я взял. Второй - неясно.


Сообщение отредактировал Voland-777 - Сб, 10.12.2016, 18:00
 
denis2000Дата: Сб, 10.12.2016, 22:43 | Сообщение # 2193
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

ЦитатаVoland-777 ()
cannot find clsid for class sgm_gravitational_field_average

Неизвестный ид-класса объектов sgm_gravitational_field_average, нужно добавить его в файл (читайте инструкцию к программе).
ЦитатаVoland-777 ()
cannot open config\

Программа не может обратиться к файлам из папки config (по вопросам правильного применения ключа -scan читайте инструкцию к используемой программе).


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

Здравствуйте Всем! Уважаемые Мастера, прошу помощи! Нашёл для Теней Чернобыля правку, после которой возможен фриплей. Т.е. после титров открывается переход обратно в Припять. Всё нормально, прошли титры, вернулся в Припять. Но получился такой облом, долговцы для меня нейтралы, но при попытке с ними поговорить, или дать аптечку ловлю вылет:
Expression : no_assert
Function : CXML_IdToIndex<class CInfoPortion>::GetById
File : e:\stalker\sources\trunk\xr_3da\xrgame\xml_str_id_loader.h
Line : 112
Description : item not found, id
Arguments : freeplay
Подскажите пожалуйста, это можно исправить? sad Сто лет искал мод для фриплея в обычной ТЧ и такой облом. Я уже вернул оригинальную папку ТЧ, все сохранения грузятся, но попытка поговорить с долговцами во фриплее заканчивается всё тем же вылетом. sad
 
denis2000Дата: Вс, 11.12.2016, 12:44 | Сообщение # 2195
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Наблюдатель, В xml файлах отсутствует тег по имени freeplay с текстом.

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

Цитатаdenis2000 ()
Наблюдатель, В xml файлах отсутствует тег по имени freeplay с текстом.


Прошу меня извинить, уважаемый denis2000! Затупил! sad Там в моде были диалоговые файлы о которых Вы сказали. Вбросил их в папку и диалоги пошли. smile Ещё раз благодарю Вас.


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

Наблюдатель, Нужно в любой файл из папки configs\text\rus после тега </string> вписать:
Код
<string id="freeplay">
  <text>Фриплей</text>
    </string>


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
Voland-777Дата: Пн, 12.12.2016, 22:05 | Сообщение # 2198
Эмиссар
Пользователи
Сообщений: 1702
Награды: 9
Репутация: [ 474 ]

Здравствуйте. При адаптации небольшого мода в СГМ 2.2 возник вопрос. Есть в ui_sleep_dialog.script такая функция:
[cut noguest=Функция]function dream_callback2()
xr_effects.enable_ui(db.actor, nil)
get_console():execute("snd_volume_music "..tostring(_G.mus_vol))
get_console():execute("snd_volume_eff "..tostring(_G.amb_vol))
_G.amb_vol = 0
_G.mus_vol = 0
give_info("tutorial_sleep")
disable_info("actor_is_sleeping")
disable_info("sleep_active")
--/ SGM in
write_mod_param("dream_limited",get_general_game_time())
--/ SGM out[/cut]
Мини-мод, грубо говоря, добавляет строчку robbery.control() после disable_info("sleep_active"). Если добавить просто эту строчку, это не повлияет на СГМ-функцию? Или нужно еще что-то писать?


Сообщение отредактировал Voland-777 - Пн, 12.12.2016, 22:07
 
denis2000Дата: Вт, 13.12.2016, 08:18 | Сообщение # 2199
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Voland-777, Если вы добавляете какие либо строки в какие либо функции, то это однозначно и 100% влияет на эти функции. Вопрос в том понимаете, что вы делаете и зачем вы это делаете.

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

Здравствуйте smile Подскажите, можно ли добавить функцию починки вертолёта? laugh Например, когда сильно подбит, чтобы можно было в логике вписать проверку количества здоровья, и если оно упадёт до предела "ниже нормы"(то есть, он уже горит) - вертолёт чинится аля ГГ от медиков.

Да, и ещё - где отредактировать шкалу здоровья вертолёта в ЗП? Хочу её чуть ниже опустить, а то она в СГМ не видна из-за окна урона и дальности стрельбы оружия.


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




Сообщение отредактировал asd123 - Сб, 24.12.2016, 00:52
 
SkifДата: Сб, 24.12.2016, 00:32 | Сообщение # 2201
Неуловимый
Ночные сталкеры
Сообщений: 2185
Награды: 20
Репутация: [ 1702 ]

denis2000, уважаеый, большой тебе спасиб да. чест но. не знать как лучшее тебя спасибать... подскажи!

Добавлено (24.12.2016, 00:31)
---------------------------------------------
можно в ЛС


"Кохайтеся чорнобриві..." ©
 
asd123Дата: Вт, 27.12.2016, 22:11 | Сообщение # 2202
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

Цитата asd123 ()
Подскажите, можно ли добавить функцию починки вертолёта?

Попробовал сделать сам. [cut=Клик] Вот такая функция в bind_heli.script
Код
function heli_repair( obj )
    local health
    local heli = obj:get_helicopter()
  health = 1
  heli:SetfHealth( health )
end

вызов из xr_effects.script
Код
function heli_repair(actor, npc)
    bind_heli.heli_repair( npc )
end

и вызов в логике
Код
on_info = {=heli_health_le(0.20)} %=heli_repair%


В результате получаю вылет
Код
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:488: attempt to call field '?' (a nil value)

stack trace:

0023:69737365 igdumdim32.dll
[/cut]
Я в составлении скриптовых функций не шарю wacko , так что не судите строго. Даже не знаю, можно ли вообще функцию восстановления здоровья применять на вертолёт biggrin


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




Сообщение отредактировал asd123 - Вт, 27.12.2016, 22:12
 
denis2000Дата: Ср, 28.12.2016, 08:47 | Сообщение # 2203
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

asd123, В логике вертолета invulnerable = true не работает?

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

denis2000, нет. Убрал, чтобы ремонт испытать. А оно даже в игру не заходит(ГГ на кордоне, и вертолёт тоже), вылетает в конце загрузки.
В логе кстати, в строке движка изменилась строка.(в bind_heli немного переправил на то, что прислал ранее. У меня было в скобках 1 вместо health, а сама строка health была ниже)

Код
stack trace:

0023:69737365 d3dx9_41.dll


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




Сообщение отредактировал asd123 - Ср, 28.12.2016, 11:44
 
denis2000Дата: Чт, 29.12.2016, 09:09 | Сообщение # 2205
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

asd123, Могу предложить только одно не используйте перемененную npc, а получайте объект вертолет например по его стори_ид.

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