Случайная подборка модов
Dark Ukraine v 1.0
3.9
Hibernation Evil - Эпизод I
2.8
Объединенный Пак 2.1
3.1
AVS "Закон Меченого" 2 части
3.4
Народная Солянка 2010
4.0
Хроники Зоны: Viam Fata
3.0
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: 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
    Российская Федерация  denis2000
    Четверг, 15.03.2018, 09:44 | Сообщение # 631
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    Asfagan, Есть такая схема companion (скрипт xr_companion.script) вот ее и используйте (почти наверняка ее придется допилить под ваши задачи). Еще есть схема patrol (скрипт xr_patrol.script), но с ней сложнее, там больше переделывать придется. Или написать полностью свою схему поведения НПС. В любом случае назначать ее каждому НПС индивидуально, а не скваду.
    Сообщение отредактировал denis2000 - Четверг, 15.03.2018, 09:51
      Злобная реклама
    Четверг, 15.03.2018, 09:44
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Российская Федерация  Asfagan
    Четверг, 15.03.2018, 09:49 | Сообщение # 632
    Статус:
    Бывалый:
    Сообщений: 929
    Награды: 12
    Регистрация: 01.02.2014

    denis2000, ясно. а вот еще вопрос: как растянуть по горизонтали описание предметов? вместо оригинала по вертикали.
      Злобная реклама
    Четверг, 15.03.2018, 09:49
    Статус:
    Сообщений: 666
    Регистрация: 01.02.2014
    Российская Федерация  denis2000
    Четверг, 15.03.2018, 09:59 | Сообщение # 633
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    Цитата Asfagan ()
    как растянуть по горизонтали описание предметов?

    Тянуть окно по вертикали предписывает параметр fit_to_height в теге descr_list файлов actor_menu_item***.xml. Попробуйте его принудительно выключить. Если это не спасет, то только править движек.
    Сообщение отредактировал denis2000 - Четверг, 15.03.2018, 10:01
      Злобная реклама
    Четверг, 15.03.2018, 09:59
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Российская Федерация  Asfagan
    Четверг, 15.03.2018, 10:04 | Сообщение # 634
    Статус:
    Бывалый:
    Сообщений: 929
    Награды: 12
    Регистрация: 01.02.2014

    denis2000,
      Злобная реклама
    Четверг, 15.03.2018, 10:04
    Статус:
    Сообщений: 666
    Регистрация: 01.02.2014
    Российская Федерация  zhenya4342
    Четверг, 15.03.2018, 19:59 | Сообщение # 635
    Статус:
    Отмычка:
    Сообщений: 108
    Награды: 0
    Регистрация: 08.10.2017

    Цитата denis2000 ()
    Есть в Object List поиск по имени (поле внизу окна).

    Это то что мне нужно было, спасибо большое c:
      Злобная реклама
    Четверг, 15.03.2018, 19:59
    Статус:
    Сообщений: 666
    Регистрация: 08.10.2017
    Япония  Detron
    Пятница, 16.03.2018, 01:24 | Сообщение # 636
    Статус:
    Гость:
    Сообщений: 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 | Сообщение # 637
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 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 | Сообщение # 638
    Золотой Обоз
    Статус:
    Опытный:
    Сообщений: 1311
    Награды: 9
    Регистрация: 09.08.2015

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

    Такое дело: квестовый предмет у НПС при смерти удаляется из рюкзака, при жизни он при нем. Что где прописать/изменить, чтобы это исправить?
      Злобная реклама
    Пятница, 16.03.2018, 16:44
    Статус:
    Сообщений: 666
    Регистрация: 31.05.2017
    Украина  _S_k_i_F_
    Пятница, 16.03.2018, 18:41 | Сообщение # 640
    Золотой Обоз
    Статус:
    Опытный:
    Сообщений: 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 | Сообщение # 641
    Группа Кровавой Дороги
    Статус:
    Отмычка:
    Сообщений: 96
    Награды: 0
    Регистрация: 31.05.2017

    _S_k_i_F_, Пробовал, не работает.
      Злобная реклама
    Пятница, 16.03.2018, 18:47
    Статус:
    Сообщений: 666
    Регистрация: 31.05.2017
    Российская Федерация  AlexeyAlexey
    Пятница, 16.03.2018, 20:30 | Сообщение # 642
    Статус:
    Отмычка:
    Сообщений: 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 | Сообщение # 643
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 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 | Сообщение # 644
    Статус:
    Отмычка:
    Сообщений: 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 | Сообщение # 645
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 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
    Поиск: