[CoP] Ковыряемся в файлах - Страница 362 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

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


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

@warwer, спасибо, но не, не работает. Всё равно стоят и себе под нос бурчат про аномалии и хабар. Причём, когда я ради теста их спавнил вне сквада, а поодиночке, то таких проблем не было, т.е. они тупо по логике действовали.

Всё, разобрался. Нужно прописать [exclusive] в логике смарта, там -- ссылку на эксклюзивную логику (вида unique_work = zaton\unique_stalker_logic.ltx), а затем исправить саму логику:

 

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

 

[logic@unique_work] ;-- здесь обязательно должно быть название из логики смарта;
active = walker@unique_work_first_step ;-- и во всех остальных секциях (как я понял), её тоже надо выносить вперёд, а уж потом писать своё название схемы;

 

[walker@unique_work_first_step]
path_walk = walker_1_walk ;-- а это очень важный момент, потому что я два дня ловил вылеты stack trace из-за него. Несмотря на то, что way_point'ы в SDK нужно обзывать с префиксом смарта (unique_smar_walker_1_walk, например);
path_look = walker_1_look ;-- то здесь их нужно указывать без префикса;
on_signal = unique_stop| remark@unique_work_phrase ;-- опять суём название работы из смарта в название схемы;

 

[remark@unique_work_phrase] 
no_move = true

 


Возможно кому-то будет полезно, т.к. ни в одном гайде по созданию NPC через сквад на CoP я подобных уточнений не нашёл, а ведь именно из-за них вылетает/не работает. 

В 21.09.2019 в 08:41, warwer сказал:

Ты умеешь распаковывать-запаковывать алл.спавн?

я работаю в сдк. 

 

В 21.09.2019 в 08:41, warwer сказал:

[hit]
on_info = %+hit_wood_1%

вот именно это я и спрашивал 

Спасибо!

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

- Пролетарии всех стран, соединяйтесь!

 

В 20.09.2019 в 01:37, WizziGun сказал:

функция которая автоматически сломает нужный мне объект

Есть такая - xr_effects.hit_obj().

Можно вызвать из логики рестриктора вместо или вместе с выдачей инфы.

Все параметры подробно расписаны непосредственно в xr_effects.script.

  • Спасибо 1
  • Согласен 1

S.T.A.L.K.E.R. CoP Objects (upd 15.11.24)

Всем привет. Такой вопрос - а что вообще нужно прописывать в логике монстров в ЗП, чтоб не атаковали актора? 
Ну, то есть, в ТЧ хватало (насколько я помню) braindead = true, а здесь перепробовал десяток оверрайдов и секций, и ничего не работает. 
И под спойлером есть пара вопросов, буду благодарен, если вы ответите:

 

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

 

[logic@snork_work]
active = mob_walker@snork_work
suitable = check_npc_name(snork_normal)} true ;-- тут у меня скорее всего неправильно, т.к. я не совсем понимаю, откуда берётся имя в скобках. Из секции в all.spawn? Но обычные NPC работают с именем из character_desc;
 

[mob_walker@snork_work]
path_walk = walker_1_walk
path_look = walker_1_look
combat_ignore_cond = true ;-- ВЕЗДЕ пишут именно так, но разве не должно быть combat_ignore_cond = always? Впрочем, не работает ни так, ни так.
aggressive = false 
friendly = true

 

 

Иными словами, снорк должен спавниться в своём смарте, после чего он забивает на игрока и бежит по патрульному пути. Но вместо этого он спавнится и тут же бросается на игрока (потому что триггер спавна срабатывает неподалёку от позиции снорка). Вопрос - как быть? Что можно изменить, чтобы заставить его игнорировать присутствие игрока? Спасибо.

@Дмитрий Зверев, пример у собаки Ноя. Почему Ной не бросается на собаку? :biggrin:

andreyholkin.gif

rod_cccp.gif

 

@Expropriator, да, смотрел именно её. Интересовала секция monster_job = true, потому что при её добавлении я хотя бы начинал ловить безлоговые вылеты. Сейчас стёр "suitable" из своей логике (потому что, подозреваю, очень неграмотно я её добавил) -- всё заработало. Сложновато-таки после ТЧ с максимально простецкими и очевидными секциями логики перетекать на ЗП, где даже спавн по инфопоршням потёрли и приходится плясать с бубном и создавать сквады для одного человека/монстра.

1 час назад, Дмитрий Зверев сказал:

Что можно изменить, чтобы заставить его игнорировать присутствие игрока?

Нужно добавить в секцию работы:

[mob_walker@stay]
aggressive = false

S.T.A.L.K.E.R. CoP Objects (upd 15.11.24)

Это только для схемы mob_home. Есть более подходящее решение:

combat_ignore_cond = true

 

Ранее был известен под ником BoBaH_671.

Парни помогите! в теме никто не шарит:вылет при попытке ремонта у механиков (после обновления):
Expression : ai().script_engine().functor("inventory_upgrades.can_afford_repair_item", funct)
Function : CUIActorMenu::TryRepairItem
File : ui\UIActorMenu_script.cpp
Line : 122
Description : Failed to get functor <inventory_upgrades.can_afford_repair_item>, item = leatherman_tool

stack trace:

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

Call of Chernobyl: Anomaly 1.5.0 [beta]+UPDATE 3

Добрый вечер.

33 минуты назад, Сеятель сказал:

вылет при попытке ремонта у механиков (после обновления)

Только что проверил ремонт как оружия, так и брони - всё работает нормально.

35 минут назад, Сеятель сказал:

в теме никто не шарит

Просто не обращают внимания так как вылет только у вас.

 

Заново переустановите игру, не торопясь, и строго по инструкциям.

Сначала основные файлы мода, потом поверх них обновление 3.

Старое обновление 2 и фикс 7 ставить не нужно.

Также удалите все дополнительные модики - дополнения если они установлены.

Потом можно будет поставить их предварительно проверяя на совместимость с обновлением 3.

@shahvkit В общем не ответ: мне нужно лечение вылета, а не инструкция для первоклассников.

Да вылет только у меня после установке обновы, при прохождении половины игры, есть рецепты лечения?

Изменено пользователем W.A.S.P.
оверквотинг
  • Не нравится 1
  • Смешно 1
4 минуты назад, Сеятель сказал:

В общем не ответ: мне нужно лечение вылета, а не инструкция для первоклассников

Ну если не ответ, то тогда сидите и ждите. Только вот долго ждать придётся.

5 минут назад, Сеятель сказал:

Да вылет только у меня после установке обновы, при прохождении половины игры, есть рецепты лечения?

Уже сказал выше - переустановите игру.

Если вылет только у вас, значит кривая установка обновления, или сбои при его скачивании.

Никто за вас в этом разбираться не будет.

  • Согласен 2

Да печаль, думал здесь спецы...

Тогда уж название темы смените: Ковыряемся в файлах.

  • Не нравится 2
  • Смешно 1

Добрый день, джентльмены. Есть вопрос касательно логики. 
 

Что нужно: персонаж отыгрывает анимацию choose, затем по таймеру переходит в другую ремарковую схему, где вызывается затемнение экрана и пси-эффект, после чего отыгрывает анимацию suicide. Затем - опять затемнение экрана, отключение пси-эффекта, и персонаж уже сидит в анимации hide (дескать, ГГ всё это примерещилось). 

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

 

[remark@balagur_to_zombie_work_loot]
anim = choose 
target = story|d_d_zombie_01
danger = danger_condition@balagur_to_zombie_work
combat_ignore_cond = true
on_timer = 6000| %=run_postprocess(black:111) =run_postprocess(psy_antenna:222) =disable_ui% remark@balagur_to_zombie_work_suicide -- включаю чёрный экран, пси-эффект и увожу его в схему "суицида"
meet = no_meet

 

[remark@balagur_to_zombie_work_suicide]
anim = zat_b22_medic_suicide
target = story|actor
danger = danger_condition@balagur_to_zombie_work
combat_ignore_cond = true
on_timer = 10000| %=run_postprocess(black:333)% remark@balagur_to_zombie_work_after_suicide -- вырубаю постпроцессы и увожу его в обычную схему
on_timer2 = 2500| %=stop_postprocess(111)%
meet = no_meet

 

[remark@balagur_to_zombie_work_after_suicide]
anim = hide
on_timer = 2000| %=stop_postprocess(333) =stop_postprocess(222) =enable_ui%
target = story|actor
danger = danger_condition@balagur_to_zombie_work
combat_ignore_cond = true
on_info = {+pogovoril_2} walker@balagur_to_zombie_work_basepath

 

 

Тем не менее, вместо этого он отыгрывает анимку choose, после чего сразу же переходит в последнюю схему, однако не садится в hide, а просто пялится на игрока. Кто знает, в чём может быть проблема? К слову, на ТЧ аналогичная схема (только с обычной анимацией suicide) работала отлично. На ЗП сначала работала, но через раз, сейчас вообще не срабатывает. 

Заранее спасибо.
https://pastebin.com/rktFuy0u -- на всякий случай, прикрепляю полный файл логики. 

@Дмитрий Зверев, возможно тут:

on_timer2 = 2500| %=stop_postprocess(111)%

Логика отключается. Попробуй изменить так:

 

[remark@balagur_to_zombie_work_suicide]

anim = zat_b22_medic_suicide
target = story|actor
danger = danger_condition@balagur_to_zombie_work
combat_ignore_cond = true
on_timer = 2500|  %=stop_postprocess(111)%| 10000| %=run_postprocess(black:333)% remark@balagur_to_zombie_work_after_suicide
meet = no_meet

Изменено пользователем naxac
  • Спасибо 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

@naxac, спасибо, но такое написание приводит лишь к бесконечному зацикливанию (по кругу крутится пси-эффект, а персонаж стоит с пистолетом у подбородка). Но сдвиг есть, так что попробую расковырять. Наверное, лучше через рестриктор делать вызов постпроцессов. 

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

 

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

 

[remark@bandit_leader]
anim = guard_na
target = story|actor
on_info = {+d_d_bandit_exodus} walker@bandit_leader_exodus
on_info2 = {+d_d_bandit_assault_fight} %=actor_enemy% -- если в диалоге выбран вариант "вступить в бой", то делаем бандита врагом ГГ;
on_info3 = {+d_d_bandit_assault_fight_with_merc} %=actor_enemy% -- то же самое, только по этому инфопоршню ещё и наёмники в бой срываются;
on_info4 = {+will_kill_balagur} remark@bandit_leader_kill_balagur -- при другом варианте уводим в схему "убить наёмника";
on_info5 = {+will_kill_ghost} remark@bandit_leader_kill_ghost -- то же самое, только другой наёмник;
danger = danger_condition@bandit_leader
combat_ignore_cond = {-d_d_bandit_assault_fight -d_d_bandit_assault_fight_with_merc} true -- игнорируем бой, чтоб не сагрился на наёмников, пока ГГ не выберет "вступить в бой";

 

[remark@bandit_leader_kill_balagur]
anim = guard_fire 
target = story|d_d_balagur_02 -- story_id из spawn_sections.ltx;
danger = danger_condition@bandit_leader
combat_ignore_cond = true
meet = no_meet
on_info = {+d_d_balagur_death_02} %+d_d_bandit_exodus% walker@bandit_leader_exodus

 

[remark@bandit_leader_kill_ghost]
anim = guard_fire 
target = story|d_d_ghost_02 -- story_id из spawn_sections.ltx;
danger = danger_condition@bandit_leader
combat_ignore_cond = true
meet = no_meet 
on_info = {+d_d_ghost_sniper_dead} %+d_d_bandit_exodus% walker@bandit_leader_exodus

 


И по этому спектаклю скопилась пара нерешённых вопросов:
1) При выборе варианта "убить такого-то наёмника" вся шайка бандитов, толпящаяся рядом становится друзьями, а оба наёмника - врагами; 
2) Бандит переходит в remark@bandit_leader_kill_***, но, несмотря на явно указанный story_id, не поворачивается в сторону наёмника, чтобы произвести по нему выстрел и вообще ведёт себя неадекватно. 

Впрочем, по второму вопросу есть пара идей - может, стоит подключать для связки промежуточный remark с анимкой guard, в которой бандит посмотрит на наёмника, а уж потом - remark с убийством? Или же пытаться увести его в walker, явно задать связку флагов walk-look, после чего приступить к убиению наёмника? Какой из этих способов вообще предпочтительнее и менее глючный в долгосрочной перспективе? 

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

Добрый день.

Нужна небольшая помощь по правке файла gamemtl.xr из мода Anomaly 1.5.0

Знаю что эта тема по чистому ЗП и что есть специализированная тема по моему вопросу, но там последнее посещение в 2015 году, и моё сообщение вряд ли скоро заметят, если вообще обратят внимание.

Поэтому и прошу в этой теме.

В общем нужно исправление чтобы НПС не видели ГГ сквозь кусты, тонкие стены и так далее.

Сейчас у НПС ренгеновское зрение и они видят ГГ даже если в actor.ltx выставить transparency_threshold = 0.99

Если кто то может это исправить, то вот ссылка на сам файл gamemtl.xr - https://my-files.ru/soub1v

Всем привет, помогите плиз разобраться с скриптом. Это фрагмент из скрипта мода Сталкер Аномалия 1.5 (3.0) на верстак с апгрейдом\ремонтом снаряжения.

Хотел убрать взаимоисключение апгрейдов. Я в скриптах не силен, но кое что накопал, если не ошибаюсь, то это этот фрагмент:

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

    local function check_same_group(gr,idx)
        local tbl = {
            [1] = 2,
            [2] = 1,
            [3] = 4,
            [4] = 3,
            [5] = 6,
            [6] = 5,
        }
        local oth = tbl[idx]
        local sec = self.upgr[gr][oth] and self.upgr[gr][oth].section 
        return not (sec and self.inst_upgr[sec])
    end
    
    local function check_upgr_scheme(gr,idx)
        local tbl = {
            [3] = {1,2},
            [4] = {1,2},
            [5] = {3,4},
            [6] = {3,4},
        }
        local pre = tbl[idx]
        if (not pre) then return true end
        
        local sec_i = self.upgr[gr][pre[1]] and self.upgr[gr][pre[1]].section
        local sec_j = self.upgr[gr][pre[2]] and self.upgr[gr][pre[2]].section
        
        return (sec_i and self.inst_upgr[sec_i]) or (sec_j and self.inst_upgr[sec_j]) or false
    end
    
    local function check_con(con, col)
        local tbl = {
            [1] = 30,
            [2] = 60,
            [3] = 90,
        }
        return tbl[col] < con
    end

 

Изменено пользователем Дмитрий Михалик

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

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

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

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

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

Войти

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

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

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