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


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


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
makdmДата: Сб, 03.05.2014, 00:40 | Сообщение # 886
Рожденный в СССР
Разработчики
Сообщений: 1294
Награды: 29
Репутация: [ 1909 ]

Цитата sergej5500 ()
Каким образом в логике вертолета прописать враждебность актору?

Прописать актора, как цель в логике вертушки.
enemy = actor

Цитата sergej5500 ()
Можно ли вертолету прописать враждебность

Можно. Только для этого нужно переписать скрипт heli_fire.script под ваши нужды.

Добавлено (03.05.2014, 00:40)
---------------------------------------------

Цитата FantomICW ()
можно использовать параметр combat_enemy (выставить story_id нпс).

Без правки скрипта работать не будет.


Терпение......
И все получится!
 
alex_xp_77Дата: Сб, 03.05.2014, 21:53 | Сообщение # 887
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

Добрый вечер всей публике!!У меня небольшой ступор, в двух словах, прописал логику всем, и НПС, и мострам, все спавнилось нормально, даже сказал что без глюков и лагов, но захотелось заспавнить все того же торговца, все бы хорошо, при компиляции, ошибок не наблюдаю, но при запуске игры, все НПС пропали, хотя вижу что при билде ошибок нет, при компиляции тоже, захожу в игру, спавнятся только монстры, НПС появляться не хотят, кто нибудь с такой ошибкой сталкивался?? Могу предположить что заменил файлы из народной солянки, очень хотелось поглядеть логику адреналина, но это не помогло, его попросту там не было (я про торговца), потом пришлось конечно переназначать gamedaty с заменой из родной игры, так как произошел глюк, и LE вообще не хотел запускаться, но после замены все заработало, только проблема со спавном НПС, как исправить сию мою ошибку, может кто сможет помочь?? У меня все готовые карты, соединенные террейны, с переходами, и SDK переустановить не вариант, прошу помощи у более грамотных коллег!!(прошу администраторов не удалять пост если не по теме, заранее спасибо)Вот тут побегал по своей локации, нашел гору трупов тут http://SSMaker.ru/7cc7bbdc/ , тут не все, где то еще наверно валяются, непонятно что происходит(((



Сообщение отредактировал alex_xp_77 - Сб, 03.05.2014, 22:32
 
sergej5500Дата: Вс, 04.05.2014, 11:09 | Сообщение # 888
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Добрый день. Прикрутил к СГМ 2.1 локации Кордон и Болото из ЧН. При подключении вырезал все лишнее.

Как восстановить смарты, рестрикторы и т.д. - это я знаю. Но возник вопрос. После подключения на новых локах нет ни одной вороны. Какой файл отвечает за ворон? Подходят ли ЧН-пути ворон к ЗП?
 
FantomICWДата: Вс, 04.05.2014, 11:58 | Сообщение # 889
Лидер «Свободы»
Свобода
Сообщений: 4438
Награды: 44
Репутация: [ 1340 ]

sergej5500, за спавн ворон на локации отвечают схемы рестрикторов типа sr_crow_spawner. Если сохранились вертексы по сравнению с ЧН, то пути могут подойти.


 
ZiON_256Дата: Пн, 05.05.2014, 01:12 | Сообщение # 890
Гражданский
Пользователи
Сообщений: 15
Награды: 0
Репутация: [ 0 ]

Ребята, такой вопросик. Где нужно прописать, чтобы НПС при выбросе не обычным шагом шли в укрытие, а бежали? А то часто они не успевают дойти до укрытия. Еще неплохо было бы, чтобы они не отвлекались на другие факторы.
 
denis2000Дата: Пн, 05.05.2014, 08:30 | Сообщение # 891
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата ZiON_256 ()
Где нужно прописать, чтобы НПС при выбросе не обычным шагом шли в укрытие, а бежали?

В логике НПС конечно. Если хотите подробностей, то придется во всем сознаться.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
ZiON_256Дата: Пн, 05.05.2014, 16:23 | Сообщение # 892
Гражданский
Пользователи
Сообщений: 15
Награды: 0
Репутация: [ 0 ]

Цитата denis2000 ()
придется во всем сознаться

Я сознаюсь biggrin
Дело в том, что я облазил кучу файлов, в которых может быть реакция НПС на выброс, но так ничего и не нашел.
 
denis2000Дата: Пн, 05.05.2014, 20:49 | Сообщение # 893
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата ZiON_256 ()
Я сознаюсь

Хорошо, тогда сознайтесь когда будете читать шапку темы и выполнять требования изложенные в ней!
Я понимаю, вам кажется, что ваши вопросы должны понимать с полуслова, но все же не соблаговолите ли назвать версию игры, мод(ы) и его(их) версию(ии) (если установлен), а также поведение каких именно НПС вас не устраивает.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
ZiON_256Дата: Пн, 05.05.2014, 23:09 | Сообщение # 894
Гражданский
Пользователи
Сообщений: 15
Награды: 0
Репутация: [ 0 ]

Прошу прощенья, вот что у меня:
Игра Stalker CoP, дополнение SGM 2.2 со всеми фиксами
Ну по сути все НПС, которые просто спавнятся и ходят по миру, обычные сквады.


Сообщение отредактировал ZiON_256 - Пн, 05.05.2014, 23:09
 
makdmДата: Вт, 06.05.2014, 00:05 | Сообщение # 895
Рожденный в СССР
Разработчики
Сообщений: 1294
Награды: 29
Репутация: [ 1909 ]

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

А вот с симуляционными сквадами гораздо проще.
Открываем файл gamedata\scripts\gulag_general.script
Находим раздел SURGE.
В описании должности local job_ltx вместо

"def_state_moving = patrol\n"

пишем

"def_state_moving1 = sprint\n"..
"def_state_moving2 = sprint\n"..
"def_state_moving3 = sprint\n"

И чуть ниже вместо
"combat_ignore_cond = {=npc_in_zone(smart.base_on_actor_control.ignore_zone)} true \n"..
пишем
"combat_ignore_cond = true \n"..

Всё. При выбросе симуляционные сквады будут бежать в укрытие, как "угорелые".


Терпение......
И все получится!
 
sergej5500Дата: Вт, 06.05.2014, 17:15 | Сообщение # 896
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Добрый день.

Просьба уточнить. За что отвечает параметр arrive_dist = ... в файле смарта.
 
denis2000Дата: Вт, 06.05.2014, 20:06 | Сообщение # 897
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

sergej5500, Это расстояние при приближении на которое сквад считается достигшим смарта, если конечно этот смарт является целевым для данного сквада.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
alex_xp_77Дата: Ср, 07.05.2014, 16:53 | Сообщение # 898
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

Добрый день всем!!Вопросик вот в чем, прописал камере логику :
[logic]
active = sr_idle

[sr_idle]
on_actor_inside = {-test_assault_start} sr_cutscene %+test_assault_start%, nil

[sr_cutscene]
point = test_cutscene_walk
look = test_cutscene_look
cam_effector = camera_test
on_signal = cameff_end | nil

Кто может подсказать, в какой строчке ошибка, так как получаю лог по луа!!
вот настройка рестиктора : http://SSMaker.ru/a2dc3b9b/
Был бы очень благодарен за вашу помощь!!


 
FantomICWДата: Ср, 07.05.2014, 20:07 | Сообщение # 899
Лидер «Свободы»
Свобода
Сообщений: 4438
Награды: 44
Репутация: [ 1340 ]

alex_xp_77, все же, пожалуйста, лог выложи.


 
alex_xp_77Дата: Ср, 07.05.2014, 22:09 | Сообщение # 900
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

Добрый вечер еще раз друзья!!Я тут откорректировал кой какие файлы, ну пути, размещение в игре файла camera_main_test.anm , и вот лог поменялся, непонятно вообще, вот он
[error]Expression : no_assert
[error]Function : CXML_IdToIndex<class CInfoPortion>::GetById
[error]File : e:\stalker\patch_1_0004\xr_3da\xrgame\xml_str_id_loader.h
[error]Line : 112
[error]Description : item not found, id
[error]Arguments : test_assault_start

Вроде пишет на незарегистрированный id, но мне это не о чем не говорит, к сожалению((
Делал по урокам,логику брал из карт тч

Да все решил, заработало!! makdm Респект




Сообщение отредактировал alex_xp_77 - Чт, 08.05.2014, 13:24
 
Поиск: