-- Pobierz usługę RunService local runService = game:GetService("RunService") -- Pobierz ReplicatedStorage i ReplicatedFirst local replicatedStorage = game:WaitForChild("ReplicatedStorage") local replicatedFirst = game:WaitForChild("ReplicatedFirst") -- Pobierz folder Remotes z ReplicatedStorage local remotes = replicatedStorage:WaitForChild("Remotes") -- Pobierz folder Pets z ReplicatedFirst local pets = replicatedFirst:WaitForChild("Pets") -- Pobierz usługę TweenService local tweenService = game:GetService("TweenService") -- Pobierz informacje o lokalnym graczu i jego interfejsie local player = game.Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local screenGui = playerGui:WaitForChild("ScreenGui") local center = screenGui:WaitForChild("Center") local petInventory = center:WaitForChild("PetInventory") local scrollingFrame = petInventory:WaitForChild("ScrollingFrame") local template = scrollingFrame:WaitForChild("Template") -- Wymagaj modułu 3D z ReplicatedStorage local module3D = require(replicatedStorage:WaitForChild("Module3D")) -- Ustal maksymalną liczbę wybranych zwierząt local maxSelectedPets = 10 -- Zainicjuj zmienną przechowującą liczbę wybranych zwierząt local selectedPets = 0 -- Funkcja wywoływana po kliknięciu szablonu local function onTemplateClick(clickedTemplate, id) -- Sprawdź, czy zwierzę jest już wyposażone local equipped = clickedTemplate.Equipped.Value -- Jeśli nie jest wyposażone, a liczba wybranych zwierząt jest mniejsza niż maksymalna if not equipped and selectedPets < maxSelectedPets then -- Oznacz zwierzę jako wyposażone clickedTemplate.Equipped.Value = true -- Stwórz animację zmiany koloru tła szablonu tweenService:Create(clickedTemplate, TweenInfo.new(0.4), {BackgroundColor3 = Color3.fromRGB(96,235,36)}):Play() -- Zwiększ liczbę wybranych zwierząt selectedPets = selectedPets + 1 -- Wyślij żądanie wyposażenia zwierzęcia do serwera remotes.EquipPet:FireServer(clickedTemplate.Name, id) -- Jeśli zwierzę jest wyposażone elseif equipped then -- Oznacz zwierzę jako niewyposażone clickedTemplate.Equipped.Value = false -- Stwórz animację zmiany koloru tła szablonu tweenService:Create(clickedTemplate, TweenInfo.new(0.4), {BackgroundColor3 = Color3.fromRGB(46,189,255)}):Play() -- Zmniejsz liczbę wybranych zwierząt selectedPets = selectedPets - 1 -- Wyślij żądanie zdjęcia wyposażenia zwierzęcia do serwera remotes.UnequipPet:FireServer(clickedTemplate.Name, id) end end -- Funkcja tworząca szablon dla zwierzęcia o podanej nazwie i identyfikatorze local function createTemplate(petName, id) -- Klonuj szablon local newTemplate = template:Clone() newTemplate.Name = petName newTemplate.Visible = true newTemplate.Parent = scrollingFrame -- Załącz model 3D zwierzęcia do widoku local petModel3D = module3D:Attach3D( newTemplate:WaitForChild("Viewport"), pets:WaitForChild(petName):Clone()) -- Ustaw mnożnik głębi dla modelu 3D -- Jeżeli chcesz większe zwierzaki to zmniejsz tą wartość np. do 1.5 petModel3D:SetDepthMultiplier(2) -- Ustaw pole widzenia kamery petModel3D.CurrentCamera.FieldOfView = 5 -- Ustaw widoczność modelu 3D petModel3D.Visible = true -- Połącz funkcję z eventem RenderStepped, aby obracać modelem 3D runService.RenderStepped:Connect(function() petModel3D:SetCFrame( CFrame.Angles(0,tick() % (math.pi * 2), 0) * CFrame.Angles(math.rad(-10), 0, 0)) end) -- Połącz funkcję onTemplateClick z eventem MouseButton1Click newTemplate.MouseButton1Click:Connect(function() onTemplateClick(newTemplate, id) end) end -- Nasłuchuj na event CreateTemplate i wykonaj funkcję createTemplate remotes:WaitForChild("CreateTemplate").OnClientEvent:Connect(function(name, id) createTemplate(name, id) end)