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

LuaU DBNO Revive System

Ивкин Егор Ученик (156), на голосовании 2 месяца назад
Я хотел сделать систему оживления игрока в roblox studio как например в criminality или combat warrirors.

Но я не супер пупер програмиист чтобы понять как это сделать, я перепробовал всё.

Если кто то сможет помочь буду очень благодарен.

Server script:

 local Storage = game:GetService("ReplicatedStorage")  

local Players = game:GetService("Players")



local ReviveDuration = 10



Storage.Events.ReviveRemote.OnServerEvent:Connect(function(Player, Target, Status)

if Target then

local ReviveTime = Player.Character.Values.ReviveTime

local TargetPlayer = Players:GetPlayerFromCharacter(Target)



if Status == "Start" then

Player.Character.Values.IsReviving.Value = true

Player.Character.Values.IsNormal.Value = false



Target.Values.IsBleeding.Value = false



if Target:FindFirstChild("DownedGui") then

for _, Gui in pairs(Target:GetChildren()) do

if Gui:IsA("BillboardGui") then

Gui.Frame.ImageLabel.ImageColor3 = Color3.fromRGB(255, 255, 255)

end

end

end



elseif Status == "Stop" then

Player.Character.Values.IsReviving.Value = false

Player.Character.Values.IsNormal.Value = true



Target.Values.IsBleeding.Value = true



ReviveTime.Value = 0

end

end

end)


Local script:


 local function FindClosestDowned(Radius) 
local Characters = workspace:WaitForChild("Characters")

local closestTarget = nil
local closestDistance = math.huge

for _, character in pairs(Characters:GetChildren()) do
local humanoid = character:FindFirstChild("Humanoid")

if character ~= Character and character.Values.IsDowned.Value and not character.Values.BeingRevived.Value then
local distance = (character.HumanoidRootPart.Position - Character.HumanoidRootPart.Position).Magnitude

if distance <= Radius and distance < closestDistance then
closestTarget = character
closestDistance = distance
end
end
end

return closestTarget, closestDistance
end

UIS.InputBegan:Connect(function(Input, Processed)
if not Processed and not IsDowned.Value then
if Input.KeyCode == Enum.KeyCode.R then
local Target, Distance = FindClosestDowned(5)

if Target then

Reviving = true

print("Найден сбитый персонаж: ".. Target.Name)
print("Дистанция:".. tostring(Distance))

Storage.Events.ReviveRemote:FireServer(Target, "Start")
end
end
end
end)

UIS.InputEnded:Connect(function(Input, Processed)
if not Processed and not IsDowned.Value then
if Input.KeyCode == Enum.KeyCode.R then
local Target, Distance = FindClosestDowned(5)

if Target then
Reviving = false
Storage.Events.ReviveRemote:FireServer(Target, "Stop")
end
end
end
end)

Если нужно, могу что то уточнить.

Заранее спасибо.

(Код если что не полный)
Дополнен 3 месяца назад
P.S - конкретно нужно исправить серверный скрипт. Если нужно, можете в local script тоже что нибудь переделать
Голосование за лучший ответ
amogus xxxxxa Ученик (105) 2 месяца назад
Уже сделал Combat Zone, Rodject?
Похожие вопросы