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

SOC Схемы поведения без необходимости установки точек путей

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

 

 

в основном для начинающих модмейкеров!

А вот тут я между прочим не соглашусь. Считаю что у этой работы есть большое будущее.

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

  • Согласен 3

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

Что-то я не догоняю... Расставляется куча точек, каждая прописывается в отдельной секции логики сталкера, и он ходит между ними? 

Или одна точка, которая двигается (как, куда?), а сталкер топает за ней? 

 

А-а, всё понял! Да, здравая мысль...

Изменено пользователем Fagot.
Ссылка на комментарий

Я доделал схему stander, Называется она beggar теперь NPC будет ходить от одной точки к другой, есть возможность останавливаться в точках на задаваемое кол-во времени для анимаций.

У секции появились новые дополнительные поля (ДОПОЛНИТЕЛЬНЫЕ, старые поля из 

stander ни куда не делись) и дополнительный скрипт. Начну с полей:
name_way - имя пути (пути создаются из точек, будет описано далее).
loop -  задавать false или true. Это зацикливание, приходя в последнюю точку пути дядька NPC пойдет снова к первой точке и так до бесконечности будет ходить. По умолчанию стоит false.

Я говорил про дополнительный скрипт. Это array_ways.script он нужен что бы из точек создать путь и еще пару полезных вещей.
Вот так он выглядит:

-- Массивы с левел вертаксами для путей. Graff46.

-- от сюда
local test = {
                          {72776, 20, "eat_vodka"},
                          {42603, 10, "hands_up"},
                          {29109, 15, "eat_vodka"}

                   }


-- до сюда, добавляем свои массивы путей по вертексам

local tbl = { -- сюда добавляем [имя = ваш массив]
	my_test = test
	
}

------------------------------
function main (a)
	return tbl[a]
end

У нас тут таблица и два вложенных массива. Карта вложений: (таблица tbl) содержит (массив test) содержит (3 безымянных массива) в которых по( 3 элемента). 
Добавляем свой путь:
Пляшем от таблицы tbl, создаем в ней запись ключ-значение, где ключ - это имя будущего пути (в примере это my_test), а значение - массив (или ссылка на него, как в примере), назовём его "массив точек" (в примере это test). А в  "массиве точек" создаем, как в примере (не выносим! не делаем ссылок и тд.) безымянный массивы, массивов этих должно быть столько - столько у Вас точек в пути. А теперь тут внимание, заполняем эти безымянные массивы: первый  элемент - это левел вертекс (число). Первый элемент обязательный, остальные нет. Второй элемент - это время в секундах, на которое NPC будет останавливаться, попадая в эту точку и проигрывать анимацию  (по умолч. wait (стоит) ). Третий элемент - это имя анимации которую будет проигрывать NPC простаивая под таймером в этой точке. Если Вы не зададите таймер, то NPC будет просто ходить от точки к точке без остановок.


[smart_terrains]
none = true

[logic]
active   = beggar

[beggar]
name_way		= my_test
loop				= false
extns  			= 5
anim  			= hands_up
target    		= nil 

 


P.S. Если NPC неистово тупит в точках - увеличите\создайте число в поле extns ~ 3 - 5 
Ссылка

Приму любую помощь от опытных скриптеров. В данный момент работаю над полностью скриптовыми подобиями смарт_террейнов.

Прошу в шапку данное.

Изменено пользователем Graff46
  • Спасибо 1
  • Полезно 2
Ссылка на комментарий

Однако, интересные задумки...

Но, наверное, у нас с автором разные понимания о надобности таких схем)

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

 

Мне лично хватает walker-а, и да, для меня ACDC - самое большое, что нужно для all.spawn.

 

За старание огромный +, развивай свои схемы, у них определенно есть правильный вектор развития!

Не соответствует правилам.

Ссылка на комментарий

 

Graff46, можно чуть подробнее? Так и не довелось подступиться к смарт террейнам. В чем преимущество по сравнению с оригинальными методами?

Ссылка на комментарий
В чем преимущество по сравнению с оригинальными методами?

Смарт террайн в Сталкере это объект наследованный от зон, как рестриктор и смарт это спавн объект который нужно спавнить через ACDC или СДК, и кроме смарта есть понятие как гулаг, гулаг это заселение, вообще долго объяснять, но эти конструкции достаточно сложны. Скриптовый смарт это вообще не объект игрового мира, это некий код который организует логику неписей исходя из условий, он объединил в себе ф-ции смарт-террейнов и гулагов при этом упростив собственный код. Смарты и гулаги решают некую задачу в игре, скриптовый смарт также решает эту задачу гораздо проще и без ограничений на позицию НПС.

Это прошу в шапку (в конец, самый низ)

Изменено пользователем Graff46
Добавлено  HellRatz,

В шапке. Пост скрыл. Если нужно - верну.

  • Спасибо 2
  • Полезно 1
Ссылка на комментарий

 

 

Смарт террайн в Сталкере это объект наследованный от зон, как рестриктор и смарт это спавн объект который нужно спавнить через ACDC или СДК

Может я не прав, но разве отменили скриптовый спавн с правкой\заполнением нет-пакета? У меня вот нормально спавнятся LC, которые ранее то-же только через all.spawn ставились...

  • Согласен 1
Ссылка на комментарий

Я вот начал изучать логику и всё такое и появился такой странный вопрос по этой теме. Как я понял тут обсуждается проблема, что надо как то обходить создание вэйпоинтов в алл.спавн. Видимо уже наверняка размышляли, что можно парсить значения из конфига или написать в каком либо скрипте аналог вэйпоинта и уже использовать его в схемах? Почему отказались от этой затеи? Я предупреждаю - я нуб по части логики гулагов и прочего.

