Случайная подборка модов
Oblivion Lost 3.0
3.0
AVS "Закон Меченого" 2 части
3.4
Sins of the past. Пролог
3.3
ABC Inferno
3.9
Мод Змеелов v.2.17 Final
3.8
Dead City Breakthrough
3.7
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: 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
    Российская Федерация  Policai
    Пятница, 24.08.2018, 10:03 | Сообщение # 2056
    Dead City Breakthrough
    Статус:
    Опытный:
    Сообщений: 2244
    Награды: 11
    Регистрация: 08.11.2011

    Спасибо всем. Но наверно не возьмусь, ((( покопался в конфигах. много позиций незнакомых мне никак и в конфиге ствола и в конфигах абгрейда, много мелких нюансов. Боюсь больше гемороя добавлю чем пользы... Доделаю что смогу в моде и подарю кому нибудь, пусть доделывают... Вчера отдал на тестирование другу собраную игрушку, тест на предмет вылетов, багов, нестыковок, баланса сложности.... Без сюжета, чисто тест, расписал текстовый документ ему как будет в описании в сюжете в квестах поиск нужного, пусть проверяет и ищет.
    Наверно последний вопрос по конфигам. Файлы торговли всем сделал как надо у барменов только еда у медиков мед препараты и так далее, но пока без поршней, то есть сразу все варианты торговли открыты. Нужно настроить варианты торговли от прогресса в игре.
    Пример оригинала Зов припяти.
    buy_supplies = {+jup_a9_tech_way_info =counter_greater(jup_a6_actor_help_freedom:3) =wealthy_functor}sci_supplies_freedom_wealthy_tier_2,............................

    Мне нужно вместо выделенного поршня, или условия, незнаю как он там правильно обзывается поставить свои, по принципу:
    у меня есть 12 предметов уникальных по сюжету, разбросанных по всем локам, мне нужно разделить варианты торговли на 4 этапа. Найдены 3 любых предмета из 12, открывается первый добавочный пункт в торговле, найдены 6 открывается второй... и так далее...
    Как это правильно реализовать?
    Сообщение отредактировал Policai - Пятница, 24.08.2018, 10:04
      Злобная реклама
    Пятница, 24.08.2018, 10:03
    Статус:
    Сообщений: 666
    Регистрация: 08.11.2011
    Российская Федерация  Overfirst
    Пятница, 24.08.2018, 10:14 | Сообщение # 2057
    Статус:
    Бывалый:
    Сообщений: 1081
    Награды: 19
    Регистрация: 11.06.2015

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

    Это первое, что пришло в голову. Можно проще.
      Злобная реклама
    Пятница, 24.08.2018, 10:14
    Статус:
    Сообщений: 666
    Регистрация: 11.06.2015
    Российская Федерация  denis2000
    Пятница, 24.08.2018, 10:18 | Сообщение # 2058
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    Цитата stalker00 ()
    Нужно в gamedata\configs\creatures в файл monsters.ltx выставить меньшее количество часов до исчезновения тел.К примеру,в ванили стоит 65535 часов,поменять значение на скажем 12 часов.Но насколько этот способ эффективен?.И не сломает ли он игру( в смысле,не будут глючить квесты,не будет ли проблем с переходами на другие локации ),ну и так далее?.

    Да изменение параметра stay_after_death_time_interval работает, но удаление происходит когда игрок переходит с другой локации на локу с трупом у которого истек срок годности. У вас есть квестовые трупы мутантов?

    По сталкерам работает скрипт release_body_manager.script, ключевой параметр self.body_max_count = 15 (максимальное количество трупов) и IDLE_AFTER_DEATH = 40000 (время после смерти в течении которого труп не удаляется). Этот же скрипт иногда заставляют убирать и тела мутантов, прописав в bind_monster.script в колбек на смерть строку:
    Код
    release_body_manager.get_release_body_manager():moving_dead_body(self.object)
    Сообщение отредактировал denis2000 - Пятница, 24.08.2018, 10:28
      Злобная реклама
    Пятница, 24.08.2018, 10:18
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Российская Федерация  Policai
    Пятница, 24.08.2018, 10:23 | Сообщение # 2059
    Dead City Breakthrough
    Статус:
    Опытный:
    Сообщений: 2244
    Награды: 11
    Регистрация: 08.11.2011

    Цитата Overfirst ()
    Можно при помощи счётчика. В коллбеке на взятие предмета проверять взятый предмет и добавлять единицу к счётчику. В зависимости от значения счётчика выдавать инфопоршни для регулирования твоих этапов. Если ничего не понятно, покажу.


    Если не сложно, как это будет выглядеть визуально? предметы прописаны везде где нужно в игре и разложены, всё работает отлично,
    имеют имена от dcb_01_префикс до dcb_12_ префикс
      Злобная реклама
    Пятница, 24.08.2018, 10:23
    Статус:
    Сообщений: 666
    Регистрация: 08.11.2011
    Российская Федерация  Overfirst
    Пятница, 24.08.2018, 10:30 | Сообщение # 2060
    Статус:
    Бывалый:
    Сообщений: 1081
    Награды: 19
    Регистрация: 11.06.2015

    Policai, так. Сделай им такие имена: dcb_item_1 - dcb_item_12. Мне так удобнее будет сделать тебе твою хотелку.
      Злобная реклама
    Пятница, 24.08.2018, 10:30
    Статус:
    Сообщений: 666
    Регистрация: 11.06.2015
    Российская Федерация  Policai
    Пятница, 24.08.2018, 10:36 | Сообщение # 2061
    Dead City Breakthrough
    Статус:
    Опытный:
    Сообщений: 2244
    Награды: 11
    Регистрация: 08.11.2011

    Overfirst,

    Как удобней так и делай, а имена я подправлю как надо. сейчас у меня dcb_01_doc - dcb_12_doc
    Сообщение отредактировал Policai - Пятница, 24.08.2018, 10:38
      Злобная реклама
    Пятница, 24.08.2018, 10:36
    Статус:
    Сообщений: 666
    Регистрация: 08.11.2011
    Российская Федерация  Overfirst
    Пятница, 24.08.2018, 10:46 | Сообщение # 2062
    Статус:
    Бывалый:
    Сообщений: 1081
    Награды: 19
    Регистрация: 11.06.2015

    Ну, что-то такое:
    Код
    function actor_has_items_different_equal(actor, npc, p)
         if db.actor then
              local item_section = p[1]
              local need_count = tonumber(p[2])
              local has_count = 0

              local function calc(temp, item)
                   if string.find(item:section(), item_section) ~= nil then
                        has_count = has_count + 1
                   end
              end
              
              db.actor:iterate_inventory(calc, db.actor)
              
              return has_count >= need_count
         end
         return false
    end

    Функция проверяет у актора указанное количество предметов, у которых начало названия секции совпадает с переданной строкой.

    Проще говоря:
    Код
    buy_supplies = {=actor_has_items_different_equal(dcb_item:3) !actor_has_items_different_equal(dcb_item:6)} supplies_1, {=actor_has_items_different_equal(dcb_item:6)} supplies_2

    Можешь назвать предметы dcb_doc_1 - dcb_doc_12.

    Ты поэкспериментируй. Я даже немного засомневался, что постоянно будет итерироваться инвентарь из-за такой вот проверки. Если не прокатит, не будет нормально работать, сделаем через счётчик.
      Злобная реклама
    Пятница, 24.08.2018, 10:46
    Статус:
    Сообщений: 666
    Регистрация: 11.06.2015
    Российская Федерация  Policai
    Пятница, 24.08.2018, 11:40 | Сообщение # 2063
    Dead City Breakthrough
    Статус:
    Опытный:
    Сообщений: 2244
    Награды: 11
    Регистрация: 08.11.2011

    Цитата Overfirst ()
    Можешь назвать предметы dcb_doc_1 - dcb_doc_12.


    Overfirst,

    Играет роль dcb_doc_1 или dcb_1_doc..??? Просто для проверки в конфигах то исправить без проблем, а на локах у меня уже под именами разложены dcb_1_doc - dcb_12_doc, не проблема открыть в сдк локи и переложить, вопрос стоит это делать или нет, или всё таки цифра должна быть в конце обязательно?
      Злобная реклама
    Пятница, 24.08.2018, 11:40
    Статус:
    Сообщений: 666
    Регистрация: 08.11.2011
    Российская Федерация  Overfirst
    Пятница, 24.08.2018, 12:11 | Сообщение # 2064
    Статус:
    Бывалый:
    Сообщений: 1081
    Награды: 19
    Регистрация: 11.06.2015

    Цитата Policai ()
    Играет роль dcb_doc_1 или dcb_1_doc..?

    Да.
      Злобная реклама
    Пятница, 24.08.2018, 12:11
    Статус:
    Сообщений: 666
    Регистрация: 11.06.2015
    Российская Федерация  Policai
    Пятница, 24.08.2018, 12:27 | Сообщение # 2065
    Dead City Breakthrough
    Статус:
    Опытный:
    Сообщений: 2244
    Награды: 11
    Регистрация: 08.11.2011

    Не помогло

    [error]Expression : !m_error_code
    [error]Function : raii_guard::~raii_guard
    [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
    [error]Line : 748
    [error]Description : ...d city breakthrough\gamedata\scripts\xr_logic.script:612: attempt to call field '?' (a nil value)

    Изменил
    название моделей на dcb_doc_01 - 12
    названия в файлах на dcb_doc_01 - 12
    \configs\misc\quest_items.ltx
    \configs\text\rus\st_items_quest.xml
    \scripts\spawn_quest_items.script
    \scripts\ui_si.script

    и в файле торговли
    buy_supplies = {=actor_has_items_different_equal(dcb_item:8)} supplies_tier_4, {=actor_has_items_different_equal(dcb_item:6)} supplies_tier_3, {=actor_has_items_different_equal(dcb_item:3)}supplies_tier_2, supplies_start

    Убираю эти поршни вылета нет.

    Добавлено (24.08.2018, 12:36)
    ---------------------------------------------
    Незнаю играет ли это роль, на локах ещё не менял, так как испытываю всё на отдельной локе на кордоне с отдельным олл спавном, а не на общем олл спавне для игры. На кордоне нет этих предметов.

    Добавлено (24.08.2018, 12:50)
    ---------------------------------------------
    Нет, не играет, закинул все предметы на локу, пересобрал спавн, вылет не поменялся.... что то не так с поршнями..

    или....

    Цитата
    function actor_has_items_different_equal(actor, npc, p)
    if db.actor then
    local item_section = p[1]
    local need_count = tonumber(p[2])
    local has_count = 0

    local function calc(temp, item)
    if string.find(item:section(), item_section) ~= nil then
    has_count = has_count + 1
    end
    end

    db.actor:iterate_inventory(calc, db.actor)

    return has_count == need_count
    end
    return false
    end


    это мне нужно вносить в скрипты или уже там есть???
      Злобная реклама
    Пятница, 24.08.2018, 12:27
    Статус:
    Сообщений: 666
    Регистрация: 08.11.2011
    Российская Федерация  makdm
    Пятница, 24.08.2018, 13:12 | Сообщение # 2066
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    Policai, вот так попробуй:

    Пишешь в xr_conditions.script фунукцию:



    Условие в торговлю:

    buy_supplies = {=actor_has_need_docs(12)} supplies_tier_4, {=actor_has_need_docs(8)} supplies_tier_3, {=actor_has_need_docs(4)}supplies_tier_2, supplies_start
      Злобная реклама
    Пятница, 24.08.2018, 13:12
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Российская Федерация  Policai
    Пятница, 24.08.2018, 13:33 | Сообщение # 2067
    Dead City Breakthrough
    Статус:
    Опытный:
    Сообщений: 2244
    Награды: 11
    Регистрация: 08.11.2011

    makdm,

    Спасибо огромное! Я сам в шоке, всё заработало!!!!! и нигде не накосячил что странно..))) smile
    Сообщение отредактировал Policai - Пятница, 24.08.2018, 13:36
      Злобная реклама
    Пятница, 24.08.2018, 13:33
    Статус:
    Сообщений: 666
    Регистрация: 08.11.2011
    Германия  stalker00
    Пятница, 24.08.2018, 14:11 | Сообщение # 2068
    Статус:
    Отмычка:
    Сообщений: 104
    Награды: 2
    Регистрация: 02.03.2017

    По поводу уборщика.Квестовых мутантов вроде нет( точно не знаю),поскольку играю в Зов Припяти в первый раз и пока только на Затоне.Почему спррсил про уборщик трупов.У меня стоит неофициальный патч версии 1.0 от Юрок+Атмосфер+Динамик Худ+новые визуалы+аи твиакс+мясник+Шокер мод 1.0.И то ли из-за того что когда собирал все моды в кучу,попался какой-то мод,который увеличивает спавн монстров и сталкеров, то ли проделки Монолита,но монстры постоянно попадаются пачками,да и сталкеры тоже.С одной строны не плохо,есть с кем повоевать,да и хабара полно.Но с другой стороны валяющиеся трупы раздражают,да и как я понял,это не есть гуд для производительности.Но в любом случае,попробовал уже способ,описанный в инете.....и вуаля,тушки исчезают гораздо быстрее.Буду тестировать дальше,а там видно будет.В любом случае,благодарю за инфу.
      Злобная реклама
    Пятница, 24.08.2018, 14:11
    Статус:
    Сообщений: 666
    Регистрация: 02.03.2017
    Российская Федерация  Policai
    Пятница, 24.08.2018, 15:55 | Сообщение # 2069
    Dead City Breakthrough
    Статус:
    Опытный:
    Сообщений: 2244
    Награды: 11
    Регистрация: 08.11.2011

    Народ! Вылезла неприятность, позвонил товарищ который тестирует и задал вопрос который вогнал меня в ступор. Разбиваемые деревянные и железные ящики, по сдк это box_wood_01 и box_metall_01, он поинтересовался, прошёл 4 локации и почему то все ящики пустые, а я что то даже не думал про них. В ТЧ в кастом дате писалось что лежит в этих ящиках, при прогонке лок через сдк я не трогал кастом дату у них, там осталось то что было в ТЧ и ЧН, менял только визуал на ЗПешный, чтоб не городить лишние папки из ТЧ и ЧН.... Как эта функция работает в ЗП??? Так же нужно писать в нужных ящиках в кастом дате, просто другой принцип раз родные данные не работают, или есть какой то скрипт в ЗП который рандомно раскидывает?
    Ну и до кучи просто для информации, при абгрейде есть позиции в которых доступен только 1 вариант из двух, в каком то моде видел что открыты все позиции для абгрейда. Это движковые правки, скриптовые или просто конфиги???
    Сообщение отредактировал Policai - Пятница, 24.08.2018, 15:59
      Злобная реклама
    Пятница, 24.08.2018, 15:55
    Статус:
    Сообщений: 666
    Регистрация: 08.11.2011
    Российская Федерация  makdm
    Пятница, 24.08.2018, 16:08 | Сообщение # 2070
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    Policai, в движке ЗП отключен колбек на разрушение объектов. Поэтому сделать как в ТЧ не получитсяя.
    Цитата Policai ()
    Ну и до кучи просто для информации, при абгрейде

    Эта возможность прописывается в конфигах брони, оружия и в их конфигах апгрейда.
    .
      Злобная реклама
    Пятница, 24.08.2018, 16:08
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Поиск: