Ан Тисемист
Профи
(683)
4 месяца назад
1.Настроить игрока и мышь. Для этого нужно получить локального игрока и его мышь, которые необходимы для захвата ввода пользователя.
2.Идентифицировать предмет. Для этого нужно определить функцию, которая ищет предмет по имени в рабочем пространстве. Результат сохраняется в переменной part1.
3.Рассчитать движение по клику мыши. Для этого нужно определить функцию moveToMouseClick, которая вычисляет направление и расстояние между текущим положением предмета и положением клика мыши. Затем предмет перемещается пошагово за 10 шагов до достижения целевой позиции.
4.Подключить функцию к событию нажатия мыши. Для этого нужно подключить функцию moveToMouseClick к событию Button1Down мыши, которое запускает движение при нажатии левой кнопки мыши.
5.Проверить, существует ли предмет. Если он найден, скрипт продолжает настройку движения, в противном случае выводится предупреждение.
fifamobilecc sddasdas
Ученик
(143)
2 месяца назад
local players = game:GetService("Players")
local local_player = players.LocalPlayer
local mouse = local_player:GetMouse()
local TARGET_RADIUS = 10 -- радиус клика для обнаружения инструмента
local PICKUP_RADIUS = 10 -- радиус подбора относительно игрока
mouse.Button1Down:Connect(function()
local character = local_player.Character
if not character then return end
local root = character:FindFirstChild("HumanoidRootPart")
if not root then return end
local click_pos = mouse.Hit.Position
local best_tool = nil
local best_distance = math.huge
-- перебираем все инструменты в workspace
for _, obj in ipairs(workspace:GetDescendants()) do
if obj:IsA("Tool") then
local handle = obj:FindFirstChild("Handle")
if handle then
local dist_click = (handle.Position - click_pos).Magnitude
local dist_player = (handle.Position - root.Position).Magnitude
-- проверяем, что инструмент находится в зоне клика и в зоне подбора игрока
if dist_click <= TARGET_RADIUS and dist_player <= PICKUP_RADIUS then
if dist_click < best_distance then
best_distance = dist_click
best_tool = obj
end
end
end
end
end
if best_tool then
best_tool.Parent = local_player:WaitForChild("Backpack")
end
end)
скрипт доработать надо немного, и значения radius должны быть минимум 20 чтобы радиус норм был и вплотную подходить не нужно было