Модостроение. Спавн и логика
|
|
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 | Дата: Пн, 28.11.2016, 19:49 | Сообщение # 1396 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата progkuchumov ( ) для каждого сквада надо отдельный смарт-террейн? RTFM!
Цитата progkuchumov ( ) Я имел ввиду что завел из в камп-зону, чтобы логику прописать. Или сквад надо в смарт-ковер занести? Вы смешали в кучу три абсолютно разных термина/понятия. КМБ читайте - полезно. смарт-террейн (smart_terrain) - объект на АИ-сетке к которому приписываются НПС состоящие в сквадах, это лагерь иными словами. Содержит работы для НПС, попадающие в самрт-террен НПС занимают их согласно определенным правилам. камп-зона (camp_zone) - зона, находящиеся в которой НПС подчиняются необходимости рассказывать истории и играть на муз инструментах. смарт-ковер (smart_cover) - область пространства для проигрывания определенных циклов анимаций, бывает боевая или мирная.
Цитата progkuchumov ( ) такое чувство, что мы с вами на разных языках говорим. Конечно на разных - вы даже терминов для начала не знаете и не понимаете, а на отсылки прочесть отвечаете, что примеры не рабочие, но текст то там рабочий!
Цитата progkuchumov ( ) Я этот кмб смотрел - там кстати многие примеры не рабочие Конкретно - что там не работает? Поколения модостроителей училось по нему, а у вас не рабочие - проблема в уроках конечно!
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
progkuchumov | Дата: Пн, 28.11.2016, 20:07 | Сообщение # 1397 |
Отмычка
Пользователи
Сообщений: 38
| denis2000, Я лишь предположил, как надо сделать. Вы мне написали, что надо скваду логику прописать. Я не знал как это сделать, и предположил, что надо камп зону создать. Ткните мне бестолочи, где в КМБ написано, как задавать логику определенному скваду. Чтобы неписи из него делали работу по определённым way пойнтам и только по ним, а не перемешивались в работе с другими сквадами. И как скваду прописать, по каким вай пойнтам его неписи должны ходить, а по каким нет. Добавлено (28.11.2016, 20:01) --------------------------------------------- sergej5500, Сделал, как Вы написали, последовал вылет:
[cut noguest] Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...e.r. - call of pripyat\gamedata\scripts\utils.script:469: bad argument #1 to 'gsub' (string expected, got nil) [/cut]
Насколько я знаю, это типа того, что логика не правильно задана. Где может быть ошибка? Добавлено (28.11.2016, 20:07) --------------------------------------------- denis2000, вместо попытки помочь Вы лишь тешите свое самолюбие и топчите тех, кто знает меньше Вас. А потом на ap-pro появляются статьи о том, что моддинг умирает. Конечно умирает, потому что Вы пинаете всех без разбору - на халяву человек пришёл, или он действительно пытается разобраться, но у него не получается, что то он не может понять, приходит на форум - и получает пинки. Простите, что я не такой уникум, как Вы.
|
|
|
Эти 0 пользователя(ей) поблагодарили progkuchumov за это полезное сообщение: |
|
|
denis2000 | Дата: Пн, 28.11.2016, 20:10 | Сообщение # 1398 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| progkuchumov, Ок. Учитесь - удачи в модостроении.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
sergej5500 | Дата: Пн, 28.11.2016, 20:17 | Сообщение # 1399 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата progkuchumov ( ) Насколько я знаю, это типа того, что логика не правильно задана. Где может быть ошибка?
Выложите логику полностью.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
progkuchumov | Дата: Пн, 28.11.2016, 20:41 | Сообщение # 1400 |
Отмычка
Пользователи
Сообщений: 38
| sergej5500, там вся логика, где я прикладывал. Я не знаю, что там еще должно быть для сквада. Пробовал вот так писать:
[cut noguest] [logic@sim_7_military_sentinel_1_camp] active = walker@sim_7_military_sentinel_1_camp suitable = {=target_squad_name(escape_sim_7_sentinel_1_squad)} true prior = 120
[walker@sim_7_military_sentinel_1_camp] path_walk = esc_sim_7_sentinel_walk [/cut]
Вылет без лога
|
|
|
Эти 0 пользователя(ей) поблагодарили progkuchumov за это полезное сообщение: |
|
|
sergej5500 | Дата: Пн, 28.11.2016, 20:51 | Сообщение # 1401 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| progkuchumov,
Есть две ошибки. Любая из них может привести к вылету.
1. Если ваш смарт называется esc_sim_7, то работа должна называться
path_walk = sentinel_walk
Наименование смарта esc_sim_7 опускается. Или же в all.spawn эта работа должна называться esc_sim_7_esc_sim_7_sentinel_walk
2. Не вижу строки path_look. Она в логике есть?
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
progkuchumov | Дата: Пн, 28.11.2016, 20:54 | Сообщение # 1402 |
Отмычка
Пользователи
Сообщений: 38
| sergej5500, нету, её тоже надо делать? Но ведь тогда будет весь сквад в одну точку глядеть, или нет?
Цитата sergej5500 ( ) path_walk = sentinel_walk
Наименование смарта esc_sim_7 опускается. Или же в all.spawn эта работа должна называться esc_sim_7_esc_sim_7_sentinel_walk
Наверно в этом ошибка у меня.
|
|
|
Эти 0 пользователя(ей) поблагодарили progkuchumov за это полезное сообщение: |
|
|
sergej5500 | Дата: Пн, 28.11.2016, 20:57 | Сообщение # 1403 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата progkuchumov ( ) нету, её тоже надо делать? Но ведь тогда будет весь сквад в одну точку глядеть, или нет?
Точек можно сделать несколько. Для каждого из неписей.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
progkuchumov | Дата: Пн, 28.11.2016, 21:00 | Сообщение # 1404 |
Отмычка
Пользователи
Сообщений: 38
| sergej5500, сделал, но теперь двое на вышке стоят просто, а третий с дороги к ним пошел ходить по уровням вышки. Т.е. мне в логике надо указать точку начала работы path_walk для каждого непися?
|
|
|
Эти 0 пользователя(ей) поблагодарили progkuchumov за это полезное сообщение: |
|
|
sergej5500 | Дата: Пн, 28.11.2016, 21:05 | Сообщение # 1405 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата progkuchumov ( ) логике надо указать точку начала работы path_walk для каждого непися
Обычно каждому неписю делают свой путь path_walk. И свой path_look. Два непися на одной точке плохо смотрятся.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
progkuchumov | Дата: Вт, 29.11.2016, 07:48 | Сообщение # 1406 |
Отмычка
Пользователи
Сообщений: 38
| sergej5500, Вроде сделал - на вышке теперь нормально неписи ходят, но с дороги один из неписей упорно идёт к ним на вышку - и они оба делают одну работу... Ладно, буду дальше сам разбираться. Огромная благодарность за помощь.
Сообщение отредактировал progkuchumov - Вт, 29.11.2016, 09:34 |
|
|
Эти 0 пользователя(ей) поблагодарили progkuchumov за это полезное сообщение: |
|
|
rex44 | Дата: Ср, 30.11.2016, 16:39 | Сообщение # 1407 |
Гражданский
Пользователи
Сообщений: 18
| Народ,напомните мне,как замутить объекты для мп карты ,так что бы они с сервера подкачивались(когда то делал,да забыл как),а то компилить локу каждый раз,как меня "осенит" какая нибудь светлая мысль как то не хочется...
|
|
|
Эти 0 пользователя(ей) поблагодарили rex44 за это полезное сообщение: |
|
|
Shyr | Дата: Чт, 01.12.2016, 12:11 | Сообщение # 1408 |
Отмычка
Пользователи
Сообщений: 38
| denis2000, здравствуйте. Получилось создать way- и lookpint-ы, прописал их в логику НПС, однако он все равно убегает. В чем еще может быть проблема? Прилагаю код логики:
Код [logic] active = walker
[walker] path_walk = aim_walk path_look = aim_look corpse_detection_enabled = false combat_ignore_keep_when_attacked = true combat_ignore_cond = true meet = no_meet use_camp = false
|
|
|
Эти 0 пользователя(ей) поблагодарили Shyr за это полезное сообщение: |
|
|
denis2000 | Дата: Чт, 01.12.2016, 12:26 | Сообщение # 1409 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Shyr, НПС логику не принял, выложите как вы ему прописали.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Shyr | Дата: Чт, 01.12.2016, 12:36 | Сообщение # 1410 |
Отмычка
Пользователи
Сообщений: 38
| denis2000, вот файл секции спавна:
Код [zat_sh_nikitka_skadovsk]:stalker_trader $spawn = "respawn\zat_sh_nikitka_skadovsk" character_profile = zat_sh_nikitka_skadovsk spec_rank = master community = stalker custom_data = scripts\sh\zat_sh_nikitka_skadovsk.ltx или вы что-то другое имели в виду?
Сообщение отредактировал Shyr - Чт, 01.12.2016, 13:55 |
|
|
Эти 0 пользователя(ей) поблагодарили Shyr за это полезное сообщение: |
|
|
|