Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: 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
[ Если у вас не открывается файл CHM(Этот текст скрыт от гостей) ]


[ Где найти лог игры после вылета ]
[ Получение более подробной информации о вылете (ХОВАН) ]



Перед тем, как задать вопрос в этой теме, прочтите все предыдущие страницы,
статьи в wiki по ссылке из шапки и соседнюю тему "Курс молодого бойца",
возможно Ваш вопрос уже рассматривался.


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


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

Добрый вечер. В СГМ есть секция логики НПС on_corpse_use. Запускается при юзании трупа НПС с кастом-датой. Если она, конечно, в кастом-дате прописана. Собственно, применяется она очень редко. Прописана в логике непися zat_accompany_stalker. Это проводник до Скадовска.

Я решил попробовать сделать этого НПС сквадовым. Прописал эксклюзив на ближайшем смарте. Сделал сквад из одного НПС. Задал ему работу и логику.
[ Эксклюзив ]


Непись отлично ходит по дороге. Спавнится после добавления сквада в simulation.
Секция
[on_corpse_use]
run_action = zat_accompany_to_boat

должна запустить квест "Добраться до Скадовска", если непись погиб раньше, чем игрок с ним пообщается.

Собственно, вопрос, можно ли запустить ф-ию для сквадового НПС?

Добавлено (20.05.2014, 21:52)
---------------------------------------------
Добрый вечер. Возник такой вопрос.

Прописал НПС путь.

[ Путь ]


Есть ли возможность в момент, когда НПС достигает последней точки пути (№21) выдать инфопорцию, чтобы переключить его на другую работу? И можно ли это прописать в файле way и как это делается?

 
makdmДата: Вт, 20.05.2014, 22:15 | Сообщение # 917
Рожденный в СССР
Разработчики
Сообщений: 1294
Награды: 29
Репутация: [ 1909 ]

sergej5500,
Цитата sergej5500 ()
можно ли запустить ф-ию для сквадового НПС?

Можно, только для этого нужно поменять "подход" - прописывать параметр в секции НПС, а не в его custom_data.
Тогда переписав скрипт на юзанье трупа, можно производить действие, как для НПС с custom_data, так и для сквадовых НПС.

Цитата sergej5500 ()
И можно ли это прописать в файле way и как это делается?

Поставьте сигнал в пути,

p21:name = wp021|sig=see_psy

а в логике сделайте проверку
например так
on_signal = see_psy | %+see_psy_antenna%
on_info = {+see_psy_antenna} remark@attack


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


Сообщение отредактировал makdm - Вт, 20.05.2014, 22:19
 
sergej5500Дата: Вт, 20.05.2014, 23:34 | Сообщение # 918
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

makdm,
Спасибо за помощь. Еще один вопрос.

[ Путь сталкера до Скадовска ]


Непись должен в последней точке выдать сигнал и перейти на следующую работу. Он "зависает" на точке №20, предпоследней. Этот маршрут проходит от места старта игры в СГМ к северу от Лесопилки до Скадовска. НПС его выполняет без замечаний, а на предпоследней точке встает и смотрит на последнюю точку. В чем ошибка?
 
makdmДата: Ср, 21.05.2014, 00:48 | Сообщение # 919
Рожденный в СССР
Разработчики
Сообщений: 1294
Награды: 29
Репутация: [ 1909 ]

sergej5500, зачем вы в каждой точке прописывает flags ? По моему они тут лишние.
Я бы сделал так,
или в последней точке ( 21 ) прописал p21:flags = 0x1 и сделал точку look с таким же флагом flags = 0x1
или дописал бы в 21 точку

p21:links = p0(1)
Перехода к нулевой точке не будет, т.к. выдан сигнал и произойдёт переключение схемы.


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


Сообщение отредактировал makdm - Ср, 21.05.2014, 00:55
 
sergej5500Дата: Ср, 21.05.2014, 10:42 | Сообщение # 920
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Доброе утро. Вернусь к предыдущему вопросу. Исправил проблему зависания непися на 20 точке. Видимо, 21 точка маршрута попала в зону "миролюбия" на Скадовске и тот не хотел туда заходить. После правки пути и выдачи сигнала на 20 точке сигнал стал выдаваться.

Возник новый вопрос.

[ Логика ]


При получении сигнала НПС должен перейти на секцию walker@walker и ГГ приходит текстовое сообщение.
Но непись зависает. Сообщения приходят непрерывно по 2-3 штуки в секунду. Непись переключается на секцию walker@walker только после прихода инфопорции zat_accompany_to_boat_complete. Она выдается после приближения игрока к Скадовску на определенную дистанцию.

Почему НПС капризничает?
 
denis2000Дата: Ср, 21.05.2014, 13:01 | Сообщение # 921
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

sergej5500, Он капризничает потому что постоянно переключается между секциями walker@walker и walker@walker_2

Цитата sergej5500 ()
Непись переключается на секцию walker@walker только после прихода инфопорции zat_accompany_to_boat_complete

Вы ошибаетесь! Он переключается по этому услоувию: on_signal = zat_accompany_to_boat_sms | walker@walker %=send_tip


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

Добрый день всем !! У меня вопрос, при пробежке по локации, происходит вылет, без лога, просто вылет, очень похоже на непонятную команду, когда нпс незнает что ему заданно, какую команду необходимо выполнять, прилогаю скрины :
1) общая картина http://SSMaker.ru/671c90e0/
2) логика http://SSMaker.ru/3925a430/ http://SSMaker.ru/82fa3bfd/
3) пути http://SSMaker.ru/5ebdac11/ http://SSMaker.ru/1e6717b7/ http://SSMaker.ru/bdfdeaa8/ http://SSMaker.ru/c17b665f/
смарт этот, потому что при подходе к смарту происходит вылет, в тот момент когда должны спавнится нпс!!
может и разобрался бы сам если бы был лог, помогите пожалуста, хоть советом, как исправить вылет??


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

alex_xp_77,
1. Вы отдаете НПС под смарт и тут-же назначаете индивидуальную логику! Возможно только что-то одно.
2. Привыкайте выносить логику в отдельный файл - так намного проще потом редактировать.


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

По другому не умею к сожалению Денис, уроки смотрел только от Андрея Непряхина

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

alex_xp_77,
Да вижу.
[ Читать далее ]


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

У меня как раз вся схема логики, и смартов прописана именно так как я привел выше, работает норм, для вашей логики Денис нужно создать тестовый уровень, что бы попрактиковаться, если не ошибаюсь, что бы привести в работу lager, нужно править lager.ltx, раньше пытался но не получилось, информации было крайне мало, нужно время, но логику скопировал, слышал что так проще.
Мне по идее нужны двое парней сидяших у костра, изначально назначил walk и look для общей компиляции, но теперь буду строить камп зону, то есть именно по сценарию игры тут : http://SSMaker.ru/3ad3fab0/ там обрати внимания вдали собачки, они тоже необходимы!!

Ну если другие нормально работают, то ничего не могу больше посоветовать. Придется методом тыка искать в чем отличие от других НПС. И приводят ли эти отличия к вылету. denis2000

Сделал камп зону все заработало!! Наверно ошибка была в названии числа то есть stalker_71_walk, где то там Денис, я не стал разбираться!!




Сообщение отредактировал alex_xp_77 - Ср, 11.06.2014, 21:23
 
sergej5500Дата: Пт, 13.06.2014, 19:20 | Сообщение # 927
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Добрый день.

Создал 5 эксклюзивных сквадов по 6 НПС на ВНЗ.

[ Сквады ]


По сюжету сквады будут враждебны игроку. Для их первоначального и повторного спавна имеется рестриктор.

[ Рестриктор ]


После старта НИ и первого приближения к ВНЗ обнаружил все 5 сквадов на месте и выполняют свои работы.

Направился к аномалии "Цирк". Т.е. сквады должны удалиться с локации а логика рестриктора переключиться на первую секцию. Вернулся к ВНЗ. Там только 2 сквада (12 НПС).

Для эксперимента поменял дистанции до смарта на 50 и 100 метров. Никаких сбоев не обнаружил. Все 5 сквадов исправно спавнятся и удаляются.

В чем может быть причина сбоя?

Зачем? denis2000

Хочу сделать следующее. При каждом приближении игрока к ВНЗ его должен встретить весь "личный состав" базы - 30 штыков.


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

sergej5500, Что мешает спавнить на дистанции 140м, а удалять на 200м?
Удалять можно одной командой:
Код
%=clear_smart_terrain(zat_b38)%

А спавнить можно в принципе в одной строке:
Код
%=create_squad(zat_b38_alfa_squad_1:zat_b38) =create_squad(zat_b38_alfa_squad_2:zat_b38) =create_squad(zat_b38_alfa_squad_3:zat_b38) =create_sq uad(zat_b38_alfa_squad_4:zat_b38) =create_squad(zat_b38_alfa_squad_5:zat_b38)%


К стати можно и при спавне проверять появился ли сквад, а как только появился переключаться на следующую секцию.


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

denis2000,
Попробовал разные варианты. Вот один из них.
[ Рестриктор ]


[ Функции ]


1. Наблюдается следующая ситуация. При первом приближении к ВНЗ все 5 сквадов (30 НПС) на местах. Дистанция спавна здесь значения не имеет.

2. Удаление сквадов работает корректно. При тестовом уменьшении дистанции спавна до 10 метров обошел ВНЗ. Оно пустое. Все сквады удалились.

3. Повторный спавн при дистанциях более 200 метров спавнит только два сквада. Видимо, на ближайших к игроку спавн-пойнтах. Спавн-пойнты расположены по углам здания ВНЗ.

4. При уменьшении дистанции спавна до 150 метров отреспилось 3 сквада. При 130 метрах 4 сквада. При 100 метрах все 5.
До дальнего спавн-пойнта в этот момент примерно 150-160 метров.

5. Форма команд для спавна значения не имеет. Без разницы, что писать. create_squad в логике или create_force в скрипте.
Ситуация одна и та же.

6. В порядке гипотезы. Возможно, сквады респятся, но куда-то исчезают.

Добавлено (14.06.2014, 01:24)
---------------------------------------------

Цитата sergej5500 ()
Что мешает спавнить на дистанции 140м, а удалять на 200м?

В этом случае спавн происходит на глазах игрока. Это нежелательно.
 
makdmДата: Сб, 14.06.2014, 09:14 | Сообщение # 930
Рожденный в СССР
Разработчики
Сообщений: 1294
Награды: 29
Репутация: [ 1909 ]

Цитата sergej5500 ()
В порядке гипотезы. Возможно, сквады респятся, но куда-то исчезают.

sergej5500, при спавне отрядов, поставьте на них метку ( spot ), и посмотрите на карте, где реально находятся сквады. Отсюда и двигайтесь дальше.


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