Модуль:Песочница/Pok: различия между версиями

мНет описания правки
мНет описания правки
Строка 108: Строка 108:


     local results = {}
     local results = {}
for _, gear in pairs(gearData) do
    local currentGearId = gear.id or "Unknown"
    if gear.equipment then
        for slot, equipId in pairs(gear.equipment) do
            if equipId == targetId and (not slotFilter or slot == slotFilter) then
                local foundJob = nil
                for jobId, job in pairs(jobData) do
                    if job.startingGear == currentGearId then
                        foundJob = jobId
                        break
                    end
                end
                if foundJob then
                    table.insert(results, "Job: " .. foundJob .. " (слот: " .. slot .. ")")
                else
                    table.insert(results, "Gear: " .. currentGearId .. " (слот: " .. slot .. ")")
                end
            end
        end
    end
end


     -- Поиск в loadout (loadoutData)
     -- Обработка startingGear (gearData)
     for loadoutId, loadout in pairs(loadoutData) do
    for _, gear in pairs(gearData) do
        local currentGearId = gear.id or "Unknown"
        if gear.equipment then
            for slot, equipId in pairs(gear.equipment) do
                if equipId == targetId and (not slotFilter or slot == slotFilter) then
                    local foundJob = nil
                    for jobId, job in pairs(jobData) do
                        if job.startingGear == currentGearId then
                            foundJob = jobId
                            break
                        end
                    end
                    if foundJob then
                        table.insert(results, "Job: " .. foundJob .. " (слот: " .. slot .. ")")
                    else
                        table.insert(results, "Gear: " .. currentGearId .. " (слот: " .. slot .. ")")
                    end
                end
            end
        end
    end
 
    -- Обработка loadout (loadoutData)
     for _, loadout in ipairs(loadoutData) do
         if loadout.equipment then
         if loadout.equipment then
             for slot, equipId in pairs(loadout.equipment) do
             for slot, equipId in pairs(loadout.equipment) do
                 if equipId == targetId and (not slotFilter or slot == slotFilter) then
                 if equipId == targetId and (not slotFilter or slot == slotFilter) then
                     table.insert(results, "Loadout: " .. loadoutId .. " (слот: " .. slot .. ")")
                     local foundGroupId = nil
                    -- Поиск группы в loadoutGroupData, в которой присутствует loadout.id
                    for _, group in ipairs(loadoutGroupData) do
                        if group.loadouts then
                            for _, lId in ipairs(group.loadouts) do
                                if lId == loadout.id then
                                    foundGroupId = group.id
                                    break
                                end
                            end
                        end
                        if foundGroupId then break end
                    end
                    local foundJob = nil
                    -- Поиск роли в gearRoleLoadout, где группы содержат найденный id группы
                    if foundGroupId then
                        for _, role in pairs(gearRoleLoadout) do
                            if role.groups then
                                for _, g in ipairs(role.groups) do
                                    if g == foundGroupId then
                                        foundJob = role.id  -- предполагается, что поле id присутствует
                                        break
                                    end
                                end
                            end
                            if foundJob then break end
                        end
                    end
                    if foundJob then
                        table.insert(results, "Job: " .. foundJob .. " (слот: " .. slot .. ")")
                    else
                        table.insert(results, "Loadout: " .. loadout.id .. " (слот: " .. slot .. ")")
                    end
                 end
                 end
             end
             end