Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Скриптинг Roblox Studio. Как передвинуть NextBot?

Наеисал скрипт для передвижения. Пишет, что работает идеально вся команда, но теперь вылезает ошибка :" Position is not a valid member of Humanoid". Как это исправить и какие изменения нужно внести в скрипт?
ПрограммированиеИгры+2
Тимофей Михайлин
  · 535
Ошибка "Position is not a valid member of Humanoid" указывает на то, что вы пытаетесь обратиться к свойству "Position" объекта "Humanoid", которого нет или недоступно.
Если вы хотите передвинуть объект "NextBot" в Roblox Studio, вам нужно обращаться к свойству "Position" самого объекта, а не его компонента "Humanoid". Вот пример скрипта, который перемещает объект "NextBot" в указанную позицию:
local NextBot = script.Parent -- Получаем объект NextBot
local targetPosition = Vector3.new(0, 5, 0) -- Указываем целевую позицию, куда нужно переместить NextBot


-- Перемещение NextBot к целевой позиции
NextBot:SetPrimaryPartCFrame(CFrame.new(targetPosition)) 
Замените
Vector3.new(0, 5, 0)
на нужные вам координаты, чтобы переместить NextBot в желаемое место. Убедитесь, что скрипт находится в объекте NextBot, либо измените
script.Parent
на нужный путь к объекту NextBot, если скрипт находится в другом месте.
1 эксперт согласен
тоесть я так понимаю, перед функцией телепортации надо создать локальную, например part, и в скрипт добавить :... Читать дальше
@Тимофей Михайлин, спасибо за доверие! Я стараюсь быть полезным и предоставлять качественные ответы.
Относительно вашего вопроса, если вам нужно использовать функцию "onTouched" для реагирования на соприкосновение с другими объектами, то да, вам нужно создать локальную переменную типа "Part" и затем использовать метод "Touched" для определения этого события. Примерно так:
local NextBot = script.Parent
local teleportPart = Instance.new("Part")
teleportPart.Transparency = 1 -- Делаем часть невидимой
teleportPart.CanCollide = false -- Отключаем столкновения
teleportPart.Position = Vector3.new(0, 5, 0) -- Устанавливаем позицию части

teleportPart.Touched:Connect(function(part)
    -- Проверяем, что столкнулись с нужным объектом
    if part.Parent.Name == "OtherPart" then
        -- Телепортируем NextBot к новой позиции
        NextBot:SetPrimaryPartCFrame(CFrame.new(targetPosition))
    end
end)
В этом примере мы создаем новую невидимую и неколлизионную часть "teleportPart" и устанавливаем ее позицию. Затем мы подключаемся к событию "Touched" части и проверяем, соприкоснулась ли она с нужным объектом (в данном случае предполагается, что этот объект имеет имя "OtherPart"). Если условие выполняется, то мы телепортируем объект "NextBot" к новой позиции.
Пожалуйста, обратите внимание, что вам может потребоваться настроить условие проверки и позицию телепортации в соответствии с вашими потребностями.
Если у вас возникнут еще вопросы, не стесняйтесь задавать. Я готов помочь!
Советую использовать Pathfinding для таких целей.
@Антон Зайцев, да необязательно, если все работает, значит работает
Инженер путей сообщения – строитель  · 3 мая
Для начала надо изучить язык программирования, на котором мы пишем скрипт, потом объектную модель, с которой мы работаем. Потом понять сакральность фразы «Позиция — не годный член гуманоида», означающая, что в классе Humanoid отсутствует сущность Position. Поэтому в скрипте, который мы откуда-то содрали, надо найти строку, в которой идёт обращение к Humanoid.Position и... Читать далее