Модостроение. Спавн и логика
|
|
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 за это полезное сообщение: |
|
|
sergej5500 | Дата: Вт, 18.06.2013, 16:19 | Сообщение # 436 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| 9vova8, Полагаю, что нужно редактировать таблицу [monster_relations] в game_relations. Значения ; [1] друг, [0] нейтрал, [-1] враг, [-2] злейший враг.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
Азазель | Дата: Чт, 20.06.2013, 15:07 | Сообщение # 437 |
Новичок
Пользователи
Сообщений: 77
| Всем доброго времени суток. Такой вопрос. Заспавнил нпс через скрипт. Прописал логику meet все хорошо работает. Но вот при добавлении victim нпс же должен вроде как оборачиваться на актора а он так и стоит столбом. Как бы исправить ?
Какая версия? denis2000
|
|
|
Эти 0 пользователя(ей) поблагодарили Азазель за это полезное сообщение: |
|
|
Маркс | Дата: Чт, 20.06.2013, 23:35 | Сообщение # 438 |
Новичок
Пользователи
Сообщений: 73
| Вечер Добрый. Создал НПС.Но не появляется окно диалога.Подскожите?
|
|
|
Эти 0 пользователя(ей) поблагодарили Маркс за это полезное сообщение: |
|
|
FantomICW | Дата: Чт, 20.06.2013, 23:37 | Сообщение # 439 |
Лидер «Свободы»
Свобода
Сообщений: 4438
| Маркс, а у НПС диалог прописан в его секции в файле character_desc_...?
|
|
|
Эти 0 пользователя(ей) поблагодарили FantomICW за это полезное сообщение: |
|
|
Маркс | Дата: Чт, 20.06.2013, 23:43 | Сообщение # 440 |
Новичок
Пользователи
Сообщений: 73
| zaton
|
|
|
Эти 0 пользователя(ей) поблагодарили Маркс за это полезное сообщение: |
|
|
FantomICW | Дата: Чт, 20.06.2013, 23:45 | Сообщение # 441 |
Лидер «Свободы»
Свобода
Сообщений: 4438
| Маркс, так диалог в секции нпс прописан?
|
|
|
Эти 0 пользователя(ей) поблагодарили FantomICW за это полезное сообщение: |
|
|
Маркс | Дата: Чт, 20.06.2013, 23:45 | Сообщение # 442 |
Новичок
Пользователи
Сообщений: 73
| Да [cut noguest=Screen] [/cut]
Сообщение отредактировал Маркс - Чт, 20.06.2013, 23:49 |
|
|
Эти 0 пользователя(ей) поблагодарили Маркс за это полезное сообщение: |
|
|
FantomICW | Дата: Чт, 20.06.2013, 23:52 | Сообщение # 443 |
Лидер «Свободы»
Свобода
Сообщений: 4438
| Маркс, прописана ли секция meet в логике НПС?
|
|
|
Эти 0 пользователя(ей) поблагодарили FantomICW за это полезное сообщение: |
|
|
Маркс | Дата: Чт, 20.06.2013, 23:55 | Сообщение # 444 |
Новичок
Пользователи
Сообщений: 73
| Нет Добавлено (20.06.2013, 23:55) --------------------------------------------- Вот код логики.
[cut noguest=Код Логики] [logic] active = remark1 invulnerable = true inv_max_weight = 1 combat_ignore = combat_ignore danger = danger_ignore
[remark1] no_move = true anim = guard_chasovoy
[danger_ignore] ignore_distance = 5
[/cut]
|
|
|
Эти 0 пользователя(ей) поблагодарили Маркс за это полезное сообщение: |
|
|
FantomICW | Дата: Пт, 21.06.2013, 00:09 | Сообщение # 445 |
Лидер «Свободы»
Свобода
Сообщений: 4438
| Маркс, тогда создаем секцию meet: Код [logic] active = remark1 invulnerable = true inv_max_weight = 1 combat_ignore = combat_ignore danger = danger_ignore
[remark1] no_move = true anim = guard_chasovoy meet = meet_remark1
[danger_ignore] ignore_distance = 5
[meet_remark1] abuse = false use = true allow_break = false meet_on_talking = false
Сообщение отредактировал FantomICW - Пт, 21.06.2013, 00:10 |
|
|
Эти 0 пользователя(ей) поблагодарили FantomICW за это полезное сообщение: |
|
|
Азазель | Дата: Пт, 21.06.2013, 00:33 | Сообщение # 446 |
Новичок
Пользователи
Сообщений: 77
| denis2000, Чистая ЗП 1.6.02. Сейчас переделал схему на такую: Код [logic] active = camper@basmath combat_ignore = combat_ignore
[camper@basmath] path_walk = basmath_walk path_look = basmath_look meet = meet@basmath danger = danger_condition@basmath invulnerable = true
[danger_condition@basmath] ignore_distance = 0 ignore_distance_corpse = 0
[meet@basmath] use = true use_wpn = true meet_talk_enabled = true
|
|
|
Эти 0 пользователя(ей) поблагодарили Азазель за это полезное сообщение: |
|
|
makdm | Дата: Пт, 21.06.2013, 09:06 | Сообщение # 447 |
Рожденный в СССР
Разработчики
Сообщений: 1294
| Азазель, Секцции meet на ЗП и ТЧ отличаются. Вы пишите для ТЧ. Откройте файл xr_meet.script и посмотрите, что и как задаётся в секции meet.
Вот , скажем так, "стандартная" секция.
[cut=Секция][meet@standart] 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 [/cut]
Ну а Вы в неё проставляйте те значения, которые Вам необходимы при встрече ГГ со сталкером
Терпение...... И все получится!
Сообщение отредактировал makdm - Пт, 21.06.2013, 09:56 |
|
|
Эти 0 пользователя(ей) поблагодарили makdm за это полезное сообщение: |
|
|
Азазель | Дата: Пт, 21.06.2013, 14:12 | Сообщение # 448 |
Новичок
Пользователи
Сообщений: 77
| makdm, Благодарю. А где можно посмотреть какой параметр за что отвечает ?
|
|
|
Эти 0 пользователя(ей) поблагодарили Азазель за это полезное сообщение: |
|
|
NIV | Дата: Сб, 22.06.2013, 08:03 | Сообщение # 449 |
Полевой исследователь
Ученые сталкеры
Сообщений: 167
| Подскажите, пожалуйста, ситуация следующая: на Юпитере, при спауне мутантов около научного бункера внутренняя дверь бункера блокируется. Расковырял её, чтобы она не блокировалась, теперь если зайти внутрь при атаке мутантов, ученые становятся красными. Добавил их отношение к ГГ до 5000 (game_relations.ltx), они все равно становятся красными. В логике ученых (jup_b6_scientist_nuclear_physicist.ltx, jup_b6_scientist_biochemist.ltx) не нашел, когда они становятся врагами, можно только заставить их разговаривать с ГГ-врагом. Если перестрелять мутантов, ученые все равно остаются красными (может прошло мало времени?). Вопрос - как сделать так, чтобы ученые были врагами только к мутантам, а не к ГГ?
Изменяем реальность S.T.A.L.K.E.R. CoP: "Цена Новых Исследований" / "New Investigations' Value"
|
|
|
Эти 0 пользователя(ей) поблагодарили NIV за это полезное сообщение: |
|
|
sergej5500 | Дата: Сб, 22.06.2013, 18:38 | Сообщение # 450 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| NIV, Я бы попробовал в файл gamedata\configs\scripts\jupiter\jup_b47_logic во все секции логики добавить код типа: on_info = {-jup_b6_scientist_group_mir} %+jup_b6_scientist_group_mir =set_squad_goodwill(jup_b6_scientist_group:friend)%
on_info нужно присвоить уникальный в данной секции номер, например on_info8.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|