Модостроение. Спавн и логика
|
|
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 за это полезное сообщение: |
|
|
Азазель | Дата: Вс, 23.06.2013, 00:43 | Сообщение # 451 |
Новичок
Пользователи
Сообщений: 77
| Всем доброго времени суток. Такая проблемка. Заспавнил нпс через смарт террейн. Добавил смарт сам как положено. В логике эксклюзив прописал логику нпс тоже. Сквад дескприпшен на затоне есть. Симуляцию поставил на скадовске (точно знаю что там надо сам нпс на верхненй палубе должен быть) Но вот беда в том что при заходе в игру нпса то и нету
|
|
|
Эти 0 пользователя(ей) поблагодарили Азазель за это полезное сообщение: |
|
|
FantomICW | Дата: Вс, 23.06.2013, 12:17 | Сообщение # 452 |
Лидер «Свободы»
Свобода
Сообщений: 4438
| Азазель, приветствую. Вы же вроде модостроитель опытный и должны понимать, что без приведенных секций Вам никто помочь не сможет. Телепатов в мире не много.
Сообщение отредактировал FantomICW - Вс, 23.06.2013, 12:17 |
|
|
Эти 0 пользователя(ей) поблагодарили FantomICW за это полезное сообщение: |
|
|
Азазель | Дата: Вс, 23.06.2013, 14:51 | Сообщение # 453 |
Новичок
Пользователи
Сообщений: 77
| FantomICW, Да что то я тупанул Вот архив в нем все файлы кроме симуляции http://yadi.sk/d/9of6Fo9y64Vry
|
|
|
Эти 0 пользователя(ей) поблагодарили Азазель за это полезное сообщение: |
|
|
FantomICW | Дата: Вс, 23.06.2013, 15:13 | Сообщение # 454 |
Лидер «Свободы»
Свобода
Сообщений: 4438
| Азазель, а в spawn_sections_... НПСу логику прописывал?
|
|
|
Эти 0 пользователя(ей) поблагодарили FantomICW за это полезное сообщение: |
|
|
Азазель | Дата: Вс, 23.06.2013, 15:49 | Сообщение # 455 |
Новичок
Пользователи
Сообщений: 77
| FantomICW, В уроке ничего не сказано про этот файл... Я его не трогал даже. Добавлено (23.06.2013, 15:49) --------------------------------------------- [zat_basmath]:stalker $spawn = "respawn\zat_basmath" character_profile = zat_basmath spec_rank = master community = stalker custom_data = scripts\mod\logic_basmath.ltx Вот там секция. Прописал всетаки...
|
|
|
Эти 0 пользователя(ей) поблагодарили Азазель за это полезное сообщение: |
|
|
denis2000 | Дата: Вс, 23.06.2013, 20:03 | Сообщение # 456 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Азазель, У меня с вашими настройками все работает! Стоит где поставили, бессмертен диалог можно начать. Единственное конечно профиль НПС стандартный, а логика естественно задана экслюзивом на смарте.
Посему для начала определитесь: если задаете логику через эсклюзив, то никакой кастомдаты и спавн через simulation.ltx; если логика через кастомдату, то спавн скриптом или через all.spawn и тогда никаких сквадов!
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Азазель | Дата: Вс, 23.06.2013, 21:43 | Сообщение # 457 |
Новичок
Пользователи
Сообщений: 77
| denis2000, Вот я замучался уже. НПСа нету. Сейчас второй раз переделывал. Делал по уроку спавн нпс с смартом. Уже не знаю что делать простоДобавлено (23.06.2013, 21:43) --------------------------------------------- denis2000, Кастом дата в симуляции не прописывается ведь. Из спавн секшен файла её убрал в этот раз. Смотрел на стандартные. Может связано быть с вырезанием сюжета ? И еще через алл спавн и скрипты спавнил. НПС через алл спавн не реагировал на логику вообще. Тот что скриптами не реагировал на meet.
|
|
|
Эти 0 пользователя(ей) поблагодарили Азазель за это полезное сообщение: |
|
|
denis2000 | Дата: Вс, 23.06.2013, 22:12 | Сообщение # 458 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Азазель, Вот сравните. Цитата (Азазель) Кастом дата в симуляции не прописывается ведь. Нет конечно. Цитата (Азазель) Может связано быть с вырезанием сюжета? Нет это никак не связано. Цитата (Азазель) НПС через алл спавн не реагировал на логику вообще Это потому что вы ее не задали в all.spawn Цитата (Азазель) Тот что скриптами не реагировал на meet Скорее он не принял логику в принципе, нежели не реагировал на конкретную секцию.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Азазель | Дата: Вс, 23.06.2013, 22:29 | Сообщение # 459 |
Новичок
Пользователи
Сообщений: 77
| denis2000, Задавал логику при спавне в алл спавн. Была та же что и я скинул. Параметры те же. Нашел своего басмача. Тот оказывается заспавнился сидящим опустив голову вниз за кормой Скадовска. В паре метров справа. Как решить данную проблему ? Влияет ли на это параметр смещения в настройках смарта ?Добавлено (23.06.2013, 22:29) --------------------------------------------- denis2000, Нет не влияет) Ничего не изменилось нпс за кормой стоит. Как решить эту проблему можно ? Все координаты точек и смарта внутри корабля
|
|
|
Эти 0 пользователя(ей) поблагодарили Азазель за это полезное сообщение: |
|
|
denis2000 | Дата: Вс, 23.06.2013, 22:55 | Сообщение # 460 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Азазель, Опять полемика без фактов.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Азазель | Дата: Вс, 23.06.2013, 22:57 | Сообщение # 461 |
Новичок
Пользователи
Сообщений: 77
| denis2000, Как же без фактов. Координаты сняты на скадовске рядом с стойкой бармена. Там же где и торговец в SGM 1.7 кстати говоря. Эти координаты указывал в path_walk path_look и в спавн поинте.
|
|
|
Эти 0 пользователя(ей) поблагодарили Азазель за это полезное сообщение: |
|
|
denis2000 | Дата: Вс, 23.06.2013, 23:03 | Сообщение # 462 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Азазель, Тогда ничем не могу помочь.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Азазель | Дата: Пн, 24.06.2013, 01:35 | Сообщение # 463 |
Новичок
Пользователи
Сообщений: 77
| Нашел свой ужас Я в смарт терейне прописал дистанцию 1. Думал спавн точнее будет. Теперь все норм. Как отредактировать теперь логику ? А от нпс сгибается мордой в пол. [logic@zat_basmath] active = walker@basmath combat_ignore = combat_ignore
[walker@basmath] path_walk = zat_basmath_smart_basmath_walk path_look = basmath_look meet = meet@basmath def_state_standing = guard_na def_state_moving = assault
[meet@basmath] close_anim = nil close_victim = nil close_snd_hello = nil close_snd_bye = nil far_anim = nil far_victim = nil close_distance = 0 far_distance = 0 use = {=actor_enemy} false, true allow_break = false trade_enable = false meet_on_talking = false abuse = false Логика такая
|
|
|
Эти 0 пользователя(ей) поблагодарили Азазель за это полезное сообщение: |
|
|
makdm | Дата: Пн, 24.06.2013, 09:58 | Сообщение # 464 |
Рожденный в СССР
Разработчики
Сообщений: 1294
| Азазель, в логике смарта нужно прописать работу на смарте ( секция [exclusive] ).
А в логике работы - назначить её вашему НПС.
[logic@zat_basmath] active = walker@basmath suitable = {=check_npc_name( zat_basmath )} true
И не забывайте, что секции path_walk и path_look в файле all.spawn ( в вашем случае zat_basmath_smart_basmath_walk и basmath_look ), должны начинаться с имени смарта.
Терпение...... И все получится!
Сообщение отредактировал makdm - Пн, 24.06.2013, 10:42 |
|
|
Эти 0 пользователя(ей) поблагодарили makdm за это полезное сообщение: |
|
|
NIV | Дата: Вт, 25.06.2013, 20:21 | Сообщение # 465 |
Полевой исследователь
Ученые сталкеры
Сообщений: 167
| sergej5500, спасибо за подсказку. Правда, такого инфопоршня не существует. Сработало - добавить Герману (jup_b6_scientist_nuclear_physicist.ltx) во все секции: on_info = {=actor_enemy} %=set_squad_goodwill(jup_b6_scientist_group:friend)% Добавлено (25.06.2013, 20:21) --------------------------------------------- Обнаружил сегодня занимательный косяк: при спауне инвентарного ящика (inventory_box) ему можно прописать практически любой визуал, кроме визуалов самого инвентарного ящика (dynamics\equipment_cache\equipment_box_01_case например). Визуалы из этой папки почему-то не видно (получается невидимый ящик). В чем тут может быть дело?
Изменяем реальность S.T.A.L.K.E.R. CoP: "Цена Новых Исследований" / "New Investigations' Value"
|
|
|
Эти 0 пользователя(ей) поблагодарили NIV за это полезное сообщение: |
|
|