Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: 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]
 
mistofatДата: Пн, 07.07.2014, 17:22 | Сообщение # 511
Новичок
Пользователи
Сообщений: 83
Награды: 0
Репутация: [ 10 ]

Цитата
1. О каких аномалиях идет речь?

Которые по всей локации раскиданы.

нашёл такие строки в all.spawn



Нашаманил в xr.effects вылетает

Если не трудно,кинь готовый файл


Сообщение отредактировал mistofat - Пн, 07.07.2014, 17:57
 
a4927860Дата: Пн, 07.07.2014, 17:48 | Сообщение # 512
Новичок
Пользователи
Сообщений: 81
Награды: 0
Репутация: [ 22 ]

denis2000, последний вопрос на этой неделе
какой диалог прописать теперь раненому чтобы он просил аптечку?

help_start_dialog и help_dialog указанные в xr_wounded - не существуют. где они генеряться мне непонятно.

в st_dialog_manager есть dm_wounded_medkit но в dialog_manager есть только набор dm_help_ которые не спасают (использовать их нельзя - происходит вылет ругающийся на отсутствие диалога)
 
sergej5500Дата: Пн, 07.07.2014, 18:06 | Сообщение # 513
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

mistofat,

Объект zat_simulation_start - это рестриктор, а не аномалия. После старта новой игры он выдает инфопорцию и отключается.

[cut=Логика рестриктора][logic]
active = sr_idle

[sr_idle]
on_info = {+zat_a1_game_start} sr_idle@dog_atack

[sr_idle@dog_atack]
on_game_timer = 10 | sr_idle@nil %+zat_a1_atack_from_zat_sim_15%

[sr_idle@nil]
[/cut]

Вероятная причина вылета с ошибкой attempt to index global 'xr_effects' (a nil value) - синтаксическая ошибка в xr_effects. Где-то не хватает end. Или стоит лишнее end. Или где то неправильно поставлена скобка, запятая или кавычки. Проверьте файл Нотепадом с включенным синтаксисом.
 
denis2000Дата: Пн, 07.07.2014, 18:35 | Сообщение # 514
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

a4927860, Стандартные диалоги раненных - это динамически генерируемые диалоги. Они описаны в файле dialog_manager.ltx (обрабатывается в dialog_manager.script), для того чтобы телохранители имели свои диалоги в случае ранения необходимо добавить их группировку в параметр npc_community в секциях [dm_help_***].

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
a4927860Дата: Пн, 07.07.2014, 21:03 | Сообщение # 515
Новичок
Пользователи
Сообщений: 81
Награды: 0
Репутация: [ 22 ]

denis2000, Доброго вечера

[cut=кусок моего dialog_manager]
[dm_help_0]
category = hello
npc_community = stalker, bodyguard_a, bodyguard_b, bodyguard_c, bodyguard_d, bodyguard_e, rasvet, stalker_alies, night_stalker
level = all
wounded = true
[/cut]

как вы видите тут есть все группировки (причем есть по умолчанию - я этот кусок не трогал)

нпс на котором тестирую bodyguard_c он же jup_freedom_bodyguard лежит убиенный (бессмертно убиенный за что вам большое спасибо) но диалога у него нет

dialog.script (не знаю почему он у меня не dialog_manager.script - не трогал и раз уж он так назван и на других нпс работает - трогать не буду)

соответственно вопрос остается открытым

Добавлено (07.07.2014, 20:59)
---------------------------------------------
на всякий случай добавил bodyguard_c во все остальные dm_help_ результат тот же.

Добавлено (07.07.2014, 21:03)
---------------------------------------------
а казалось что сделать это должно быть проще некуда... добавить диалог, вставить параметр...

 
mistofatДата: Пн, 07.07.2014, 21:09 | Сообщение # 516
Новичок
Пользователи
Сообщений: 83
Награды: 0
Репутация: [ 10 ]

Цитата sergej5500 ()
Объект zat_simulation_start

так я думал,что это отвечает за начало новой игры координаты
 
denis2000Дата: Пн, 07.07.2014, 22:06 | Сообщение # 517
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

a4927860, Еще проверь у данных персонажей в файле character_desc_***.xml наличие строки
Код
#include "gameplay\character_dialogs.xml"


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
a4927860Дата: Вт, 08.07.2014, 09:01 | Сообщение # 518
Новичок
Пользователи
Сообщений: 81
Награды: 0
Репутация: [ 22 ]

denis2000, доброе утро. есть такие строки. но в диалоге нужная строчка не появляется (есть строчка прощания и тадам! - строчка тревела, которые прописаны в этом диалоге)
 
