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


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


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
АзазельДата: Вс, 23.06.2013, 00:43 | Сообщение # 451
Новичок
Пользователи
Сообщений: 77
Награды: 0
Репутация: [ 0 ]

Всем доброго времени суток. Такая проблемка. Заспавнил нпс через смарт террейн.
Добавил смарт сам как положено. В логике эксклюзив прописал логику нпс тоже. Сквад дескприпшен на затоне есть. Симуляцию поставил на скадовске (точно знаю что там надо сам нпс на верхненй палубе должен быть)
Но вот беда в том что при заходе в игру нпса то и нету
 
FantomICWДата: Вс, 23.06.2013, 12:17 | Сообщение # 452
Лидер «Свободы»
Свобода
Сообщений: 4438
Награды: 44
Репутация: [ 1340 ]

Азазель, приветствую. Вы же вроде модостроитель опытный и должны понимать, что без приведенных секций Вам никто помочь не сможет. Телепатов в мире не много.




Сообщение отредактировал FantomICW - Вс, 23.06.2013, 12:17
 
АзазельДата: Вс, 23.06.2013, 14:51 | Сообщение # 453
Новичок
Пользователи
Сообщений: 77
Награды: 0
Репутация: [ 0 ]

FantomICW, Да что то я тупанул smile Вот архив в нем все файлы кроме симуляции
http://yadi.sk/d/9of6Fo9y64Vry
 
FantomICWДата: Вс, 23.06.2013, 15:13 | Сообщение # 454
Лидер «Свободы»
Свобода
Сообщений: 4438
Награды: 44
Репутация: [ 1340 ]

Азазель, а в spawn_sections_... НПСу логику прописывал?


 
АзазельДата: Вс, 23.06.2013, 15:49 | Сообщение # 455
Новичок
Пользователи
Сообщений: 77
Награды: 0
Репутация: [ 0 ]

FantomICW, В уроке ничего не сказано про этот файл... Я его не трогал даже.

Добавлено (23.06.2013, 15:49)
---------------------------------------------
[zat_basmath]:stalker
$spawn = "respawn\zat_basmath"
character_profile = zat_basmath
spec_rank = master
community = stalker
custom_data = scripts\mod\logic_basmath.ltx
Вот там секция. Прописал всетаки...

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

Азазель, У меня с вашими настройками все работает! Стоит где поставили, бессмертен диалог можно начать. Единственное конечно профиль НПС стандартный, а логика естественно задана экслюзивом на смарте.

Посему для начала определитесь: если задаете логику через эсклюзив, то никакой кастомдаты и спавн через simulation.ltx; если логика через кастомдату, то спавн скриптом или через all.spawn и тогда никаких сквадов!


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
АзазельДата: Вс, 23.06.2013, 21:43 | Сообщение # 457
Новичок
Пользователи
Сообщений: 77
Награды: 0
Репутация: [ 0 ]

denis2000, Вот я замучался уже. НПСа нету. Сейчас второй раз переделывал. Делал по уроку спавн нпс с смартом.
Уже не знаю что делать просто

Добавлено (23.06.2013, 21:43)
---------------------------------------------
denis2000, Кастом дата в симуляции не прописывается ведь. Из спавн секшен файла её убрал в этот раз. Смотрел на стандартные. Может связано быть с вырезанием сюжета ?
И еще через алл спавн и скрипты спавнил. НПС через алл спавн не реагировал на логику вообще. Тот что скриптами не реагировал на meet.

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

Азазель, Вот сравните.
Цитата (Азазель)
Кастом дата в симуляции не прописывается ведь.

Нет конечно.
Цитата (Азазель)
Может связано быть с вырезанием сюжета?

Нет это никак не связано.
Цитата (Азазель)
НПС через алл спавн не реагировал на логику вообще

Это потому что вы ее не задали в all.spawn
Цитата (Азазель)
Тот что скриптами не реагировал на meet

Скорее он не принял логику в принципе, нежели не реагировал на конкретную секцию.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
АзазельДата: Вс, 23.06.2013, 22:29 | Сообщение # 459
Новичок
Пользователи
Сообщений: 77
Награды: 0
Репутация: [ 0 ]

denis2000, Задавал логику при спавне в алл спавн. Была та же что и я скинул. Параметры те же.
Нашел своего басмача. Тот оказывается заспавнился сидящим опустив голову вниз за кормой Скадовска. В паре метров справа. Как решить данную проблему ? Влияет ли на это параметр смещения в настройках смарта ?

Добавлено (23.06.2013, 22:29)
---------------------------------------------
denis2000, Нет не влияет) Ничего не изменилось нпс за кормой стоит.
Как решить эту проблему можно ? Все координаты точек и смарта внутри корабля

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

Азазель, Опять полемика без фактов.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
АзазельДата: Вс, 23.06.2013, 22:57 | Сообщение # 461
Новичок
Пользователи
Сообщений: 77
Награды: 0
Репутация: [ 0 ]

denis2000, Как же без фактов. Координаты сняты на скадовске рядом с стойкой бармена. Там же где и торговец в SGM 1.7 кстати говоря. Эти координаты указывал в path_walk path_look и в спавн поинте.
 
denis2000Дата: Вс, 23.06.2013, 23:03 | Сообщение # 462
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Азазель, Тогда ничем не могу помочь.

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

Нашел свой ужас biggrin Я в смарт терейне прописал дистанцию 1. Думал спавн точнее будет. Теперь все норм. Как отредактировать теперь логику ? А от нпс сгибается мордой в пол.
[logic@zat_basmath]
active = walker@basmath
combat_ignore = combat_ignore

[walker@basmath]
path_walk = zat_basmath_smart_basmath_walk
path_look = basmath_look
meet = meet@basmath
def_state_standing = guard_na
def_state_moving = assault

[meet@basmath]
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
Логика такая
 
makdmДата: Пн, 24.06.2013, 09:58 | Сообщение # 464
Рожденный в СССР
Разработчики
Сообщений: 1294
Награды: 29
Репутация: [ 1909 ]

Азазель, в логике смарта нужно прописать работу на смарте ( секция [exclusive] ).

А в логике работы - назначить её вашему НПС.

[logic@zat_basmath]
active = walker@basmath
suitable = {=check_npc_name( zat_basmath )} true

И не забывайте, что секции path_walk и path_look в файле all.spawn ( в вашем случае zat_basmath_smart_basmath_walk и basmath_look ), должны начинаться с имени смарта.


Терпение......
И все получится!


Сообщение отредактировал makdm - Пн, 24.06.2013, 10:42
 
NIVДата: Вт, 25.06.2013, 20:21 | Сообщение # 465
Полевой исследователь
Ученые сталкеры
Сообщений: 167
Награды: 4
Репутация: [ 180 ]

sergej5500, спасибо за подсказку. Правда, такого инфопоршня не существует. Сработало - добавить Герману (jup_b6_scientist_nuclear_physicist.ltx) во все секции: on_info = {=actor_enemy} %=set_squad_goodwill(jup_b6_scientist_group:friend)%

Добавлено (25.06.2013, 20:21)
---------------------------------------------
Обнаружил сегодня занимательный косяк: при спауне инвентарного ящика (inventory_box) ему можно прописать практически любой визуал, кроме визуалов самого инвентарного ящика (dynamics\equipment_cache\equipment_box_01_case например). Визуалы из этой папки почему-то не видно (получается невидимый ящик). В чем тут может быть дело?


Изменяем реальность S.T.A.L.K.E.R. CoP: "Цена Новых Исследований" / "New Investigations' Value"
 
Поиск: