Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите сделать скрипт в роблокс студио

Даня Крупин Знаток (456), на голосовании 2 месяца назад
как сделать чтобы при зажатии клавиши в роблокс студио нпс не мог подойти к тебе
Голосование за лучший ответ
Сайаан Слепцов Знаток (251) 3 месяца назад
-- Получить UserInputService
local UserInputService = game:GetService("UserInputService")

-- Создайте переменную для хранения ключа, который не позволит NPC приближаться
local key = Enum.KeyCode.Space --Ставишь свою клавишу

-- Функция, предотвращающая приближение NPC при удержании клавиши
local function preventNPCApproach(inputObject)
if inputObject.KeyCode == key then
-- Получить всех NPC в игре
for _, npc in pairs(game:GetService("Workspace"):GetDescendants()) do
if npc:IsA("Model") and npc:FindFirstChild("Humanoid") then
-- Не позволяйте NPC приближаться к игроку.
npc.Humanoid.WalkSpeed = 0
end
end
else
-- Сбросить скорость ходьбы NPC при отпускании клавиши
for _, npc in pairs(game:GetService("Workspace"):GetDescendants()) do
if npc:IsA("Model") and npc:FindFirstChild("Humanoid") then
npc.Humanoid.WalkSpeed = 16
end
end
end
end

-- Подключайтесь к UserInputService's InputBegan event
UserInputService.InputBegan:Connect(preventNPCApproach)
Даня КрупинЗнаток (456) 3 месяца назад
А если у меня вместо Humanoid HumanoidRootPart
Сайаан СлепцовЗнаток (251) 3 месяца назад
Просто добавь Humanoid и настрой.
Даня Крупин Знаток (456) Сайаан Слепцов, а это в воркспейс или куда то еще надо кидать скрипт
Даня КрупинЗнаток (456) 3 месяца назад
не работает
Сайаан СлепцовЗнаток (251) 3 месяца назад
local player = game.Players.LocalPlayer
local userInputService = game:GetService("UserInputService")
local canNPCApproach = true

-- Функция для обработки нажатия клавиши
local function onInputBegan(input, gameProcessedEvent)
if not gameProcessedEvent then
if input.UserInputType == Enum.UserInputType.Keyboard then
if input.KeyCode == Enum.KeyCode.E then -- Замените 'E' на нужную клавишу
canNPCApproach = false
end
end
end
end
Сайаан СлепцовЗнаток (251) 3 месяца назад
половина скрипта
Даня Крупин Знаток (456) Сайаан Слепцов, это еще надо вставить?
Сайаан Слепцов2Ученик (102) 3 месяца назад
у меня ответы кончились так новый скрипт внизу
Сайаан Слепцов2 Ученик (102) 3 месяца назад
это я (новый скрипт)
local player = game.Players.LocalPlayer
local userInputService = game:GetService("UserInputService")
local canNPCApproach = true

-- Функция для обработки нажатия клавиши
local function onInputBegan(input, gameProcessedEvent)
if not gameProcessedEvent then
if input.UserInputType == Enum.UserInputType.Keyboard then
if input.KeyCode == Enum.KeyCode.E then -- Замените 'E' на нужную клавишу
canNPCApproach = false
end
end
end
end

-- Функция для обработки отпускания клавиши
local function onInputEnded(input, gameProcessedEvent)
if not gameProcessedEvent then
if input.UserInputType == Enum.UserInputType.Keyboard then
if input.KeyCode == Enum.KeyCode.E then -- Замените 'E' на нужную клавишу
canNPCApproach = true
end
end
end
end

-- Подписка на события ввода
userInputService.InputBegan:Connect(onInputBegan)
userInputService.InputEnded:Connect(onInputEnded)

-- Обработка логики для NPC
while true do
wait(0.1) -- Проверяем состояние каждые 0.1 секунды
if not canNPCApproach then
for _, npc in pairs(workspace:GetChildren()) do
if npc:IsA("Model") and npc:FindFirstChild("Humanoid") then
local distance = (npc.HumanoidRootPart.Position - player.Character.HumanoidRootPart.Position).magnitude
if distance < 10 then -- Устанавливаем расстояние, на котором NPC не должен подходить
-- Перемещаем NPC на безопасное расстояние
local direction = (npc.HumanoidRootPart.Position - player.Character.HumanoidRootPart.Position).unit
npc.HumanoidRootPart.Position = npc.HumanoidRootPart.Position + direction * 5
end
end
end
end
end
Сайаан Слепцов2Ученик (102) 3 месяца назад
Это LocalScript который должен находится в StarterPlayer > StarterPlayerScripts
Похожие вопросы