Модостроение. Спавн и логика
|
|
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 за это полезное сообщение: |
|
|
Бармен | Дата: Вс, 21.08.2016, 22:20 | Сообщение # 1336 |
Ветеран
Свобода
Сообщений: 370
| Всем привет народ, будет ли работать вот такая логика, лежащего сталкера.
Код [logic] active = animpoint@wounded prior = 200
[animpoint@wounded] cover_name = wounded_smart_cover avail_animations = ??? combat_ignore_cond = true combat_ignore_keep_when_attacked = true wounded = wounded
[wounded] hp_state = 0|wounded_heavy@help_heavy hp_state_see = 0|wounded_heavy@help_heavy hp_victim = 0|nil hp_fight = 0|false hp_cover = 0|false И что какую анимацию нужно прописывать, в строке avail_animations. Или на smart_cover, лежащей сталкер не работает?
|
|
|
Эти 0 пользователя(ей) поблагодарили Бармен за это полезное сообщение: |
|
|
denis2000 | Дата: Вс, 21.08.2016, 22:59 | Сообщение # 1337 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата Бармен ( ) какую анимацию нужно прописывать, в строке avail_animations Любую доступную в смартковере.
Цитата Бармен ( ) Или на smart_cover, лежащей сталкер не работает? Пробуйте и узнаете. А вообще раненный делается на вейпоинте.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Бармен | Дата: Вс, 21.08.2016, 23:02 | Сообщение # 1338 |
Ветеран
Свобода
Сообщений: 370
| Цитата denis2000 ( ) А вообще раненный делается на вейпоинте. Ну я это заметил, минуту назад когда посмотрел, в других проектах.
|
|
|
Эти 0 пользователя(ей) поблагодарили Бармен за это полезное сообщение: |
|
|
progkuchumov | Дата: Чт, 15.09.2016, 21:18 | Сообщение # 1339 |
Отмычка
Пользователи
Сообщений: 38
| Здравствуйте, уважаемые!
Подскажите пожалуйста, как в ЗП сделать, чтобы НПС звал ГГ, пока к нему не подойдешь? Сколько способов не перепробовал - ни один не работает. Анимацию махания рукой я сделал в way локации параметром a=hello_wpn. Пробовал там же указать звук через s=звуковая_схема - не работает, или я не правильно указываю что то.
|
|
|
Эти 0 пользователя(ей) поблагодарили progkuchumov за это полезное сообщение: |
|
|
sergej5500 | Дата: Чт, 15.09.2016, 21:30 | Сообщение # 1340 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| progkuchumov,
Звуковое сопровождение у сталкера можно вызвать из логики. Что то вроде:
on_info = {=dist_to_actor_le(15) -stalker_play_sound} %+stalker_play_sound =play_sound(stalker_play_sound_sheme)%
Параметры:
dist_to_actor_le(15) - при дистанции до сталкера меньше 15 метров он начнёт говорить.
stalker_play_sound - инфопорция, выдаваемая при озвучке.
stalker_play_sound_sheme - название звуковой схемы, которую выдаст сталкер. Схема прописывается в файл gamedata\configs\misc\script_sound
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
progkuchumov | Дата: Чт, 15.09.2016, 23:08 | Сообщение # 1341 |
Отмычка
Пользователи
Сообщений: 38
| Благодарю за помощь, помогло.
Подскажите пожалуйста, как запретить нпсу, чтобы он свои вещи продавал - оружие там, патроны? Смешно, но такую мелочь не могу найти -уже хотел полностью торговлю с ним запретить, поставил trade_enable = false - и ничего, все равно торговля идет. И если можно, ткните меня пожалуйста, где можно посмотреть настройку всех подобных параметров нпс в сталкер зов припяти. Потому что каждую такую мелочь по полдня ищу в сети и натыкаюсь на кучу неработающих вариантов. Смотрел в вики настройку логики - и тоже ничего не нашел.
|
|
|
Эти 0 пользователя(ей) поблагодарили progkuchumov за это полезное сообщение: |
|
|
Glomar | Дата: Чт, 15.09.2016, 23:28 | Сообщение # 1342 |
Хозяин Зоны
Пользователи
Сообщений: 23464
| Цитата progkuchumov ( ) где можно посмотреть настройку всех подобных параметров нпс в сталкер зов припяти В интернете можно скачать сборники уроков по модостроению. Есть и видеоуроки.
|
|
|
Эти 0 пользователя(ей) поблагодарили Glomar за это полезное сообщение: |
|
|
progkuchumov | Дата: Пт, 16.09.2016, 03:01 | Сообщение # 1343 |
Отмычка
Пользователи
Сообщений: 38
| Цитата Glomar ( ) В интернете можно скачать сборники уроков по модостроению. Есть и видеоуроки.
Не поверите, у меня 20 вкладок открыто со всякими гайдами и сборниками, и нигде нет того, что мне нужно - или примеры не рабочие. Вот скачал я один сборник - там только показываются конфигурационные файлы торговцев и как им добавлять товары в продажу. Что я и так знаю...
Или не рабочие примеры. Вот trade_enable = false - по гайдам этот параметр отключает торговлю. Но он не работает, и не понятно, почему (((Добавлено (15.09.2016, 23:53) --------------------------------------------- Вот нашел:
trade = misc\trade_voron.ltx
Это мне надо значит создать файл, прописать там, что непись продает и покупает и подключить его к логике? Но тогда допустим, если я запрещу ему продавать оружие, то он и покупать его не будет, а мне нужно, чтобы он мог покупать. Добавлено (16.09.2016, 03:01) --------------------------------------------- Прошу прощения, еще раз почитал - разобрался. Если можно, удалите мои сообщения.
|
|
|
Эти 0 пользователя(ей) поблагодарили progkuchumov за это полезное сообщение: |
|
|
Glomar | Дата: Пт, 16.09.2016, 07:36 | Сообщение # 1344 |
Хозяин Зоны
Пользователи
Сообщений: 23464
| Цитата progkuchumov ( ) Прошу прощения, еще раз почитал - разобрался. Если можно, удалите мои сообщения. Если нашёл Николай ответ, то можешь его оставить в своём посте. Возможно другим пользователям пригодиться.
|
|
|
Эти 0 пользователя(ей) поблагодарили Glomar за это полезное сообщение: |
|
|
progkuchumov | Дата: Пт, 16.09.2016, 09:28 | Сообщение # 1345 |
Отмычка
Пользователи
Сообщений: 38
| Да все элементарно оказалось. Я думал, что надо какой то параметр в логике просто прописать. А надо было создать конфигурационный файл торговли с персонажем по аналогии с торговцами, и подключить его в логике:
trade = misc\trade\trade_персонаж.ltx
В нем и указать, что он может покупать в разделе generic_buy , и продавать generic_sell.
Только два момента все равно оказались непонятными мне: 1. Почему trade_enable = false не отключает торговлю с персонажем? Видимо, надо еще какой то параметр прописать, но я так этого и не нашел. 2. Я запретил в файле торговли продажу патронов, но персонаж все равно продает патроны. Видимо, где то еще какой то параметр срабатывает, а какой - непонятно.
|
|
|
Эти 0 пользователя(ей) поблагодарили progkuchumov за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 16.09.2016, 10:34 | Сообщение # 1346 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата progkuchumov ( ) Почему trade_enable = false не отключает торговлю с персонажем? Прекрасно отключает если прописано в секции meet.
Цитата progkuchumov ( ) Я запретил в файле торговли продажу патронов, но персонаж все равно продает патроны. Файл торговли приведите.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
progkuchumov | Дата: Пт, 16.09.2016, 11:01 | Сообщение # 1347 |
Отмычка
Пользователи
Сообщений: 38
| Цитата denis2000 ( ) Прекрасно отключает если прописано в секции meet. Нет, не срабатывает, вот посмотрите файл логики: [cut noguest=predbannik_luki.ltx] [logic] active = walker@base on_combat = combat meet = meet
[walker@base] path_walk = predbannik_luki_walk path_look = predbannik_luki_look on_info = {=dist_to_actor_le(15) -luki_play_sound} %+luki_play_sound =play_sound(zat_b106_gonta_to_actor)%
[combat] combat_type =
[meet] abuse = false use = true allow_break = false meet_on_talking = false trade_enable = false [/cut]
Стартую игру, подхожу к нему - торговля идет.
Цитата denis2000 ( ) Файл торговли приведите.
[cut noguest=Вот] [trader] buy_condition = generic_buy sell_condition = generic_sell
buy_item_condition_factor = 0.7
[generic_sell] ammo_9x18_fmj ;NO TRADE ammo_9x18_pmm ;NO TRADE ammo_9x19_pbp ;NO TRADE ammo_9x19_fmj ;NO TRADE ammo_11.43x23_hydro ;NO TRADE ammo_11.43x23_fmj ;NO TRADE ammo_12x70_buck ;NO TRADE ammo_12x76_zhekan ;NO TRADE ammo_5.45x39_ap ;NO TRADE ammo_5.45x39_fmj ;NO TRADE ammo_9x39_ap ;NO TRADE ammo_9x39_pab9 ;NO TRADE ammo_5.56x45_ss190 ;NO TRADE ammo_5.56x45_ap ;NO TRADE ammo_7.62x54_7h1 ;NO TRADE ammo_og-7b ;NO TRADE ammo_vog-25 ;NO TRADE grenade_f1 ;NO TRADE grenade_rgd5 ;NO TRADE ammo_m209 ;NO TRADE ammo_pkm_100 ;NO TRADE ammo_gauss ;NO TRADE ammo_gauss_cardan ;NO TRADE [/cut]
Вставил только часть файла естественно. В итоге в продаже у него патроны 9x18 и дробь. Оружие так же прописано, и он его не продает.
|
|
|
Эти 0 пользователя(ей) поблагодарили progkuchumov за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 16.09.2016, 12:09 | Сообщение # 1348 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| meet = meet прописано не там.
В приведенном фрагменте файла торговли все верно.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
progkuchumov | Дата: Пт, 16.09.2016, 12:36 | Сообщение # 1349 |
Отмычка
Пользователи
Сообщений: 38
| Цитата denis2000 ( ) meet = meet прописано не там.
Прописал ради примера в [walker@base] - и заработало. Благодарю. А по файлу торговли - он как патроны продавал, так и продает. Видимо подумал - монстров все равно на локации нет, можно и без патронов ходить
|
|
|
Эти 0 пользователя(ей) поблагодарили progkuchumov за это полезное сообщение: |
|
|
Magadan | Дата: Пт, 16.09.2016, 15:28 | Сообщение # 1350 |
Удаленные
| progkuchumov полный файл траде лтх выложи, я гляну.
|
|
|
Эти 0 пользователя(ей) поблагодарили Magadan за это полезное сообщение: |
|
|
|