--// Matrix Marker Puzzle (Sistema Real con XOR + Draggeable) -- Creador: GPT-5 -- Tipo: LocalScript (solo cliente) local player = game.Players.LocalPlayer local gui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui")) gui.Name = "MatrixMarkerRealUI" -- Marco principal local frame = Instance.new("Frame", gui) frame.Size = UDim2.new(0, 350, 0, 450) frame.Position = UDim2.new(0.5, -175, 0.5, -225) frame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true -- ✅ Hace que se pueda arrastrar -- Título local title = Instance.new("TextLabel", frame) title.Size = UDim2.new(1, 0, 0, 40) title.Text = "Matrix Marker Puzzle" title.Font = Enum.Font.Code title.TextScaled = true title.BackgroundTransparency = 1 title.TextColor3 = Color3.fromRGB(0, 255, 0) -- Instrucciones local info = Instance.new("TextLabel", frame) info.Size = UDim2.new(1, -10, 0, 60) info.Position = UDim2.new(0, 5, 0, 45) info.BackgroundTransparency = 1 info.Font = Enum.Font.Code info.TextColor3 = Color3.fromRGB(200, 200, 200) info.TextXAlignment = Enum.TextXAlignment.Left info.TextYAlignment = Enum.TextYAlignment.Top info.Text = "Introduce los códigos binarios de los 5 pilares.\nLuego pulsa 'Calcular código final'." -- Cajas de texto para los códigos local boxes = {} for i = 1, 5 do local box = Instance.new("TextBox", frame) box.Size = UDim2.new(1, -20, 0, 35) box.Position = UDim2.new(0, 10, 0, 110 + (i - 1) * 45) box.PlaceholderText = "Código Pilar " .. i .. " (ejemplo: 101010101010101)" box.Font = Enum.Font.Code box.TextColor3 = Color3.new(1, 1, 1) box.BackgroundColor3 = Color3.fromRGB(40, 40, 40) box.TextScaled = true box.ClearTextOnFocus = false boxes[i] = box end -- Botón calcular local calcBtn = Instance.new("TextButton", frame) calcBtn.Size = UDim2.new(1, -20, 0, 40) calcBtn.Position = UDim2.new(0, 10, 0, 110 + (5 * 45)) calcBtn.Text = "Calcular código final" calcBtn.Font = Enum.Font.Code calcBtn.TextScaled = true calcBtn.BackgroundColor3 = Color3.fromRGB(0, 180, 0) calcBtn.TextColor3 = Color3.new(1, 1, 1) -- Resultado local result = Instance.new("TextLabel", frame) result.Size = UDim2.new(1, -10, 0, 60) result.Position = UDim2.new(0, 5, 1, -65) result.BackgroundTransparency = 1 result.Font = Enum.Font.Code result.TextColor3 = Color3.fromRGB(0, 255, 0) result.TextScaled = true result.Text = "" -- Función XOR binaria local function xorBinary(a, b) local result = "" for i = 1, #a do local bitA = tonumber(a:sub(i, i)) or 0 local bitB = tonumber(b:sub(i, i)) or 0 local xorBit = (bitA + bitB) % 2 result = result .. xorBit end return result end -- Normalizar longitud local function normalizeLen(s, len) if #s < len then return string.rep("0", len - #s) .. s elseif #s > len then return s:sub(1, len) end return s end -- Cuando pulsas el botón calcBtn.MouseButton1Click:Connect(function() local allCodes = {} local length = 0 for i, box in ipairs(boxes) do local code = box.Text:gsub("%s+", "") if code == "" then result.Text = "⚠️ Falta el código del Pilar " .. i return end if length == 0 then length = #code else if #code ~= length then result.Text = "⚠️ Todos los códigos deben tener la misma longitud" return end end table.insert(allCodes, code) end local final = allCodes[1] for i = 2, #allCodes do final = xorBinary(final, allCodes[i]) end result.Text = "✅ Código final:\n" .. final print("Código final (para Pilar 0): " .. final) end)