Модостроение. Спавн и логика
|
|
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 за это полезное сообщение: |
|
|
denis2000 | Дата: Вс, 15.02.2015, 17:43 | Сообщение # 1126 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата editor46 ( ) то есть к гулагу? В секции спавна монстра: Код [smart_terrains] none = true
editor46, Если создаете гулаг agr_control_poltergeist, то его по моему нужно прописывать в скрипте gulag_agroprom_underground.script, чтобы членам этого гулага назначались работы на нем (работы тоже нужно создать)... Вообще почитайте информацию по гулагам в ТЧ или не используйте вовсе, прикручивайте логику прямо к НПС или монстру, логику используйте или mob_home или mob_walker.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Довакин | Дата: Пн, 16.02.2015, 17:28 | Сообщение # 1127 |
Командир д.г. быстрого реагирования
Пользователи
Сообщений: 688
| Добрый день! Не получается поставить анимпоинт на локацию.
[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:505: attempt to index local 'smartcover' (a nil value)
stack trace:
[/cut]
|
|
|
Эти 0 пользователя(ей) поблагодарили Довакин за это полезное сообщение: |
|
|
denis2000 | Дата: Вт, 17.02.2015, 08:40 | Сообщение # 1128 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата Довакин ( ) Не получается поставить анимпоинт на локацию Как ставили?
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Довакин | Дата: Вт, 17.02.2015, 17:26 | Сообщение # 1129 |
Командир д.г. быстрого реагирования
Пользователи
Сообщений: 688
| [cut noguest=Алл спавн] [10132] ; cse_abstract properties section_name = smart_terrain name = mar_a1_smart position = -282.625946,1.029798,27.214855 direction = 0,0,0
; cse_alife_object properties game_vertex_id = 1205 distance = 17.5 level_vertex_id = 6198 object_flags = 0xffffff3e custom_data = <<END [smart_terrain] cfg = scripts\marsh\smart\mar_a1_smart.ltx
END
; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 10
; cse_alife_space_restrictor properties restrictor_type = 3
; se_smart_terrain properties
[10133] ; cse_abstract properties section_name = camp_zone name = mar_a1_smart_camp position = -282.585815,0.979070,34.119560 direction = 0,0,0
; cse_alife_object properties game_vertex_id = 1205 distance = 0 level_vertex_id = 6388 object_flags = 0xffffff3e custom_data = <<END [camp] cfg = scripts\camp.ltx END
; cse_shape properties shapes = shape0 shape0:type = box shape0:axis_x = 19.8262004852295,0,0 shape0:axis_y = 0,4.45779991149902,0 shape0:axis_z = 0,0,17.3008003234863 shape0:offset = 0,0,0
; cse_alife_space_restrictor properties restrictor_type = 3
[10134] ; cse_abstract properties section_name = smart_cover name = mar_a1_smart_animpoint_1 position = -279.742798,0.972047,34.977165 direction = 0,0,0
; cse_alife_object properties game_vertex_id = 1205 distance = 8.39999961853027 level_vertex_id = 7088 object_flags = 0xffffffbf
; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 2
; cse_smart_cover properties cse_smart_cover__unk1_sz = animpoint_sit_normal cse_smart_cover__unk2_f32 = 0 enter_min_enemy_distance = 15 exit_min_enemy_distance = 10
; se_smart_cover properties last_description = animpoint_sit_normal loopholes = animpoint_sit_normal,1
[10135] ; cse_abstract properties section_name = smart_cover name = mar_a1_smart_animpoint_2 position = -279.172211,0.983977,32.796303 direction = 1.5,1.5,1.5
; cse_alife_object properties game_vertex_id = 1205 distance = 4.90000009536743 level_vertex_id = 7298 object_flags = 0xffffffbf
; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 2
; cse_smart_cover properties cse_smart_cover__unk1_sz = animpoint_sit_low cse_smart_cover__unk2_f32 = 0 enter_min_enemy_distance = 15 exit_min_enemy_distance = 10
; se_smart_cover properties last_description = animpoint_sit_low loopholes = animpoint_sit_low,1 [/cut]
[cut noguest=Логика смарта] [smart_terrain] squad_id = 1 max_population = 2 [/cut]
[cut noguest=simulation_object_props] [mar_a1_smart]:default surge = 1 sim_avail = true [/cut]
|
|
|
Эти 0 пользователя(ей) поблагодарили Довакин за это полезное сообщение: |
|
|
denis2000 | Дата: Вт, 17.02.2015, 18:13 | Сообщение # 1130 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Довакин, Как регистрировали локацию в скриптах? У вас смартковеры не попали в таблицу se_smart_cover.registered_smartcovers, вернее попали но объект не имеет требуемых параметров типа: m_game_vertex_id, m_level_vertex_id и т.д.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Довакин | Дата: Вт, 17.02.2015, 18:17 | Сообщение # 1131 |
Командир д.г. быстрого реагирования
Пользователи
Сообщений: 688
| [cut noguest=smart_terrain] function surge_stats() local sim_obj_registry = simulation_objects.get_sim_obj_registry().objects local sim_squads = { ["zaton"] = {}, ["jupiter"] = {}, ["pripyat"] = {}, ["marsh"] = {} } local sim_smarts = { ["zaton"] = {}, ["jupiter"] = {}, ["pripyat"] = {}, ["marsh"] = {} } [/cut]
[cut noguest=sim board] local group_id_by_levels = {zaton = 1, pripyat = 2, jupiter = 3, labx8 = 4, jupiter_underground = 5, marsh = 6}
local board = nil [/cut]
Выбросы с межуровневыми проводниками не делал.
|
|
|
Эти 0 пользователя(ей) поблагодарили Довакин за это полезное сообщение: |
|
|
denis2000 | Дата: Вт, 17.02.2015, 19:43 | Сообщение # 1132 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Довакин, Все верно, но непонятно почему не работает...
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Довакин | Дата: Вт, 17.02.2015, 22:33 | Сообщение # 1133 |
Командир д.г. быстрого реагирования
Пользователи
Сообщений: 688
| С этим я разобрался. У меня назрел такой вопрос. Есть ли в ЗП анимация (стоим, руки за спиной)? Если есть, как она называется и какие еще виды анимаций присутствуют?
|
|
|
Эти 0 пользователя(ей) поблагодарили Довакин за это полезное сообщение: |
|
|
makdm | Дата: Вт, 17.02.2015, 22:39 | Сообщение # 1134 |
Рожденный в СССР
Разработчики
Сообщений: 1294
| Цитата Довакин ( ) Есть ли в ЗП анимация (стоим, руки за спиной)?
Все анимации можно посмотреть в файле gamedata\scripts\state_lib.script
Анимация - руки за спиной называется ward.
Цитата Довакин ( ) С этим я разобрался. Ну и молодец, что разобрался.
Но ради приличия, мог и бы и сказать "спасибо" denis2000 да и в репу можно было бы добавить за то, что он решал твою проблему, а то вроде, как тебе тут все обязаны разъяснения давать.
Терпение...... И все получится!
Сообщение отредактировал makdm - Вт, 17.02.2015, 22:59 |
|
|
Эти 0 пользователя(ей) поблагодарили makdm за это полезное сообщение: |
|
|
denis2000 | Дата: Ср, 18.02.2015, 08:33 | Сообщение # 1135 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата Довакин ( ) С этим я разобрался. Не мешело бы озвучить причину, следующие поколения модостроителей столкнувшись с таким вылетом смогут его решить быстрее.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Довакин | Дата: Ср, 18.02.2015, 14:59 | Сообщение # 1136 |
Командир д.г. быстрого реагирования
Пользователи
Сообщений: 688
| Цитата denis2000 ( ) Не мешело бы озвучить причину, следующие поколения модостроителей столкнувшись с таким вылетом смогут его решить быстрее. Это моя ошибка, я пытался изменить номера секций все вместе сразу. Что-то пошло не так, и игра перестала воспринимать анимпоинты. У меня остался старый алл.спавн, в котором я не изменял секции, распаковал заново и игра стала работать. Поэтому совет другим модмейкерам: Прежде чем что-то заспавнить в алл.спавне, сохраните старый на всякий случай.
Цитата makdm ( ) Но ради приличия, мог и бы и сказать "спасибо" denis2000 да и в репу можно было бы добавить за то, что он решал твою проблему, а то вроде, как тебе тут все обязаны разъяснения давать. [off]Безусловно denis2000 заслуживает похвалы, но я бы сказал пожизненное спасибо, потому что какую работу он выполняет, как у него все помещается это в мозгу(ведь не только же он с алл.спавном работает), я не представляю, и если бы все те, кому он помогал, повышали ему репутацию, она бы уже была 100000+ [/off]
|
|
|
Эти 0 пользователя(ей) поблагодарили Довакин за это полезное сообщение: |
|
|
mexiccanec | Дата: Пт, 13.03.2015, 02:10 | Сообщение # 1137 |
Гражданский
Пользователи
Сообщений: 22
| Подскажите пожалуйста-я всё гоняюсь за реализмом,интересуют открытые прицелы с пространством для обзора,как в Мизери 2.1.1,можно их оттуда перекорчевать в сгм 2.2? буду признателен если поможите
|
|
|
Эти 0 пользователя(ей) поблагодарили mexiccanec за это полезное сообщение: |
|
|
Аракс | Дата: Пт, 13.03.2015, 07:44 | Сообщение # 1138 |
Удаленные
| добавил локацию бар из тч в sgm 2.2 со сборкой альбора, заспавнил туда Бармена по уроку и при начале новой игры вылетает с таким логом [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 : ...r call of pripyat\gamedata\scripts\sgm_loader.script:52: attempt to index global 'sgm_spawner' (a nil value) ------- [/cut]
да и ещё в папке со скриптами нету файла sgm_world вместо него там sgm_loader
|
|
|
Эти 0 пользователя(ей) поблагодарили Аракс за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 13.03.2015, 10:03 | Сообщение # 1139 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| mexiccanec, Прицелы в виде текстуры или прицеливание через 3D модель оружия?
Аракс, Ошибка синтаксиса в скрипте sgm_spawner.script
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Аракс | Дата: Пт, 13.03.2015, 10:53 | Сообщение # 1140 |
Удаленные
| denis2000, да я уже другим способом его заспавнил
|
|
|
Эти 0 пользователя(ей) поблагодарили Аракс за это полезное сообщение: |
|
|
|