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


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


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
LazurДата: Ср, 02.05.2012, 18:47 | Сообщение # 136
Новичок
Пользователи
Сообщений: 82
Награды: 3
Репутация: [ 96 ]

Хотел сделать спавн мутантов на новой локации, получаю [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\smart_terrain.script:321: attempt to call method 'smart_terrain_task_activate' (a nil value)

stack trace:[/cut]

Подключенная локация в этом самом скрипте зарегистрирована? А также в sim_board.script. denis2000

Посмотрел в скрипте, пишет, что сделано си чудо, чтоб мутанты ходили по смартам в гости, посмотрел аналогичную секцию для Затона, но сколько не пытаюсь не могу справится с вылетом. К тому же по этой теме есть пара вопросов:
1. Где взять точку спавна? (spawn_point =), если в алл спавне прописываем только смарт-тирейн?
2. Обязательно ли в target_smart = делать скриптовую цель?
Заранее спасибо!

Эти параметры не обязательны. denis2000

В скриптах подключена. Сейчас попробую без параметров...
Попробовал, без секции точки спавна и безскриптовой цели. Всё равно тот же лог.

Так может наконец приведеш свои правки... denis2000

[cut=script\garbage\smart\gar_01.ltx]
[smart_terrain]
squad_id = 1000
max_population = 5
respawn_only_smart = true
respawn_params = respawn_gar_01

[respawn_gar_01]
sim_boar

[sim_boar]
spawn_squads = simulation_flesh
spawn_num = 1[/cut]

[cut=script\garbage\smart\gar_02.ltx]
[smart_terrain]
squad_id = 1001
max_population = 16
respawn_only_smart = true
respawn_params = respawn_gar_02

[respawn_gar_02]
sim_rat

[sim_rat]
spawn_squads = simulation_rat
spawn_num = 2[/cut]

[cut=misc\squad_descr_garbage.ltx][gar_01_squad]:online_offline_group
faction = monster
npc = boar_strong, boar_normal
target_smart = garbage_01
;spawn_point = garbage_01_flash1_walk
story_id = kabancheg

[gar_02_squad]:online_offline_group
faction = monster
npc = rat_normal, rat_2, rat_weak
target_smart = garbage_02
;spawn_point = garbage_01_flash1_walk
story_id rat_in_pipe
[/cut]

[cut=misc\simulation.ltx];;;;;;;;;;;;;;;;;;;;;;Garbage;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[start_position_garbage]
gar_01_squad = garbage_01
gar_02_squad = garbage_02[/cut]

[cut=misc\squad_descr.ltx][simulation_rat]:online_offline_group
faction = monster_predatory_night
npc_random = rat_normal, rat_2
npc_in_squad = 6, 9[/cut]

[cut=all.spawn][6649]
; cse_abstract properties
section_name = smart_terrain
name = garbage_02
position = -145.921997,0.951366,-283.829406
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 1290
distance = 0
level_vertex_id = 61794
object_flags = 0xffffff3e
custom_data = <<END
[smart_terrain]
cfg = scripts\garbage\smart\gar_02.ltx
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 20

; cse_alife_space_restrictor properties
restrictor_type = 3

; se_smart_terrain properties
[/cut]
в Алл.спавн есть секция garbage_01, полностью аналогична представленной выше (кроме названия и ссылки на cfg).


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


Сообщение отредактировал Lazur - Чт, 03.05.2012, 12:52
 
denis2000Дата: Пт, 04.05.2012, 00:10 | Сообщение # 137
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Lazur, Так попробуй спавнить не сквады крыс, а например плотей.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
LazurДата: Пт, 04.05.2012, 10:34 | Сообщение # 138
Новичок
Пользователи
Сообщений: 82
Награды: 3
Репутация: [ 96 ]

Ну Князь! Ну, голова!
Заменил на сквад плотей - работает! Вот теперь думать надо почему с крысами вылет был...

Вот, с собакерками проблема возникла. В начале игры отряд спавнится, я его выношу, через 2 минуты они опять спавнятся. Как делать ограничение, чтоб они спавнились примерно через 7 часов?

Посмотри здесь. denis2000


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


Сообщение отредактировал Lazur - Сб, 05.05.2012, 09:54
 
iAplerДата: Ср, 09.05.2012, 01:20 | Сообщение # 139
Гражданский
Пользователи
Сообщений: 23
Награды: 0
Репутация: [ 0 ]

Всем привет smile в модах я еще полный нуб так что строго не судите. Хотелось бы увеличить количество НПС на карте и также чтоб они больше ходили по зоне и воевали а не сидели на базах, а то очень скушно. Буду всем благодарен за помощ smile
Забыл сказать мод 2.2 smile


Сообщение отредактировал iApler - Ср, 09.05.2012, 01:21
 
БабайДата: Ср, 09.05.2012, 09:11 | Сообщение # 140
Ветеран
Пользователи
Сообщений: 483
Награды: 9
Репутация: [ 233 ]

Quote (iApler)
Хотелось бы увеличить количество НПС на карте

Почитай здесь конфиги конфигурации смартов.


Правильно заданный вопрос - половина правильного ответа!
 
iAplerДата: Ср, 09.05.2012, 15:36 | Сообщение # 141
Гражданский
Пользователи
Сообщений: 23
Награды: 0
Репутация: [ 0 ]

Quote (Бабай)
Почитай здесь конфиги конфигурации смартов.

Пишет что текста на странице нет, при переходе куда то пишет что страницы не существует плюс они с иероглифами грузится(

Попробуй еще раз. denis2000

Добавлено (09.05.2012, 15:36)
---------------------------------------------
spawn_num = {+pri_a18_use_idol_done}2, 0 - не могу понять эту строку за что отвечает 2 и 0. И если не сложно обясните что такое СКВАРД

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

Quote (iApler)
spawn_num = {+pri_a18_use_idol_done}2, 0 - не могу понять эту строку за что отвечает 2 и 0. И если не сложно обясните что такое СКВАРД

СКВАД (анг. squad) - (военное) отделение, расчет; команда; группа. В игре STALKER так называется группа НПС составляющее единое целое.
spawn_num = {+pri_a18_use_idol_done}2, 0. Количество отрядов (сквадов) для спавна при наличии инфопорции pri_a18_use_idol_done - два отряда, по умолчанию ноль.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
LazurДата: Ср, 23.05.2012, 17:21 | Сообщение # 143
Новичок
Пользователи
Сообщений: 82
Награды: 3
Репутация: [ 96 ]

Делал торговца, двигатель ругается:
[cut=Лог]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 : sidorovich

stack trace:[/cut]

Нет дескрипшена персонажа sidorovich. denis2000


На пыльных тропинках аномальных полей
Заспавнятся наши следы...
 
slava1990Дата: Ср, 23.05.2012, 17:21 | Сообщение # 144
Удаленные



день добрый. можно ли в sgm 1.7 сделать так что бы вообще не было монстров на локации? а вместо них больше сталкеров и представителей разных группировок.

Нечто подобное обсуждалось, готовы задавать конкретные вопросы - прошу. denis2000
 
stalker_DOLGaДата: Сб, 26.05.2012, 22:22 | Сообщение # 145
Гражданский
Пользователи
Сообщений: 15
Награды: 0
Репутация: [ 0 ]

Доброго времени суток у меня три вопроса: Первый при создании НПС у меня они все смотрят в одну сторону где и как нужно указать что бы смотрели в определеную точку. Второй: в файле Аll.spawn в стартовый набор ГГ добавляю wpn_ak74 = 1 /n , и ammo_5.45x39_ap = 3 /n но при старте игры вылет может я что-то не то сделал? Третий: где в all.spawn SoC поменять старт. Позицию ГГ? И еще два вопроса: когда новому НПС прописоваю анимацию Допустим sleep я к нему подхожу он просыпается отхожу на 100 м. Он все равно на меня смотрит и дальше спать отказывается. И как убрать сюжетную линию в ТЧ прошу прощения за столько вопросов. Если несложо обьясните спасибо.

2. Перепутали слеш \\ Если пишите про вылет - пишите его обязательно, если безлоговый - то так и пишите
4. Пишите логику с ремарками, переходите по условию дистанции до ГГ
5. Как вырезать сюжет. XOBAH


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

stalker_DOLGa, У меня для тебя пять ответов:
1. Обычно куда смотрит НПС указывается в его логике.
2. А лог а подробнее правки.
3. В секции actor вестимо.
4. Подробнее правки.
5. В интернете море информации по отключению основного сюжета в SoC, даже где то в этом разделе обсуждалось.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
stalker_DOLGaДата: Вс, 27.05.2012, 06:16 | Сообщение # 147
Гражданский
Пользователи
Сообщений: 15
Награды: 0
Репутация: [ 0 ]

Это безлоговый вылет

Добавлено (27.05.2012, 06:16)
---------------------------------------------
И все таки как отключить сюжет в ТЧ а то в инете не нашел. Заранее спасибо.

Как вырезать сюжет. XOBAH


здесь был чёрный сталкер
 
ALEXXXisДата: Вт, 29.05.2012, 01:10 | Сообщение # 148
Проповедник
Монолит
Сообщений: 1869
Награды: 12
Репутация: [ 266 ]

хочу в оригинальную Зов Припяти добавить Гр.Зомби, Изломов и Котов!
что бы они были заспавнены по всем локациям!
в модерстве не разбираюсь, если кто скинет нужные файлы буду благодарен! smile


Если хочешь обрести врагов, попробуй что-то изменить.


 
AnarxisTДата: Вт, 29.05.2012, 10:54 | Сообщение # 149
Тень «Свободы»
Свобода
Сообщений: 7317
Награды: 34
Репутация: [ 1324 ]

ALEXXXis, http://sigerous.ru/forum/17-208-66094-16-1293311149 Урок №14 wink smile

 
LazurДата: Ср, 30.05.2012, 18:36 | Сообщение # 150
Новичок
Пользователи
Сообщений: 82
Награды: 3
Репутация: [ 96 ]

Вот, не могу разобраться с логикой:
[logic@krovos_stan] --Имя секции
suitable = {=check_npc_name(stan_bloodsucker)} true --Это что?
active = mob_home@krovos_stan --Ссылка на подсекцию
monster_job = true --Возможна ли работа для монстра
prior = 150 --Приоритет

[mob_home@krovos_stan] --Тож имя подсекции
path_home = krovos_stan_walk --Путь по которому непись ходит
aggressive = true --Будет ли атаковать
home_min_radius = 15 --Минимальный радиус, от коего не отходит после спавна
home_max_radius = 35 --Максимальный радиус, от коего не отходит после спавна

Правильно думаю?
А теперь вопрос следующий: "Для каждого непися нужно делать подобную логику? Или для сквада?"

Это - эксклюзивная логика, поэтому для всего сквада ее использовать нельзя (в принципе можно, если весь сквад будет состоять из stan_bloodsucker, но получится не шибко красиво)
suitable = {=check_npc_name(stan_bloodsucker)} true - Это проверка на то, чтобы эту логику принял только stan_bloodsucker
XOBAH

Спасибо, а для сквада логика как будет выглядеть?

Никак! Для сквада логики нет, логика может быть написана только для отдельных объектов. Просто файл может быть один, а в нем все равно для каждого объекта своя. denis2000

То есть, для параметра suitable нужно прописать премерно такую штуку: suitable = пёс1, кабан1, пес2, кабан3...?


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


Сообщение отредактировал Lazur - Пт, 01.06.2012, 07:19
 
Поиск: