Костя Саликов
Ученик
(30),
на голосовании
2 недели назад
Хочу сделать сущности как из игры DOORS, но, хоть в плотную подойти, сущность не видит игрока, скажите пожалуйста, я что то не так сделал?
local a60 = script.Parent local distance = 30 local targlayer = "Players"
function raycast(target) local direction = (target.Position-a60.Position).Unit local raycastParameters = RaycastParams.new() raycastParameters.CollisionGroup = targlayer raycastParameters.FilterType = Enum.RaycastFilterType.Exclude raycastParameters.FilterDescendantsInstances = {a60} raycastParameters.IgnoreWater = true return workspace:Raycast(a60.Position,direction,raycastParameters) end function kill(target) if target and target:FindFirstChildOfClass("Humanoid") then target.Humanoid.Health = 0 print("killed "..target.Name) end end while wait(1) do for _,player in pairs(game.Players:players()) do if player.Character and player.Character.HumanoidRootPart then local results = raycast(player.Character.HumanoidRootPart) if not results then continue end if not results.Instance then continue end if results.Instance == player.Character.HumanoidRootPart then kill(player.Character) end end end end
**Параметры RaycastParams**: Убедитесь, что вы правильно используете `FilterType` и `FilterDescendantsInstances`. Например, вместо `targlayer` используйте `Enum.RaycastFilterType.Exclude` и убедитесь, что `FilterDescendantsInstances` правильно настроены для исключения ненужных объектов.
**Проверка результата**: Вы проверяете, равен ли `results.Instance` `player.Character.HumanoidRootPart`, но это может быть некорректно. Вместо этого проверьте, что `results` не равен nil и что `results.Instance` действительно является частью, которую вы хотите проверить.
**Расчет направления**: Убедитесь, что направление рассчитывается корректно. Оно должно быть нормализовано и умножено на расстояние, если это необходимо.