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

Помогите с Lua скриптом

Just Player Ученик (121), на голосовании 3 месяца назад
 _G.raid_enabled = not _G.raid_enabled 

local lplr = game.Players.LocalPlayer
local enemies_folder = workspace.MediumRaid.RaidMobs
local target;

function getClosestEnemy()
local result;
local result_distance = math.huge
local rootPart = lplr.Character and lplr.Character:FindFirstChild('HumanoidRootPart')
if rootPart then
for _, enemy in pairs(enemies_folder:GetChildren()) do
local enemy_part = enemy:FindFirstChild('HumanoidRootPart')
local enemy_distance = enemy_part and (enemy_part.Position - rootPart.Position).Magnitude
local enemy_health = enemy:FindFirstChild('Humanoid') and enemy.Humanoid.Health
if enemy_distance and enemy_distance < result_distance and enemy_health and enemy_health > 0 then
result = enemy
result_distance = enemy_distance
end
end
end
return result, result_distance
end

while task.wait() and _G.raid_enabled do
local rootPart = lplr.Character and lplr.Character:FindFirstChild('HumanoidRootPart')
if rootPart then
if
not target or
not target.Parent or
not target:FindFirstChild('HumanoidRootPart') or
not target:FindFirstChild('Humanoid') or
target.Humanoid.Health <= 0
then
target = getClosestEnemy()
end
local target_part = target and target:FindFirstChild('HumanoidRootPart')
if target_part then
rootPart.CFrame = target_part.CFrame
end
end
end
в таком виде он телепортируется на моба это очень плохо, необходимо сделать чтобы телепорт происходил в координату в которой сейчас находится этот моб







к примеру вот такой телепорт работает отлично
 game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(-4788.576171875, 245.9598846435547, 4694.0234375) 

мне нужно чтобы верхний так же проверял живых мобов но телепортировался к ним по координатам
Голосование за лучший ответ
2993833838383 Знаток (320) 4 месяца назад
Чтобы изменить скрипт так, чтобы он телепортировал игрока к координатам моба, а не непосредственно на моба, вам нужно будет изменить строку, которая устанавливает CFrame игрока. Вместо прямого присваивания CFrame моба, вы должны создать новый CFrame с координатами моба. Вот как это можно сделать:

while task.wait() and _G.raid_enabled do
local rootPart = lplr.Character and lplr.Character:FindFirstChild('HumanoidRootPart')
if rootPart then
if
not target or
not target.Parent or
not target:FindFirstChild('HumanoidRootPart') or
not target:FindFirstChild('Humanoid') or
target.Humanoid.Health <= 0
then
target, _ = getClosestEnemy()
end
local target_part = target and target:FindFirstChild('HumanoidRootPart')
if target_part then
-- Создаем новый CFrame с координатами моба
local newCFrame = CFrame.new(target_part.Position)
-- Телепортируем игрока к этим координатам
rootPart.CFrame = newCFrame
end
end
end
Этот код будет получать позицию HumanoidRootPart цели и создавать новый CFrame с этими координатами, после чего устанавливать CFrame корневой части игрока (HumanoidRootPart) в эту новую позицию. Это позволит игроку телепортироваться к местоположению моба, а не непосредственно на моба.

Убедитесь, что вы тестируете изменения в безопасной среде, чтобы проверить, что скрипт работает как ожидается, и не вызывает нежелательных последствий в игре.
Похожие вопросы