Модостроение. Спавн и логика
|
|
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 за это полезное сообщение: |
|
|
lychagin0 | Дата: Чт, 30.01.2014, 13:25 | Сообщение # 781 |
Легенда Зоны
Вольные сталкеры
Сообщений: 1303
| Добрый день, подскажите, за что отвечают строки:enter_min_enemy_distance = 15 exit_min_enemy_distance = 10 в секции smart_cover (спавн боевого ковера).
|
|
|
Эти 0 пользователя(ей) поблагодарили lychagin0 за это полезное сообщение: |
|
|
denis2000 | Дата: Чт, 30.01.2014, 13:39 | Сообщение # 782 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| lychagin0, Это значит что НПС может войти в кавер если расстояние до врага не более 15 метров и должен выйти если расстяние будет меньше 10 метров.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
lychagin0 | Дата: Чт, 30.01.2014, 13:43 | Сообщение # 783 |
Легенда Зоны
Вольные сталкеры
Сообщений: 1303
| denis2000, спасибо, ещё вопрос, в описании сказано, что нпс атакует врага если он находится внутри лоопхолы, как можно увеличить эту дистанцию. В стандартном исполнении весь смарт воюет, а бойцы в коверах только с расстояния 10-15 метров.
|
|
|
Эти 0 пользователя(ей) поблагодарили lychagin0 за это полезное сообщение: |
|
|
denis2000 | Дата: Чт, 30.01.2014, 16:54 | Сообщение # 784 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| lychagin0, Вы путаете понятие атаковать врага и заходить/выходить в смарт-ковер, совершенно не зависит будет ли атаковать врага НПС от того находиться он в кавере или нет.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
lychagin0 | Дата: Пт, 31.01.2014, 11:09 | Сообщение # 785 |
Легенда Зоны
Вольные сталкеры
Сообщений: 1303
| denis2000, я может коряво выражаюсь, но меня интересует вот это: "NPC может вести огонь из смарткавера только если противник находится внутри радиуса действия лупхолы." Цитата из help к SDK-07. На счёт зайти/выйти я понял, меня интересует возможность увеличения радиуса действия лупхолы. Спасибо.
|
|
|
Эти 0 пользователя(ей) поблагодарили lychagin0 за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 31.01.2014, 13:21 | Сообщение # 786 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата sergej5500 ( ) Я не вижу ошибки в коде. А с чего вы взяли, что ошибка в этих строках?
lychagin0, Приведенная фраза вообще имеет мало смысла, поскольку: 1. loophole - это анимационное состояние НПС в которое он входит находясь в укрытии, а не область пространства. 2. В loophole входит НПС, а не его противник 3. В SDK для смартковера нет параметров дистанции кроме enter_min_enemy_distance и exit_min_enemy_distance. Отсюда ответ: указанные параметры регулируют момент занятия укрытия и его покидание в зависимости от расстояния до противника, расстояние на котором НПС ведет огонь регулируется в другом месте.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
sergej5500 | Дата: Пт, 31.01.2014, 23:25 | Сообщение # 787 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Добрый вечер. Интересует такой момент. В СГМ есть функция для спавна рестриктора через скрипт. Возможно ли удаление рестриктора через функцию, прописанную в логике этого рестриктора. Например так.
Имя рестриктора - test_restrictor. Инфопорция завершения работы рестриктора - test_restrictor_final. Функция удаления рестриктора в xr_effects - spase_restrictor_delete.
Как должна выглядеть функция spase_restrictor_delete?
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
makdm | Дата: Сб, 01.02.2014, 00:34 | Сообщение # 788 |
Рожденный в СССР
Разработчики
Сообщений: 1294
| sergej5500, примерно так
function spase_restrictor_delete(actor, npc, p) local zone = db.zone_by_name[ p[ 1 ] ] if zone ~= nil then local sobj = alife():object( zone:id() ) alife():release( sobj, true ) end end
Терпение...... И все получится!
|
|
|
Эти 0 пользователя(ей) поблагодарили makdm за это полезное сообщение: |
|
|
gamer | Дата: Пн, 03.02.2014, 13:49 | Сообщение # 789 |
Новичок
Пользователи
Сообщений: 82
| подскажите на какой файл жалуетса (долго искать проблемного нпс)
Сообщение отредактировал gamer - Пн, 03.02.2014, 13:50 |
|
|
Эти 0 пользователя(ей) поблагодарили gamer за это полезное сообщение: |
|
|
FantomICW | Дата: Пн, 03.02.2014, 13:58 | Сообщение # 790 |
Лидер «Свободы»
Свобода
Сообщений: 4438
| gamer, Цитата gamer ( ) map_spots.xml
|
|
|
Эти 0 пользователя(ей) поблагодарили FantomICW за это полезное сообщение: |
|
|
gamer | Дата: Пн, 03.02.2014, 16:10 | Сообщение # 791 |
Новичок
Пользователи
Сообщений: 82
| Проблема была в логики персов которые перетянул из мода.думаю из-за основных квестов.подскажите на любом примере как отключить её , не всю которая приводит к етому вылету.есть у когото спаргалка с логикой чтоб научитса её писать?
Спасибо за помощ
список логик нашол уже не надо
Сообщение отредактировал gamer - Пн, 03.02.2014, 21:56 |
|
|
Эти 0 пользователя(ей) поблагодарили gamer за это полезное сообщение: |
|
|
FantomICW | Дата: Пн, 03.02.2014, 21:51 | Сообщение # 792 |
Лидер «Свободы»
Свобода
Сообщений: 4438
| gamer, на инсайде в разделе Скриптовы есть 5 статей по настройке логики. Надежного способа одним разом отключить всю ненужную логику нету. Нужно отслеживать. Если повезет, то просто убрав НПС из спавна, логика останется нетронутой. Некоторая логика прописана для дефолтных НПС на смарте. Тогда нужно удалять ее со смарта.
|
|
|
Эти 0 пользователя(ей) поблагодарили FantomICW за это полезное сообщение: |
|
|
gamer | Дата: Вт, 04.02.2014, 21:29 | Сообщение # 793 |
Новичок
Пользователи
Сообщений: 82
| Спасибо нашол тоже с трудом ,читаю
Добавлено (04.02.2014, 21:29) --------------------------------------------- как только добовляю спаун торгоца вылет подскажите как с ним боротса
Очень просто добавить переменную terrain в секцию [m_trader]. denis2000
|
|
|
Эти 0 пользователя(ей) поблагодарили gamer за это полезное сообщение: |
|
|
strelok200 | Дата: Ср, 05.02.2014, 20:30 | Сообщение # 794 |
Бывалый
Свобода
Сообщений: 126
| Настроил звук по этим настройкам Но почему-то теперь звук играет везде в прямом смысле. Как такое можно исправить?
|
|
|
Эти 0 пользователя(ей) поблагодарили strelok200 за это полезное сообщение: |
|
|
makdm | Дата: Ср, 05.02.2014, 20:35 | Сообщение # 795 |
Рожденный в СССР
Разработчики
Сообщений: 1294
| strelok200, исходный звук должен быть МОНО, а не СТЕРЕО.
Терпение...... И все получится!
|
|
|
Эти 0 пользователя(ей) поблагодарили makdm за это полезное сообщение: |
|
|