Модостроение. Спавн и логика
|
|
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 за это полезное сообщение: |
|
|
men_stalker | Дата: Ср, 04.05.2016, 12:40 | Сообщение # 1261 |
Инженер «Свободы»
Свобода
Сообщений: 184
| Сахар, ещё раз здравствуйте. Не могли бы вы написать пример такой логики. К примеру к эксклюзиву
Сообщение отредактировал men_stalker - Чт, 05.05.2016, 08:39 |
|
|
Эти 0 пользователя(ей) поблагодарили men_stalker за это полезное сообщение: |
|
|
Сахар | Дата: Пт, 06.05.2016, 04:37 | Сообщение # 1262 |
Гражданский
Пользователи
Сообщений: 2
| Здравствуй, извини что пишу с задержкой были проблемы с интернетом. [cut=Вот как-то так]Код [logic] active = walker@1 ;схема которая запускается первой suitable = {=check_npc_name(профиль НПС)} true ;здесь мы указываем условия при которых можно занять эту работу, в нашем случай мы проверяем профиль НПС prior = 100 ;приоритет чем больше число тем предпочтительней будет работа для НПС (по идей этот параметр в нашем случай не нужен, но я не помню (все-таки год в армий сказался на моих знания в области модинга) обезательно нужно его прописывать или нет) meet = no_meet ; запрещаем НПС говорить с ГГ совсем level_spot = quest_npc ; тип отметки и подписи на карте: quest_npc – важный персонаж, mechanic – техник, trader - торговец. можно также в теорий поставить nil но не факт что сработает, а если и сработает то НПС на карте отмечаться не будет
[walker@1] path_walk = <имя пути> on_info1 = {!is_day} sleeper ; ночь идем спать on_info2 = {=surge_started} walker@surge_cover ;при выбросе прячемся в укрытия
[walker@surge_cover] path_walk = <имя пути> on_info1 = {!is_day} sleeper ; ночь идем спать on_info2 = {=surge_complete} ; выброс кончился идём обратно
[sleeper] path_main = <имя пути> on_info1 = {=is_day =surge_started} walker@surge_cover ;если день и начался выброс то бежим сразу в укрытие on-info2 = {=is_day} walker@1 ;днем едём обратно на свое место [/cut]
|
|
|
Эти 0 пользователя(ей) поблагодарили Сахар за это полезное сообщение: |
|
|
men_stalker | Дата: Пн, 09.05.2016, 17:03 | Сообщение # 1263 |
Инженер «Свободы»
Свобода
Сообщений: 184
| Доброго времени суток, снова вопрос: можно ли члена сквада состоящего из одного нпс сделать без звёздочки, если нет, то можно ли эксклюзиву в логику прописать точку спавна, а то спавнить на одной точке три человека не вариант.
|
|
|
Эти 0 пользователя(ей) поблагодарили men_stalker за это полезное сообщение: |
|
|
denis2000 | Дата: Пн, 09.05.2016, 18:44 | Сообщение # 1264 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата men_stalker ( ) можно ли эксклюзиву в логику прописать точку спавна Нет точка спавна задается для смарта, а не для сквада и тем более для одного из его членов. Если уж так это надо делайте сугубо индивидуального НПС со своей точкой спавна и своей логикой (тогда и звезды не будет).
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
men_stalker | Дата: Вт, 17.05.2016, 16:36 | Сообщение # 1265 |
Инженер «Свободы»
Свобода
Сообщений: 184
| denis2000, здравствуйте
Цитата denis2000 ( ) тогда и звезды не будет А как тогда для этого надо прописать параметр Level_spot?
А и ещё, наблюдается такой баг: когда нпс спавнится через точку пути то он сначала нарезает круги вокруг неё, а только потом идёт по этому пути. Можно ли это как то исправить?
|
|
|
Эти 0 пользователя(ей) поблагодарили men_stalker за это полезное сообщение: |
|
|
denis2000 | Дата: Вт, 17.05.2016, 19:45 | Сообщение # 1266 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата men_stalker ( ) А как тогда для этого надо прописать параметр Level_spot? А в чем проблема?
Цитата men_stalker ( ) Можно ли это как то исправить? Если АИ-сетка в этом месте идеально ровная то спавн в начальной точке пути все решает, если сетка не идеальная то НПС нужно некоторое время чтобы занять указанную позицию.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
men_stalker | Дата: Ср, 18.05.2016, 13:53 | Сообщение # 1267 |
Инженер «Свободы»
Свобода
Сообщений: 184
| denis2000, допустим вот логика эксклюзива [logic@esc_c1_millitary_guard_4] suitable = {=check_npc_name(esc_c1_millitary_guard_4)} active = walker@guard_4 prior = 200
[walker@guard_4] path_walk = guard_4_walk path_look = guard_4_look meet = no_meet
А на мини карте всё равно отображается как лидер отряда (с звездой)
Сообщение отредактировал men_stalker - Ср, 18.05.2016, 13:55 |
|
|
Эти 0 пользователя(ей) поблагодарили men_stalker за это полезное сообщение: |
|
|
sergej5500 | Дата: Ср, 18.05.2016, 14:17 | Сообщение # 1268 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата men_stalker ( ) А на мини карте всё равно отображается как лидер отряда (с звездой)
Наверняка он заспавнен как сквад из одного человека.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
denis2000 | Дата: Ср, 18.05.2016, 16:01 | Сообщение # 1269 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| men_stalker, Все правильно, что написали то и отображается. Чтобы отображалась специальная метка нужен параметр level_spot.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
men_stalker | Дата: Ср, 18.05.2016, 17:43 | Сообщение # 1270 |
Инженер «Свободы»
Свобода
Сообщений: 184
| sergej5500, да вот именно: сквад состоит из одного человека, для что бы спавнить сразу каждого нпс на точке пути (что бы быстро занимали позиции). Так можно сделать чтобы отображался как рядовой (просто точка на мини карте)?
|
|
|
Эти 0 пользователя(ей) поблагодарили men_stalker за это полезное сообщение: |
|
|
sergej5500 | Дата: Ср, 18.05.2016, 17:55 | Сообщение # 1271 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата men_stalker ( ) Так можно сделать чтобы отображался как рядовой
Тогда его нужно спавнить как несквадового сталкера с кастом-датой.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
denis2000 | Дата: Ср, 18.05.2016, 18:24 | Сообщение # 1272 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата men_stalker ( ) Так можно сделать чтобы отображался как рядовой (просто точка на мини карте)? Уважаемый, ну что вы ходите кругами, вам уже давали ответ на этот вопрос! Пост 1264.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
men_stalker | Дата: Чт, 26.05.2016, 09:29 | Сообщение # 1273 |
Инженер «Свободы»
Свобода
Сообщений: 184
| Здравствуйте, такой вопрос: заспавнил через смарт десять эксклюзивов и настроил их пути ,а можно ли чтобы в отсутствие актора они менялись путями?
|
|
|
Эти 0 пользователя(ей) поблагодарили men_stalker за это полезное сообщение: |
|
|
denis2000 | Дата: Чт, 26.05.2016, 11:56 | Сообщение # 1274 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| men_stalker, Тогда зачем вам эксклюзивы? Используйте неэксклюзивные работы в которых назначение НПС на работы рандомное и динамическое. Или используйте несколько секций с разными путями в них и переключайте НПС между ними.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
men_stalker | Дата: Чт, 26.05.2016, 12:16 | Сообщение # 1275 |
Инженер «Свободы»
Свобода
Сообщений: 184
| Цитата denis2000 ( ) Используйте неэксклюзивные работы А как будет выглядеть такая логика? Извините, но не разу ещё не делал не эксклюзивных нпс. Нпс не пойдут гулять по зоне, а останутся в смарте?
Сообщение отредактировал men_stalker - Чт, 26.05.2016, 12:19 |
|
|
Эти 0 пользователя(ей) поблагодарили men_stalker за это полезное сообщение: |
|
|