mistofatДата: Вт, 08.07.2014, 13:14 | Сообщение # 519
Новичок
Пользователи
Сообщений: 83
Награды: 0
Репутация: [ 10 ]

Добрый день,помогите пожалуйста,видимо где то накосячил.
Изменил пару скриптовых файлов,а именно






Игра работает,бегаю,но как только перехожу по локации,к примеру со скадовска к ВНЗ кругу то сразу получаю по ушам


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

a4927860, Пришлось таки скачать и установить SGM 2.2.
Диалог не появляется потому, что динамический диалог передачи аптечки реализован как start_dialog, а один start_dialog уже прописан и второй соответственно не работает. Можно убрать инклуд #include "gameplay\character_dialogs.xml", он роли не играет.
Значит придется идти несколько подругому, переопределять start_dialog из логики.
[cut]В файле логики НПС прописать в секциях [bodyguard@***] строку
Код
wounded = wounded@bodyguard

И добавить секцию:
Код
[wounded@bodyguard]
hp_state = 20|wounded_heavy@help_heavy
hp_state_see = 20|wounded_heavy@help_heavy
hp_victim = 20|actor
hp_cover = 20|false
hp_fight = 20|false
autoheal = false
not_for_help = true
enable_talk = true
help_start_dialog = bodyguard_wounded_medkit_dialog

В файл dialogs.xml добавить диалог типа:
Код
<dialog id="bodyguard_wounded_medkit_dialog">
          <precondition>dialogs.is_wounded</precondition>
          <phrase_list>
              <phrase id="0">
      <text>Я ранен, нужна аптечка.</text>
                  <next>1</next>
      <next>2</next>
              </phrase>
     <phrase id="1">
      <precondition>dialogs.actor_have_medkit</precondition>
                  <text>Держи аптечку.</text>
      <action>dialogs.transfer_medkit</action>
      <next>3</next>
              </phrase>
     <phrase id="2">
                  <text>Извини нет аптечки.</text>
      <next>3</next>
              </phrase>
     <phrase id="3">
                  <action>dialogs.break_dialog</action>
              </phrase>
          </phrase_list>
      </dialog>

Теперь в случае ранения НПС будет активировать диалог bodyguard_wounded_medkit_dialog и его можно будет "полечить". А как только НПС встанент на ноги будут активированы его обычные диалоги в том числе и start_dialog.
[/cut]


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
a4927860Дата: Вт, 08.07.2014, 15:18 | Сообщение # 521
Новичок
Пользователи
Сообщений: 81
Награды: 0
Репутация: [ 22 ]

denis2000, спасибо огромное!

на самом деле я уже сам сделал:
добавил диалог, dm_help в котором прописал <action>dialogs.transfer_medkit</action>
сейчас по аналогии добавляю аналогичный для гайд бука.

извините что отнял время.
 
mistofatДата: Вт, 08.07.2014, 19:11 | Сообщение # 522
Новичок
Пользователи
Сообщений: 83
Награды: 0
Репутация: [ 10 ]

Не знаю,может новичкам будет полезно,но в файлах мутантов:gamedata\configs\creatures файлы m_*.ltx есть параметр Health = 200 ; option for ALife Simulator Функция не отвечает за количество хп у мутантов. Проверено

Добавлено (08.07.2014, 19:11)
---------------------------------------------
и почему у меня в первом уроке КМБ вылетает вот такое чудо

 
alex_xp_77Дата: Вт, 08.07.2014, 19:33 | Сообщение # 523
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

mistofat
Цитата mistofat ()
Health = 200 ; option for ALife Simulator Функция не отвечает за количество хп у мутантов. Проверено

Я насколько понимаю, что бы здоровье показывало заданное вами, нужно не только прописать в конфиге, но и прописать в sdk, в разделе Health, все работа в sdk, напрямую связанны с папкой конфиг, и правки одного файла не достаточно. что бы работало все как часы!! Попробуйте поправить сначала в sdk, далее в конфигах!! Должно помочь!!


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

Цитата mistofat ()
почему у меня в первом уроке КМБ вылетает вот такое чудо

Проверяйте закрывающие теги в указанном в логе xml-файле.
Цитата mistofat ()
Функция не отвечает за количество хп у мутантов

Этот параметр (а не функция) очень давно (помниться даже с некоторых билдов) не указывает на количечтво ХП и не только у мутантов. В конфигах еще много интересных параметров, есть что найти и чему удивиться.


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

Цитата denis2000 ()
не указывает на количечтво ХП и не только у мутантов

Это я просто по вашему совету прочитал сборник от ХОВАНА и сам убедился,что не всё,что там написано правильно
 
Поиск: