Случайная подборка модов
Контракт на хорошую жизнь
4.1
Альтернатива 1.1 Beta
3.0
Золотой обоз. Часть первая
3.5
Old Good Stalker Mod v2.4 Gold
4.2
Legend Returns 0.9.2
4.0
Припять. Точка отсчета
3.3
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: FanG, Аdmin, FantomICW, Overfirst  
[CoP] Модострой: вопросница
Российская Федерация  Overfirst
Воскресенье, 31.12.2017, 13:17 | Сообщение # 1
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

[CoP] Модострой: вопросница

Тема посвящена моддингу на платформе Зов Припяти.

Соседние темы: Тень Чернобыля / Чистое небо.


  • Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.

  • Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.

  • Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).

  • Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
  •   Злобная реклама
    Воскресенье, 31.12.2017, 13:17
    Статус:
    Сообщений: 666
    Регистрация: 11.06.2015
    Япония  Detron
    Пятница, 16.03.2018, 01:24 | Сообщение # 631
    Статус:
    Гость:
    Сообщений: 35
    Награды: 1
    Регистрация: 13.07.2017

    Всем привет! Хочу задать такой вопрос. До этого момента, не занимался артефактами особо как-то, но сейчас решил за них взяться. Проблема в следующем. Артефактам не прописывается несколько иммунитетов: пулестойкость, защита от ударов, защита от взрывов и защита от рваных ран. Все бы ничего, но вроде бы как такие параметры в ЗП есть, но артефактам они почему-то не присваиваются. Вырезаны в движке? И если да, то можно ли их вернуть?
    Сообщение отредактировал Detron - Пятница, 16.03.2018, 01:24
      Злобная реклама
    Пятница, 16.03.2018, 01:24
    Статус:
    Сообщений: 666
    Регистрация: 13.07.2017
    Российская Федерация  denis2000
    Пятница, 16.03.2018, 10:58 | Сообщение # 632
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    Detron, "strike_immunity", "wound_immunity", "explosion_immunity", "fire_wound_immunity" отключены для артефактов в движке.
      Злобная реклама
    Пятница, 16.03.2018, 10:58
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Украина  _S_k_i_F_
    Пятница, 16.03.2018, 16:11 | Сообщение # 633
    Золотой Обоз
    Статус:
    Опытный:
    Сообщений: 1311
    Награды: 9
    Регистрация: 09.08.2015

    Detron, дополню denis2000 - в движке отключены выводы иконок и значений в описание арта. А так параметры работают.
      Злобная реклама
    Пятница, 16.03.2018, 16:11
    Статус:
    Сообщений: 666
    Регистрация: 09.08.2015
    Российская Федерация  Han_Kostenlo
    Пятница, 16.03.2018, 16:44 | Сообщение # 634
    Группа Кровавой Дороги
    Статус:
    Отмычка:
    Сообщений: 96
    Награды: 0
    Регистрация: 31.05.2017

    Такое дело: квестовый предмет у НПС при смерти удаляется из рюкзака, при жизни он при нем. Что где прописать/изменить, чтобы это исправить?
      Злобная реклама
    Пятница, 16.03.2018, 16:44
    Статус:
    Сообщений: 666
    Регистрация: 31.05.2017
    Украина  _S_k_i_F_
    Пятница, 16.03.2018, 18:41 | Сообщение # 635
    Золотой Обоз
    Статус:
    Опытный:
    Сообщений: 1311
    Награды: 9
    Регистрация: 09.08.2015

    Han_Kostenlo, в файл death_generic.ltx в секцию keep_items
      Злобная реклама
    Пятница, 16.03.2018, 18:41
    Статус:
    Сообщений: 666
    Регистрация: 09.08.2015
    Российская Федерация  Han_Kostenlo
    Пятница, 16.03.2018, 18:47 | Сообщение # 636
    Группа Кровавой Дороги
    Статус:
    Отмычка:
    Сообщений: 96
    Награды: 0
    Регистрация: 31.05.2017

    _S_k_i_F_, Пробовал, не работает.
      Злобная реклама
    Пятница, 16.03.2018, 18:47
    Статус:
    Сообщений: 666
    Регистрация: 31.05.2017
    Российская Федерация  AlexeyAlexey
    Пятница, 16.03.2018, 20:30 | Сообщение # 637
    Статус:
    Отмычка:
    Сообщений: 79
    Награды: 0
    Регистрация: 11.01.2018

    Вопрос по скриптам в CoC. Вообще я писал вопрос сюда, но там как то тихо и никто особо не отвечает. CoC и ЗП в плане функций особо не различаются, так что пожалуй напишу сюда.
    В OGSE была такая фича: чтобы пройти сквозь пси-излучение на радаре и янтаре, нужно переместить пси-шлем в слот, а не только иметь его в инвентаре. Я как понял это делается в скриптах и их конфигах и вот что я нашел в файлах OGSE (файл bun_psy_zone.ltx):
    Код
    [logic]
    active = sr_psy_antenna@no_helmet

    [sr_psy_antenna@no_helmet]
    eff_intensity = +100
    hit_intensity = +100
    phantom_prob = 70
    postprocess = psy_antenna_indoor.ppe
    min_phantom_idle = 3000
    max_phantom_idle = 5000
    on_info = {=actor_wear_helmet(good_psy_helmet)} sr_psy_antenna@good_helmet, {=actor_wear_helmet(bad_psy_helmet)} sr_psy_antenna@bad_helmet
    on_info2 = {+bar_deactivate_radar_done} nil

    [sr_psy_antenna@bad_helmet]
    eff_intensity = +100
    hit_intensity = +0.2
    phantom_prob = 60
    postprocess = psy_antenna_indoor.ppe
    min_phantom_idle = 3000
    max_phantom_idle = 5000
    on_info = {=actor_wear_helmet(good_psy_helmet)} sr_psy_antenna@good_helmet, {=actor_wear_helmet(bad_psy_helmet)}, sr_psy_antenna@no_helmet
    on_info2 = {+bar_deactivate_radar_done} nil

    [sr_psy_antenna@good_helmet]
    eff_intensity = +100
    hit_intensity = +0.2
    phantom_prob = 50
    postprocess = psy_antenna_indoor.ppe
    min_phantom_idle = 3000
    max_phantom_idle = 5000
    on_info = {=actor_wear_helmet(good_psy_helmet)}, {=actor_wear_helmet(bad_psy_helmet)} sr_psy_antenna@bad_helmet, sr_psy_antenna@no_helmet
    on_info2 = {+bar_deactivate_radar_done} nil

    Функцию =actor_wear_helmet я так же нашел в xr_conditions.script:
    Код
    -- true если у актора одет шлем указанной секции
    function actor_wear_helmet(actor, npc, p)
        return p[1] ~= nil and actor:object( p[1] ) ~= nil and actor:item_in_slot(10) ~= nil and actor:item_in_slot(10):section() == p[1]
    end

    Сначала я просто перенес скрипт из OGSE в CoC, понятное дело не получилось, ибо у ТЧ и ЗП немного разные форматы скриптов. Потому решил сделать так (файл xr_conditions.script из CoC):
    Код
    -- true если у актора одет шлем указанной секции
    function actor_wear_helmet(actor, npc, p)
        local story_actor  = get_story_object("actor")
        return p[1] ~= nil and story_actor and story_actor:object( p[1] ) ~= nil and story_actor:item_in_slot(11) ~= nil and story_actor:item_in_slot(11):section() == p[1]
    end

    Не сработало. Что нужно сделать, чтобы когда ты переносишь предмет в ячейку шлема, пси-излучение на янтаре и радаре тебя не трогало? Вот на всякий случай файл yantar_psi_radiotion_55.ltx из CoC:
    Код
    [logic]
    active = sr_idle@check_story

    [sr_idle@check_story]
    on_info = {+story_mode_disabled} sr_idle@nil, sr_psy_antenna@no_helmet

    [sr_psy_antenna@no_helmet]
    eff_intensity = 40
    hit_intensity = 20
    on_info = {+yantar_attack_start} sr_idle@nil, {+yan_labx16_switcher_primary_off} sr_idle@nil
    on_info2 = {=actor_community(actor_monolith)} sr_idle@nil, {=actor_community(actor_zombied)} sr_idle@nil
    on_info3 = {=actor_wear_helmet(good_psy_helmet)} sr_psy_antenna@good_psy_helmet, {=actor_wear_helmet(bad_psy_helmet)} sr_psy_antenna@bad_psy_helmet

    [sr_psy_antenna@bad_psy_helmet]
    eff_intensity = 20
    hit_intensity = 0
    on_info = {+yantar_attack_start} sr_idle@nil, {+yan_labx16_switcher_primary_off} sr_idle@nil
    on_info2 = {=actor_community(actor_monolith)} sr_idle@nil, {=actor_community(actor_zombied)} sr_idle@nil
    on_info3 = {=actor_wear_helmet(good_psy_helmet)} sr_psy_antenna@good_psy_helmet, {!actor_wear_helmet(bad_psy_helmet)} sr_psy_antenna@no_helmet

    [sr_psy_antenna@good_psy_helmet]
    eff_intensity = 10
    hit_intensity = 0
    on_info = {+yantar_attack_start} sr_idle@nil, {+yan_labx16_switcher_primary_off} sr_idle@nil
    on_info2 = {=actor_community(actor_monolith)} sr_idle@nil, {=actor_community(actor_zombied)} sr_idle@nil
    on_info3 = {=actor_wear_helmet(bad_psy_helmet)} sr_psy_antenna@bad_psy_helmet, {!actor_wear_helmet(good_psy_helmet)} sr_psy_antenna@no_helmet

    [sr_idle@nil]
      Злобная реклама
    Пятница, 16.03.2018, 20:30
    Статус:
    Сообщений: 666
    Регистрация: 11.01.2018
    Российская Федерация  denis2000
    Пятница, 16.03.2018, 21:09 | Сообщение # 638
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    Цитата Han_Kostenlo ()
    Пробовал, не работает.

    Значит плохо пробовали, нахождение имени предмета в этой секции не только сигнал death_manager.script не удалять предмет из инвентаря трупа, но и сигнал release_body_manager.script не удалять труп с таким предметом.


    AlexeyAlexey, Этот код прекрасно работает, если помнить что в ЗП слот шлема 12:
    Код
    -- true если у актора одет шлем указанной секции
    function actor_wear_helmet(actor, npc, p)
        return p[1] ~= nil and actor:object( p[1] ) ~= nil and actor:item_in_slot(12) ~= nil and actor:item_in_slot(12):section() == p[1]
    end
    Сообщение отредактировал denis2000 - Пятница, 16.03.2018, 21:09
      Злобная реклама
    Пятница, 16.03.2018, 21:09
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Российская Федерация  AlexeyAlexey
    Пятница, 16.03.2018, 21:33 | Сообщение # 639
    Статус:
    Отмычка:
    Сообщений: 79
    Награды: 0
    Регистрация: 11.01.2018

    Цитата denis2000 ()
    ЗП слот шлема 12

    Код
    [helmet_base]
    GroupControlSection                      = spawn_group
    discovery_dependency                     =
    ;$spawn    = "outfit\helmet"
    $prefetch                    = 32
    class                    = E_HLMET
    cform                    = skeleton
    visual                    = dynamics\outfit\scientific_outfit
    slot                    = 11


    Добавлено (16.03.2018, 21:33)
    ---------------------------------------------
    Вот из оригинального ЗП
    Код
    [helmet]
    GroupControlSection    = spawn_group
    discovery_dependency =
    ;$spawn    = "outfit\helmet"
    $prefetch   = 32
    class   = E_HLMET
    cform            = skeleton
    visual           = dynamics\outfit\scientific_outfit
    slot   = 11


    Странно...
    Сообщение отредактировал AlexeyAlexey - Пятница, 16.03.2018, 21:34
      Злобная реклама
    Пятница, 16.03.2018, 21:33
    Статус:
    Сообщений: 666
    Регистрация: 11.01.2018
    Российская Федерация  denis2000
    Пятница, 16.03.2018, 21:41 | Сообщение # 640
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    Цитата AlexeyAlexey ()
    Странно...
    Все верно, судя по коду в inventory_item.cpp
    Код
    u32 sl     = pSettings->r_u32(section,"slot");
        m_ItemCurrPlace.base_slot_id = (sl==-1)?0:(sl+1);

    Слот шлема = 11+1=12
    Сообщение отредактировал denis2000 - Пятница, 16.03.2018, 21:47
      Злобная реклама
    Пятница, 16.03.2018, 21:41
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Российская Федерация  AlexeyAlexey
    Пятница, 16.03.2018, 22:02 | Сообщение # 641
    Статус:
    Отмычка:
    Сообщений: 79
    Награды: 0
    Регистрация: 11.01.2018

    denis2000, Спасибо! У меня все заработало.
    Сообщение отредактировал AlexeyAlexey - Пятница, 16.03.2018, 22:04
      Злобная реклама
    Пятница, 16.03.2018, 22:02
    Статус:
    Сообщений: 666
    Регистрация: 11.01.2018
    Российская Федерация  alanbrose
    Пятница, 16.03.2018, 23:03 | Сообщение # 642
    Статус:
    Отмычка:
    Сообщений: 113
    Награды: 4
    Регистрация: 28.08.2015

    Всем привет! Лоцман "втыкается" в сталкера на своём пути и троит. Можно прописать в смарт или логику, чтобы он обходил его?

    Скрин
      Злобная реклама
    Пятница, 16.03.2018, 23:03
    Статус:
    Сообщений: 666
    Регистрация: 28.08.2015
    Япония  Detron
    Суббота, 17.03.2018, 01:19 | Сообщение # 643
    Статус:
    Гость:
    Сообщений: 35
    Награды: 1
    Регистрация: 13.07.2017

    denis2000, _S_k_i_F_, спасибо за ответ. Отключены лишь иконки, а это хорошо. Можно значит включить. Тогда еще один вопрос по части gui. Вот вывожу я сообщение через news_manager. И вижу, что сообщение слишком мелкое. И иконка и текст. Сам я не нашел где править. Надеюсь, кто-нибудь знает. И надеюсь правки нужно делать не в движке biggrin
      Злобная реклама
    Суббота, 17.03.2018, 01:19
    Статус:
    Сообщений: 666
    Регистрация: 13.07.2017
    Российская Федерация  Neptun
    Суббота, 17.03.2018, 07:20 | Сообщение # 644
    Связной
    Статус:
    Бывалый:
    Сообщений: 672
    Награды: 9
    Регистрация: 25.03.2012

    Добро.
    Хотел создать возможность отображения артефактов в аномалии путём наведения курсора на локацию (то же самое, что и на Юпитере по заданию учёных). Но не работает. Делал и так и эдак, а список артефактов всё равно не появлялся. Делаю на новой локации, делал по абсолютной аналогии. Сейчас предоставлю конечный вариант моих попыток, который мне необходим к результату:

    Редактировал только скрипт pda.

    Добавлено (17.03.2018, 07:20)
    ---------------------------------------------
    alanbrose, вот логика Лоцмана: gamedata\configs\scripts\jupiter\zat_b215_stalker_guide_jupiter
    Создай дополнительную секцию логику с walk, где бы Лоцман шагал сначала по координатам, а по достижении финальной точки переходил в анимпоинт.
    В way: wp00|sig=final
    В логике: on_signal = final | переход на логику.

      Злобная реклама
    Суббота, 17.03.2018, 07:20
    Статус:
    Сообщений: 666
    Регистрация: 25.03.2012
    Украина  _S_k_i_F_
    Суббота, 17.03.2018, 12:34 | Сообщение # 645
    Золотой Обоз
    Статус:
    Опытный:
    Сообщений: 1311
    Награды: 9
    Регистрация: 09.08.2015

    mmihaill, у меня так было и все работало
    Код
    {target = "yan_north_anomal_spot",  hint = "yan_north_anomal_spot_name",    zone = "yan_anomal_zone_3",    group = "yan_scaner_1_clicked_2",    enabled = false},

    yan_scaner_1_clicked_2 - поршень после которого отображать артефакты в аномалии
    yan_anomal_zone_3 - имя аномальной зоны
    А ф-ция change_anomalies_names() такая:
    Код
    function change_anomalies_names()
        if has_alife_info("red_lesnik_start_dialog") then -- любой поршень который будет выдан в начале игры
      for k,v in pairs(change_objects_tbl) do
       if has_alife_info(v.group) and not v.enabled then
        v.enabled = true
       end
      end
        end
        for k,v in pairs(change_objects_tbl) do
      if v.enabled then
       local obj_id = get_story_object_id(v.target)
       if (obj_id) and (level.map_has_object_spot(obj_id, "primary_object") ~= 0) then
        level.map_remove_object_spot(obj_id, "primary_object")
       end
       local hint = game.translate_string(v.hint).."\\n".." \\n"
       local has_af = false
       local af_table = {}
       has_af, af_table = xr_conditions.anomaly_has_artefact(db.actor, nil, {v.zone})
       if has_af then
        hint = hint..game.translate_string("st_jup_b32_has_af")
        for k,v in pairs(af_table) do
         hint = hint.."\\n"..game.translate_string("st_"..v.."_name")
        end
       else
        hint = hint..game.translate_string("st_jup_b32_no_af")
       end
       if (obj_id) and level.map_has_object_spot(obj_id, "primary_object") == 0 then
        level.map_add_object_spot(obj_id, "primary_object", hint)
       end
      end
        end
    end
      Злобная реклама
    Суббота, 17.03.2018, 12:34
    Статус:
    Сообщений: 666
    Регистрация: 09.08.2015
    Поиск: