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

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

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

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


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


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

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


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
Voland-777Дата: Пн, 12.12.2016, 22:05 | Сообщение # 2210
Эмиссар
Пользователи
Сообщений: 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 | Сообщение # 2211
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

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

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

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

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


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




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

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

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


"Кохайтеся чорнобриві..." ©
 
asd123Дата: Вт, 27.12.2016, 22:11 | Сообщение # 2214
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 | Сообщение # 2215
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

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

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
asd123Дата: Ср, 28.12.2016, 11:34 | Сообщение # 2216
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 | Сообщение # 2217
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

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

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

Здравствуйте Всем! Умные Люди, помогите добрым напутствием, пожалуйста. smile Обратил внимание, что во многих модах на ЗП, профессор Герман, в бункере учёных на Юпитере, часто покупает всякие вещи у ГГ за большие деньги. Но при этом бегает, как чёрт и постоянно "выбегает" из меню продажи. wacko Можно где-то прописать этого злодея, что бы он не бегал по бункеру, а стоял на месте, как тот же профессор Озёрский? smile
 
sergej5500Дата: Пт, 30.12.2016, 01:13 | Сообщение # 2219
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

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

В файлах gamedata\configs\scripts\jupiter\jup_b6_scientist_biochemist и gamedata\configs\scripts\jupiter\jup_b6_scientist_nuclear_physicist в секции meet вместо строк типа

close_anim = nil
close_victim = nil
close_distance = 0

напиши

close_distance = 3
close_anim = wait_na
close_victim = actor
 
XreleaseДата: Пт, 30.12.2016, 13:57 | Сообщение # 2220
Гражданский
Пользователи
Сообщений: 2
Награды: 0
Репутация: [ 0 ]

День добрый! Стоит З.П. + Шокер 2.1. Как можно организовать вывод названия боеприпаса на худ (ammo info,ammo name)
скриптом или второй иконкой с названием? Всех с наступающим Новым Годом и удачи!
 
Форум » Моды для игр » Модостроение » Модостроение. Общие вопросы и ответы
Поиск: