|
Модостроение. Спавн и логика
|
|
| 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 за это полезное сообщение: |
|
|
| sergej5500 | Дата: Пт, 03.05.2013, 22:44 | Сообщение # 361 |
 Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Sandwich, Судя по логу, не находит секцию НПС в character_desc_. Проверь, подключён ли файл в system.ltx.
|
| |
|
| Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
| Sandwich | Дата: Пт, 03.05.2013, 23:19 | Сообщение # 362 |
 Зам. Лидера «Свободы»
Свобода
Сообщений: 4340
| sergej5500, он прописан в system
А колбасу и батоны нынче хреновые стали делать! (Умнейший неизвестный сталкер)
|
| |
|
| Эти 0 пользователя(ей) поблагодарили Sandwich за это полезное сообщение: |
|
|
| sergej5500 | Дата: Пт, 03.05.2013, 23:50 | Сообщение # 363 |
 Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Sandwich, Тогда, возможно, не прописана ссылка на профиль этого НПС. Пример, спавн-секция НПС: [zat_stalker_employer]:stalker_employer $spawn = "respawn\zat_stalker_employer" character_profile = zat_stalker_employer spec_rank = master community = stalker story_id = zat_stalker_employer can_be_wounded = false custom_data = scripts\SGM\zaton\zat_stalker_employer.ltx
Строка character_profile = zat_stalker_employer отсылает к профилю НПС.
|
| |
|
| Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
| Sandwich | Дата: Сб, 04.05.2013, 00:03 | Сообщение # 364 |
 Зам. Лидера «Свободы»
Свобода
Сообщений: 4340
| sergej5500, нечего не пойму,всё указано вроде верно,делал по кучи уроков а ошибка одна везде [cut=character_desc]<specific_character id="voennyi_01" team_default="1"> <name>GENERATE_NAME_stalker</name> <icon>ui_inGame2_Sich</icon> <map_icon x="1" y="0"></map_icon> <bio>Опытный сталкер. Детальная информация отсутствует.</bio>
<class>voennyi_01</class> <community>army</community> <terrain_sect>stalker_terrain</terrain_sect> <snd_config>characters_voice\human_01\military\</snd_config>
<rank>900</rank> <reputation>0</reputation>
<visual>actors\stalker_soldier\stalker_soldier_1</visual> <supplies> [spawn] \n wpn_ak74 = 1 \n ammo_5.45x39_fmj = 3 \n </supplies> #include "gameplay\character_criticals_4.xml"
<start_dialog>zat_b30_owl_stalker_trader_start_dialog</start_dialog> <actor_dialog>zat_b30_owl_stalker_trader_choose_task</actor_dialog> <actor_dialog>zat_b30_owl_stalker_trader_sell_items</actor_dialog> <actor_dialog>zat_b30_owl_stalker_trader_buy_info</actor_dialog> <!-- actor_dialog>zat_b30_owl_stalker_trader_b40_about_merc_camp</actor_dialog --> <actor_dialog>zat_b30_owl_stalker_trader_stages</actor_dialog> <actor_dialog>zat_b30_owl_stalker_trader_b30_actor_after_barmen</actor_dialog> <actor_dialog>zat_b30_owl_stalker_trader_about_nimble</actor_dialog> <actor_dialog>actor_break_dialog</actor_dialog> </specific_character> [/cut] [cut=nps_profile] <character id="voennyi_01"> <class>voennyi_01</class> <specific_character>voennyi_01</specific_character> </character>[/cut] [cut=spawn_section_military(он указан в spawn_section) ][voennyi_01]:stalker $spawn = "respawn\voennyi_01" character_profile = voennyi_01 spec_rank = novice community = stalker story_id = voennyi_01 can_be_wounded = false [/cut] [cut=all.spawn][2354]
; cse_abstract properties section_name = stalker name = voennyi_01 position = 13.244469, -7.294157, 16.457243 direction = 0,0,0 ; cse_alife_trader_abstract properties money = 5000 character_profile = voennyi_01
; cse_alife_object properties game_vertex_id = 1366 distance = 0 level_vertex_id = 320484 object_flags = 0xffffffbf custom_data = <<END [smart_terrains] END
; cse_alife_creature_abstract properties g_team = 0 g_squad = 1 g_group = 5 health = 1 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 1 upd:timestamp = 0x2009656c upd:creature_flags = 0x3d upd:position = 13.244469,-7.294157,16.457243 upd:o_model = 0 upd:o_torso = 0.00316426996141672,0.062321275472641,0 upd:g_team = 0 upd:g_squad = 1 upd:g_group = 5 ; cse_alife_monster_abstract properties upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0
; cse_alife_human_abstract properties predicate5 = 1,1,0,0,1 predicate4 = 2,2,0,2
; cse_ph_skeleton properties upd:start_dialog = ; se_stalker properties[/cut]
А колбасу и батоны нынче хреновые стали делать! (Умнейший неизвестный сталкер)
|
| |
|
| Эти 0 пользователя(ей) поблагодарили Sandwich за это полезное сообщение: |
|
|
| sergej5500 | Дата: Сб, 04.05.2013, 00:17 | Сообщение # 365 |
 Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Sandwich, Не уверен на 100%, но возможно, этот метод в Зове Припяти не работает. Попробуй заспавнить сталкера иначе. В way_ локации в all.spawn пропиши место спавна. [voennyi_01_look] points = p0 p0:name = wp00 p0:flags = 0x1 p0:position = -513.054443359375,4.84810924530029,102.342498779297 p0:game_vertex_id = 98 p0:level_vertex_id = 37892
Координаты сделай свои. Пропиши рестриктор спавна с логикой типа: [logic] active = sr_idle@voennyi_01_spawner
[sr_idle@voennyi_01_spawner] on_info = {-voennyi_01_spawned} %=spawn_corpse(voennyi_01:voennyi_01_look) +voennyi_01_spawned% on_info2 = {+voennyi_01_spawned} sr_idle@voennyi_01_spawner1
[sr_idle@voennyi_01_spawner1]
|
| |
|
| Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
| FantomICW | Дата: Сб, 04.05.2013, 00:24 | Сообщение # 366 |
 Лидер «Свободы»
Свобода
Сообщений: 4438
| Sandwich, или еще можешь заспавнить нпс через скрипт по нажатию клавиши (урок КМБ №1). Тогда можно будет сделать определенные выводы...
Добавлено (04.05.2013, 00:24) --------------------------------------------- Sandwich, минутку, а что у тебя в spawn_sectiom_military делает параметр can_be_wounded = false? Это вроде из раздела логики в файлах configs/scripts
Сообщение отредактировал FantomICW - Сб, 04.05.2013, 00:24 |
| |
|
| Эти 0 пользователя(ей) поблагодарили FantomICW за это полезное сообщение: |
|
|
| Sandwich | Дата: Сб, 04.05.2013, 00:24 | Сообщение # 367 |
 Зам. Лидера «Свободы»
Свобода
Сообщений: 4340
| sergej5500, у этой локации нет way
А колбасу и батоны нынче хреновые стали делать! (Умнейший неизвестный сталкер)
|
| |
|
| Эти 0 пользователя(ей) поблагодарили Sandwich за это полезное сообщение: |
|
|
| denis2000 | Дата: Сб, 04.05.2013, 00:30 | Сообщение # 368 |
 Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Sandwich, sergej5500, 1. Спавн НПС через all.spawn, работает и в ЗП 2. Если спавнищь этим методом, то надобности в секции [voennyi_01]:stalker - нет! 3. Мне не нравиться секция в all.spawn: a. К чему там [smart_terrains]? b. Почему отсутствует visual_name? c. Странные значения у параметров timestamp и creature_flags
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
| |
|
| Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
| Sandwich | Дата: Сб, 04.05.2013, 00:39 | Сообщение # 369 |
 Зам. Лидера «Свободы»
Свобода
Сообщений: 4340
| denis2000, 3.Делал по уроку,там было так написано,не могу найти нормальный урок для спавна нпс на новой локе с алл спавном
А колбасу и батоны нынче хреновые стали делать! (Умнейший неизвестный сталкер)
Сообщение отредактировал Sandwich - Сб, 04.05.2013, 00:41 |
| |
|
| Эти 0 пользователя(ей) поблагодарили Sandwich за это полезное сообщение: |
|
|
| denis2000 | Дата: Сб, 04.05.2013, 00:42 | Сообщение # 370 |
 Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата (Sandwich) Делал по уроку,там было так написано Там было так написано для ТЧ? Или для ЗП? Для какого декомпилятора ADCD?
Цитата (Sandwich) почему то нпс не спавниться по кнопке ЛОГ есть?
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
| |
|
| Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
| Sandwich | Дата: Сб, 04.05.2013, 00:44 | Сообщение # 371 |
 Зам. Лидера «Свободы»
Свобода
Сообщений: 4340
| denis2000, там было написано для ЗП,не написано для какого декомпилятора,ссылку могу предоставить в лс,с нпс через скрипт всё нормально,ошибся
А колбасу и батоны нынче хреновые стали делать! (Умнейший неизвестный сталкер)
Сообщение отредактировал Sandwich - Сб, 04.05.2013, 00:46 |
| |
|
| Эти 0 пользователя(ей) поблагодарили Sandwich за это полезное сообщение: |
|
|
| denis2000 | Дата: Сб, 04.05.2013, 00:46 | Сообщение # 372 |
 Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата (Sandwich) с нпс через скрипт всё нормально,ошибся Значит однозначно, баг в секции all.spawn
У меня секция выглядит так[cut]Код [escape_996] ; cse_abstract properties section_name = stalker name = esc_colonel_kolyazin position = -137.83,-25.58,-371.73 direction = 0,0,0
; cse_alife_trader_abstract properties money = 0 character_profile = esc_colonel_kolyazin
; cse_alife_object properties game_vertex_id = 20 distance = 0 level_vertex_id = 133518 object_flags = 0xffffffbf custom_data = <<END
[story_object] story_id = esc_colonel_kolyazin
[logic] cfg = scripts\escape\npc\esc_colonel_kolyazin.ltx
[game_info] END
; cse_visual properties visual_name = 0
; cse_alife_creature_abstract properties g_team = 0 g_squad = 0 g_group = 0 health = 0 dynamic_out_restrictions = dynamic_in_restrictions =
upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = -137.83,-25.58,-371.73 upd:o_model = 0 upd:o_torso = 0.000190000006114133,-0.00443700002506375,0 upd:g_team = 0 upd:g_squad = 0 upd:g_group = 0
; cse_alife_monster_abstract properties
upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0
; cse_alife_human_abstract properties predicate5 = 1,2,0,1,0 predicate4 = 1,1,1,1
; cse_ph_skeleton properties
upd:start_dialog =
; se_stalker properties В версии ADCD 2010-05-10 by XiaNi[/cut]
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
| |
|
| Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
| Sandwich | Дата: Сб, 04.05.2013, 01:05 | Сообщение # 373 |
 Зам. Лидера «Свободы»
Свобода
Сообщений: 4340
| denis2000, наверное это неправильный способ спавна.Я использовал урок кмб №1 и вместо файла в папке scripts я сделал секцию в алл спавн по вашему образцу со своими изменениями [cut=алл][2353] ; cse_abstract properties section_name = stalker name = zat_sh_nikitka_skadovsk position = 13.244469,-7.294157,16.457243 direction = 0,0,0
; cse_alife_trader_abstract properties money = 0 character_profile = zat_sh_nikitka_skadovsk
; cse_alife_object properties game_vertex_id = 1366 distance = 0 level_vertex_id = 320484 object_flags = 0xffffffbf custom_data = <<END
[story_object] story_id = esc_colonel_kolyazin
[logic] cfg = scripts\military\zat_sh_nikitka_skadovsk.ltx
[game_info] END
; cse_visual properties visual_name = 0
; cse_alife_creature_abstract properties g_team = 0 g_squad = 0 g_group = 0 health = 0 dynamic_out_restrictions = dynamic_in_restrictions =
upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = 13.244469,-7.294157,16.457243 upd:o_model = 0 upd:o_torso = 0.000190000006114133,-0.00443700002506375,0 upd:g_team = 0 upd:g_squad = 0 upd:g_group = 0
; cse_alife_monster_abstract properties
upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0
; cse_alife_human_abstract properties predicate5 = 1,2,0,1,0 predicate4 = 1,1,1,1
; cse_ph_skeleton properties
upd:start_dialog =
; se_stalker properties
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;[/cut] Ошибка осталась та же
Странно у меня все работает и через скрипт и через all.spawn с вашими-же настройками! Перепроверяйте все снова, пока не заработает. denis2000
А колбасу и батоны нынче хреновые стали делать! (Умнейший неизвестный сталкер)
Сообщение отредактировал Sandwich - Сб, 04.05.2013, 01:05 |
| |
|
| Эти 0 пользователя(ей) поблагодарили Sandwich за это полезное сообщение: |
|
|
| VurdalakOMG | Дата: Сб, 04.05.2013, 13:22 | Сообщение # 374 |
 Гражданский
Пользователи
Сообщений: 18
| всех приветствую,может кто нибудь подскажет как увеличить частоту спавна NCP?допустим что бы спавнились через 12 часов игрового времени.
Кросспостинг наказуем! Делаю вам устное предупреждение. denis2000
|
| |
|
| Эти 0 пользователя(ей) поблагодарили VurdalakOMG за это полезное сообщение: |
|
|
| yakuti | Дата: Ср, 08.05.2013, 16:38 | Сообщение # 375 |
|
Отмычка
Пользователи
Сообщений: 46
| У меня вопрос. Создал сквад, в симуляции не прописывал, но при начале новой игры он все равно спавнится. С чем может быть связано подобное?
|
| |
|
| Эти 0 пользователя(ей) поблагодарили yakuti за это полезное сообщение: |
|
|
|