Создание нового НПС - Страница 23 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

Создание нового НПС


Рекомендуемые сообщения

как мне создать  обычный диалог для нового НПС ( я его сам создал) НПС уникальный, а диалогов нет

В каком смысле простой?если что то типо что можешь рассказать то пропиши вот это #include "gameplay\character_dialogs.xml" после строки <start_dialog>hello_dialog</start_dialog> в профиле нпс ^_^

Изменено пользователем ツМаLinK@ツ

Такой вопрос, вроде по теме.

Как сделать логику НПС по отношению к ГГ такой же, как к командиру отряда?

Заранее спасибо

Привет всем! Ребят, такой вопрос, делаю уникального "Боцман"а,_спавню его на локации предбанник_(с помощью СДК 0.4)_(единственная лока, которую добавил к оригиналу тч), когда прописываю его в "характер_деск_ескейп", он норм спавнится на предбаннике, но когда я его хочу прописать в "характер_деск_предбанник"_(создал новый файл), то получается вылет на загрузке создания новой игры. Нету id "predbannik_bocman". Без этого нпс игра запускалась с новой (предбанник) локацией без проблем._Где же надо прописать этот id, или сам файл character_desc_predbannik.xml??? спасибо! 

 

Закрыл вопрос, при новой локации нужно указывать в system.ltx ...файл, а вернее название файла "character_desc_имя_локи".

Изменено пользователем Kirgudu

Как можно заспавнить группу бандитов на базе нейтралов, чтобы сталкеры там не спавнились. А то уже надоело их убивать.(за 800 человек перешло)

В шапке написано довольно грамотно, но есть пара вопросов:

1. Если мод, в который я хочу добавить НПС сделан на площадке АМК, то можно ли использовать эти функции?

2. Как сделать НПС бессмертным?

Изменено пользователем Micha_Pulemiot

[............]

А как сделать чтобы НПС смотрел в определенную сторону?

Изменено пользователем HellRatz

 

 

А как сделать чтобы НПС смотрел в определенную сторону?

Слишком не конкретный вопрос. Если так-же не конкретно ответить, то:

 - если НПС находится под логикой, то в соответствующей схеме прописать ему куда смотреть. Как - зависит от схемы;

 - если имелось в виду просто направление, куда будет смотреть НПС после спавна, то задать нужный direction в all.spawn или с помощью нет-пакета.

А как сделать чтобы НПС смотрел в определенную сторону?

Через ACDC распаковываеш all.spawn добавляешь секцию НПС-а и меняешь position-коордмнаты спавна и direction-направление взгляда

Ребят, а что вписать в "имя_торговца"?

название ващего традера например

 

trade = misc\trade_esc_unik_npc.ltx

ТЧ 1.0006 + НС

Уважаемые, подскажите пожалуйста, каким образом можно изменить НПС его смарт после спавна его скриптом. Пытаюсь делать так:

--self - это смарт, куда я хочу поместить НПС (он создан в all.spawn), spawn_section==esc_stalker_respawn_1 - взял любого от фонаря из конфигов
local obj = alife():create(spawn_section,self.position,self.m_level_vertex_id,self.m_game_vertex_id) 
if not (IAmAStalker[obj:clsid()] or IAmAMonster[obj:clsid()]) then --не-не-не
          alife():release(obj)
          return false
end
--тут надо задать смарт
local npcPacket=m_netpk.get(obj)
if npcPacket:isOk() then
         local packetData=npcPacket:get()
	 local custom=amk.parse_custom_data(packetData.custom_data)
	 if not custom.smart_terrains then
                 custom.smart_terrains={}
	 end
	 custom.smart_terrains[self.gparams.type]=tostring(true)
	 packetData.custom_data=amk.gen_custom_data(custom)
	 npcPacket:set(packetData)
	 obj:brain():update()
else --с нетпакетом чёто не то
 	 return false
end
					
get_console():execute("load ~~~ name: ".. tostring(obj:name()))
get_console():execute("load ~~~ online: ".. tostring(obj.online))
get_console():execute("load ~~~ smart_terrain_id: ".. tostring(obj:smart_terrain_id()))
local st=alife():object(obj:smart_terrain_id())
if st then
         get_console():execute("load ~~~ smart_terrain: ".. tostring(st:clsid()==clsid.smart_terrain))
         get_console():execute("load ~~~ smart_terrain_name: ".. st:name())
end

 

 

судя по логам - после записи нетпакета и brain():update() он как был взят смартом esc_lager так и остался.

Благодарю за любую информацию.

Изменено пользователем Winsor

 

 

Уважаемые, подскажите пожалуйста, каким образом можно изменить НПС его смарт после спавна его скриптом

Ну во первых разберемся, что за смарт может быть у непися при скриптовом спавне ? А смарт у него может быть только тот, что будет прописан в кастом-дате с помощью правки нет-пакета. Соответственно, зачем лезть в дебри, которыми рулит xr_logic, xr_gulag и собственно движок ? Значительно проще, в эту самую кастом-дату, прописать необходимую логику...

  • Согласен 1

Хм. я собственно так и сделал - но смарт все равно остается не тот который я ему назначил в кастомдате, так же мне пока непонятно на основании каких критериев вообще назначается смарт НПС, у которого в кастомдате до этого не было указано ни смарта, ни none=true.

 

P.S. если все таки , уважаемый UnLoaded - если Ваш ответ был сарказмом - поделитесь какой либо информацией, что именно в  xr_logic, xr_gulag отвечает за назначение смарта НПС, у которого в конфиге о смарте нет ничего.

 

Благодарю!

Если на момент загрузки сэйва у непися в custom data не было ничего - пойдет в террейн с наименьшим id, который подходит по группировке и рангу и в котором есть свободное место.

Если было - пойдет туда, где, опять же, есть место, который подходит по группировке и рангу, и который подходит по условию в custom data.

 

"что именно в xr_logic, xr_gulag отвечает за назначение смарта НПС" - все.

  • Спасибо 1

 

 

но смарт все равно остается не тот который я ему назначил в кастомдате

Значит что-то не то(или с ошибкой) прописано в кастом-дате. Или, с учетом сказаного выше DC, нет места в целевом гулаге или не проходит в него по каким-то критериям.

  • Спасибо 1

Место есть в целевом гулаге, по критериям подходит , в кастомдате параметры правильные.

Тонкость в том что при создании, т.е. alife:create данных в кастомдате не было и у объекта НПС поле smart_terrain_conditions пустое, по условиям смарта - он подходит под любой. А при добавлении в кастомдату через нетпакет конкретного смарта после вызова obj:brain():update() само собой не происходит ни перечитывания поля smart_terrain_conditions, ни повторного вызова se_smart_terrain:enabled. и в результате объект, даже имея в кастомдате правильный параметр, остается в старом гулагосмарте. вызов se_smart_terrain:register_npc помещает НПС в смарт, но при этом у НПС не появляется данные этого смарта. сложно сказать, к чему это может привести, так что в таком вызове тоже толку 0.

 

Уважаемые, есть ли у Вас опыт в назначении смарта уже заспавненному НПС с заменой кастомдаты? Либо надо сразу менять smart_terrainid в нетпакете? Или еще какие способы?

Благодарю!

 

 

А при добавлении в кастомдату через нет-пакет конкретного смарта после вызова obj:brain():update() само собой не происходит ни перечитывания поля smart_terrain_conditions, ни повторного вызова se_smart_terrain:enabled

Попробуй закомментить в вышеприведенном тобой фрагменте строку obj:brain():update().

 

И еще: я не в курсе, но может быть поле кастом-даты в нет-пакете непися является "read_only" ? Если так, то простой перезаписью в нет-пакете не обойтись. В модуле от Artos есть вроде возможность менять абстрактную часть пакета...

Вопрос по логике НПС.

Значит заспавнил нового нпс на свалке, на кладбище заброшенной технике. С логикой remark - всё нормально стоит на месте, но если прописываю логику  walker то он уходит на край локации хотя точка walker_stay_at_position_walk указывает ему совсем на другие координаты. 

[walker_stay_at_position_walk]


points = p0
p0:name = name00
p0:flags = 0x1
p0:position = -62.83,-0.47,-220.61
p0:game_vertex_id = 252
p0:level_vertex_id = 208345

[walker_stay_at_position_look]
points = p0
p0:name = name00
p0:flags = 0x1
p0:position = -46.40,0.19,-216.69
p0:game_vertex_id = 252
p0:level_vertex_id = 208345

 

[logic]
active = walker@stay_at_position
danger = danger_ignore

[danger_ignore]
ignore_distance = 5

[walker@stay_at_position]
path_walk = walker_stay_at_position_walk
path_look = walker_stay_at_position_look

 

В чём причина его ухода не туда куда нужно?

@MGS, на первый взгляд всё, что под спойлерами, должно работать. А вот поведение непися говорит о том, что он срывается в свободный полёт и находится под стандартной логикой, которая зовёт его на другую локу. Ищи причину того, от чего логика непися не включается, мож, там у тебя "буковки попутаны где с латиницы на русский" или, вообще, биндер зависает. Изменено пользователем Korpus

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...