接触水地形时伤害玩家
Damage player when touching water terrain
我正在尝试降低玩家在 ROBLOX 中接触某些水域时的生命值。
我不确定为什么这行不通,但事实并非如此。如果有人可以帮助我,那就太好了。
while wait() do
local player = game.Workspace.LocalPlayer
local headLoc = game.Workspace.Terrain:WorldToCell(player.Character.Head.Position)
local hasAnyWater = game.Workspace.Terrain:GetWaterCell(headLoc.x, headLoc.y, headLoc.z)
if player.Character.Humanoid.Health ~= 0 then
if hasAnyWater then
player.Character.Humanoid:TakeDamage(0.2)
end
end
end
如果你检查你的输出 window 你会明白为什么:
LocalPlayer is not a valid member of Workspace
LocalPlayer 在"Players",所以你应该声明:
local player = game.Players.LocalPlayer
因此,如果您更改它,并将它放在 LocalScript 中,例如在 StarterPlayerScripts 文件夹中,一切都会如您所愿。
已解决。
local player = game:GetService("Players").LocalPlayer
while wait(0.5) do
local headLoc = game.Workspace.Terrain:WorldToCell(player.Character.LowerTorso.Position) or game.Workspace.Terrain:WorldToCell(player.Character.Torso.Position)
local hasAnyWater = game.Workspace.Terrain:GetWaterCell(headLoc.x, headLoc.y, headLoc.z)
if player.Character.Humanoid.Health ~= 0 then
if hasAnyWater then
player.Character.Humanoid:TakeDamage(8)
end
end
end
我正在尝试降低玩家在 ROBLOX 中接触某些水域时的生命值。 我不确定为什么这行不通,但事实并非如此。如果有人可以帮助我,那就太好了。
while wait() do
local player = game.Workspace.LocalPlayer
local headLoc = game.Workspace.Terrain:WorldToCell(player.Character.Head.Position)
local hasAnyWater = game.Workspace.Terrain:GetWaterCell(headLoc.x, headLoc.y, headLoc.z)
if player.Character.Humanoid.Health ~= 0 then
if hasAnyWater then
player.Character.Humanoid:TakeDamage(0.2)
end
end
end
如果你检查你的输出 window 你会明白为什么:
LocalPlayer is not a valid member of Workspace
LocalPlayer 在"Players",所以你应该声明:
local player = game.Players.LocalPlayer
因此,如果您更改它,并将它放在 LocalScript 中,例如在 StarterPlayerScripts 文件夹中,一切都会如您所愿。
已解决。
local player = game:GetService("Players").LocalPlayer
while wait(0.5) do
local headLoc = game.Workspace.Terrain:WorldToCell(player.Character.LowerTorso.Position) or game.Workspace.Terrain:WorldToCell(player.Character.Torso.Position)
local hasAnyWater = game.Workspace.Terrain:GetWaterCell(headLoc.x, headLoc.y, headLoc.z)
if player.Character.Humanoid.Health ~= 0 then
if hasAnyWater then
player.Character.Humanoid:TakeDamage(8)
end
end
end