... А наше дело маленькое - с ружьём да по болотам. (с)

Ссылка на комментарий

 

 

что можно парсить значения из конфига или написать в каком либо скрипте аналог вэйпоинта и уже использовать его в схемах?
Про чтение из конфигов, я такое увидел в первый раз в работе по улучшению логики вертолетов, и то после своей работы. Запись данных прямо в секции - вот какую цель я ставил для себя, а в схеме беггар, создаются пути для движения НП из таблицы с левел вертаксами. Если кому то нравится возиться с файлами, Notepad++ и справочник по ф-ям и классам класс ini_file, и пишите код, тем более сделать передачу данных из одного места в другое возможностями Lua не сложно, но нужно ли...

 

 

но разве отменили скриптовый спавн с правкой\заполнением нет-пакета
Работайте с нэт-пакетами, мне удобней было, что бы дешево и сердито эффективно.
Ссылка на комментарий

А планируется какая-нибудь утилита для автоматического пересчета вертексов при изменении аи-сетки? А то вручную обходить кучу файлов и исправлять левел/гейм-вертексы чуток запарно.

Ссылка на комментарий

Насколько я понял, это типа костыля для ленивых. Причем костыль несколько корявый, ибо я не вижу, как можно использовать такую логику для создания более-менее реальных схем поведения неписей. Ну будет непись шляться по вертексам и отыгрывать прописанные анимки. А дальше то что? Опять волкера с ремарками писать?

Ссылка на комментарий

 

 

А планируется какая-нибудь утилита для автоматического пересчета вертексов при изменении аи-сетки?
Нет не планируется, если Вы меняете АИ сетку, то наверно имеете возможность расставить вэй-поинты без труда.

 

 

Насколько я понял, это типа костыля для ленивых.
В шапке написано по этому поводу.
Ссылка на комментарий

Новая ссылка. Прошу в шапку.


@Kirgudu, Просто новая правленная версия логики, скриптовые смарты в другой теме. Кстати информацию о скриптовых смартах из шапки можно убрать.

Добавлено Kirgudu,

Лучше сразу давать подробности. Вместо какой из двух ссылок на скачивание, наличествующих в шапке? Или в дополнение?

Добавлено Kirgudu,

Готово.

Ссылка на комментарий

Кто знает как работает секция [game_info] в логике нпс.
Вот недавно наткнулся на эту секцию, решил добавить, захожу в игру и нифига, что я не так сделал и как правильно?

Скрытый текст

[2070]

; cse_abstract properties
section_name = stalker
name = esc_melnik
position = -208.551208496094, -20.0917911529541, -141.64958190918
direction = 0.0623090341687202, 0.00229393295012414, 0.0141186164692044
id = 65535
version = 118
script_version = 6
spawn_id = 99

; cse_alife_trader_abstract properties
money = 57500
character_profile = esc_stalker_melnik

; cse_alife_object properties
game_vertex_id = 47
distance = 3.5
level_vertex_id = 29123
object_flags = 0xffffffbf
custom_data = <<END
[smart_terrains]
esc_lager = true

[game_info]
stories = "story_04, legend_03, legend_04"
END

; cse_visual properties
visual_name = actors\neytral\stalker_neytral_hood_new_5

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 5
dynamic_out_restrictions = 
dynamic_in_restrictions = 

; cse_alife_monster_abstract properties
equipment_preferences = 2, 2, 0, 1, 0
main_weapon_preferences = 2, 1, 2, 1

; cse_ph_skeleton properties

; se_stalker properties
upd:health = 1
upd:timestamp = 0xef20e0ec
upd:creature_flags = 0xe5
upd:position = -208.551208496094, -20.0917911529541, -141.64958190918
upd:o_torso = 0.00229393295012414, 0.0623090341687202, 0
upd:g_squad = 1
upd:g_group = 5

; cse_alife_human_stalker properties
upd:start_dialog = 

 

Ссылка на комментарий

@QuestRider Эта схема логики, вроде для того, чтоб НПСы травили байки у костра. Сами звуковые файлы должны быть зарегены в sound_theme.script.

"Кругом зомби.....у меня кончаются патроны...."

Ссылка на комментарий

Доработы схемы логики:

Для схемы stander добавлены новые ф-ции - ключи в секциях:

irst_run = true ; true\false Будет ли НПС бысро бежать к точке работы при 1 загрузке схемы. По умолчанию - true

Для схемы beggar добавлены новые ф-ции - ключи в секциях:

first_run = false ; true\false Будет ли НПС бысро бежать к точке работы при 1 загрузке схемы. По умолчанию - false. Включать рекомендую для патрульных неспеша ходящих по лагерю.
near_lv = true ; true\false Будет ли НПС идти не в 1 точку пути, а в ближайшую точку пути от места где находится НПС (При 1-ой загрузке схемы). По умолчанию true.

Ссылка в шапке и тут.

Изменено пользователем Graff46
  • Нравится 2
  • Полезно 1
Ссылка на комментарий

Доработан портал "СиКВер", функционирует на вполне приемлемом уровне. Репозиторий скриптовых смартов и скриптовых схем логики разбит на два репозитория (в старом репозитории размещены ссылки на новые репозитории).

В новой версии скриптовых схем логики исправлены ряд ошибок и проведена оптимизация кода... Несмотря на исправления проекту требуется помощь опытных программистов.

Ссылка на репозиторий.

Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

×
×
  • Создать...