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


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


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
denis2000Дата: Пт, 02.05.2014, 22:17 | Сообщение # 886
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

tema796, Анимпоинт, конечно расположен на АИ-сетке?
К сожалению больше не вижу никаких явных проблем, остаются только банальные опечатки.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
sergej5500Дата: Пт, 02.05.2014, 23:54 | Сообщение # 887
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Добрый вечер. Каким образом в логике вертолета прописать враждебность актору?

Можно ли вертолету прописать враждебность:
1. К НПС с определенным стори-ид.
2. К скваду с определенным стори-ид.
3. Неписям из определенной группировки.

Как это сделать на практике?
 
FantomICWДата: Сб, 03.05.2014, 00:35 | Сообщение # 888
Лидер «Свободы»
Свобода
Сообщений: 4438
Награды: 44
Репутация: [ 1340 ]

sergej5500, в секции heli_combat можно использовать параметр combat_enemy (выставить story_id нпс).


 
makdmДата: Сб, 03.05.2014, 00:40 | Сообщение # 889
Рожденный в СССР
Разработчики
Сообщений: 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 | Сообщение # 890
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

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



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

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

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

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


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

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

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

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


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

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

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

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

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


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

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


Сообщение отредактировал ZiON_256 - Пн, 05.05.2014, 23:09
 
makdmДата: Вт, 06.05.2014, 00:05 | Сообщение # 898
Рожденный в СССР
Разработчики
Сообщений: 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 | Сообщение # 899
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Добрый день.

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

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

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
Поиск: