Модостроение. Спавн и логика
|
|
denis2000 | Дата: Пн, 10.10.2011, 21:20 | Сообщение # 1 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Спавн и логика Создание объектов на локации и логика поведения этих объектов Если у вас появились вопросы по созданию динамических объектов в игре (НПС, монстры, аномалии, и т.п.) и настройке их "поведения". Задавайте их в этой теме - умные головы, модосторители и просто разбирающиеся в программировании люди вам ответят.
Много интересного материала здесь (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 по ссылке из шапки и соседнюю тему "Курс молодого бойца", возможно Ваш вопрос уже рассматривался.
Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки. Помните чем подробнее вопрос, тем точнее ответ.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Lazur | Дата: Ср, 02.05.2012, 18:47 | Сообщение # 136 |
Новичок
Пользователи
Сообщений: 82
| Хотел сделать спавн мутантов на новой локации, получаю [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 |
|
|
Эти 0 пользователя(ей) поблагодарили Lazur за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 04.05.2012, 00:10 | Сообщение # 137 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Lazur, Так попробуй спавнить не сквады крыс, а например плотей.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Lazur | Дата: Пт, 04.05.2012, 10:34 | Сообщение # 138 |
Новичок
Пользователи
Сообщений: 82
| Ну Князь! Ну, голова! Заменил на сквад плотей - работает! Вот теперь думать надо почему с крысами вылет был...
Вот, с собакерками проблема возникла. В начале игры отряд спавнится, я его выношу, через 2 минуты они опять спавнятся. Как делать ограничение, чтоб они спавнились примерно через 7 часов?
Посмотри здесь. denis2000
На пыльных тропинках аномальных полей Заспавнятся наши следы...
Сообщение отредактировал Lazur - Сб, 05.05.2012, 09:54 |
|
|
Эти 0 пользователя(ей) поблагодарили Lazur за это полезное сообщение: |
|
|
iApler | Дата: Ср, 09.05.2012, 01:20 | Сообщение # 139 |
Гражданский
Пользователи
Сообщений: 23
| Всем привет в модах я еще полный нуб так что строго не судите. Хотелось бы увеличить количество НПС на карте и также чтоб они больше ходили по зоне и воевали а не сидели на базах, а то очень скушно. Буду всем благодарен за помощ Забыл сказать мод 2.2
Сообщение отредактировал iApler - Ср, 09.05.2012, 01:21 |
|
|
Эти 0 пользователя(ей) поблагодарили iApler за это полезное сообщение: |
|
|
Бабай | Дата: Ср, 09.05.2012, 09:11 | Сообщение # 140 |
Ветеран
Пользователи
Сообщений: 483
| Quote (iApler) Хотелось бы увеличить количество НПС на карте Почитай здесь конфиги конфигурации смартов.
Правильно заданный вопрос - половина правильного ответа!
|
|
|
Эти 0 пользователя(ей) поблагодарили Бабай за это полезное сообщение: |
|
|
iApler | Дата: Ср, 09.05.2012, 15:36 | Сообщение # 141 |
Гражданский
Пользователи
Сообщений: 23
| Quote (Бабай) Почитай здесь конфиги конфигурации смартов. Пишет что текста на странице нет, при переходе куда то пишет что страницы не существует плюс они с иероглифами грузится(
Попробуй еще раз. denis2000Добавлено (09.05.2012, 15:36) --------------------------------------------- spawn_num = {+pri_a18_use_idol_done}2, 0 - не могу понять эту строку за что отвечает 2 и 0. И если не сложно обясните что такое СКВАРД
|
|
|
Эти 0 пользователя(ей) поблагодарили iApler за это полезное сообщение: |
|
|
denis2000 | Дата: Ср, 09.05.2012, 17:47 | Сообщение # 142 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| 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 - два отряда, по умолчанию ноль.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Lazur | Дата: Ср, 23.05.2012, 17:21 | Сообщение # 143 |
Новичок
Пользователи
Сообщений: 82
| Делал торговца, двигатель ругается: [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
На пыльных тропинках аномальных полей Заспавнятся наши следы...
|
|
|
Эти 0 пользователя(ей) поблагодарили Lazur за это полезное сообщение: |
|
|
slava1990 | Дата: Ср, 23.05.2012, 17:21 | Сообщение # 144 |
Удаленные
| день добрый. можно ли в sgm 1.7 сделать так что бы вообще не было монстров на локации? а вместо них больше сталкеров и представителей разных группировок.
Нечто подобное обсуждалось, готовы задавать конкретные вопросы - прошу. denis2000
|
|
|
Эти 0 пользователя(ей) поблагодарили slava1990 за это полезное сообщение: |
|
|
stalker_DOLGa | Дата: Сб, 26.05.2012, 22:22 | Сообщение # 145 |
Гражданский
Пользователи
Сообщений: 15
| Доброго времени суток у меня три вопроса: Первый при создании НПС у меня они все смотрят в одну сторону где и как нужно указать что бы смотрели в определеную точку. Второй: в файле Аll.spawn в стартовый набор ГГ добавляю wpn_ak74 = 1 /n , и ammo_5.45x39_ap = 3 /n но при старте игры вылет может я что-то не то сделал? Третий: где в all.spawn SoC поменять старт. Позицию ГГ? И еще два вопроса: когда новому НПС прописоваю анимацию Допустим sleep я к нему подхожу он просыпается отхожу на 100 м. Он все равно на меня смотрит и дальше спать отказывается. И как убрать сюжетную линию в ТЧ прошу прощения за столько вопросов. Если несложо обьясните спасибо.
2. Перепутали слеш \\ Если пишите про вылет - пишите его обязательно, если безлоговый - то так и пишите 4. Пишите логику с ремарками, переходите по условию дистанции до ГГ 5. Как вырезать сюжет. XOBAH
здесь был чёрный сталкер
|
|
|
Эти 0 пользователя(ей) поблагодарили stalker_DOLGa за это полезное сообщение: |
|
|
denis2000 | Дата: Вс, 27.05.2012, 00:28 | Сообщение # 146 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| stalker_DOLGa, У меня для тебя пять ответов: 1. Обычно куда смотрит НПС указывается в его логике. 2. А лог а подробнее правки. 3. В секции actor вестимо. 4. Подробнее правки. 5. В интернете море информации по отключению основного сюжета в SoC, даже где то в этом разделе обсуждалось.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
stalker_DOLGa | Дата: Вс, 27.05.2012, 06:16 | Сообщение # 147 |
Гражданский
Пользователи
Сообщений: 15
| Это безлоговый вылет
Добавлено (27.05.2012, 06:16) --------------------------------------------- И все таки как отключить сюжет в ТЧ а то в инете не нашел. Заранее спасибо.
Как вырезать сюжет. XOBAH
здесь был чёрный сталкер
|
|
|
Эти 0 пользователя(ей) поблагодарили stalker_DOLGa за это полезное сообщение: |
|
|
ALEXXXis | Дата: Вт, 29.05.2012, 01:10 | Сообщение # 148 |
Проповедник
Монолит
Сообщений: 1869
| хочу в оригинальную Зов Припяти добавить Гр.Зомби, Изломов и Котов! что бы они были заспавнены по всем локациям! в модерстве не разбираюсь, если кто скинет нужные файлы буду благодарен!
Если хочешь обрести врагов, попробуй что-то изменить.
|
|
|
Эти 0 пользователя(ей) поблагодарили ALEXXXis за это полезное сообщение: |
|
|
AnarxisT | Дата: Вт, 29.05.2012, 10:54 | Сообщение # 149 |
Тень «Свободы»
Свобода
Сообщений: 7317
| ALEXXXis, http://sigerous.ru/forum/17-208-66094-16-1293311149 Урок №14
|
|
|
Эти 0 пользователя(ей) поблагодарили AnarxisT за это полезное сообщение: |
|
|
Lazur | Дата: Ср, 30.05.2012, 18:36 | Сообщение # 150 |
Новичок
Пользователи
Сообщений: 82
| Вот, не могу разобраться с логикой: [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 |
|
|
Эти 0 пользователя(ей) поблагодарили Lazur за это полезное сообщение: |
|
|
|