Случайная подборка модов
Секрет Дианы
2.2
История Борова
3.5
Clear Sky - Remake
3.8
PCFM COP Addon
3.7
Народная Солянка 2016
4.1
Сюжетное продолжение Чистого неба
4.1
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: 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
    Поиск: