Перейти к содержанию

Рекомендуемые сообщения

 
 

Когда там релиз намечается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Warif ,

ранее пообещал в этом году...

Тестирую разрядник аномалий из OLR 3.0...

  • Лайк 1
  • Мастер! 2
  • Аплодисменты 1
  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
11 часов назад, Hicks сказал:

Тестирую разрядник аномалий из OLR 3.0...

Хорошая вещь для Генераторов....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
   

Вопрошающий тоже нормально.....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

При использовании какого-либо детектора в руках рисуется его иконка в правом нижнем углу. Спасибо нейросети за вменяемый скрипт, хе-хе. Дозиметр перевёл на работу из рук с соответствующим худом. Теперь вот остальные пилю по красоте...

  • Лайк 1
  • Мастер! 2
  • Хабар 1
  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Докладываю: детектор ДА-2 успешно переведён на скриптовую основу вместе с апгрейдами. Худ в руке отображается, иконка в нижнем правом углу тоже.

  • Мастер! 2
  • Хабар 1
  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Небольшой спойлер по иконкам...

005.png


Дополнено 50 минуты спустя

Кстати иконка вырезанного из S2 детектора "Око" пока просто иконка. Если кто-то найдёт нормальную любительскую модельку или сможет из УЕ5 формата перегнать ту, что есть у меня (во что-то вменяемого формата) - я и этот детектор запихну.

  • Лайк 1
  • Мастер! 4
  • Аплодисменты 1
  • Хабар 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Детекторы теперь тоже можно улучшать?
А в каком плане - обновление библиотеки данных по артам или увеличение дальности работы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

DrowBreaker , детекторы артов пока нет. У детекторов аномалий масса, радиус поиска, база данных по аномалиям.

Изменено пользователем Hicks

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Найдётся модель "Ока" - запилю мегадетектор на всё: артефакты, аномалии... Может, даже оружие в пределах локации (изначально хотел такой детектор запилить с помощью нейросети тащемта).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Всем детекторам аномалий и их апгрейдам прописана скриптовая основа обнаружения аномалий и свои худы с анимациями, в т.ч. "Гилке".

Апгрейды детекторов артефактов на очереди.

  • Лайк 1
  • Мастер! 4

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Апгрейды для "Отклика" сделал, завтра проверю. Иконки честно взял в LA DC. Жаль там вроде для других детекторов нет, придётся самому дорисовывать.

  • Лайк 1
  • Мастер! 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

Изменено пользователем Hicks
  • Лайк 1
  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
В 03.05.2025 в 18:39, Hicks сказал:

Небольшой спойлер по иконкам...

005.png

Hicks А что это у тебя за убер волына в левом нижнем углу?


bffa70a0076a8122ca8fab46460e0d911111.png.7d1d21f88e8b7ff1045d3b92c1839dcb.png.820320d69b6beed069231160e32b91dd.png
= Mordor Tactical WAAAAAGH =

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Riplika , футуро ствол, который не очень вписывается в игру, но по приколу добавлен, пока без возможности получения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Предметы на классе артефакта низзя апгрейдить оказывается. Пичаль бида, капец модецкому. В тред призывается @RayTwitty, дабы помочь со скриптом sa_upgrade. Детекторы у меня на классе артефакта теперь, картинки для апгрейдов не отображаются, хотя детекторы в списке есть, при попытке потыкать мышкой по полю апгрейдов безлоговый вылет. Может, как-то можно скрипт модифицировать? Какие-то данные не читаются из конфига что ли...

Изменено пользователем Hicks

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Hicks чисто предположение - строчка obj:set_ammo_elapsed(0) в файле - обернуть ее в if obj:is_weapon() then obj:set_ammo_elapsed(0) end

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

upd: А, пардон, думал во время апгрейда вылет. На каком этапе вылета еще нет? Как окно выглядит перед вылетом?

Изменено пользователем RayTwitty

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
В 14.05.2025 в 08:50, Hicks сказал:

Riplika , футуро ствол, который не очень вписывается в игру, но по приколу добавлен, пока без возможности получения.

Hicks Из пака энерго веапон? 

Спойлер

i?id=84df54007f8e43e2794b3c2f6b89e074_l-


З.Ы
И что за иконка сапёрки, это предмет или оружие?

Изменено пользователем Riplika

bffa70a0076a8122ca8fab46460e0d911111.png.7d1d21f88e8b7ff1045d3b92c1839dcb.png.820320d69b6beed069231160e32b91dd.png
= Mordor Tactical WAAAAAGH =

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Riplika , вроде того. Не, это так выглядит иконка грави-детектора аномалий, сапёрная лопатка точно выглядит иначе.

RayTwitty , предмет есть в списке, но иконки апгрейдов не отображаются. Попробовал вызвать вылет, потыкать в пустом поле - не получилось в этот раз.

Вот скрин:

0005.png

Вот кусок кода, принципиально ничего больше не менял:

Спойлер

class "CUIUpgradeDialog" (CUIScriptWnd)
function CUIUpgradeDialog:__init(mechanic, mechanic_data, ini) super()
    self:Init(0, 0, 1024, 768)
    self.last_id = 0
    self.list_ids = {}
    self.btn_upgrade_cells = {}
    self.st_green_indicators = {}
    self.mechanic = mechanic
    self.mechanic_data = mechanic_data
    self.ini = ini
    self.xml = CScriptXmlInit()
    self.xml:ParseFile("upgrade.xml")
    -- background static
    self.st_background = self.xml:InitStatic("main", self)
    -- top background static
    self.xml:InitStatic("top_background", self)
    -- bottom background static
    self.xml:InitStatic("bottom_background", self)
    -- weight static
    self.st_weight = self.xml:InitStatic("weight_static", self.st_background)
    self.st_weight:SetText(self:weight_static())
    -- items list
    self.list_items = self.xml:InitList("items_list", self.st_background)
    self.list_items:ShowSelectedItem(true)
    self:Register(self.list_items, "items_list")
    db.actor:iterate_inventory(
    function(dummy, obj)
            if obj:is_weapon_magazined() or obj:section() == "wpn_knife"
                                or obj:section() == "wpn_knife_a1"
                                or obj:section() == "wpn_knife_a1_b1"
                                or obj:section() == "wpn_addon_grenade_launcher"
                                or obj:section() == "wpn_gp25_a1"
                                or obj:section() == "wpn_gp25_a1_b1"
                                or obj:section() == "wpn_addon_grenade_launcher_m203"
                                or obj:section() == "wpn_m203_a1"
                                or obj:section() == "wpn_m203_a1_b1"
                                or obj:section() == "detector_simple"
                                or obj:section() == "detector_simple_a1"
                                or obj:section() == "detector_simple_a1_b1"
                                or obj:section() == "detector_advances"
                                or obj:section() == "detector_advances_a1"
                                or obj:section() == "detector_advances_a1_b1"
                                or obj:section() == "detector_advances_2"
                                or obj:section() == "detector_advances_2_a1"
                                or obj:section() == "detector_advances_2_a1_b1"
                                or obj:section() == "detector_elite"
                                or obj:section() == "detector_elite_a1"
                                or obj:section() == "detector_elite_a1_b1"
                                or obj:section() == "detector_gilka"
                                or obj:section() == "detector_gilka_a1"
                                or obj:section() == "detector_gilka_a1_b1"
                                or obj:section() == "grenade_rgd5"
                                or obj:section() == "grenade_rgd5_a1"
                                or obj:section() == "grenade_f1"
                                or obj:section() == "grenade_f1_a1"
                                or obj:section() == "grenade_gd-05"
                                or obj:section() == "grenade_rgn"
                                or obj:section() == "grenade_rgo"
                                or obj:section() == "rucksack_treasure"
                                or obj:section() == "rucksack_treasure_a1"
                                or obj:section() == "gunslinger_pda"
                                or obj:section() == "gunslinger_pda_a1"
                                or obj:section() == "gunslinger_pda_a1_b1"
                                or obj:section() == "gunslinger_pda_a1_b1_c1"
                                or obj:section() == "wpn_addon_scope"
                                or obj:section() == "wpn_addon_scope_susat"
                                or obj:is_outfit() then
                --and not obj:is_outfit() then
                self.list_items:AddItem(CUIUpgradeListItem(obj, self.xml))
                table.insert(self.list_ids, obj:id())
            end
        end
    )
    self:AddCallback("items_list", ui_events.LIST_ITEM_CLICKED, self.on_list_items, self)
    -- repair button
    self.btn_repair = self.xml:Init3tButton("repair_button", self.st_background)
    self.btn_repair:Enable(false)
    self:Register(self.btn_repair, "repair_button")
    self:AddCallback("repair_button", ui_events.BUTTON_CLICKED, self.on_button_repair, self)
    -- upgrade button
    self.btn_upgrade = self.xml:Init3tButton("upgrade_button", self.st_background)
    self.btn_upgrade:Enable(false)
    self:Register(self.btn_upgrade, "upgrade_button")
    self:AddCallback("upgrade_button", ui_events.BUTTON_CLICKED, self.on_button_upgrade, self)
    -- exit button
    self:Register(self.xml:Init3tButton("exit_button", self), "exit_button")
    self:AddCallback("exit_button", ui_events.BUTTON_CLICKED, self.on_button_exit, self)
end

Собственно, апгрейдились все предметы в списке без проблем, включая броню (поэтому проверку на класс брони поставил даже). А вот с детекторами на классе артефакта не прокатило.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Hicks тогда вряд ли. Тип предмета имеет значение только на входе (при заполнении списка) и на выходе (при спавне-подмене). Вот в последнем случае потенциально там косяк с установкой 0 патронов (это нужно делать только для оружия, странно что с костюмами проблем не было).
Но если у тебя детекторы в списке и есть их описание справа, то почему не заполняются апгрейды - загадка. По идее надо сидеть отлаживать скрипт, ставить во все места вывод в лог и смотреть, где затык (в первую очередь в CUIUpgradeDialog:update_upgrade_cells). Хотя мне кажется может ошибка или опечатка в конфигах\xml. Проверь, прописаны ли все параметры - upgrade_allowed, upgrades, available_upgrades, installed_upgrades, upgrade_scheme.


Дополнено 29 минуты спустя

Hicks ты кстати можешь изменить это условие так, чтобы не плодить эту стремную конструкцию с перечислением секций:

if obj:is_weapon_magazined() and not obj:is_binoculars() or obj:is_outfit() or read_line(obj:section(), "upgrade_allowed", "bool") then

В список попадет оружие (кроме бинокля), костюмы и все предметы, для которых разрешен апгрейд.

P.S. Хотя, в идеале надо было вводить два параметра - апгрейд и ремонт, в итоге попадали бы все предметы для которых разрешено хотя бы одно действие, тогда вообще классы проверять не нужно было, а только два параметра. И попадание в список регулировалось бы чисто из конфига, в этом случае просто надо во все секции это прописывать, а мне видимо было лень :) Я просто не думал, что реально кто-то будет апгрейд развивать дальше оружия и костюмов))

Изменено пользователем RayTwitty
  • Хабар 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

RayTwitty , в том и дело, попробовал откатить дозиметр на оригинальные параметры на классе детектора - иконки появились. Сейчас буду копать.

З.Ы. Это я ещё аптечки не пробовал апгрейдить, а то были мысли... Система-то мощная, хорошо сделана!


Дополнено 26 минуты спустя

Так, разобрался частично.

Апгрейд не работал, потому что блок вида:
;===================================================================================================
upgrade_allowed        = true
upgrades        = bm16_upgr1, bm16_upgr2, bm16_upgr3, bm16_upgr4, bm16_upgr5, bm16_upgr6, bm16_upgr7 ; список апгрейдов
available_upgrades    = bm16_upgr1, bm16_upgr4 ; доступные апгрейды для этой секции
upgrade_scheme        = upgrade_scheme_bm16 ; набор иконок апгрейдов 
image            = ui_upgrade_wpn_bm16
;===================================================================================================
Стоял в самом конце секции. Переместил выше - работает.

Но проблема с безлоговым вылетом осталась. Скажем, есть секция оружия, для которой стоит:

; UPGRADE
upgrade_allowed        = false
image            = ui_upgrade_wpn_blablabla

В списке появляется, картинка отображается. Но при попытке потыкать мышей в поле, где обычно отображаются иконки апгрейдов следует безлоговый вылет.

Функция кусочек сейчас так:
    db.actor:iterate_inventory(
    function(dummy, obj)
            if obj:is_weapon_magazined()
                                or obj:is_binoculars() - бинокль апгрейдится
                                or read_line(obj:section(), "upgrade_allowed", "bool")
                                or obj:is_outfit() then
                self.list_items:AddItem(CUIUpgradeListItem(obj, self.xml))
                table.insert(self.list_ids, obj:id())
            end
        end
    )

Ха, более того... При попытке потыкать мышей ниже иконок апгрейдов тот же вылет. Ветка одна, схема настроена.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
7 часов назад, Hicks сказал:

Riplika , вроде того. Не, это так выглядит иконка грави-детектора аномалий, сапёрная лопатка точно выглядит иначе.

Hicks  Я про твои иконки в ЮИ 

Спойлер

image.png.b3216e36e984fd028757b0f027280650.png

Мне интересны эти три предмета.
Особенно саперка чтоб подкорректировать свою

Спойлер

image.thumb.png.56992a8e16a301a397a2a4ca7c889a2b.png

И что это за прибор?


bffa70a0076a8122ca8fab46460e0d911111.png.7d1d21f88e8b7ff1045d3b92c1839dcb.png.820320d69b6beed069231160e32b91dd.png
= Mordor Tactical WAAAAAGH =

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Riplika , квестовая лопатка.

Используется пока иконка поменьше. Худа нет, только мировая модель.

Предмет справа - биодетектор. Моделька из "Чужих" :).

Заборол вроде вылет с тыканьем по пустому полю. А нет, нет...

Переписанный код:

Спойлер

function CUIUpgradeDialog:update_upgrade_cells(first_init)
    if first_init then
        -- Очистка старых ячеек
        for _, btn in pairs(self.btn_upgrade_cells) do
            btn:DetachFromParent()
        end
        clear_table(self.btn_upgrade_cells)

        -- Проверка разрешения на апгрейд
        if self.upgrade_allowed and self.upgrades_table then
            for k, upgrade_id in pairs(self.upgrades_table) do
                local btn_name = self.upgrade_scheme .. ":cell_" .. k
                local button = self.xml:Init3tButton(btn_name, self.st_background)

                if button then
                    button:Enable(false)
                    self:Register(button, upgrade_id)
                    self.btn_upgrade_cells[k] = button
                end
            end

            -- Разблокировка доступных улучшений
            if self.available_upgrades_table and self.available_upgrades_table[1] ~= "none" then
                self:unlock_upgrades(self.available_upgrades_table)
            end

            -- Отметка уже установленных улучшений
            if self.installed_upgrades_table then
                for _, cell_name in pairs(self.installed_upgrades_table) do
                    self:add_green_indicator(cell_name)
                end
            end
        end

    else
        -- Вторичная инициализация: перезапуск активации
        if self.upgrade_allowed and self.upgrades_table then
            self:lock_upgrades(self.upgrades_table)

            if self.available_upgrades_table and self.available_upgrades_table[1] ~= "none" then
                self:unlock_upgrades(self.available_upgrades_table)
            end
        end
    end
end

И безлоговый вылет при загрузке сохранок любых пока преследует...

Изменено пользователем Hicks

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
2 минуты назад, Hicks сказал:

Riplika , квестовая лопатка.

Используется пока иконка поменьше. Худа нет, только мировая модель.

Hicks Как в аномали чисто раскопать?

5 минут назад, Hicks сказал:

Предмет справа - биодетектор. Моделька из "Чужих" :).

А как он работает? Как биорадар с ОП?


bffa70a0076a8122ca8fab46460e0d911111.png.7d1d21f88e8b7ff1045d3b92c1839dcb.png.820320d69b6beed069231160e32b91dd.png
= Mordor Tactical WAAAAAGH =

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу