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

Помогите со скриптом в роблокс.

Ромчик Помидорчик Ученик (193), на голосовании 1 месяц назад
Можете помочь или написать скрипт чтобы когда игрок касался смертельного парта или же просто ресетался то проигрывалась бы анимация (смерти). и чтоб видели ее все игроки
Голосование за лучший ответ
Suyindik Amansha Профи (664) 2 месяца назад
Скриптонит
Ромчик ПомидорчикУченик (193) 2 месяца назад
чего?
Suyindik Amansha Профи (664) Ромчик Помидорчик, поищи "Скриптонит" в интернете. Он самый главный скриптер России.
Ромчик ПомидорчикУченик (193) 2 месяца назад
это певец же
Анатолий Зяблин Просветленный (32659) 2 месяца назад
Типа того
 -- Сначала убедитесь, что у вас есть анимация смерти 
local deathAnimationId = "ВАШ_ID_АНИМАЦИИ_СМЕРТИ" -- Замените на ID вашей анимации
local Players = game:GetService("Players")

-- Функция для воспроизведения анимации смерти
local function playDeathAnimation(character)
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
local animator = humanoid:FindFirstChildOfClass("Animator") or Instance.new("Animator", humanoid)
local deathAnimation = Instance.new("Animation")
deathAnimation.AnimationId = deathAnimationId

-- Воспроизведение анимации
animator:LoadAnimation(deathAnimation):Play()
end
end

-- Обработчик касания смертельного объекта
local function onTouch(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
if player then
playDeathAnimation(hit.Parent)
-- Убиваем персонажа (можно убрать, если не нужно)
hit.Parent:FindFirstChildOfClass("Humanoid"):TakeDamage(hit.Parent:FindFirstChildOfClass("Humanoid").Health)
end
end

-- Обработчик сброса персонажа
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")

-- Подписка на событие смерти
humanoid.Died:Connect(function()
playDeathAnimation(character)
end)
end

-- Подписка на события для каждого игрока
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(onCharacterAdded)
end)

-- Подписка на события для существующих игроков
for _, player in ipairs(Players:GetPlayers()) do
onCharacterAdded(player.Character or player.CharacterAdded:Wait())
end

-- Пример создания смертельного объекта (замените на ваш объект)
local deadlyPart = Instance.new("Part")
deadlyPart.Size = Vector3.new(5, 1, 5)
deadlyPart.Position = Vector3.new(0, 1, 0) -- Позиция вашего объекта
deadlyPart.Anchored = true
deadlyPart.Touched:Connect(onTouch)
deadlyPart.Parent = workspace
Ромчик ПомидорчикУченик (193) 2 месяца назад
а это же в ServerPlayerScripts или в ServerCharasterScripts
Анатолий Зяблин Просветленный (32659) Ромчик Помидорчик, В Roblox скрипт для обработки анимации смерти и взаимодействия с игроками лучше всего размещать в ServerScriptService. Это связано с тем, что мы работаем с событиями, которые должны быть доступны на сервере, чтобы все игроки могли видеть анимацию.
Анонимус Просветленный (30817) 2 месяца назад
Этот скрипт использует RemoteEvent для синхронизации анимации смерти между всеми клиентами. Он предполагает, что у вас есть анимация смерти, настроенная для персонажа.

Серверный скрипт (ServerScriptService):
 local ReplicatedStorage = game:GetService("ReplicatedStorage") 
local DeathAnimationEvent = ReplicatedStorage:WaitForChild("DeathAnimationEvent") -- RemoteEvent

game.Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:WaitForChild("Humanoid")
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

humanoid.Died:Connect(function()
DeathAnimationEvent:FireAllClients(player) -- Запускаем анимацию смерти на всех клиентах
end)

-- Добавляем обработку столкновения со смертельным партом (если есть)
humanoidRootPart.Touched:Connect(function(hit)
local deadlyPart = workspace:FindFirstChild("DeadlyPart") -- Замените "DeadlyPart" на имя вашего смертельного парта
if hit == deadlyPart then
DeathAnimationEvent:FireAllClients(player) -- Запускаем анимацию смерти на всех клиентах
humanoid:TakeDamage(humanoid.MaxHealth) -- Убиваем игрока
end
end)
end)
end)
Клиентский скрипт (StarterPlayerScripts):
 local ReplicatedStorage = game:GetService("ReplicatedStorage") 
local DeathAnimationEvent = ReplicatedStorage:WaitForChild("DeathAnimationEvent") -- RemoteEvent
local humanoid = game.Players.LocalPlayer.Character:WaitForChild("Humanoid")
local humanoidAnimator = humanoid:GetState()


DeathAnimationEvent.OnClientEvent:Connect(function()
-- Проигрываем анимацию смерти
local animationTrack = humanoid:LoadAnimation(ReplicatedStorage:WaitForChild("DeathAnimation")) -- Замените "DeathAnimation" на имя вашей анимации смерти

animationTrack:Play()
animationTrack.Stopped:Connect(function()
--Здесь может быть добавлено что-то по завершении анимации
end)
end)

game.Players.LocalPlayer.CharacterAdded:Connect(function(character)
humanoid = character:WaitForChild("Humanoid")
humanoidAnimator = humanoid:GetState()
end)
Не забудьте:
  • Создать RemoteEvent: В ReplicatedStorage создайте RemoteEvent с именем DeathAnimationEvent.
  • Добавить анимацию: В ReplicatedStorage загрузите анимацию смерти (назовем её “DeathAnimation”). Убедитесь, что анимация корректно настроена в вашем персонаже.
  • Настроить смертельный партикл: В workspace разместите партикл или объект, который будет обозначать смертельную зону. Замените "DeadlyPart" на его имя.
  • Обработка ошибок: Добавьте обработку ошибок WaitForChild в случае, если нужные объекты не найдены.
Похожие вопросы