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


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


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
9vova8Дата: Вт, 30.10.2012, 09:20 | Сообщение # 241
Новичок
Пользователи
Сообщений: 91
Награды: 2
Репутация: [ 6 ]

Понял, спасибо, буду исправлять

Опять ничего, может sim_board добавить мою групировку?




Сообщение отредактировал 9vova8 - Вт, 30.10.2012, 09:40
 
LazurДата: Вт, 30.10.2012, 12:03 | Сообщение # 242
Новичок
Пользователи
Сообщений: 82
Награды: 3
Репутация: [ 96 ]

Здравствуйте. С simulation.ltx я разобрался (как заставлять спавнить симуляционных сталкеров в начале игры на новых локациях) и вроде всё шло нормально, но как только я прописал уникального непися на стартовую позицию, все сквады, которые спавнятся с начала игры, исчезли. В связи с чем может быть такая ситуация?
==============================================================
[Добавлено]
Если отряд спавнится в начале игры (через simulation.ltx), то он будет уходить со смарта "рождения"?


На пыльных тропинках аномальных полей
Заспавнятся наши следы...


Сообщение отредактировал Lazur - Ср, 31.10.2012, 13:56
 
denis2000Дата: Вт, 30.10.2012, 20:38 | Сообщение # 243
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

9vova8, Так с настройками разобрались. Опиши подробно как спавнишь.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
9vova8Дата: Вт, 30.10.2012, 21:09 | Сообщение # 244
Новичок
Пользователи
Сообщений: 91
Награды: 2
Репутация: [ 6 ]

вот с spawn_section_zaton
[cut][zat_sh_stalker_leader]:stalker_silent
$spawn = "respawn\zat_sh_stalker_leader"
character_profile = zat_sh_stalker_leader
spec_rank = master
community = alfa
custom_data = scripts\himera\zat_sh_stalker_leader.ltx
story_id = zat_sh_stalker_leader
...[/cut]

И с \gamedata\configs\scripts\smart\zat_sh_alfa_smart.ltx
[cut][smart_terrain];zat_sh_alfa_smart
squad_id = 59
respawn_params = respawn@zat_sh_alfa_smart
max_population = 2
[respawn@zat_sh_alfa_smart]
spawn_stalker@alfa
[spawn_stalker@alfa]
spawn_squads = zat_sh_alfa_squad
spawn_num = 1[/cut]

Лог тот-же? denis2000

да

Чудеса. Папку gamrdata выложить сможешь? denis2000

denis2000, Я уже всё снёс и начал заново.

Ок. Держите нас в курсе. denis2000

denis2000, Теперь ошибки нету, но и спавна тоже.
Чему должно равнятся "respawn_params" в файле script/smart/zat...smart.ltx
И где прописана связь zat_***_squad и zat_***_smart




Сообщение отредактировал 9vova8 - Пт, 02.11.2012, 22:34
 
denis2000Дата: Сб, 03.11.2012, 02:08 | Сообщение # 245
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

9vova8,
Quote
Чему должно равнятся "respawn_params"
Имени секции которая содержит ссылки на секции с параметрами респавна.
Quote
И где прописана связь zat_***_squad и zat_***_smart
Переформулируйте вопрос.
---------------------
sergej5500,
Quote
spawn_point = jup_a9_spawn_point ... что регулирует эта строка?
Не обязательный параметр определяющий точку спавна / место появления отряда.
Quote
В каких случаях её нужно прописывать, или обойтись без неё?
Такой параметр может быть как у сквада так и у смарта. Принимает значения имя пути или "self": если равен имени пути, то отряд появиться в нулевой точке этого пути, если равен "self" то отряд появиться точно в координатах смарта. Если параметр не задан то точка спавна определяется также как и в случае с "self".
Quote
обязательно ли регистрировать сквады, которые спавнятся через диалоги или скрипты в simulation_objects_props.
Нет. В этом файле прописывается разрешение / запрет на симуляцию для сквадов и смартов. По умолчанию симуляция разрешена всем и везде.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
9vova8Дата: Сб, 03.11.2012, 11:08 | Сообщение # 246
Новичок
Пользователи
Сообщений: 91
Награды: 2
Репутация: [ 6 ]

denis2000, В каком файле прописана связь 'squad'a и 'smart'a

Какая связь? Смарт в качестве места спавна или цель сквада? denis2000

denis2000, С етим уже розобрался. Теперь появилась старая ошибка, [cut noguest]
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\sim_board.script:226: attempt to index local 'spawn_smart' (a nil value)

stack trace:[/cut]
Хотя єсли спавнить с начала игры- всё отлично
Ничего кроме того что написано в КМБ не нужно добавлять для спавна по условию?

Смарт для спавна из скрипта имеет правильно прописанный story_id? denis2000

denis2000,story_id = 59
В этом самом sim_board сквад мой нужно прописывать?




Сообщение отредактировал 9vova8 - Вс, 04.11.2012, 12:17
 
denis2000Дата: Вс, 04.11.2012, 13:20 | Сообщение # 247
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

9vova8, Приведите спавн-секцию смарта и скрипт спавна сквада на смарте (Прикольное предложение получилось smile )

PS: Если так хотите прописать в sim_board, пропишите, затем смело сносите gamedata и заново начинайте править.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
9vova8Дата: Вт, 06.11.2012, 19:55 | Сообщение # 248
Новичок
Пользователи
Сообщений: 91
Награды: 2
Репутация: [ 6 ]

[cut][smart_terrain];zat_alfa_smart
squad_id = 60
respawn_params = respawn@zat_alfa_squad
max_population = 2

[respawn@zat_alfa_squad]
spawn_stalker@alfa

[spawn_stalker@alfa]
spawn_squads = zat_alfa_squad
spawn_num = 1
path_walk = zat_alfa_way
[/cut]
это?

Нет не это. Может все таки уже gamedata полностью выложите? denis2000

Как?

На файлообменник и скинете ссылку в личку. denis2000

Добавлено (06.11.2012, 19:55)
---------------------------------------------
Выбивает ту же ошибку при добавлении configs/scripts/zaton/zat_b14_spawner.ltx [cut]on_info3 = {+zat_b14_recon_place -spawn_alfa} %=create_squad(zat_alfa_squad:zat_a1) +spawn_alfa%[/cut]
и что означают вот эти строчки в логе ошибки?
[cut]! Player name in registry is empty! (InstallUserName)
* phase time: 6446 ms
* phase cmem: 188030 K
* phase time: 11 ms
* phase cmem: 188030 K
* Creating new game...
* Loading spawn registry...
* 6465 spawn points are successfully loaded[/cut]




Сообщение отредактировал 9vova8 - Вс, 04.11.2012, 17:53
 
ParamoreДата: Ср, 07.11.2012, 21:32 | Сообщение # 249
Удаленные



У меня глюки со спавном через simulation.ltx "новых" локациях, иногда сквады вообще не спавнятся а иногода спавнятся через определенное время. Все локации вписаны в simulation.ltx и sim_board.script.

[cut noguest=sim_board.script]local group_id_by_levels = {zaton = 1,
pripyat = 2,
jupiter = 3,
labx8 = 4,
jupiter_underground = 5,
escape = 6,
garbage = 7,
l05_bar = 8,
yantar = 9,
l11_pripyat = 10,
l10_radar = 11,
generators = 12,
predbannik = 13,
k01_darkscape = 14,
l03_agroprom = 15,
stancia_2 = 16,
red_forest = 17,
military = 18,
marsh = 19,
limansk = 20,
hospital = 21,
darkvalley = 22,
agroprom_underground = 23,
agroprom = 24}[/cut]

Смотрите как эта проблема решена в этом скрипте в SGM 2.2. denis2000
 
avn1975Дата: Ср, 07.11.2012, 21:32 | Сообщение # 250
Гражданский
Пользователи
Сообщений: 15
Награды: 0
Репутация: [ 0 ]

Спавн и Респавн NPC как зделать на смарт-террейне

Тема КМБ не предназначена для вопросов - это написано в шапке. Еще один пост там и получите предупреждение. denis2000
 
ParamoreДата: Сб, 10.11.2012, 00:54 | Сообщение # 251
Удаленные



denis2000 А конкретнее можно ? Я ничего такого кроме simulation_bad_levels не нашёл
 
denis2000Дата: Сб, 10.11.2012, 16:38 | Сообщение # 252
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Paramore, Правильно, вы нашли таблицу с указанием "плохих" локаций, теперь найдите кусок кода использующий эту таблицу (начало куска: --/ SGM in конец куска: --/ SGM out) в функции:
Code
--' Заполнение стартового расположения
function sim_board:fill_start_position()

И вставьте в свой скрипт sim_board.script таблицу и код.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
ParamoreДата: Сб, 10.11.2012, 16:57 | Сообщение # 253
Удаленные



denis2000, Добавил таблицу и код, и вот такой вылет получил:
[cut noguest=лог]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 : ... - Зов Припяти\gamedata\scripts\smart_terrain.script:584: attempt to index local 'job_data' (a nil value)

stack trace:[/cut]

В чем причина? Значит что-то еще из sgm надо добавить.

А это уже баги твоего спавна ищи где накосячил в настройках смарта и сквадов. denis2000

После того как я тупо скопипастил smart_terrain.script, _g.script, sgm_functions.script из sgm 2.2, вылет пропал, НО сквады начали дублироватся (один и тот же сквад спавнится 2 раза). Это так и надо ?

Ответ очевиден, не так ли? denis2000


Сообщение отредактировал Paramore - Сб, 10.11.2012, 17:54
 
9vova8Дата: Пт, 07.12.2012, 23:12 | Сообщение # 254
Новичок
Пользователи
Сообщений: 91
Награды: 2
Репутация: [ 6 ]

Доброго времени суток, появилась новая проблема:
при добавлении безучловного или однонаправленного смарта получается такая ошибка
[cut]
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 : ...в Припяти\gamedata\scripts\sim_squad_scripted.script:124: attempt to index local 'point' (a nil value)

stack trace:
[/cut]

В параметре target_smart указан несуществующий смарт. denis2000

Как создать собственний тип боя для NPC?

Разберись в этом вопросе и сделай урок для КМБ, многие плюсанут тебе репутацию. denis2000




Сообщение отредактировал 9vova8 - Пт, 07.12.2012, 23:13
 
sergej5500Дата: Пт, 21.12.2012, 21:42 | Сообщение # 255
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

yakuti
У Вас сквад в разных файлах называется по разному:
agr_army_squad и
agr_army_squad1.
Вероятно, ошибка в этом.
И ещё, смарт у Вас называется agr_army_smart, а respawn_params указан от esc_smart_terrain_3. Возможны дубликаты секций respawn_params.


Сообщение отредактировал sergej5500 - Сб, 22.12.2012, 01:02
 
Поиск: