Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: denis2000, FantomICW  
Модостроение. Спавн и логика
denis2000Дата: Пн, 10.10.2011, 21:20 | Сообщение # 1
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Спавн и логика

Создание объектов на локации и логика поведения этих объектов

Если у вас появились вопросы по созданию динамических объектов в игре (НПС, монстры, аномалии, и т.п.) и настройке их "поведения". Задавайте их в этой теме - умные головы,
модосторители и просто разбирающиеся в программировании люди вам ответят.


Много интересного материала здесь (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 по ссылке из шапки и соседнюю тему "Курс молодого бойца",
возможно Ваш вопрос уже рассматривался.


Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки.
Помните чем подробнее вопрос, тем точнее ответ.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
БарменДата: Вс, 21.08.2016, 22:20 | Сообщение # 1336
Ветеран
Свобода
Сообщений: 370
Награды: 11
Репутация: [ 105 ]

Всем привет народ, будет ли работать вот такая логика, лежащего сталкера.

Код
[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, лежащей сталкер не работает?
 
denis2000Дата: Вс, 21.08.2016, 22:59 | Сообщение # 1337
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата Бармен ()
какую анимацию нужно прописывать, в строке avail_animations

Любую доступную в смартковере.
Цитата Бармен ()
Или на smart_cover, лежащей сталкер не работает?

Пробуйте и узнаете.
А вообще раненный делается на вейпоинте.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
БарменДата: Вс, 21.08.2016, 23:02 | Сообщение # 1338
Ветеран
Свобода
Сообщений: 370
Награды: 11
Репутация: [ 105 ]

Цитата denis2000 ()
А вообще раненный делается на вейпоинте.

Ну я это заметил, минуту назад когда посмотрел, в других проектах.
 
progkuchumovДата: Чт, 15.09.2016, 21:18 | Сообщение # 1339
Отмычка
Пользователи
Сообщений: 38
Награды: 0
Репутация: [ 40 ]

Здравствуйте, уважаемые!

Подскажите пожалуйста, как в ЗП сделать, чтобы НПС звал ГГ, пока к нему не подойдешь? Сколько способов не перепробовал - ни один не работает. Анимацию махания рукой я сделал в way локации параметром a=hello_wpn. Пробовал там же указать звук через s=звуковая_схема - не работает, или я не правильно указываю что то.


 
sergej5500Дата: Чт, 15.09.2016, 21:30 | Сообщение # 1340
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

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
 
progkuchumovДата: Чт, 15.09.2016, 23:08 | Сообщение # 1341
Отмычка
Пользователи
Сообщений: 38
Награды: 0
Репутация: [ 40 ]

Благодарю за помощь, помогло.

Подскажите пожалуйста, как запретить нпсу, чтобы он свои вещи продавал - оружие там, патроны? Смешно, но такую мелочь не могу найти -уже хотел полностью торговлю с ним запретить, поставил trade_enable = false - и ничего, все равно торговля идет. И если можно, ткните меня пожалуйста, где можно посмотреть настройку всех подобных параметров нпс в сталкер зов припяти. Потому что каждую такую мелочь по полдня ищу в сети и натыкаюсь на кучу неработающих вариантов. Смотрел в вики настройку логики - и тоже ничего не нашел. sad


 
GlomarДата: Чт, 15.09.2016, 23:28 | Сообщение # 1342
Хозяин Зоны
Пользователи
Сообщений: 23464
Награды: 62
Репутация: [ 4001 ]

Цитата progkuchumov ()
где можно посмотреть настройку всех подобных параметров нпс в сталкер зов припяти

В интернете можно скачать сборники уроков по модостроению. Есть и видеоуроки.


 
progkuchumovДата: Пт, 16.09.2016, 03:01 | Сообщение # 1343
Отмычка
Пользователи
Сообщений: 38
Награды: 0
Репутация: [ 40 ]

Цитата Glomar ()
В интернете можно скачать сборники уроков по модостроению. Есть и видеоуроки.


Не поверите, у меня 20 вкладок открыто со всякими гайдами и сборниками, и нигде нет того, что мне нужно - или примеры не рабочие. Вот скачал я один сборник - там только показываются конфигурационные файлы торговцев и как им добавлять товары в продажу. Что я и так знаю...

Или не рабочие примеры. Вот trade_enable = false - по гайдам этот параметр отключает торговлю. Но он не работает, и не понятно, почему (((

Добавлено (15.09.2016, 23:53)
---------------------------------------------
Вот нашел:

trade = misc\trade_voron.ltx

Это мне надо значит создать файл, прописать там, что непись продает и покупает и подключить его к логике?
Но тогда допустим, если я запрещу ему продавать оружие, то он и покупать его не будет, а мне нужно, чтобы он мог покупать.

Добавлено (16.09.2016, 03:01)
---------------------------------------------
Прошу прощения, еще раз почитал - разобрался. Если можно, удалите мои сообщения.


 
GlomarДата: Пт, 16.09.2016, 07:36 | Сообщение # 1344
Хозяин Зоны
Пользователи
Сообщений: 23464
Награды: 62
Репутация: [ 4001 ]

Цитата progkuchumov ()
Прошу прощения, еще раз почитал - разобрался. Если можно, удалите мои сообщения.

Если нашёл Николай ответ, то можешь его оставить в своём посте. Возможно другим пользователям пригодиться.


 
progkuchumovДата: Пт, 16.09.2016, 09:28 | Сообщение # 1345
Отмычка
Пользователи
Сообщений: 38
Награды: 0
Репутация: [ 40 ]

Да все элементарно оказалось. Я думал, что надо какой то параметр в логике просто прописать. А надо было создать конфигурационный файл торговли с персонажем по аналогии с торговцами, и подключить его в логике:

trade = misc\trade\trade_персонаж.ltx

В нем и указать, что он может покупать в разделе generic_buy , и продавать generic_sell.

Только два момента все равно оказались непонятными мне:
1. Почему trade_enable = false не отключает торговлю с персонажем? Видимо, надо еще какой то параметр прописать, но я так этого и не нашел.
2. Я запретил в файле торговли продажу патронов, но персонаж все равно продает патроны. Видимо, где то еще какой то параметр срабатывает, а какой - непонятно.


 
denis2000Дата: Пт, 16.09.2016, 10:34 | Сообщение # 1346
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата progkuchumov ()
Почему trade_enable = false не отключает торговлю с персонажем?

Прекрасно отключает если прописано в секции meet.
Цитата progkuchumov ()
Я запретил в файле торговли продажу патронов, но персонаж все равно продает патроны.

Файл торговли приведите.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
progkuchumovДата: Пт, 16.09.2016, 11:01 | Сообщение # 1347
Отмычка
Пользователи
Сообщений: 38
Награды: 0
Репутация: [ 40 ]

Цитата 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 и дробь. Оружие так же прописано, и он его не продает.


 
denis2000Дата: Пт, 16.09.2016, 12:09 | Сообщение # 1348
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

meet = meet прописано не там.

В приведенном фрагменте файла торговли все верно.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
progkuchumovДата: Пт, 16.09.2016, 12:36 | Сообщение # 1349
Отмычка
Пользователи
Сообщений: 38
Награды: 0
Репутация: [ 40 ]

Цитата denis2000 ()
meet = meet прописано не там.


Прописал ради примера в [walker@base] - и заработало. Благодарю. А по файлу торговли - он как патроны продавал, так и продает. Видимо подумал - монстров все равно на локации нет, можно и без патронов ходить biggrin


 
MagadanДата: Пт, 16.09.2016, 15:28 | Сообщение # 1350
Удаленные



progkuchumov полный файл траде лтх выложи, я гляну.
 
Поиск: