AndreySol 215 Опубликовано 31 Июля 2014 Юрик игнорирует разговоры и идет в сторону лагеря бандитов у бетонных плит Накосячено в логике и диалогах Юрика. Однозначно.... Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 2 Августа 2014 То есть своей конкретной логики у него нет, как например у Сидоровича Как это нет ? Просто логика для всей Темной долины прописана в скрипте gulag_dark_valley.script, использовано динамическое заполнение ltx-конфига. Там и Борову все прописано, для всех трех состояний, предусмотренных для бандитского гулага... 2 Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 3 Августа 2014 (изменено) Такой вот вопрос: при хэд-шотах НПСы частенько помирают со всякими смертными изречениями\стонами. А это не логично... Можно как-то побороть ? В какую сторону смотреть\копать ?state_manager.script, но не нужно. Овчинка выделки не стоит. dc Изменено 13 Января 2015 пользователем Dennis_Chikin Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 4 Августа 2014 Не 100% утверждаю, но видимо смотреть логику, в которой прописана "юзабельность" трупов и править параметры, отвечающие за доступность инвентаря и таскание... P.S. сразу признаюсь, что не знаю где эта логика запрятана. А может ее вообще нет - и это зашито в двигло... Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 7 Августа 2014 (изменено) Мне нужно конкретному кровососу со 100% вероятностью добавить в труп челюсть Вопрос в догонку: а если попробовать сделать запчасть квестовым предметом и прописать в all.spawn в инвентарь монстру ? Не знаю только - а есть инвентарь у монстра пока он жив ? Лучше спавн челюсти прописать в логике этого кровососа в on_death А детч_менеджер не подчистит ? Изменено 7 Августа 2014 пользователем AndreySol Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 14 Августа 2014 (изменено) Зарегистрируй и\п walker_3_start, и преключайся из [remark] в [walker3]: [walker1] [remark] on_info = {+walker_2_start} walker2on_info2 = {+walker_3_start} walker3 [walker2] отсюда по какому-то условию возвращаемся в [remark], перед этим дисаблим walker_2_start[walker3] Изменено 14 Августа 2014 пользователем AndreySol 1 Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 15 Августа 2014 луа-операторы в логике напрямую не прокатывают(хотя могу и не в курсе быть), делай обертку в виде ф-ции. Хотя можно и проще: on_info = {+ info1} walker@next on_info2 = {+ info2} walker@next какой первее будет выдан - тот и переключит логику... 1 Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 17 Августа 2014 @Ахмед Сначала инициализируем необходимый звук, как-то так: local snd_eat = xr_sound.get_safe_sound_object(".................") Затем в use_collback проверяем, что съели нужный хавчик и проигрываем ранее заготовленный звук: snd_eat:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 17 Августа 2014 проще так: В конфиге предмета писать use_sound = ...\...\....ogg попробовал для колбасы: так - use_sound = "interface\inv_detach_addon.ogg" и так - use_sound = interface\inv_detach_addon.ogg в обоих случаях прописанный звук не проигрывается. Чет не так написал ? Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 18 Августа 2014 Пиши так: use_sound = interface\inv_detach_addon эффект тот-же - не воспроизводится звук. Похоже Вы напутали с use_sound, видимо в ТЧ этот параметр конфига не работает. ему нужно создавать отдельное место в этом гулаге, или он никуда не уйдет? Если в логике прописано сидеть и не рыпаться - не уйдет. И пофиг в каком гулаге ему это прописано... Посмотри пример с Шустрым на АТП на Кордоне(оригинал). Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 30 Августа 2014 @AndrewMor Правкой соответствующих данных нет-пакета объекта при спавне. Подробнее, к примеру в ридми к модулю нет-пакетов от Artos'а Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 6 Сентября 2014 Проблема в том, что не все патроны спавнятся после смерти Примерчик бы... Приведи конкретные данные из какого-то character_desc_#.xml и что потом в инвентаре у НПСа. Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 6 Сентября 2014 @Gaz24 Попробуй заменить ammo_5.45x39_fmj = 1 на .... = 2. Возможно, единственная пачка расходуется на зарядку автомата, когда Волк спавнится\выходит он-лайн ? Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 7 Сентября 2014 [esc_way_if_reject] За что они отвечают? Для чего нужны? Связаны с переходами между локаций. Вот фрагмент из alife_l01_escape.ltx: ; cse_abstract propertiessection_name = level_changername = exit_to_garbage_01position = 29.34641456604, 16.5561962127686, 686.241638183594direction = 0, 0, 0id = 65535version = 118script_version = 6spawn_id = 2233 ; cse_alife_object propertiesgame_vertex_id = 0level_vertex_id = 3978object_flags = 0xffffff3ecustom_data = <<END[pt_move_if_reject]path = esc_way_if_rejectENDstory_id = 34 Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 7 Сентября 2014 (изменено) center_point = kamp_centerpath_walk = walk_task чет тут подозрительно, попробуй так: center_point = camp_center path_walk = camp_center_task может я и не прав, но везде в оригинальных кодах от ПЫСов path_walk именуют как center_point + _task Изменено 7 Сентября 2014 пользователем AndreySol Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 8 Сентября 2014 (изменено) Wolokodav в аллспавне за это отвечает (stories_id=число ) С чего это вдруг ? В ф-ции утсановки метки используется id объекта, который никакого отношения ни к allspawn ни к story_id не имеет. после которого этот нпс появится?? Точно так. Карлан Зачем же так мозг вопрошавшему выносить, еще и с учетом того, что он не очень разбирается в вопросе ? Судя по Вашему пояснению, вы для установки метки использовали level.map_add_object_spot, метка которого сохраняется только до первого сэйв\лоад. А достаточно было использовать level.map_add_object_spot_ser и никаких описанных Вами заморочек. Изменено 8 Сентября 2014 пользователем AndreySol Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 9 Сентября 2014 (изменено) {снесено лишнее. dc} Объясните мне,_возможно ли заспавнить мутанта через скрипт,_чтобы к нему можно было прицепить файл логики? Ответов, в общем, два:1) Если ты имеешь в виду, для заспавненного скриптом моба, прописать ему логику так как это можно сделать в allspawn: custom_data = <<END [logic]cfg = scripts\ля-ля-ля.ltx END то для этого юзаем нет-пакеты(самый удобный вариант - модуль от ARTOS'а).2) Если ты имеешь в виду, что-бы после скриптового спавна, взять моба\ов под логику - определи в нужном гулаге работу, на которую будут приняты именно нужные по твоей задумке мобы(условия - какие твоя душа пожелает, примеров море в оригинальных скриптах), и(или) опять-же, при необходимости, через нет-пакет пропиши им этот самый гулаг. P.S. И вообще, в нынешнее время, с учетом существующих средств работы с нет-пакетами, напрягаться вопросом "как после скриптового спавна, сделать что-то, что ранее можно было прописать только в allspawn" как-то неуместно... или от большой лени, поискать ответ. Изменено 9 Декабря 2014 пользователем Dennis_Chikin Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 10 Сентября 2014 (изменено) @Mass Имею маленькое уточнение: схему "remark" нельзя назначать первой активной, если в ней не прописан path_walk. Если на нее переключаться уже из других схем - проблем быть не должно. P.S. Это кстати отменяет "скопипастеное" утверждение о том, что категорически нельзя назначать схему "remark" первой активной. Прописать путь - и нет проблем. Изменено 10 Сентября 2014 пользователем AndreySol Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 21 Сентября 2014 Вопрос по заданиям(task): активное задание можно выполнить - ...._complete, можно провалить - ...._fail, а можно ли его отменить ? Что-бы оно не попало ни в выполненные ни в проваленные ? Прочитал статью на Вики "SoC. Respawn", возникли такие вот вопросы по работе стандартных респавнеров:1). Цифры после запятой, означают отношение одной секции к другойrespawn_section = ....._respawn_1,10, ....._respawn_2,5 т.е на 10 НПСов первой секции будет 5 второй ? 2). max_count = колличество респавн-запросов за период времени, пока ГГ находится на локации. При переходе на другую локацию, счётчик max_count сбрасывается. Если я правильно понял, то это означает что респавнеры работают только пока актер находится на уровне ?И кондлист для этого параметра поддерживается ? 3). min_count = минимальное количество нпс, для экстренного респавна имеется в виду принудительный респавн с использованием %=respawner_spawn(имя респавнера)% ? 4). idle_spawn = тип спавна. Известно три типа medium, often, seldom. Обычно, используется тип medium Статья 2011 года - может уже есть больше подробностей по типам респавна ? 5). ф-цию respawner_spawn(имя респавнера) можно юзать не только из логики ? 6). conditions =Условие респавна они применяются к max_spawn или к max_count ? Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 21 Сентября 2014 (изменено) По респавну надо смотреть конкретный скрипт...А лазили в них, кажется, все, кому было не лень. И добавляли своего странного Блин, как все не просто! У меня чистый ТЧ 1.0006 (вроде) Конкретный скрипт - это se_respawn.script и\или xr_spawner.script ? Первое. xr_spawner - это вообще нечто странное и загадочное. dc В том se_respawn.script, что у меня, есть фрагмент: local spawn_section = "" local sum = 0 -- Производим рандомную взвешенную выборку -- с учетом уже заспавленного количества человек. for k,v in pairs(self.respawn_section) do --' local tt = self.sectSpawnProps[v.section] --' local community_rank = tt.community.."_"..tt.rank --' local s_count = simMaxCount[community_rank] --' if s_count == nil then --' s_count = 0 --' end --' if tt.check == false or --' self.item_spawn == true or --' sim_statistic.simNpcCount(tt.community, tt.rank) < s_count --' then sum = sum + v.prob --' end end sum = math.random(0, sum) for k,v in pairs(self.respawn_section) do --' local tt = self.sectSpawnProps[v.section] --' local community_rank = tt.community.."_"..tt.rank --' local s_count = simMaxCount[community_rank] --' if s_count == nil then --' s_count = 0 --' end --' if tt.check == false or --' self.item_spawn == true or --' sim_statistic.simNpcCount(tt.community, tt.rank) < s_count --' then sum = sum - v.prob if sum <= 0 then spawn_section = v.section break end --' end end эти закомментированные строки - от ПЫСов или у меня не оригинальный файл ? Судя по закомментированым строкам таблица simMaxCount не обрабатывается ? Так и есть. Не работает, и не проверяется. dc Изменено 13 Января 2015 пользователем Dennis_Chikin Поделиться этим сообщением Ссылка на сообщение