Модостроение. Спавн и логика
|
|
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 за это полезное сообщение: |
|
|
9vova8 | Дата: Вс, 06.01.2013, 21:53 | Сообщение # 271 |
Новичок
Пользователи
Сообщений: 91
| Доброго времени суток, помогите, пожалуйста, враждебный отряд начинает стрелять по мне только когда я на растоянии меньше 30 метров, раньше -- они не реагируют, даже если по ним выстрелить. Как написать им логику, что бы они сидели на месте но начинали нападать метров за 50 хотя-бы? Спасибо.
Уже обсуждалось, поищите в темах. denis2000
И ещё одна проблема - не спавнится сквад на смарте "zat_b106"
Такого смарта в оригинале нет, есть zat_b106_smart_terrain. А вообще причин может быть очень много. denis2000
denis2000, cкажите, пожалуста, как узнать где нужно ставить ***_smart_terrain, а где нет?
Как заставить отряд начать боевые действия во время движения на точку? Спасибо.
И последняя на сегодня проблема: сделал аномалию по сборнику модосторения, а она только свиду аномалия, а заходишь в неё и ничего(( alife_jupiter_underground.ltx [cut] [6465]
section_name = zone_mine_gravitational_strong name = zone_zat_tramp_road position = 241.850754,11.971478,124.286824 direction = 0,0,0 game_vertex_id = 176 distance = 18.1999988555908 level_vertex_id = 1379667 object_flags = 0xffffff3e shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 0.12 restrictor_type = 3 max_power = 2 offline_interactive_radius = 30 artefact_spawn_count = 0 visual_name = dynamics\anomaly\topolinypuh_big.ogf idle_animation = idle attack_animation = idle[/cut]
Сообщение отредактировал 9vova8 - Вс, 06.01.2013, 19:28 |
|
|
Эти 0 пользователя(ей) поблагодарили 9vova8 за это полезное сообщение: |
|
|
denis2000 | Дата: Вс, 06.01.2013, 23:24 | Сообщение # 272 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата (9vova8) как узнать где нужно ставить ***_smart_terrain, а где нет? Где узнать имя заспавненого в начале игры объекта?
Цитата (9vova8) Как заставить отряд начать боевые действия во время движения на точку? Увидят врага, в радиусе реагирования, сами начнут.
Цитата (9vova8) а она только свиду аномалия Это нормальная аномалия, просто вы в нее попасть не можете, радиус слишком маленький.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
9vova8 | Дата: Пн, 07.01.2013, 00:24 | Сообщение # 273 |
Новичок
Пользователи
Сообщений: 91
| Цитата (denis2000) Увидят врага, в радиусе реагирования, сами начнут.
я прошелся с ними до конечной точки маршрута и они никак не реагировали, при звуках выстрелов шарахались, и то ,некоторые, но не стреляли
Как вам удалось такого добиться? denis2000
Сообщение отредактировал 9vova8 - Пн, 07.01.2013, 19:15 |
|
|
Эти 0 пользователя(ей) поблагодарили 9vova8 за это полезное сообщение: |
|
|
dmitry778 | Дата: Пн, 07.01.2013, 19:08 | Сообщение # 274 |
Советник «Свободы»
Свобода
Сообщений: 727
| Цитата (Pechenegin) Уважаемый denis2000 подскажите имеется ли такая возможность, путем скрипта или каких-нибудь добавлений в файлы, заспаунить появление ГГ не в положеном месте при начале игры у закрытых ворот (ЗП+SGM 1.7), а на выбранной точке координат, требуемой локации по желанию? Ну например где-нибудь на затоне на острове, или на заводе Юпитер? Заранее благодарен. Цитата (XOBAH) Pechenegin, За положение ГГ при старте игры отвечает секция с именем actor (section_name) в all.spawn Но в SGM, ГГ переноситься на его положение посредством строчки db.actor:set_actor_position(vector():set(-323.560,19.464,626.825)) в файле sgm_info.script С помощью этой строки можно указать только расположение на текущей карте, переместить на другую локу нельзя. У меня подобный вопрос. К сожелению ответ уважаемого Хована не помог. Помогите подробнее. Я хочу изменить старт позицию ГГ на затоне в чистом ЗП, в секции 982 поменял координаты, но меня всеравно кидает на старую позицию. Скажите где исправить этот телепорт, чтобы ГГ заспавнился там где надо?
Если у вас чистый ЗП (без SGM), то нужно исправить координаты спавна в all.spawn, будте внимательны они прописаны в секции ДВА раза position и upd:position. denis2000
Добавлено (07.01.2013, 19:08) --------------------------------------------- Да спасибо. Спавн в определенной точке получился но взгляд в нужном направлении добиться не могу. Ставлю направление взгляда в параметре: direction = и upd:o_torso в одну сторону, а ГГ смотрит на 90-то градусов в другую. Может какой другой параметр поправить?
direction, второй параметр - угол поворота (в радианах) в горизонтальной плоскости. denis2000
СОВСЕМ НЕ ВАЖНО ОТ ЧЕГО ПОМРЕШЬ - ГОРАЗДО ВАЖНЕЕ ДЛЯ ЧЕГО РОДИЛСЯ.
Сообщение отредактировал dmitry778 - Пн, 07.01.2013, 17:56 |
|
|
Эти 0 пользователя(ей) поблагодарили dmitry778 за это полезное сообщение: |
|
|
9vova8 | Дата: Пн, 07.01.2013, 19:15 | Сообщение # 275 |
Новичок
Пользователи
Сообщений: 91
| файл логики [cut][logic] on_hit = hit on_combat = combat [combat] combat_type = zombied[/cut]
|
|
|
Эти 0 пользователя(ей) поблагодарили 9vova8 за это полезное сообщение: |
|
|
dmitry778 | Дата: Пн, 07.01.2013, 19:23 | Сообщение # 276 |
Советник «Свободы»
Свобода
Сообщений: 727
| 9vova8, Странно. Но в Вашей логике НПСи должны тупо идти на врага и стрелять в него. Почему-же они не ввязывались в бой?
СОВСЕМ НЕ ВАЖНО ОТ ЧЕГО ПОМРЕШЬ - ГОРАЗДО ВАЖНЕЕ ДЛЯ ЧЕГО РОДИЛСЯ.
|
|
|
Эти 0 пользователя(ей) поблагодарили dmitry778 за это полезное сообщение: |
|
|
9vova8 | Дата: Пн, 07.01.2013, 22:37 | Сообщение # 277 |
Новичок
Пользователи
Сообщений: 91
| я прописал им путешествие по кольцу по смартам в squad_descr_***
У путешествующего сквада нет явно прописанной логики, они реагируют на внешнее окружение в меру движка и некоторых скриптов. denis2000
denis2000, а как им прописать логику?
Никак, логика может быть только у отдельного НПС у отряда ее нет по определению их поведеннием управляет движек. denis2000
Ну допустим, а как тогда прописать логику каждого из отряда, что бы они воевали в походе? Только целевыми смартами, как в КМБ 6а?
Прочитайте ответ выше. denis2000
denis2000, так это же на ТЧ
Что на ТЧ? denis2000
Сообщение отредактировал 9vova8 - Пн, 07.01.2013, 22:37 |
|
|
Эти 0 пользователя(ей) поблагодарили 9vova8 за это полезное сообщение: |
|
|
dmitry778 | Дата: Пн, 07.01.2013, 22:46 | Сообщение # 278 |
Советник «Свободы»
Свобода
Сообщений: 727
| Цитата (dmitry778) direction, второй параметр - угол поворота (в радианах) в горизонтальной плоскости. denis2000 Так я менял этот параметр. А ГГ все равно смотрит на ЮГ, как при спавне орига. А мне нужно чтобы ГГ смотрел на запад. Я снимал координаты и подставлял их но ГГ ни в какую не хочет смотреть туда куда мне нужно.
Да, первый параметр upd:o_torso, тоже нужно менять. denis2000
СОВСЕМ НЕ ВАЖНО ОТ ЧЕГО ПОМРЕШЬ - ГОРАЗДО ВАЖНЕЕ ДЛЯ ЧЕГО РОДИЛСЯ.
|
|
|
Эти 0 пользователя(ей) поблагодарили dmitry778 за это полезное сообщение: |
|
|
sergej5500 | Дата: Пн, 07.01.2013, 23:00 | Сообщение # 279 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| dmitry778, Не уверен на 100%, но возможно, за напрвление взгляда ГГ отвечают секции в файле way_zaton.
[cut=Секции][zat_a1_actor_start_game_look] points = p0 p0:name = wp00 p0:flags = 0x1 p0:position = 250.414016723633,18.2857513427734,528.658752441406 p0:game_vertex_id = 292 p0:level_vertex_id = 1395112
[zat_a1_actor_start_game_walk] points = p0 p0:name = wp00 p0:flags = 0x1 p0:position = 258.208831787109,19.5830554962158,548.210571289063 p0:game_vertex_id = 292 p0:level_vertex_id = 1408873[/cut]
Возможно, zat_a1_actor_start_game_look - точка появления ГГ, а zat_a1_actor_start_game_walk - точка, куда он смотрит. Попробуйте поменять параметры в этих секциях.
Нет эти секции никак не задействованы. denis2000
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
dmitry778 | Дата: Пн, 07.01.2013, 23:18 | Сообщение # 280 |
Советник «Свободы»
Свобода
Сообщений: 727
| sergej5500, Спасибо, попробую. Но мне кажется, что [zat_a1_actor_start_game_look] Это первая точка старта спавна ГГ, а [zat_a1_actor_start_game_walk] это точка куда переносит ГГ после спавна на пару метров, чтобы игра не вылетела. Это типо создания переходов. Когда ГГ переносится на пару метров от перехода, чтобы обратно не выкинуло. Но я попробую.
Добавлено (07.01.2013, 23:18) --------------------------------------------- Цитата (dmitry778) Да, первый параметр upd:o_torso, тоже нужно менять. denis2000 Так я ставил измененные параметры direction и upd:o_torso и ГГ стал смотреть на восток, а не на запад. Не могу понять почему. И какие бы я не ставил значения в этих параметрах ГГ всеравно смотрит на восток.
Диапазон значений угла в радианах от -ПИ до +ПИ. 0 - это приблизительно смотрит на юг. Первое значение upd:o_torso и второе direction. denis2000
СОВСЕМ НЕ ВАЖНО ОТ ЧЕГО ПОМРЕШЬ - ГОРАЗДО ВАЖНЕЕ ДЛЯ ЧЕГО РОДИЛСЯ.
|
|
|
Эти 0 пользователя(ей) поблагодарили dmitry778 за это полезное сообщение: |
|
|
9vova8 | Дата: Пн, 07.01.2013, 23:24 | Сообщение # 281 |
Новичок
Пользователи
Сообщений: 91
| Цитата (9vova8) Прочитайте ответ выше. denis2000
Это о постe Aaза?
Это о моем ответе тебе. Или сквад (им в основном управляет движек) или инливидуальная логика (тут возможностей управлять из скриптов гораздо больше). denis2000
Сообщение отредактировал 9vova8 - Пн, 07.01.2013, 23:55 |
|
|
Эти 0 пользователя(ей) поблагодарили 9vova8 за это полезное сообщение: |
|
|
dmitry778 | Дата: Вт, 08.01.2013, 10:34 | Сообщение # 282 |
Советник «Свободы»
Свобода
Сообщений: 727
| Цитата (dmitry778) Диапазон значений угла в радианах от -ПИ до +ПИ. 0 - это приблизительно смотрит на юг. Первое значение upd:o_torso и второе direction. denis2000 Т.е. Я так понимаю, что если за 0 берем ЮГ то -ПИ - это ближе к востоку, +ПИ - это ближе к западу.Добавлено (08.01.2013, 10:34) --------------------------------------------- Ad = Ar * 180 / пи Где Ad — угол в градусах, Ar — угол в радианах. То получается подставляя параметры взгляда получаемые при снятии координат согласно данной формуле можно понять направление в градусах? Но в каком параметре: direction или upd:o_torso или там и там должен быть одинаковый параметр. И там в параметре три значения все вычислять? Или можно поставить везде 0 и ГГ будет смотреть на ЮГ?
СОВСЕМ НЕ ВАЖНО ОТ ЧЕГО ПОМРЕШЬ - ГОРАЗДО ВАЖНЕЕ ДЛЯ ЧЕГО РОДИЛСЯ.
|
|
|
Эти 0 пользователя(ей) поблагодарили dmitry778 за это полезное сообщение: |
|
|
sergej5500 | Дата: Вт, 08.01.2013, 10:35 | Сообщение # 283 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| dmitry778 ПИ - это 180 градусов. 90 градусов - это ПИ/2 или 1.57.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
dmitry778 | Дата: Вт, 08.01.2013, 10:43 | Сообщение # 284 |
Советник «Свободы»
Свобода
Сообщений: 727
| sergej5500, Да я знаю. Мне просто понять. Правильный у меня ход мысли при вычислении координат?
СОВСЕМ НЕ ВАЖНО ОТ ЧЕГО ПОМРЕШЬ - ГОРАЗДО ВАЖНЕЕ ДЛЯ ЧЕГО РОДИЛСЯ.
|
|
|
Эти 0 пользователя(ей) поблагодарили dmitry778 за это полезное сообщение: |
|
|
9vova8 | Дата: Вт, 08.01.2013, 11:11 | Сообщение # 285 |
Новичок
Пользователи
Сообщений: 91
| denis2000, так индивидуальная логика у меня прописана только на бой, а почему не воюют?
А подробности? denis2000
|
|
|
Эти 0 пользователя(ей) поблагодарили 9vova8 за это полезное сообщение: |
|
|
|