Top.Mail.Ru
Ответы

ROBLOX STUDIO программирование помогите ю

как сделать скрипт чтоб система водила команду из HD admin и выдавало там килл ice т.д то есть рамдому,мне надо чтоб система водила команду префикс ; команда rank имя(user) ранг(admin) но мне конкретно надо admin,помогите



пример типо чтоб прикосновение,но мне надо чтоб система выдавало

--do not change anyting else


-- << CONFIGURATION >>
local rank = "VIP"
local rankType = "Server" -- "Temp", "Server" or "Perm". For more info, visit: https://devforum.roblox.com/t/HD/266932
local successColor = Color3.fromRGB(0,255,0)
local errorColor = Color3.fromRGB(255,0,0)



-- << SERVICES/VARIABLES >>
local players = game:GetService("Players")
local tweenService = game:GetService("TweenService")
local debris = game:GetService("Debris")
local hdMain = require(game:GetService("ReplicatedStorage"):WaitForChild("HDAdminSetup")):GetMain()
local hd = hdMain:GetModule("API")
local rankId = tonumber(rank) or hd:GetRankId(rank)
local rankName = hd:GetRankName(rankId)



-- << MAIN >>
--Touch Pad
for a,b in pairs(script.Parent:GetChildren()) do
local touchPart = b:FindFirstChild("TouchPart")
if touchPart then
local touchDe = {}
local originalColor = touchPart.Color
local particles = touchPart.Particles
touchPart.Touched:Connect(function(hit)
local character = hit.Parent
local player = players:GetPlayerFromCharacter(character)
if player and not touchDe[player] then
touchDe[player] = true

--Check rank is lower than giver rank
local plrRankId, plrRankName, plrRankType = hd:GetRank(player)
local newColor = errorColor
if plrRankId < rankId then
--Give rank
hd:SetRank(player, rankId, rankType)
newColor = successColor
else
local errorMessage = "Your rank is already higher than '"..rankName.."'!" --set your rank are higher, message here
if plrRankId == rankId then
errorMessage = "You've already been ranked to '"..rankName.."'!" --set alerdy rank, message here
end
hd:Error(player, errorMessage)
end

--Change pad color
touchPart.Color = newColor
--Color3.BlueCircle (70, 135, 255)
--Color3.TouchPart (248, 248, 248)
--Color3.BlackCircle (100, 100, 100)

--Success effect
if newColor == successColor then
local hrp = character:FindFirstChild("HumanoidRootPart")
if hrp and particles then
local particlesClone = particles:Clone()
debris:AddItem(particlesClone, 3)
particlesClone.Parent = hrp
for _, effect in pairs(particlesClone:GetChildren()) do
effect:Emit(2)
end
end
end

--Revert pad color
local tween = tweenService:Create(touchPart, TweenInfo.new (2), {Color = originalColor})
tween:Play()
tween.Completed:Wait()

touchDe[player] = false
end
end)
end
end

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Мыслитель
2мес

The provided code snippet appears to handle particle effects and visual feedback in Roblox, but there are a few considerations and potential improvements based on the knowledge base and best practices:

1. **Particle Cloning and Debris Handling**:
- The `Debris:AddItem(particlesClone, 3)` schedules the cloned particles for removal after 3 seconds. This is valid, as `Debris:AddItem` uses `Remove()` (not `Destroy()`) to unparent the object, which will be destroyed if no other references exist .
- However, you should parent `particlesClone` **before** adding it to Debris to ensure it exists in the instance hierarchy. The current code parents it *after* adding to Debris, which might still work but is non-standard .
```lua
particlesClone.Parent = hrp -- Parent first
debris:AddItem(particlesClone, 3) -- Then add to Debris
```

2. **Particle Emission**:
- The loop `for _, effect in pairs(particlesClone:GetChildren()) do effect:Emit(2) end` assumes all children are `ParticleEmitter` instances. To avoid errors, check their type or ensure the original `particles` model only contains valid emitters.
- If particles are initially disabled (e.g., in the starter pack), enable them first:
```lua
effect.Enabled = true
effect:Emit(2)
```
This aligns with troubleshooting in and , where enabling effects is critical for emission.

3. **Tween Blocking**:
- The `tween.Completed:Wait()` blocks the script until the tween finishes. This could freeze the game if used in a critical thread. Instead, use a callback:
```lua
tween:Play()
tween.Completed:Connect(function()
touchDe[player] = false
end)
```
This avoids yielding and improves concurrency .

4. **Parenting and Cleanup**:
- Ensure `hrp` is a valid parent (e.g., a part in the workspace). If `particlesClone` is not parented correctly, it won’t appear even if added to Debris.
- If the particles are complex (e.g., using `Particle Root Nodes` ), verify their structure matches the expected hierarchy.

5. **Lifetime Management**:
- The Debris lifetime of `3` seconds should exceed the emission duration to prevent premature removal. Adjust if particles need longer visibility.

### Final Adjusted Code Snippet:
```lua
local particlesClone = particles:Clone()
particlesClone.Parent = hrp -- Parent first
debris:AddItem(particlesClone, 3) -- Then add to Debris

for _, effect in pairs(particlesClone:GetChildren()) do
if effect:IsA("ParticleEmitter") then -- Ensure it's an emitter
effect.Enabled = true
effect:Emit(2)
end
end

-- Revert pad color without blocking
local tween = tweenService:Create(touchPart, TweenInfo.new(2), {Color = originalColor})
tween:Play()
tween.Completed:Connect(function()
touchDe[player] = false
end)
```

### Key References:
- Debris behavior and `Remove()` ,
- Particle emission and enabling ,
- Non-blocking tweens