[CoP] Модострой: вопросница
|
|
|
Overfirst
Воскресенье, 31.12.2017, 13:17 | Сообщение # 1
Статус: |
|
Бывалый: |
|
Сообщений: |
1081 |
Награды: |
19 |
Регистрация: |
11.06.2015 |
|
[CoP] Модострой: вопросница
Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
|
|
Воскресенье, 31.12.2017, 13:17
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
11.06.2015 |
|
|
|
|
|
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 |
|
|
|
|
|
Статус: |
|
Бывалый: |
|
Сообщений: |
1081 |
Награды: |
19 |
Регистрация: |
11.06.2015 |
|
Можно при помощи счётчика. В коллбеке на взятие предмета проверять взятый предмет и добавлять единицу к счётчику. В зависимости от значения счётчика выдавать инфопоршни для регулирования твоих этапов. Если ничего не понятно, покажу.
Это первое, что пришло в голову. Можно проще.
|
|
Пятница, 24.08.2018, 10:14
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
11.06.2015 |
|
|
|
|
|
Время Альянса
Статус: |
|
Ветеран: |
|
Сообщений: |
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 |
|
|
|
|
|
Dead City Breakthrough
Статус: |
|
Опытный: |
|
Сообщений: |
2244 |
Награды: |
11 |
Регистрация: |
08.11.2011 |
|
Цитата Overfirst ( ) Можно при помощи счётчика. В коллбеке на взятие предмета проверять взятый предмет и добавлять единицу к счётчику. В зависимости от значения счётчика выдавать инфопоршни для регулирования твоих этапов. Если ничего не понятно, покажу.
Если не сложно, как это будет выглядеть визуально? предметы прописаны везде где нужно в игре и разложены, всё работает отлично, имеют имена от dcb_01_префикс до dcb_12_ префикс
|
|
Пятница, 24.08.2018, 10:23
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
08.11.2011 |
|
|
|
|
|
Статус: |
|
Бывалый: |
|
Сообщений: |
1081 |
Награды: |
19 |
Регистрация: |
11.06.2015 |
|
Policai, так. Сделай им такие имена: dcb_item_1 - dcb_item_12. Мне так удобнее будет сделать тебе твою хотелку.
|
|
Пятница, 24.08.2018, 10:30
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
11.06.2015 |
|
|
|
|
|
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 |
|
|
|
|
|
Статус: |
|
Бывалый: |
|
Сообщений: |
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 |
|
|
|
|
|
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 |
|
|
|
|
|
Статус: |
|
Бывалый: |
|
Сообщений: |
1081 |
Награды: |
19 |
Регистрация: |
11.06.2015 |
|
Цитата Policai ( ) Играет роль dcb_doc_1 или dcb_1_doc..? Да.
|
|
Пятница, 24.08.2018, 12:11
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
11.06.2015 |
|
|
|
|
|
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 |
|
|
|
|
|
Dead City Breakthrough
Статус: |
|
Опытный: |
|
Сообщений: |
2244 |
Награды: |
11 |
Регистрация: |
08.11.2011 |
|
makdm,
Спасибо огромное! Я сам в шоке, всё заработало!!!!! и нигде не накосячил что странно..)))
Сообщение отредактировал Policai - Пятница, 24.08.2018, 13:36
|
|
Пятница, 24.08.2018, 13:33
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
08.11.2011 |
|
|
|
|
|
Статус: |
|
Отмычка: |
|
Сообщений: |
104 |
Награды: |
2 |
Регистрация: |
02.03.2017 |
|
По поводу уборщика.Квестовых мутантов вроде нет( точно не знаю),поскольку играю в Зов Припяти в первый раз и пока только на Затоне.Почему спррсил про уборщик трупов.У меня стоит неофициальный патч версии 1.0 от Юрок+Атмосфер+Динамик Худ+новые визуалы+аи твиакс+мясник+Шокер мод 1.0.И то ли из-за того что когда собирал все моды в кучу,попался какой-то мод,который увеличивает спавн монстров и сталкеров, то ли проделки Монолита,но монстры постоянно попадаются пачками,да и сталкеры тоже.С одной строны не плохо,есть с кем повоевать,да и хабара полно.Но с другой стороны валяющиеся трупы раздражают,да и как я понял,это не есть гуд для производительности.Но в любом случае,попробовал уже способ,описанный в инете.....и вуаля,тушки исчезают гораздо быстрее.Буду тестировать дальше,а там видно будет.В любом случае,благодарю за инфу.
|
|
Пятница, 24.08.2018, 14:11
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
02.03.2017 |
|
|
|
|
|
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 |
|
|
|
|