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

Спавн и логика

Создание объектов на локации и логика поведения этих объектов

Если у вас появились вопросы по созданию динамических объектов в игре (НПС, монстры, аномалии, и т.п.) и настройке их "поведения". Задавайте их в этой теме - умные головы,
модосторители и просто разбирающиеся в программировании люди вам ответят.


Много интересного материала здесь (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)", ее и надо расскомментировать, должно получиться вот так:
Code
function abort(fmt, ...)
                    local reason = string.format(fmt, ...)
                    error_log(reason)
end

Вот для примера два одинаковых вылета, первый с функцией по умолчанию, второй - с поправленной функцией

Первый:
Code
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)

Второй:
Code
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 по ссылке из шапки и соседнюю тему "Курс молодого бойца",
возможно Ваш вопрос уже рассматривался.


Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки.
Помните чем подробнее вопрос, тем точнее ответ.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
sergej5500Дата: Пн, 08.10.2012, 18:00 | Сообщение # 211
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

___ToRReNT___
Попробуй найти в папке Пользователь (Имя учетной записи)\AppData\Roaming\XRay Engine\reports архив с названием типа XRayEngine_error_report_121002-232536.zip. Архивов может быть несколько. Интересует последний по времени. В архиве должен быть файл xray_TхЁухщ.log, в низу его секция FATAL ERROR.
Может потребоваться включить в Проводнике Виндовс отображение скрытых файлов и папок.


Сообщение отредактировал sergej5500 - Пн, 08.10.2012, 18:01
 
ДовакинДата: Пн, 08.10.2012, 18:24 | Сообщение # 212
Командир д.г. быстрого реагирования
Пользователи
Сообщений: 688
Награды: 14
Репутация: [ 552 ]

sergej5500, Нет папки Roaming.

У вас поиск в Операционной Системе отказал? Поищите по имени файла. denis2000


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

FREEM@N, В ваших правках я не заметил ничего криминального, попробуйте сделать аналогичный спавн для родной локации.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
ДовакинДата: Пн, 08.10.2012, 19:40 | Сообщение # 214
Командир д.г. быстрого реагирования
Пользователи
Сообщений: 688
Награды: 14
Репутация: [ 552 ]

Вот лог ошибки
Code
FATAL ERROR
     
[error]Expression    : I
[error]Function      : CInifile::Load
[error]File          : D:\prog_repository\sources\trunk\xrCore\Xr_ini.cpp
[error]Line          : 256
[error]Description   : Can't find include file:
[error]Arguments     : sh_stalkers.ltx
     

stack trace:


Как я вижу проблема в sh_stalkers.ltx ???




Сообщение отредактировал ___ToRReNT___ - Пн, 08.10.2012, 19:41
 
sergej5500Дата: Пн, 08.10.2012, 19:48 | Сообщение # 215
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

___ToRReNT___
Игра не находит файл sh_stalkers.ltx. Проверьте на месте ли он у Вас и правильно ли называется.
 
ДовакинДата: Пн, 08.10.2012, 20:05 | Сообщение # 216
Командир д.г. быстрого реагирования
Пользователи
Сообщений: 688
Награды: 14
Репутация: [ 552 ]

Ну вот,теперь в игре вылет(

Code
FATAL ERROR
   
[error]Expression    : no_assert
[error]Function      : CXML_IdToIndex<class CCharacterInfo>::GetById
[error]File          : d:\prog_repository\sources\trunk\xrserverentities\xml_str_id_loader.h
[error]Line          : 112
[error]Description   : item not found, id
[error]Arguments     : zat_sh_lebedev_skadovsk
   

stack trace:


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

___ToRReNT___
Проверяйте, правильно ли прописан и зарегистрирован НПС "zat_sh_lebedev_skadovsk" в файле character_desc_*** и
***_profiles в папке configs\gameplay. Проверяйте файлы, которые правили, когда добавляли НПС.
 
ДовакинДата: Вт, 09.10.2012, 16:47 | Сообщение # 218
Командир д.г. быстрого реагирования
Пользователи
Сообщений: 688
Награды: 14
Репутация: [ 552 ]

Лучше все старые файлы удалить и создать нового персонажа.

Добавлено (09.10.2012, 16:47)
---------------------------------------------
Мне нужно правильно прописать НПС.Можно мне скинуть обычного НПС с хорошим запасом.(то что вставляется в character_desc_zat)


 
Reaper412Дата: Вт, 09.10.2012, 18:12 | Сообщение # 219
Гражданский
Пользователи
Сообщений: 10
Награды: 0
Репутация: [ 0 ]

Подскажите, в каком файле находиться информация о физическом объекте, его место положении на карте? Мне нужно восстановить респавн этого объекта.

Физические объекты спавняться в подавляющем большинстве случаев через all.spawn. denis2000
 
FREEM@NДата: Вт, 09.10.2012, 18:31 | Сообщение # 220
Легенда Зоны
Свобода
Сообщений: 1031
Награды: 8
Репутация: [ 271 ]

denis2000, странно, 3 раза в Рыжем лесу пробовал сделать-всё тот же вылет... как будто заговорили игру

Добавлено (09.10.2012, 18:31)
---------------------------------------------
denis2000, и есть ли другой способ заспаунить зверушек? кроме скрипта? но там чтобы они там и снова были после смерти? или другой скриптовый способ?

 
9vova8Дата: Вт, 09.10.2012, 19:47 | Сообщение # 221
Новичок
Пользователи
Сообщений: 91
Награды: 2
Репутация: [ 6 ]

Почему при создании персонажа Никитки, по КМБ игра вылетает (версия 1.6.0.2)?
Спасибо!
[cut]FATAL ERROR

[error]Expression : fatal error
[error]Function : CInifile::r_string
[error]File : D:\prog_repository\sources\trunk\xrCore\Xr_ini.cpp
[error]Line : 513
[error]Description : <no expression>
[error]Arguments : Can't find variable splash1_hits_count in [wpn_knife] [/cut]


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

FREEM@N, Я рекомендовал проверить ваш спавн на оригинальных локациях, поскольку явных проблем в приведенных строках я не заметил, вероятна проблема в регистрации новой локации в скриптах. Другой способ реализовать то что вам нужно будет фактически переделкой существующего более сложным путем.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
sergej5500Дата: Вт, 09.10.2012, 21:02 | Сообщение # 223
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

9vova8
Только что скачал урок с Никиткой, запустил Зов Припяти. Всё сработало как надо. Никитка появился. При попытке поговорить послал к старшему. Похожие вылеты с
ошибкой "Can't find variable splash1_hits_count in [wpn_knife]" у меня были, когда я использовал версию Зова Припяти с распакованной папкой gamedata. Тогда при попытке изменить стартовый набор ГГ были вылеты с упоминанием ножа.
После того, как установил лицензионный Зов Припяти, вылеты исчезли. Вероятно, Ваш Вылет связан с версией игры.
 
Reaper412Дата: Вт, 09.10.2012, 21:59 | Сообщение # 224
Гражданский
Пользователи
Сообщений: 10
Награды: 0
Репутация: [ 0 ]

Каким редактором открыть all.spawn? Ни один из тех, что пробовал я не орбайтен sad

Все зависит от версии игры, мода и его версии. Ну и наличие в системе интерпретатора Active Perl обязательно. Более того файл all.spawn не редактируется напрямую, его нужно декомпилировать, отредактировать полученные текстовые файлы, а потом скомпилировать обратно в бинарный файл. denis2000
 
FREEM@NДата: Чт, 11.10.2012, 16:18 | Сообщение # 225
Легенда Зоны
Свобода
Сообщений: 1031
Награды: 8
Репутация: [ 271 ]

Quote (9vova8)
Can't find variable splash1_hits_count in [wpn_knife]

У меня такое было много раз, вылет из-за того что патч у тебя неправильный или ты если патчил игру, то неправильно это сделал. Попробуй переустановить игру.

denis2000, короче всё понятно, что ничего не понятно)) ну если есть ещё пути (даже если сложные, почему бы не попробовать?) насчёт тех лок, которые имею-сейчас попробую

denis2000, хотя нет-погоди, я же НПС в Рыжем лесу заспавнил-всё работает спавнил через скрипт...

denis2000, параметры папки алл, в распакованном алл спавне:
[cut=Алл]
[header]
; don't touch these
version = 10
guid = 9c75ae88aaf7b54a81a72e0a5b4017a1
graph_guid = ca7a121259ed3f4484fe40b98321e746
level_count = 5 Может ошибка в этом? надо поставить цифру 6? ведь теперь 6 локаций. Думаю ошибка в этом, потому что при распаковке алл спавн вместо:
alife_red_forest
распаковывается папка с названием:
alife_unknown

[alife]
source_files = <<END
alife_zaton.ltx,
alife_jupiter.ltx,
alife_pripyat.ltx,
alife_labx8.ltx,
alife_jupiter_underground.ltx,
alife_red_forest.ltx
END

[af_spawn_slots]
binary_files = section2.bin

[way]
source_files = <<END
way_jupiter.ltx,
way_jupiter_underground.ltx,
way_labx8.ltx,
way_pripyat.ltx,
way_zaton.ltx
END

[graph]
binary_files = section4.bin[/cut]

Добавлено (11.10.2012, 16:18)
---------------------------------------------
Всё, попробовал - тот же вылет, даже если спаунить на затоне. Что-то в этом очень всё странно! и мне не нравится dry


Сообщение отредактировал FREEM@N - Чт, 11.10.2012, 16:21
 
Поиск: