로블록스에서 대포로 범위 공격을 구현하는 스크립트 입니다. 탄환이 특정 지점에 닿으면 폭발하고, 일정 범위 내의 모든 플레이어에게 피해를 주는 방식을 구현해봅시다.
-- 대포 스크립트 (ServerScript)
local cannon = script.Parent -- 대포 오브젝트
local firePoint = cannon.FirePoint -- 탄환이 발사될 위치
local projectileSpeed = 100 -- 탄환 속도
local explosionRadius = 10 -- 폭발 반경
local damage = 30 -- 피해량
local function onFire()
local projectile = Instance.new("Part")
projectile.Size = Vector3.new(1, 1, 1)
projectile.Shape =Enum.PartType.Ball
projectile.Material = Enum.Material.Metal
projectile.Color = Color3.fromRGB(255, 0, 0)
projectile.Position = firePoint.Position
projectile.Velocity = firePoint.CFrame.LookVector * projectileSpeed
projectile.Anchored = false
projectile.CanCollide = false
projectile.Parent = game.Workspace
-- 충돌 감지
projectile.Touched:Connect(function(hit)
if hit and hit.Parent then
-- 폭발 생성
local explosion = Instance.new("Explosion")
explosion.Position = projectile.Position
explosion.BlastRadius = explosionRadius
explosion.BlastPressure = 50000
explosion.Parent = game.Workspace
-- 피해 처리
for _, player in pairs(game.Players:GetPlayers()) do
if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
local distance = (player.Character.HumanoidRootPart.Position - projectile.Position).Magnitude
if distance <= explosionRadius then
local humanoid = player.Character:FindFirstChild("Humanoid")
if humanoid then
humanoid:TakeDamage(damage)
end
end
end
end
projectile:Destroy()
end
end)
end
-- 대포 발사 트리거
cannon.FireEvent.OnServerEvent:Connect(onFire)
대포에서 탄환을 발사하고, 탄환이 충돌하면 폭발하여 반경 내 플레이어들에게 피해를 주는 기능을 포함하고 있어
대포뿐만이 아닌 다른형태로 참고해서 쓸수 있습니다. (Ex_범위마법, 샷건피해등)
'로블록스(Roblox) > 아이템별 스크립트' 카테고리의 다른 글
[로블록스 스튜디오] 간단한 총기 스크립트! 서버&클라이언트 코드 포함 (0) | 2025.02.18 |
---|---|
로블록스 총 기능 구현 스크립트 (0) | 2025.02.03 |