Перейти к контенту

[SoC] Ковыряемся в файлах


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

Надо прописать точки в all.spawn. В way_локация, на которой НПС спавнится. Потом эти точки в логике. Почитай здесь.

Спасибо я прочитал но я вот 1 не понимаю, тут пример на 1 нпс, а у меня их ну 35 шт где прописывать имя чтоб не было багов и путаницы названия?

 

 

[walker_stay_at_position_walk]
points = p0
p0:name = name00
p0:flags = 0x1
p0:position = ;координаты на которых стоим
p0:game_vertex_id = ;гейм вертекс координат
p0:level_vertex_id = ;левел вертеск координат

[walker_stay_at_position_look]
points = p0
p0:name = name00
p0:flags = 0x1
p0:position = ;координаты в которые смотрим
p0:game_vertex_id = ;гейм вертекс координат
p0:level_vertex_id = ;левел вертеск координат

И как я понимаю это

[logic]
active = walker@stay_at_position
combat_ignore = combat_ignore
danger = danger_condition

[walker@stay_at_position]
path_walk = walker_stay_at_position_walk
path_look = walker_stay_at_position_look

[combat_ignore]
combat_ignore_cond = always

[danger_condition]
ignore_distance = 0
ignore_distance_corpse = 0

написать писать не в:

[logic]

cfg = scripts

 

В итоге должно как я понимаю получиться так?

 

[870]
; cse_abstract properties
section_name = stalker
name = noobik
position = -172.21215820313,-19.941787719727,-161.09272766113
direction = 0,0,0

; cse_alife_trader_abstract properties
money = 5000
character_profile = esc_noobik

; cse_alife_object properties
game_vertex_id = 52
distance = 0
level_vertex_id = 76655
object_flags = 0xffffffbf
custom_data = <<END

[logic]
active = walker@stay_at_position
combat_ignore = combat_ignore
danger = danger_condition

[walker@stay_at_position]
path_walk = walker_stay_at_position_walk
path_look = walker_stay_at_position_look

[combat_ignore]
combat_ignore_cond = always

[danger_condition]
ignore_distance = 0
ignore_distance_corpse = 0

; cse
[smart_terrains]
none = true
END
story_id = 10000

; cse_visual properties
visual_name = actors\soldier\soldier_beret_1

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 2
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =

upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = -172.21215820313,-19.941787719727,-161.09272766113
upd:o_model = 0
upd:o_torso = 0.028013030067086,0,0.9996075630188
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 2

; cse_alife_monster_abstract properties

upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0

; cse_alife_human_abstract properties
predicate5 = 1,2,2,1,2
predicate4 = 0,1,1,1

; cse_ph_skeleton properties

upd:start_dialog =

; se_stalker properties

 

 

"Простыни" вкладываем в спойлер!

Устное предупреждение.

ColR_iT

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

Что-то в этом роде, только логика пишется в логике НПС в config\scripts\логика.ltx

[logic]

cfg = scripts\noobik_logic.ltx"

Это ссылка на логику.

Изменено пользователем Сэр Макс

Что-то в этом роде, только логика пишется в логике НПС в config\scripts\логика.ltx

[logic]

cfg = scripts\noobik_logic.ltx"

Это ссылка на логику.

Допустимы оба варианта. Если у Daniar299 простенькая логика лишь с привязкой НПС к точке, и он уверен, что "большего" ему и не понадобится, то он может вшить логику в секцию НПС, в алл.спавн (как он привел на своем примере). А вот если многоступенчатая логика, с несколькими схемами поведения, то лучше конечно вывести её из алл.спавн, как предложил ты (в отдельный конфигурационный файл). В таком случае очень удобно будет её проверять и тестировать и не понадобится каждый раз "распаковывать/компилировать" алл.спавн и начинать НИ, чтобы увидеть свои корректировки.

 

.

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

А какая функция(скрипт) может проиграть анимацию у определенного нпс при диалоге?

Ну допустим есть нпс, хочу что-бы после нажатия на кнопку в диалоге происходил action функции которая и вызовет анимацию wounded_heavy_3,

а вот какой скрипт в функции надо использовать я не знаю, в поиске так и не нашел ничего полезного по этому поводу.

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

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

 

vasya092, читай и перечитывай "Справочник по функциям и классам" и его расширители-толкователи в виде статей на вики-сайтах (ссылки в шапке), не забыв и сам мануал по Lua хорошенько поштудировать.

 

P.S. Заодно и правила тебе бы почитать не лишним будет, в частности про "спасибы"...

 

Daniar299, хотя, вероятно, мой комментарий будет излишним, но... нередко он имеет место быть полезным:

1. Не нужно предполагать, что скомандовав что-то своей железяке (компу), все остальное тобою недосказанное твоя железяка за тебя додумает и доделает.

Т.е., заспавнив своих неписей, ты дал понять игре, что хочешь чтобы твои неписи оставались на местах спавна? Нет, так чего же удивляться, что они не закреплены за местами спавна?!. Тут и поиск никакой не нужен, чтобы понять, что игре нужно отдать команды на свою похотелку. Если бы почитал материалы по модингу, то понял бы, что для твоей похотелки требуется или включить AI-схемы (логику поведения) или написать свои скрипты/функции.

2. Чтобы не было путаницы с кучей названий, да и прочих "неудобств", требование для заспавненных неписей: "находиться у точек спавна" довольно просто реализуется одной/парой самописных функций. Вот только на кой такое? Ну а играбельные варианты - требуют указания логики и путей, тут сколько неписей и их точек спавна - столько и путей с названиями. Привыкай к тому, что разнообразие не сделать на паре-тройке констант.

 

Ну и напоследок, хотел бы обратить внимание, что и в твоем варанте и в ответах не замечено то, что не задав отвязку от смартов - вся твоя логика бесполезна (не зависимо от способа задания), т.е. заспавненные неписи или получат гулаговую работу и именно туда уйдут (наплевав на заданные им секции и пути), или просто будут удалены из игры, как "безработные".

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

...что и в твоем варанте и в ответах не замечено то, что не задав отвязку от смартов - вся твоя логика бесполезна...

У него вроде бы есть в "простыне" -

....

[smart_terrains]

none = true

END

 

Только вот почему то в конце кустомдаты, обычно запрет на смарты ставят перед -

[logic]

Ну да всё равно, по-моему, сработает запрет.

===

Daniar299, Да и зачем тебе 35 "истуканчиков" с одинаковой логикой? Дело, конечно, твое, но раз уж такое кол-во НПС спавнишь, не легче (может и не "легче", но целесообразнее) ли просто им гулаг сделать и прописать 35 работ? Так, с игровой точки зрения, будет "красивше", да и игроку будет приятнее разнообразие в действиях НПС, чем лицезреть на "35 столбиков".(Ну, чисто моё ИМХО)...

.

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

Buusty, действительно 'вроде бы есть', и не столь место расположение строк сбило с толку, строки, точнее секции в кастом дате могут быть в каком угодно порядке, это это все одно читается/пишется в хеш-таблицу. А вот мусор в виде строки '; cse' перед смарт-секцией и неотформатированный весь пост - и сбили с толку... Так что извиняюсь за "не отвязку".

Ну и, так понимаю, для Daniar299 пока и лениво лишней "писаниной" заниматься, как и лишним чтивом, а хотСа увидеть результат своих ковыряний по простеньким туторам... так что до играбельности и красивостей еще до-о-олго. ;-)

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Чаще возникает как раз обратная проблема, нпс при каждом выходе онлайн (переход в зону А-лайфа, перезагрузка) переключаются в исходную схему логики, так как не стоит проверка условий перехода между секциями в активной схеме.Как в НС 5 при загрузке во время атаки Волка и Ко деревни новичков, они дружно ломились обратно на ферму.Да и в НЛС 6 такие казусы были.

Чтобы заставить НПС оставатся в точке спавна(даже при отсутствии в этом месте АИ сетки), нужно активной сделать секцию remark , при этом поставив НПС полный игнор, иначе сорвавшись с места , останется там где успокоится.Или же как это принято в игре, прописать точки пути для активной схемы, или работу в смарте( к примеру kamp которая не требует в отдельных случаях создания точек пути).

П.С. Artos - я понимаю что легче дать удочку чем рыбу, но все же не мог бы ты это делать помягче.

gruber,

1. Твоя пожелалка не по адресу. 'Немягкость' моих комментов прямо пропорциональна степени тупости и лени вопроса, и является следствием... Мы не в институте для благородных девиц, и не собираюсь менять(ся) и в дальнейшем, если это не нарушает правил форума.

2. 'Удочку' дать не легче - а правильнее(! ИМХО), чтобы нуждающийся сам мог бы удовлетворять свои потребности, а не зависил от 'раздающего'. И те, кто в данном разделе форума ждет именно подачки в виде рыбы - ошибаюся, 'школа' учит, а не кормит.

 

(по существу поста)

Вновь звучит тупой(!) совет по схеме ремарка... Сколько же можно говорить о том, что эта схеме не предназначена для "заставить НПС оставатся в точке". И выставление полного игнора не избавляет истуканчика от различных раздражителей (денджеров) от которых он все равно куда-то да сместится/отойдет. К сожалению, именно такие "советы" и краткость строк схемы привлекательна для новичков в моддинге, и каждый раз провоцирует на дальнейшие вопросы типа: "а почему НПС истуканом стоИт и не реагирует?" иль "а почему отбежал и не возвращается?".

Сколько можно повторять, что схема remark предназначена для переходных моментов в логике и никак не должна быть основной, и тем более контролировать точку где быть неписю.

Ну про kamp - тут и говорить нечего, никаким боком к "заставить НПС оставатся в точке спавна" ее не приделать, тем более она то (схема) вообще командует рандомные точки "рассаживания" никак не относящиеся к спавну. Да и в любом случае все одно требуется иметь или создать хотя бы одну точку (center_point).

 

Чаще возникает как раз обратная проблема, нпс при каждом выходе онлайн (переход в зону А-лайфа, перезагрузка) переключаются в исходную схему логики, так как не стоит проверка условий перехода между секциями в активной схеме.
'Чаще' - в данном случае относится к разработчику кода, а не к самим кодам. Именно человек думает и вкладывает 'свои мозги' компу, а тот только выполняет то, что ему приказано. Копипаст чужой логики и не желание довести ее до ума в каждом конкретном случае - и есть причина подобных проблем. Не так давно уже этот вопрос кратко рассматривался, нужно писать правильно и полно конфиги (условия) для логических схем, а не использовать шаблонные заготовки. Ни и при необходимости - дорабатывать имеющиеся схемы или писать свои.
  • Нравится 1

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

А о школе - все таки учитель в ней не последний человек, многое и от него зависит.

gruber, давая совет, все же нужно быть и в курсе темы и не навязывать свои шоры другим. К сожалению, именно подобные "советы" все более сводят моддинг игры к тупому копипасту туторов и наскоро сделанных "фенечек"... в банальные, никому не нужных кроме самих "авторов", сборки-солянки. К самообучения и самореализации подобное не имеет никакого отношения.

gruber: ...единственный известный мне способ поставить НПС в точке с отсутствующей сеткой
Вот хочется спросить, а где в вопросе было про отсутствие сетки? Вообще зачем такое в игре, тем более для "34 НПС"? Вместо того, чтобы "советовать" как расставлять истуканчиков по непотребным позициям, не лучше ли объяснить, что это или тупиковый путь или не понимание что-же и зачем сам автор вопроса пытается делать?!

'Единственность' - заключается только в том, что схема 'remark' единственная, которая перебивая своей активностью все остальные штатные AI-схемы, не оперирует перемещениями, тем самым не активируя 'move_mgr' и не заставляя движок перемешать НПС на AI-сетку. Однако, ничто не мешает НЕ прописывать вообще какую-либо штатную схему, ежели потребовался такой "болванчик" в непотребном для игры месте. И в любом случае, эта схема не заставляет находиться в точке, а не заставляет уходить из точки, что является большой разницей и по смыслу и по результату.

И ты не находишь свою оправдалку по kamp'у подходящей только для твоих каких-то иллюзий, а не для исходного вопроса. Во-первых, для кампов, ежели ты не хочешь чтобы НПС в кострах жарились, требуется и вторая точка (отличная от центра). Во-вторых, условие "точка спавна" и "точки посиделок" - ну никак не одно и тоже, и тем более это никакая не привязка "к точке"! Сам уже пишешь уже о "привязке к местности", а местность и точка - ну очень разное ;-) В общем "совет" из разряда: "в огороде бузина а в киеве дядка".

"Школа моддинга" - это не общеобразовательная контора с учителями и пр. Это САМОобразовательная и добровольная затея, где мы все учимСЯ, учимся на чужих ошибках и помогаем друг другу по мере имеющихся знаний и опыта. И никакой я тут не учитель, а такой же участник, как и другие... ну может побольше некоторых имею знаний и опыта. К сожалению кураторство (но не учительство!) на форуме неизвестно заработает ли вновь, но пока считаю для себя 'добровольно взятой обязаностью' не допускать (всеми способами) топики до уровня "ниже плинтуса", когда модмейкерство превращается в нахлебничество и иждивенчество.

 

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

Пропиши точку в way_локация, в логике напиши к логике [camper@put] - это схема логики, а второе, точка, приписанная в all.spwan. Почитай еще про логику НПС.

  • Не нравится 1

