AndreySol 215 Опубликовано 3 Июня 2014 Две вопроса по логике\гулагам: - параметр prior в описании работ гулага, задает приоритеты. Каков диапазон значений? К примеру имеем 5 работ. Вариант 1: расставить им приоритеты по возрастающей от 1 до 5. Вариант 2: первым 4-м приоритеты по возрастающей от 1 до 4, а последней 100. В чем будет разница между такими вариантами? Или ее вообще не будет ? - Имеем несколько работ в гулаге. Если 2-м из них прописать одну и ту-же логику в section, во что это выльется ? Будет зависеть от типа логики ? К примеру логика будет типа "кэмпер" - два непися припрутся в одну и ту-же точку местности и будут там толкаться, пытаясь занять назначенную в путях позицию ? Или логика "кэмп" - те-же два непися прийдут к одному костру и рандомно рассядутся вокруг него, особо не толкаясь ? Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 18 Июня 2014 Несколько вопросов по логике. 1) Заметил такую штуку с анимацией НПСов, при переключении секций прописанной им логики: к примеру есть такая цепочка из секций walker@..... anim = wounded_heavy remark@..... anim = wounded_heavy remark@..... anim = wounded_heavy В первой секции НПС лежит как и положено, но при переходе из walker в remark НПС встает, а затем ложится. А вот при переходе из remark в remark - лежит не вставая. В чем проблема, и есть-ли решение ? Может какой флаг, запрещающий менять анимацию при переключении с секции на секцию ? Или может быть можно указать глобально в секции logic@.... анимацию для всех подчиненных секций ? 2) combat_ignore и combat_ignore_cond. Если в секции logic@.... не прописано combat_ignore, то на combat_ignore_cond = always в любой из подчиненных секции НПС не реагирует. Так и должно быть, или я чет непонял ? 3) combat_ignore_cond = {=check_fighting(402)} - что это означает ? Разрешение комбата только против НПСа с story_id = 402 ? Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 18 Июня 2014 "в любой из подчиненных секции НПС не реагирует." - да, так и должно. Для каждой секции параметры перезагружаются, либо прописываются дефолтные. "Глобальный" метод есть, но не работает из-за ошибки в скрипте. Значит использование combat_ignore_cond в подчиненных секциях имеет смысл лишь в связке с указанием в секции logic@.... параметра combat_ignore = combat_ignore ? Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 18 Июня 2014 (изменено) 1) Попробуй в ремарке просто не указывать анимки. Если я правильно понял - в walker указать анимацию, а в последующих remark нет ? И будет все красиво ? Цитата из вики: syn Наличие флажка задержит установку сигнала до тех пор, пока в точку с флажком syn не прибудут все персонажи с данным team-ом (team задается в виде текстовой строки в customdata). customdata - имеется в виду это ? custom_data = <<END ............................... END Если да, то не нашел ни для одного НПСа в распакованном аллспаун строки team в custom_data. Есть только: ; cse_alife_creature_abstract properties g_team = 4 (или 0) Это оно ? Изменено 18 Июня 2014 пользователем AndreySol Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 18 Июня 2014 (изменено) Про syn - это уже второй вопрос был, к анимациям не относящийся.... Ну не очень понятно его задал, не отделив от первого. попробуй, а красиво или нет, не знаю попробовал - не красиво, при переходе в ремарк, НПС поднимается и уже не ложится. Изменено 18 Июня 2014 пользователем AndreySol Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 20 Июня 2014 (изменено) Отчего НПС может игнорировать on_death ? Вот секция логики в которой он находится: [walker@val_x18_security_guard8_nc] path_walk = guard6_walk path_look = guard6_look meet = no_meet on_death = on_death@death_guard8 on_hit = on_hit@hit_guard8 combat_ignore_cond = {=check_fighting(400:402)} так прописан on_death@death_guard8 [on_death@death_guard8] on_info = %+val_prisoner_escape_start =logic_and_spawn_test% logic_and_spawn_test - тестовая ф-ция, прописаная в xr_effects, просто выводит сообщение актеру(ГГ). Иду к НПСу, шмаляю в него, убиваю - нет ни сообщения ни выдачи инфо-порции. Изменено 20 Июня 2014 пользователем AndreySol Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 20 Июня 2014 Так написано-же - в скрипте xr_logic в 126-й строке локальная переменная st равна nil. Открывай в редакторе, который показывает нумерацию строк, ищи 126-ю и гляди че там за nil получился. В оригинальном ТЧ эта строка находится в ф-ции configure_schemes, значит глюк связан с гулагами\логикой НПСов. Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 21 Июня 2014 (изменено) Так совсем не обязательно, что глюк именно в гулаге той локи куда ты переходишь. Запросто может быть и на той локе, откуда переходишь. Ведь при переходе на другую локу происходит перезагрузка всех игровых объектов. Вот и ищи - кто виноват. Непосредственно перед строкой скрипта, которая валит движок есть такое: local npc_id = npc:id() local st = db.storage[npc_id] -- если какая-то схема была до этого активна, деактивировать её if st.active_section then --- здесь вылетаем issue_event(npc, st[st.active_scheme], "deactivate", npc) endДобавь перед строкой "-- если какая-то схема была до этого активна, деактивировать её" вывод npc:id() в лог, будешь знать какой перс конкретно виноват. Ну а дальше сам... P.S. и еще - я не буду утверждать, просто пока с этим не работал - но если монстры то-же работают под гулагами, то и они будут обрабатываться в xr_logic. Такой вопрос: Есть гулаг с основным населением "сталкеры", и есть 1 эксклюзивная работа в этом гулаге и НПС "торговец" эту работу занимающий. Если я(ГГ) убиваю этого эксклюзивного НПСа, то остальное население гулага на ГГ не обижается. А если грохну кого-то из не эксклюзивных - сразу атакуют ГГ. Как правильно сделать, чтоб и убийство этого эксклюзивного НПС обижало на ГГ остальное население гулага ? Изменено 21 Июня 2014 пользователем AndreySol Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 21 Июня 2014 AndrewMor это в xr_logic добавь\исправь. Смысл кода: если есть сбой в данных из db.storage для какого-то моба - пишем его ID в лог. local npc_id = npc:id() local st = db.storage[npc_id] -- если какая-то схема была до этого активна, деактивировать её if st and st.active_section then issue_event(npc, st[st.active_scheme], "deactivate", npc) else local text = "глючит моба с ID: "..tostring(npc_id) local set_text = string.gsub(text, " ", "_") local con = get_console() con:execute(set_text) con:execute("flush") end ................... Смотреть после вылета в лог-файле (не в кусочке из него, что в буфере обмена будет), который найдешь или в системной папке Документы или в папках игры, зависит от настроек в fsgame.ltx. on_death и т.д.Это типа отловить смерть\хит по этому НПСу - и затем как-то обидеть всех гулаговцев на ГГ ? Подскажите какой ф-цией это можно сделать, я имею в виду "обидеть" ?А вообще-то хотелось-бы знать - отчего неэксклюзивные "сами" обижаются а на эксклюзива надо обижать скриптеру ? Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 22 Июня 2014 (изменено) ТЧ 1.0005 чистая. Такая вот проблема - на одной из локаций логика НПСов под гулагами сходит с ума. Подробнее: начало игры как обычно в коморе у Сидора. На Кордоне все нормально, все НПСы работают, все ОК. Перехожу на Свалку, здесь то-же все ОК. Перехожу на Темную Долину - и тут все сходит с ума. Первая сцена - долговец Пуля пытает раненого бандита, произносит "Говори, а то узнаешь как пуля легко....", тот должен отвечать, но молчит. Соответственно Пуля стоит над ним и сцена дальше не идет. Логику этого раненого бандита не трогал. Инфо-порция "val_nap1_phrase1_end" которая выдается после фразы Пули и должна переключить секцию бандюка выдается нормально, проверил. Почему такое может быть ? Как выявить что ломает обработку логики, причем только на этой локе ? Проблема похоже конкретизировалась - выявил, что логику ломает любое перключение любого НПСа на этой локе в секцию "remark". Там таких несколько - раненый бандит, которого Пуля пытает, сам Пуля и раненый на заправке, где кровосос появляется. Причем любой из них, при переключении в ремарк дает вылет, причем с пустым лог-файлом. Нифига понять не могу, как такое получается ? Может кто сталкивался с подобным ? Изменено 9 Декабря 2014 пользователем Dennis_Chikin Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 25 Июня 2014 (изменено) а так лень глянуть в конфигВы имеете в виду game_relations.ltx ? Про него я знаю. Но мне интересно именно поведение НПСов под гулагами - ну допустим в ДН на Кордоне: если я стрельну в какого-то из сталкеров, весь гулаг станет врагами ГГ и попытается его замочить, но если я убегу от них и перейду на Свалку - сталкеры там будут нейтральны к ГГ. Значит в этом случае не game_relations есть есть основа обижания НПСов под гулагом на ГГ ? Флаг syn в путях - как заставить работать его ? На вики написано что-то про "персонажи с данным team-ом (team задается в виде текстовой строки в customdata)". Нашел этот параметр в character_desc_****.xml типа <team>Killer_specnaz</team>. Это оно ? Еще раз про team для НПСов - его только в character_desc_****.xml можно прописать, или прокатит в alife-файле спавна что-то типа: custom_data = <<END [logic] team = ля-ля-ля END И на что этот флаг еще может повлиять, кроме возможности синхронизировать движение по точкам путей ? Такое вот нашел в alife_l04_darkvalley.ltx для двух каких-то НПСов: custom_data = <<END [spawner] cond = {+val_raid_start} [smart_terrains] none = true [logic] active = walker [walker]2 path_walk = val_raid_w1 path_look = val_raid_l1 END Выделенная цифра - что означает ? Опечатка ? dc Изменено 6 Декабря 2014 пользователем Dennis_Chikin Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 29 Июня 2014 Сейчас что с кривыми диалогами ? Они соответствуют моменту, просто попутаны ГГ и НПС в порядке произношения фраз ? Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 30 Июня 2014 Как обычно - ручками, с помощью какого-нибудь текстового редактора.... Чуток подскажу: файл gamedata\config\gameplay\dialogs_military.xml, в нем найти этот самый диалог и че нить с ним сделать... Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 30 Июня 2014 что в логике не так, мож не дописал чего То, что под спойлером - это и есть вся логика ? Несколько вопросов по all.spawn: 1) При декомпиляции со сканированием с исп. uACDC - удалять sections.ini обязательно, если в конфигах ничего не изменял ? 2) Насчет содержимого alife-файлов все понятно, а вот насчет way-файлов есть вопрос. Их содержимое то-же полностью, при начале НИ, считывается движком, и как-то сохраняется ? 3) Что за файл в распакованном all.spawn (версия uACDC 1.35) - way__level_unknown.ltx Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 6 Июля 2014 Объясните, на кой ПЫСам в квестовые задания приоритеты расставлять было ? К примеру для двух первых заданий на ТД, у одного прописано prio="420" у следующего prio="415". И откуда цифры такие, для ТД в файле заданий их всего не более десятка, а там 395, 403 и т.п. Может есть какой-то смысл, мне не известный ? Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 6 Июля 2014 все очевидно из task_manager.script Я в вопросе чуть не правильно выразился - спросить хотел о сюжетных заданиях. А к ним отношение менеджер регулярных заданий никак иметь не может. Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 6 Июля 2014 о ключе prio Мне тут мысля пришла - может этот проритет используется при переключении отображения активного задания в соответствующе закладке ПДА ? А так как вообще заданий может быть много, тогда и большие значения параметра понятны. Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 7 Июля 2014 (изменено) Есть такое задание: <game_task id="val_prisoner_help"> <title>val_prisoner_help</title> <objective key="0"> <article>val_prisoner_help_art</article> <icon>ui_iconsTotal_val_prisoner_help</icon> <infoportion_complete>val_prisoner_scene_end</infoportion_complete> <infoportion_fail>val_prisoner_dead</infoportion_fail> </objective> <objective key="1"> <text>val_prisoner_help_1</text> <infoportion_complete>val_prisoner_give_info</infoportion_complete> <infoportion_fail>val_prisoner_dead</infoportion_fail> </objective> <objective key="2"> <text>val_prisoner_help_2</text> <map_location_type hint="val_prisoner_help_main_hint">green_location</map_location_type> <object_story_id>val_prisoner</object_story_id> <infoportion_complete>val_prisoner_free</infoportion_complete> <infoportion_set_complete>val_prisoner_scene_end</infoportion_set_complete> <infoportion_fail>val_prisoner_dead</infoportion_fail> </objective></game_task> выдается в диалоге. Проблема - после выдачи, на объекте задания сразу стоит зеленая метка. Ошибок с инфо-порциями нет. Что не так ? Она ведь должна, по идее, появляться только после выполнения первого подзадания ? И еще по заданиям вопрос - в кодах исходных заданий сплошь и рядом встречается строка: <icon height="50" width="50" x="100" y="50">ui\ui_icons_task</icon> с разными циферками для х и у. Она движком обрабатывается ? А то чет иконок, указанных по этим координатам из указанного файла текстур, я в описаниях заданий в ПДА не вижу ни где ? Изменено 7 Июля 2014 пользователем AndreySol Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 12 Июля 2014 (изменено) Имеется три НПСа под гулагом. Все трое по выдаче инфо-порции переходят в схему patrol. Схемы построены так: ведущий [remark@val_escort_npc1]anim = waittarget = actoron_game_timer = 1800 | patrol@val_escort_npc1_leave %+val_escort_scene_end% - эта инфо-порция переводит в patrol[patrol@val_escort_npc1_leave]path_walk = leave_walkpath_look = leave_lookcommander = trueformation = lineon_signal = arrived | nil %+val_escort_on_blokpost% ведомые, первый (в схему не переходит, гад...) [walker@val_escort_npc2]path_walk = wait_to_prisoner_walk1path_look = wait_to_prisoner_look1on_info = {+val_escort_scene_end} | patrol@val_escort_npc2_leave[patrol@val_escort_npc2_leave]path_walk = leave_walkpath_look = leave_lookformation = lineon_info = {+val_escort_on_blokpost} | nilon_signal = arrived | nil второй [remark@val_escort_npc3]anim = wait_naon_info = {+val_escort_scene_end} patrol@val_escort_npc3_leave[patrol@val_escort_npc3_leave]path_walk = leave_walkpath_look = leave_lookformation = lineon_info = {+val_escort_on_blokpost} | nilon_signal = arrived | nil Проблема - один из ведомых НПСов категорически не желает идти в патруле. Ведущий и второй ведомый НПС исправно переходят в схему и начинают движение по прописанному пути, а первый ведомый НПС не переходит в схему и все. Но под гулагом остается. Что это может быть ? Что и где я упустил ? кошмар какой-то.... Переделал схему первого ведомого НПСа так, чтоб он в patrol переходил тоже из remark, как и два других - и все заработало !!! Это-то как понимать ???? я вот например заметил косяк в приведенной тобою логикеВ чем он ? Изменено 9 Декабря 2014 пользователем Dennis_Chikin убрал код под спойлеры Поделиться этим сообщением Ссылка на сообщение
AndreySol 215 Опубликовано 22 Июля 2014 (изменено) но Кэп умер. Можно ли сделать так, чтобы последний пункт( поговорить с командиром Барьера) посылал меня допустим к Лукашу? Насколько мне известно, уже проинициализированное задание(проще говоря - уже выданное) изменить нельзя. Но можно проявить фантазию, допустим так: использовать для завершающего подзадания(последнего пункта) <function_fail>, в котором проверив, что этот самый Кэп помер, выдать ГГ сообщение, типа "Это Лукаш, зайди ко мне - поговорить надо", и выдать какую-то инфо-порцию. Ну и соответственно Лукашу прописать в диалоги ветку, разблокирующуюся по наличию этой выданной и-п, с соболезнованиями по поводу смерти Кэпа и выдачей полагающейся награды. И далее фантазируем - если не охота портить статистику игрока проваленным квестом, можно использовать <function_complete> и завершать квест успехом, но в ф-ции выдавать сообщение с намеком у кого получить вознаграждение. Вообще - можно, но ну его нафиг, такое извращение. Как-то думал, чтобы проваленные задания в истории не хранились, потом плюнул. Можно еще просто тупо поршни поснимать совсем. Но тоже извращение. dc Изменено 22 Июля 2014 пользователем Dennis_Chikin Поделиться этим сообщением Ссылка на сообщение