BFG 7 585 Опубликовано 4 Сентября 2015 Очередной мозговой завис по логике у меня и у НПСа. Цель : проследить за НПСом, так чтобы он меня не заметил до определённой точки. Логика моба такая [logic] active = kamp ;изначально моб сидит у костра и ещё не знает ничего danger = danger_ignore on_death = death on_hit = hit [kamp] center_point = koster_center path_walk = koster_center_task radius = 2.4 show_spot = false on_info = {+gans_go} walker ; оппачки, поступил поршень из диалога ГГ с другим НПСом , ; что типа надо бы последить вон за тем ГАНСом. [walker] ; Ганс отправляется в свой путь до первой точки остановки path_walk = gans_walk ; отслеживается растояние до ГГ не больше 40 и не меньше 25 метров path_look = gans_look on_actor_dist_le_nvis = 25 | kamp1 %+gans_kvest_proval +gans_nazad% ; иначе провал задания, Ганс топает назад on_actor_dist_ge_nvis = 40 | walker5 %+gans_kvest_proval% ; к костру откуда ушёл. on_timer = 11000 | walker1 show_spot = false meet = no_meet [walker1] ; следующая точка пути, как всегда осматриваемся на стрёме, потом топаем дальше path_walk = gans1_walk ; проверки на провал задания такие же path_look = gans1_look on_actor_dist_le_nvis = 25 | kamp1 %+gans_kvest_proval +gans_nazad% on_actor_dist_ge_nvis = 40 | walker5 %+gans_kvest_proval% on_timer = 13000 | walker2 show_spot = false meet = no_meet [walker2] path_walk = gans2_walk path_look = gans2_look on_actor_dist_le_nvis = 25 | kamp1 %+gans_kvest_proval +gans_nazad% on_actor_dist_ge_nvis = 40 | walker5 %+gans_kvest_proval% on_timer = 17000 | walker3 show_spot = false meet = no_meet [walker3] path_walk = gans3_walk path_look = gans3_look on_actor_dist_le_nvis = 25 | kamp1 %+gans_kvest_proval +gans_nazad% on_actor_dist_ge_nvis = 40 | walker5 %+gans_kvest_proval% on_timer = 22000 | walker4 show_spot = false meet = no_meet [walker4] path_walk = gans4_walk path_look = gans4_look on_actor_dist_le_nvis = 20 | kamp2 meet = meet [kamp1] ; тот же костёр откуда ушёл моб. Сюда же он и вернулся с пути center_point = koster_center ; когда понял шо его запалили path_walk = koster_center_task radius = 2.4 meet = meet [kamp2] ; конечная точка пути моба, куда он собственно и шёл center_point = gans_center ; и где что то вобщем будет с ним. Что ? Я ещё не придумал. Пусть сидит там. path_walk = gans_center_task radius = 0.4 meet = meet [walker5] path_walk = gans5_walk path_look = gans5_look on_timer = 20000 | %+spawn_gans2 =zasada.dell_gans% ; в случае провала задания Ганс удаляется,и спавнится его братан. show_spot = false meet = no_meet [danger_ignore] ignore_distance = 0 ignore_distance_corpse = 0 ignore_distance_sound = 0 [meet] use = true use_wpn = true meet_talk_enabled = true [death] on_info = %+gans_kvest_proval% [hit] on_info = {=hit_by_actor} %+gans_kvest_proval% END story_id = 17070 ..... ..... Но дело в том, что как только я получаю поршень +gans_go, то задание сразу уходит в провал. Пробовал на разных расстояниях, всё равно - провал задания. Убирал проверки с [walker] и [walker1], тогда он встаёт от костра, идёт по путям, но потом по достижении [walker2] задание всё равно уходит в провал независимо от того на каком расстоянии ГГ. Что с ним делать и какие ещё проверки поставить ? Уже 2 день его туда сюда гоняю по локации. Ни в какую. Спасибо. "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 4 Сентября 2015 Попробуй убрать таймеры Я конечно попробую убрать таймеры, но до этого случая нареканий на их работу не было в других сценах.Например, зайдя в "смертельный рестриктор" ГГ умирал по таймеру ровно через назначенное время. "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 10 Сентября 2015 Имеется новый рабочий вертолёт. Хотел поменять ему партиклы взрыва, чтобы отличались от дефолтного, выбрал в PE другой взрыв. Унаследовал секцию, сделал так: [k_50]:helicopter GroupControlSection = spawn_group $prefetch = 1 cform = skeleton class = C_HLCP_S script_binding = bind_heli.bind visual = physics\vehicles\к_50\к_50.ogf explode_particle = anomaly2\body_tear_02 В оллспавне, само собой назначил : section_name = к_50 Всё летает, работает ... но вертолёт по прежнему взрывается с дефолтным партиклом (explosions\expl_mushroom_01). ЧЯДНТ ? Спасибо. "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 12 Сентября 2015 (изменено) Проблема такая : Имеется итем, с анимацией. Спавнится стандартно, через экшен в диалоге, функцией alife():create(.....) Конфиг такой: [predmet]:identity_immunities GroupControlSection = spawn_group discovery_dependency = $spawn = "arhara_items\predmet" ;$prefetch = 32 class = II_ATTCH cform = skeleton visual = physics\decor_4\predmet.ogf radius = 1 quest_item = true can_take = false description = predmet skeleton_name = run_idle physic_type = 0x3 fixed_bones = link cost = 0 Почему то, если я спавню его через оллспавн, то итем нормально встаёт на место и проигрывает всю анимацию и вообще всё хорошо. Но когда я спавню его скриптом, то он появляется на месте в каком то невообразимо сложенном состоянии, как будто его смяли. Само собой никаких анимок, ничего не происходит. Вылета правда тоже нет. Основная кость итема - link Вопрос : что мне дописать в конфиг, чтобы итем заспавнился в рабочем ( анимационном ) состоянии ? Спасибо. p.s. в дальнейшем итем никак не используется, а просто служит предметом обстановки. Изменено 12 Сентября 2015 пользователем BFG "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 12 Сентября 2015 @Charsi, Угу, уже поискал. Спасибо. Может ему какой нибудь файл логики прописать ? И туда уже включить анимацию каким то образом ? Собственно ставиться задача, сделать спавн предмета по условию. Но в оллспавне невозможно сделать это, потому что секция [spawner] cond = {+ поршень} для итемов не работает. Он у меня с НИ спавнится уже на месте, а не должен. И всё крутится и работает идеально. Зато скриптом я могу сделать по условию, но не работает анимация. Как быть ? "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 17 Сентября 2015 (изменено) Решение проблемы этого поста. Метод придуман lsclon при разработке Терры Инкогнита (подсказал и вспомнил mauvais) ========================= 1. Извлекаем Бардаком анимку, затем добавляем в СДК к анимации предмета, точно такую же анимацию и переназываем её как - $editor нарисовал как сумел - 2. Компилим модельку стандартно. 3. [predmet]:identity_immunities GroupControlSection = spawn_group discovery_dependency = $spawn = "arhara_items\predmet" ;$prefetch = 32 class = O_PHYS_S cform = skeleton visual = physics\decor_4\predmet.ogf radius = 1 quest_item = true can_take = false remove_time = 9998 custom_data = scripts\collide_ignor.ltx inv_name = "Предмет" inv_name_short = "Предмет" inv_weight = 100.0 inv_grid_width = 2 ; inv_grid_height = 3 ; inv_grid_x = 1 ; inv_grid_y = 16 ; cost = 15000 4. В кастом дате collide_ignor.ltx прописываем [collide] ignore_static 5. Вызов через экшен в диалоге стандартный. 6. Функция спавна стандартна function predmet() alife():create("predmet",vector():set(x,y,z),lv,gv) end ========================== Итем с анимацией спавнится в нормальном состоянии, анимка работает. p.s. скорее всего данный способ работает только с итемом содержащим ОДНУ анимацию. Изменено 17 Сентября 2015 пользователем BFG 2 "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 25 Сентября 2015 (изменено) Да мне по сути надо только dog_weak, dog_normal и boar_normal добрыми сделать. Делаешь новое комьюнити собак, например : goodydog Прописываешь его в game_relations.ltx, добавляешь в строку [monster_communities] communities = ... goodydog Там же вносишь в таблицу отношений, в которой указываешь к кому и как собака будет относиться с враждой\дружбой. Делаешь новый файл, например goodydog.ltx Прописываешь стандартно всё как у обычной собаки: [m_goodydog_e]:monster_base $spawn = "monsters\goodydog" $npc = on $prefetch = 16 Scheduled = on Human = off Health = 100 .... .... и далее все параметры и визуалы, коэффициенты и всё что там у собак есть. Здесь же прописываешь секции weak, normal, strong. Если спавнишь через оллспавн, в секцию логики добавь строки: actor_friendly = true npc_friendly = true Ну и всё. Изменено 25 Сентября 2015 пользователем BFG 1 "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 26 Сентября 2015 (изменено) Поискал строку "@rad_antenna_patrol" во всем моде. Нету. Т.е. секция назначается, а самой логики-то нету. Всё там есть. Вот оллспавн распакованный из ОП-2 патч 9 фикс 1 - http://rghost.ru/75Rww5MxS Смотри в файле alife_l10_radar.ltx секцию [8850] section_name = smart_terrain name = rad_antenna_patrol [gulag1] type = rad_antena capacity = 11 И ниже, тех кто там сидит всей толпой ( по тэгу - rad_antenna_patrol ). В файле путей way_l10_radar.ltx найдёшь этот путь, который искал. Да толку то ! Там стандартные точки пути мобов и всё. Куда пошёл, куда посмотрел, где остановился. Это всё чем могу помочь. Что означает этот мудрёный код, что ты привёл, я не знаю. Не скриптер мну ))) Ты случайно не в тупичке на Радаре вышел, где переход на ТД и БТР около вагончика стоит ? Если там, то погляди есть ли там костёр, я не помню. Возможно моб умирает от костра, когда выходит в онлайн. Изменено 26 Сентября 2015 пользователем BFG 1 "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 18 Октября 2015 (изменено) 1. Можно ли вообще раз и навсегда удалить из оллспавна ВСЕ переходы между локами ? И сделать их скриптово, согласной ЭТОЙ статье, на тех же самых местах, с теми же координатами. 2. Не пострадает ли тогда миграция мобов между локами ? Спасибо. Изменено 18 Октября 2015 пользователем BFG 1 "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 29 Декабря 2015 (изменено) @dsh, Были две хороших утилиты : FileMon и RegMon. Потом они превратились в одну https://technet.microsoft.com/ru-ru/sysinternals/bb896645 Программа - бесплатная. Позволяет отследить всё что угодно в твоей системе, главное посидеть часик, понять как работает и настроить фильтры. Когда то, с помощью FileMon и фильтров на папку textures, я смотрел сколько раз обращается игра к текстурам и каким текстурам больше\меньше в разные моменты времени. По звукам опять же следил. Учти, логи там - сумашедшие. Хронометраж обязателен. Работа муторная и нудная. Для начала пробуй поставить фильтры на всю gamedat`y. Глянь что грузиться, что не грузиться, сколько отжирает памяти. дальше сужай диапазон поисков, фильтруй жёстче, снова смотри. Наверно только этим способом можно увидеть, что ЖРЁТ память твоего компа. Изменено 29 Декабря 2015 пользователем BFG 3 "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 16 Января 2016 (изменено) @CRAZY_STALKER666, Она называется zone_emi Смотри файл gamedata\config\misc\zone_kampfire.ltx секцию [zone_emi] Там и партиклы и всё остальное увидишь. Изменено 16 Января 2016 пользователем BFG 1 "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 18 Января 2016 (изменено) @Silver Raven, Есть такая утилита - ACDC. В ней есть что то похожее (может оно ?), вот кусочек из ридми: [Массовая замена вертексов] При подключении новых локаций без перекомпиляции графа возникает необходимость одновременного сдвига всех гейм-вертексов спавна новых локаций на какое-то определенное значение. Это можно сделать в этом режиме. Команда: universal_acdc -parse <file> -old <old_gvid0> -new <new_gvid0> [-way] [common_options] -parse <file> - имя ltx, в котором находится спавн. -old <old_gvid0> - старый начальный game_vertex_id локации. -new <new_gvid0> - новый начальный game_vertex_id локации. -way - обрабатывает аткже файл way_***.ltx для этой же локации. Пример: universal_acdc -parse alife_l01_escape.ltx -old 0 -new 934 [Обновление вертексов по координатам] Зачем нужно: при изменении аи-сетки у объектов изменяются game_vertex_id и level_vertex_id. Это влечет за собой необходимость повторного снятия данных параметров в игре. Данный режим позволяет автоматически обновить вертексы у всех секций спавна. Команда: universal_acdc -update <spawn_name> [common_options] -update <spawn_name> - all.spawn, для которого надо обновить вертексы. Режим update требует дополнительной настройки. В папке с acdc есть файл fs_vertex.ltx В этот файл необходимо вписать путь до локаций с ОБНОВЛЕННОЙ аи-сеткой. Обязательно должны присутствовать файлы level.ai, level.gct для всех локаций из спавна. ВНИМАНИЕ! Для нормальной отработки режима геймграф должен быть СТАРЫЙ, использовавшийся до перекомпиляции. После нормальной отработки режима спавн можно распаковывать уже с НОВЫМ геймграфом. Изменено 18 Января 2016 пользователем BFG "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 19 Января 2016 (изменено) @AndrewMor, Где ты откопал такое "чудо" ? Вот здесь ( и очень давно ) лежат 2 движка от ОГСЕ и Макрона, с тем, что тебе надо, на 6 патч. http://www.amk-team.ru/forum/topic/12766-razgovory-o-narodnoj-solianke/?p=813722 Upd: По первой ссылке не блуждай, она всё равно приведёт тебя вот сюда - http://www.amk-team.ru/forum/topic/12839-kovyriaem-op-2/?p=870262 Изменено 19 Января 2016 пользователем BFG "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 21 Января 2016 (изменено) Но all.spawn говорит, что там вообще ни одного. Оллспавн говорит что там есть артефакты. Спавн идёт через файл section2.bin, где записаны места спавна артов. В каждой секции аномалии в оллспавне есть такой параметр artefact_spawn_count = ... Там обычно всегда стоит число = 32. Это значит 32 места спавна. Для каждой аномалии есть ещё и такой параметр: artefact_position_offset = "...чего то там". Это смещение, по которому вычисляется точное место спавна артефакта. Короче мутно дело. А вот каким аномалиям разрешено это делать, а каким нет, тут надо скрипты смотреть наверно. Где то эта штука прописана. Щас придут более умные люди и всё объяснят Изменено 21 Января 2016 пользователем BFG "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 21 Января 2016 (изменено) а как тогда объяснить, что какие-то арты отмечены в all.spawn, Эти арты не имеют к "артефактовому спавну" никакого отношения. Они просто рАзово заспавнены и всё, как любые другие итемы на локациях. Ну например "Кровь камня" на тепловозе (Кордон). Или на том же Кордоне - "Медуза" на маленькой заброшенной свалке, неподалёку от бункера Сидора. Изменено 21 Января 2016 пользователем BFG "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 23 Января 2016 (изменено) По поводу спавна неподвижного НПС, по-моему нужна, хотя Сидорович вроде сидит без сетки. Хоть Сидорович и не человек, а вроде как полу-монстр, но АИ-сетка у него есть. Изменено 23 Января 2016 пользователем BFG 1 "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 1 Февраля 2016 (изменено) Очередной нубский вопрос: - имеем например одну Аи-ноду. Координаты её известны. Спавним на неё монстра, например библиотекаря. Моделька Библиотекаря геометрически больше чем размер ноды 70х70 см. Каким образом и по какому параметру модели, игра понимает что моб находится на Аи-ноде, а не ВНЕ её ? По какой нибудь главной кости или шейпу, или ещё чему нибудь этакому ? Ведь сама геометрическая проекция тела на ноду явно больше чем сама нода. В случае с крысой например, тут понятно дело что крыса спокойно умещается на ноду. А как быть с большим монстром ? Спасибо. Изменено 1 Февраля 2016 пользователем BFG 1 "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 1 Февраля 2016 (изменено) @Дизель, Уточняю немного свой вопрос. Вот например кусок террейна и периметр толщиной в 1 Аи-ноду, пусть он будет замкнутым, впрочем не важно, можно и одиночную дорожку проложить. Вот есть Химера и есть Тушкан. Как видно, у Химеры, лапы стоят за пределами Аи-ноды, а Тушкан полностью на сетке. 1. Не будет ли вылет по Химере, что она вылезла за АИ ? 2. Не вылетит ли Химера на скорости при повороте, за АИ-стеку, когда будет гнаться за Тушканом ? Хочу собачьи бега организовать на Арене, а то всё бои....бои. Шутка. Изменено 1 Февраля 2016 пользователем BFG "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 6 Февраля 2016 @AndrewMor, Уже боюсь что либо отвечать здесь, после темы СДК, опять наверно фигню всякую напишу, но всё же вот как смотрел (на примере Народной Солянки) : - берёшь прогу GGRC и декомпилишь свой game.graph - открываешь файл guids.txt и там видишь предельные значения для gvid - предельные значения для lvid я смотрел в СДК. Надо просто декомпилить локацию. выбрать АИ-вкладку, выделить все АИ-ноды и посмотреть в нижнем правом углу, сколько их всего. Вот эта цифра и будет предельным значением. Вот на примере Кордона, lvid = 595499 1 "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение
BFG 7 585 Опубликовано 7 Февраля 2016 Так у тебя в итоге локация-то открылась? Локация открывается, только что проверял. Грузится минуты 4-5 где то у меня, при это фраза "Loading Scene Objects" и всё, никаких движений нет (за это время успел прочитать все новые, ночные посты на форуме и объединить пару постов). Для ЧАЭС-2 (оригинала ТЧ) lvid = 264577 1 "Кругом зомби.....у меня кончаются патроны...." Поделиться этим сообщением Ссылка на сообщение