Daniar299, а если попробовать почитать последние посты в топике?!

Неужели каждому по его "частному" случаю нужно повторять одно и то же - читайте про логику для НПС и применяйте ее!

 

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

- в all.spawn прописываются пути, а не точки, о чем ты уже дважды советуешь, вводя в заблуждение.

- "в логике напиши к логике" - если логики вообще нет, то как можно в нее прописать?

- почему именно упомянутую тобою секцию [camper@put] нужно прописывать? А несчетное кол-во других вариантов не прокатит? И никакая это не схема, а всего лишь голая 'шапка' секции для схемы...

Самое правильное в таких случаях или отсылать к чтению статей по логике или давать какой-либо конкретный пример, а не "набор слов и понятий к вопросу".

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Получаеться прикрепил к моду своему локацию болота и решил заселить её...

Если ты "всерьёз решил" делать свой мод, а не очередную "шляпу", никому не нужную, то тебе в любом случае потребуются более глубокие знания, чем сейчас ты пишешь -

народ появляеться стоит на местах всё ок, но стоит например заспаунить мобов без логики они бегают по локации и нечаянно агрять НПС , они тупо разбегаются!

Так не заселяются локации. Требуются хотя бы первоначальные навыки в создании смартов/гулагов для НПС, монстров... Это очень кропотливое занятие и "немного скучное" (ну, лично для меня))). Так что, "разбегаются/не разбегаются" - это не серьезно. Учись делать сразу правильно, как принято в нормальных модах. Начни с простенького гулага кемперов - заспавни костерок и рассади вокруг 3 сталкеров. Поймешь суть - будешь более сложные гулаги делать (с часовыми, патрульными, спящими... и т.д.).

Знаком ли кому-нибудь такой баг:

При отображении сообщения пда на худе одни сообщения будут отображаться на худе, а другие нет (одни с длинным текстом - более 100 символов, другие короткие - меньше 100 символов), но звук сообщения есть всегда и в пда с списке сообщения это сообщение появляется тоже. Причем это зависит от разных разрешений экрана. При разрешении 800x600 короткие сообщения пропадают, а длинные остаются, при широкоформатном - наоборот. Есть ли какие-нибудь способы узнать причину?

SkyLoader, из текста вопроса сложновато понять о каких же сообщениях идет речь. Ты бы уточнил, какие у тебя исчезают: give_talk_message и/или give_game_news? Помнится на исчезновение сетовали игроки в моде NLC6 (хотя может ошибаюсь, т.к. "не в теме мода"), из-за обилия текста для различных разъяснялок-пояснялок.

И, заодно, если как ты говоришь исчезло сообщение из КПК в одном разрешении (например 4:3), то если этот сэйв запустить на 16:10 - будет ли оно видно? Т.е. точно ли есть зависимость от установленного разрешения или это только некое предположение?

Изменено пользователем Artos
  • Нравится 1

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Artos,

 

имею ввиду те сообщения, которые получаем от, к примеру, Сидоровича, когда он пишет и говорит нам в начале игры про аномалии, что в них надо бросать болты (give_game_news).

 

И, заодно, если как ты говоришь исчезло сообщение из КПК в одном разрешении (например 4:3), то если этот сэйв запустить на 16:10 - будет ли оно видно? Т.е. точно ли есть зависимость от установленного разрешения или это только некое предположение?

Да, сообщения одни и те же. Проверялись на одном сохранении.

Тут есть какая-то зависимость от самой длинны сообщения. Если оно длинное (как писал ранее, более 100-120 символов), то оно будет появляться только на 4:3, хотя сообщение с коротким текстом будет пропадать (т.е. проверяются два сообщения, одно длинное, другое короткое). На 16:10 все наоборот: длинное сообщение пропадает, а короткое нет. Еще одна особенность, что на мгновение сообщение появляется, а потом пропадает. Скорее всего апдейт в движке или в скриптах его как-то убирает, хотя в скриптах, насколько я помню, убирать сообщение с худа невозможно.

SkyLoader, при адаптации мной на ш\ф трилогии zaurus'a "Апокалипсис" столкнулся именно с такой проблемой. После опытов с различным разрешением выяснил, что сообщения не отображаются при разрешении экрана по вертикали менее 768 точек. Т.е. если ставил 1280х720 сообщений не было, при переходе на более высокие - появлялись. Причину выяснить так и не удалось, да, в принципе, ее и не искал.

Сообщения выводились give_game_news.

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

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

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

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

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

Войти

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

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

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