и вправду шикарное видео, смотрел много разных уроков и в целом везде плохо рассказано и шаблонно, а тут приятно и понятно, да и тема новая, спасибо за ролик
Думать за кого-то не собираюсь. Я даю частички пазла, а картинку, собирай сам. Это более эффективный способ учится новому. Я подумываю сделать гайд по базовым командам в LUA
Либо ты противоречишь себе, либо неправильно понял. Я написал комментарий с просьбой увидеть, цитирую твои слова: «вторую часть, где разберу всё от А до Я!»@@SvalkaKvemona
Здраствуйте, вы случано не знаете как сделать так что бы нпс не нападал на человека который его заспавнил, или не нападал на ближайшего игрока, а на того что 2 по расстоянию от нпс?
У меня почему то не работает ,вернее работает всё ,но как только я пишу функцию WaypointReached ,так все , Rig просто стоит на месте , даже не выводит ошибки в консоль ,он просто стоит на месте, а для сервера как будто все норм…
Совет номер один пользуйся скриптами совет два пользуйся properties он помогает делать разные штуки например зделать диалог с персонажем Совет три при во вкладке view можно создать нпс если нажать avatar пользуйся желаю удачи 😉
Привет , незнаешь как начать вообще создавать что то в роблокс студио? Какие лучше программы для этого изучать?. Я пытался просто гайды смотреть , но видимо плохие так как было как то всё намешанно и уже на 7 гайде не работали некоторые вещи. Просто у меня желание рпгшку с системой крафта и кгмбинаций зелий есть. Рисовать могу классно только и все ...
Пфф... Ну, для начала, стоит сделать что-то простое. Для создания игр в РБС, тебе потребуется только сам РБС Сделать твою идею получится только с очень большим опытом Ничего конкретного подсказать не могу, всё индивидуально. Я учился по ходу дела
скрипт кому лень писать local SimplePath = require(game:GetService("ServerStorage").SimplePath) local Rig = script.Parent local Target = workspace.Target local path = SimplePath.new(Rig) path:Run(Target)
Запарился, добавил звуки клавиатуры при печати строк Кста имба видео, буквально недавно пытался сделать NPС вечно ходящий с игроком, но было куча ситуация когда бот просто становился на месте, не работал как хотел, посмотрю решит ли этот модуль проблему, а то я в своём скрипте как только не пытался решить проблему
Я протестил, есть проблема что он плох в паркуре, если расстояние не маленькое, то он не прыгает, хотя что бы туда допрыгнуть не нужно прыгать от края до края, так же с высотой, куда игрок может допрыгнуть, NPS не может
Я сделаю тогда видео как просто проигрывать анимации. Никто за тебя код писать не будет) Дай человеку рыбу - будет сыт день. Научи человека рыбачить - будет сыт всегда
А что делать если при запуске игры в оутпуте выдает ошибку? ошибка: "ServerStorage.SimplePath:25: SimplePath Error: Pathfinding target must be a valid Vector3 or BasePart." как исправить?
Привет, на самом деле штука прикольная. Вроде-бы легкая. Но у меня есть вопрос как сделать так чтобы он за HumanoidRootPart'ом игрока ходил? Или там незнаю нужно с сервера передавать с клиента короче да.
Самое простое, создать функцию, которая будет перебирать через цикл for всех игроков, и проверять кто в радиусе. Если игрок в радиусе, то выбрать его как цель. Уверен что есть способы лучше, но это самое первое и простое что пришло в голову
Не, берешь игроков, Players:GetPlayers(), или что-то типа того. И потом перебираешь каждого, и пишешь типа v.Character.HumanoidRootPart.Position@@jopoy.
Это конечно все здоров, но прекол в том, что в самом начале описания модуля на Dev форуме написано, что он использует PathfindingService роблокса и что этот модуль делает несколько расчетов, чтобы путь был более верным.
так а почему мы должны тебе верить, что именно этот нн модуль лучше готового сервиса от разрабов роблокса и в частности самого движка. Ты получается хочешь сказать, что кодеры которые разрабатывали данный движок написали на этом же движке сервис хуже того, что ты сейчас показал? Я жду обоснования
Во первых, как же глупо спорить на эту тему... Во вторых, я был невнимателен. Этот плагин использует поиск пути от роблокса, но, упрощает его использование, и оптимизирует его, от чего он работает быстрее
Привет, я тоже захотел сделать, у меня вылезала ошибка или не работал кусок с движение нпс при перемещении цели, разобрался, незнаю как у вас но у меня нпс считает waypoint как точки которые он долден пройти до цели, но почему-то либо он их обнуляет потом или что-то делает с ними что они равны нулю я незнаю что делать если надо могу предоставитт скриншот но пока ничего не работает
Вопрос как ты сделал скрипт для НПС чтобы он ходил за игровым персонажем?я уже сделал при помощи брата но роблокс удалил скрипт, я пытался переделать , спрашивал у ИИ , смотрел видео но либо было нагромождение функций и условий либо просто неработающий скрипт.
прикольно, интересно, а можно ли заставить "ходить" не нпс а обычный парт? (мы хотим сделать румс фан игру но не знаем как заставить монстров лететь к двери)
@@SvalkaKvemona ну вообще было бы круто научиться писать код на двесте строк еще и работающий, а то я пока научился максимум на 5 строк самостоятельно. Я просто хочу сделать зомби нпс который приследовал бы игрока, имел регдолы и еще уйму всяких механик для него, но пока я не в силах такое сделать(
@@SvalkaKvemona ну я щас пытаюсь чуть чуть разобраться сам в скриптинге, я щас прямо самые азы прохожу, но когда то сам смогу что то большее написать (надеюсь)
Я сначала решил сделать тестовый проект по типу Steps steps, так как это было бы просто. Сначала было сложно вникнуть, но сейчас, я уже без проблем занимаюсь скриптингом. Я решал проблемы по мере поступления
@@SvalkaKvemona Скрипт: local simplePath = require(game:GetService('ServerStorage'). SimplePath) local ds = script.Parent local target = ds.Parent.FLR1_DS_Patrolling.FLR1_DS_PatrollingPoint006 local pPath = simplePath.new(ds) simplePath:Run(target) (Скрипт SimplePath не изменялся)
@@Itz_Mimic Из возможных причин ошибки: 1. Ты скорее всего указал не подходящую цель. "DS" должен быть моделькой внутри которой хуманойд. 2. Target может определятся неправильно по той причине что в момент загрузки скрипта, объекта "FLR1_DS_PatrollingPoint006" может просто не существовать, из-за чего оно и не работает.
слушай товарищ, я испробовал этот модуль. и на данный момент он перестал работать. Run() по какой то причине не движет нпс до нужной точки. и стоит на одном месте. какие эти проблемы могут быть?
@@SvalkaKvemona local ServerStorage = game:GetService("ServerStorage") local SP = require(ServerStorage.SimplePath) local rig = script.Parent local walk = rig.WalkingAround walk.Enabled = false function FindPlayer(Position) local List = game.Workspace:GetChildren() local Torso = nil local Distance = 40 local HumanoidRootPart = nil local Humanoid = nil local Player = nil for i = 1, #List do Player = List[i] if (Player.ClassName == "Model") and (Player ~= script.Parent) then HumanoidRootPart = Player:FindFirstChild("HumanoidRootPart") Humanoid = Player:FindFirstChild("Humanoid") if (HumanoidRootPart ~= nil) and (Humanoid ~=nil) and (Humanoid.Health > 0) then if (HumanoidRootPart.Position - Position).Magnitude < Distance then Torso = HumanoidRootPart Distance = (HumanoidRootPart.Position - Position).Magnitude end end end end return Torso end local path = SP.new(rig) while true do task.wait(0.1) local Target = FindPlayer(script.Parent.HumanoidRootPart.Position) if Target ~= nil then walk.Enabled = false task.wait(0.1) path:Run(Target) elseif walk.Enabled ~= true then task.wait(1) walk.Enabled = true end end у меня всё работало но после того как я переместил модельку, скрипт перестал работать
@@SvalkaKvemona local ServerStorage = game:GetService("ServerStorage") local SP = require(ServerStorage.SimplePath) local rig = script.Parent local walk = rig.WalkingAround walk.Enabled = false function FindPlayer(Position) local List = game.Workspace:GetChildren() local Torso = nil local Distance = 40 local HumanoidRootPart = nil local Humanoid = nil local Player = nil for i = 1, #List do Player = List[i] if (Player.ClassName == "Model") and (Player ~= script.Parent) then HumanoidRootPart = Player:FindFirstChild("HumanoidRootPart") Humanoid = Player:FindFirstChild("Humanoid") if (HumanoidRootPart ~= nil) and (Humanoid ~=nil) and (Humanoid.Health > 0) then if (HumanoidRootPart.Position - Position).Magnitude < Distance then Torso = HumanoidRootPart Distance = (HumanoidRootPart.Position - Position).Magnitude end end end end return Torso end local path = SP.new(rig) while true do task.wait(0.1) local Target = FindPlayer(script.Parent.HumanoidRootPart.Position) if Target ~= nil then walk.Enabled = false task.wait(0.1) path:Run(Target) elseif walk.Enabled ~= true then task.wait(1) walk.Enabled = true end end код полностью функционировал но когда я его переместил он перестал работать
@@SvalkaKvemona local ServerStorage = game:GetService("ServerStorage") local SP = require(ServerStorage.SimplePath) local rig = script.Parent local path = SP.new(rig) local waypoints = workspace.Cutscene.Position while true do --local rndNum = math.random(1,#waypoints)
path:Run(waypoints) task.wait(5) end у меня код по длиннее, но даже этот работать не хочет
@@SvalkaKvemonaЯ исправил, но так и не понял кое что. В общем, когда риг из ServerStorage переноситься в Workspace и позиция HumanoidRootPart меняется, то у частей тела отключается коллизия, а если её вручную включить, то персонаж начинает все равно летать, но повыше... В общем, в итоге просто убрал строчку «Rig.HumanoidRootPart.Position = StartPos.Position”
Я уже малясь не вовремя, но, да. То что ты написал, не работало бы. Ты менял позицию не самого персонажа, а одной его части. Это так не работает. Тебе нужно перемещать группу с персонажем через метод Character:Move() или что-то типа того. Попробуй сам
Крутой тутор, только хочется, чтобы нпс шёл на игрока, а я без понятия как его указать. Я даже писал game.Players.LocalPlayer.Character , Но нпс не двинулся, а так на партах работает. Можно конечно поставить парт игроку, но точно ли это решение? Буду рад, если поможешь с этим.
Скажу тебе вот что. Во первых game.Players.LocalPlayer указывает просто локального игрока, которого можно узнать только из локального скрипта которых находится в этом же игроке. Во вторых Character это просто моделька игрока, для указания пути нужен Part, а не Model
Привет. Подскажи пожалуйста как направить рига идти к игроку? Я написал такой скрипт и он не находит игрока. Скрипт: local SimplePath = require(game:GetService("ServerStorage").SimplePath) local Zombie = script.Parent local HumanoidRootPart = workspace.Players.Player.HumanoidRootPart local path = SimplePath.new(Zombie, { AgentCanJump = true, AgentRadius = 1.0, AgentHeight = 6.0, AgentWalkableClimb = 2.0, }) path.WaypointReached:Connect(function() path:Run(HumanoidRootPart) end) path.Reached:Connect(function() path:Run(HumanoidRootPart) end) path.Blocked:Connect(function() path:Run(HumanoidRootPart) end) path.Error:Connect(function() path:Run(HumanoidRootPart) end) path:Run(HumanoidRootPart) Подскажи какой надо путь к игроку указать?
Ты указываешь игрока по пути которого не существует. Видишь ли, иногда, скрипт может загрузиться быстрее чем объект который тебе нужен, из-за этого скрипт его не находит. Что-бы это исправить попробуй использовать метод waitforchild()
Вот несколько вопросов которые помогут исправить твою проблему: 1. Ты импортировал модуль в скрипт и в проект? 2. Ты засунул скрипт в RIG? 3. Ты указал цель для RIG-а? И в конце концов, покажи скрипт
@@SvalkaKvemona вот код; local SimplePath = require(game.GetService("ServerStorage").SimplePath) local Rig = script.Parent local Target = workspace.YY local path = SimplePath.new(Rig) path:Run(YY)
local SimplePath = require(game:GetService("ServerStorage").SimplePath) local Rig = script.Parent local HumanoidRootPart = workspace:WaitForChild("HumanoidRootPart") local path = SimplePath.new(Rig, { AgentCanJump = true, AgentHeight = 6.0, AgentWalkableClimb = 2.0, }) while true do path:Run(HumanoidRootPart) path.WaypointReached:Connect(function() path:Run(HumanoidRootPart) end) task.wait(1) end скажите пожалуйста, почему скрипт на преследование игрока не работает
@@io32xd функция :WaitForChild не ищет объект по всем иерархиям а просто обращается к первому попавшемуся по имени. Тоесть, Humanoid root part, это часть игрока, но игрока в пути ты не учитываешь, по этому просто ищешь парт с таким названием в воркспейсе. По идеи нужно написать что-то вроде: local HumanoidRootPart = workspace:WaitForChild("Player"):WaitForChild("HumanoidRootPart"), или типа того
Да, знаю, очень поздно написал, но щас скажу сырой скрипт, но рабочий. Создай скрипт в ServerScriptService, дальше пишем local SimplePath = require(game:GetService("ServerStorage").SimplePath) - путь к симпл патху local Rig = workspace.Rig - Зомби local path = SimplePath.new(Rig) game.Players.PlayerAdded:Connect(function(plr) - Игрок зашёл в игру, ну и сам plr = игрок while true do task.wait(0.1) path:Run(plr.Character.HumanoidRootPart) end end)
А вот сам думай. Это видео не для новичков сделано, а для уже хоть что-то понимающих. Программирование это пазл. Попробуй его собрать. Для начала придумай как это бы происходило. Допустим, каждые 5 секунд, скрипт бы собирал всех игроков на карте, считал дистанцию между игроком и врагом, а потом через отсортированный список отбирал бы самого первого. Попробуй по отдельности разобрать все эти шаги, и у тебя выйдет
@@SvalkaKvemona я пробавал 10 раз не роботает local sp = require(game:GetService("ServerStorage").SimplePath) local rig = script.Parent local target = game.Workspace.tar local path = sp.new(rig) path:Run(target) скрипт
Посмотрите моё новое видео на основном канале!
ua-cam.com/video/ZqRLhHQK5hw/v-deo.html&lc=UgxHFHU-ikxCSrciGQ14AaABAg
а как сделать анимацию шагов у этого бота??
Круто, по делу и без воды. Побольше бы таких туториалов на ютубе
@royday2302 верно подмечено
Хорошо и без воды. Думал что тут будет тупо какой-нибудь скрипт который нужно будет скопировать из тулбокса, а тут плагин с отличным объяснением.
Круто! Надеюсь увидеть больше туториалов по рб студио на этом канале
Я думал это гайд по pathfinding service, но это оказалось лучше ! Спасибо за то что сделал по нему гайд
и вправду шикарное видео, смотрел много разных уроков и в целом везде плохо рассказано и шаблонно, а тут приятно и понятно, да и тема новая, спасибо за ролик
Спасибо большое, очень информативно и по делу!
Давно думал как сделать НПС для игры. Спасибо вам большое!
Хорошее объяснение, удачи в будущем!
спасибо!! жду больше видео по роблокс студио ты очень хорошо и информативно делаешь видео !!
Круто, продолжай в том же духе!
Спасибо. Было бы неплохо увидеть подробный гайд.
Думать за кого-то не собираюсь. Я даю частички пазла, а картинку, собирай сам. Это более эффективный способ учится новому. Я подумываю сделать гайд по базовым командам в LUA
Либо ты противоречишь себе, либо неправильно понял. Я написал комментарий с просьбой увидеть, цитирую твои слова: «вторую часть, где разберу всё от А до Я!»@@SvalkaKvemona
Я под "разберу всё от а до я" имел в виду что покажу все-все функции модуля. Я возможно твою просьбу не так понял тоже@@krimdoff5956
@@SvalkaKvemona судя по таблице которую ты указал в путь, модуль и так исопльзует PathFinding, но модулем легче пользоваться
@@SaleMales да. Им и проще пользоваться, и он проще обрабатывается когда цель движется
Спасибо, наконец-то нашел Ютуб канал который нормально объясняет
Круто, объяснил кратко, хорошо и без воды
Если бы много таких туториалов было,цены бы небыло
Я уже делаю один по модульным скриптам
Как круто, что твое видео попалось мне в рекомендации! Наконец-то я смогу сделать NPC лучше, не мучаясь с этим громоздким PathFinding'ом роблокса!
Квемон спасибо помню тебя ещё с проекта со слаймом!
Бро клёвое видео помог сильно но можно вопрос а что за музыку на фоне
Хоть я не пользуюсь роблокс студио, но этот гайд очень очень крутой и полезный!
Подача ахуенная, монтаж тоже, а сразу подписываюсь)
самое годное что я видел
Скажи пожалуйтса как зделать тоже самое но чтобы за игроком шёл
очень интересно, жаль что не сильно залетело(
Здраствуйте, вы случано не знаете как сделать так что бы нпс не нападал на человека который его заспавнил, или не нападал на ближайшего игрока, а на того что 2 по расстоянию от нпс?
Берешь массив потенциальный целей, сортируешь, и выбираешь второго в массиве. Что-то типа massiv[ 2 ]
Сразу не узнал а потом как вспомнил что это легендарный Квэмон который снимал ролики в тиктоке и был на фгот сервере!😢
я был, и есть на сервере фгота
У меня почему то не работает ,вернее работает всё ,но как только я пишу функцию WaypointReached ,так все , Rig просто стоит на месте , даже не выводит ошибки в консоль ,он просто стоит на месте, а для сервера как будто все норм…
Круто объясняешь
какой язык изучать что бы создавать игры в роблокс студио? (я никогда до этого ничего не изучал и понятия не имею что происходит в ролике) подскажите
В роблокс студио используется язык программирования Lua
А еще, этот урок не сделан и не направлен на полных новичков
скрипт на RBX
path.WaypointReached:Connect(function()
path:Run(Target)
end)
path:Run(Target)
Неправельный
@@mango_skibidi650 у тебя в бошке не правильно
вопрос, а через что ты агр зомби сделал? ну тоесть как они тебя замечают?
Если персонаж появляется, то зомби должен идти к его Рут парту
@@Streng_RBX пасибо
@@fota228voron7 Не за что)
а можешь сделать видео где более подробно описано как сделать так чтобы нпс ходил за игроком
Совет номер один пользуйся скриптами совет два пользуйся properties он помогает делать разные штуки например зделать диалог с персонажем
Совет три при во вкладке view можно создать нпс если нажать avatar пользуйся желаю удачи 😉
Я и так это всё делал...
Спасибо за гайдик, сделай ещё туториалы пж
А как сделать движение за игроком? Вот вообще не врубаюсь, подскажи, пожалуйста
не плохо, спасибо
Привет , незнаешь как начать вообще создавать что то в роблокс студио? Какие лучше программы для этого изучать?. Я пытался просто гайды смотреть , но видимо плохие так как было как то всё намешанно и уже на 7 гайде не работали некоторые вещи. Просто у меня желание рпгшку с системой крафта и кгмбинаций зелий есть. Рисовать могу классно только и все ...
Пфф... Ну, для начала, стоит сделать что-то простое. Для создания игр в РБС, тебе потребуется только сам РБС
Сделать твою идею получится только с очень большим опытом
Ничего конкретного подсказать не могу, всё индивидуально. Я учился по ходу дела
@@SvalkaKvemona понятно , я тоже думаю сначала сделать какой нит простой симулятор тайкон , может даже робуксов с него получу
скрипт кому лень писать
local SimplePath = require(game:GetService("ServerStorage").SimplePath)
local Rig = script.Parent
local Target = workspace.Target
local path = SimplePath.new(Rig)
path:Run(Target)
Спс этот сервис имба
не за что бро В)
Друг, подскажи пожалуйста, а зомби охотящиеся за игроком сделаны с помощью PathFindingService?
да
Всë прикольно работает но, можешь сделать тутор как чделать анимацию ходьбы для умного нпс, очень прошу
вручную
Что за плагин для билдинга ты используешь?
Какой?
3:16 что ща игра на фоне?
Запарился, добавил звуки клавиатуры при печати строк
Кста имба видео, буквально недавно пытался сделать NPС вечно ходящий с игроком, но было куча ситуация когда бот просто становился на месте, не работал как хотел, посмотрю решит ли этот модуль проблему, а то я в своём скрипте как только не пытался решить проблему
Я протестил, есть проблема что он плох в паркуре, если расстояние не маленькое, то он не прыгает, хотя что бы туда допрыгнуть не нужно прыгать от края до края, так же с высотой, куда игрок может допрыгнуть, NPS не может
Да, на счёт звуков клавы запарился) А поиск пути нужно очень долго настраивать, что-бы НПС не вёл себя как придурок@@Vova_vtvp
3:17 игра?
А где можно найти эту желтую штуку когда ты выделяешь модель?
Жёлтую штуку?
Жёлтые линии, я думаю это какой-то плагин
@@lefleffy ппц
@@lefleffy это бета фича роблокса
сделай видео как сделать анимацию для tool когда он у тебя в руке
Я сделаю тогда видео как просто проигрывать анимации. Никто за тебя код писать не будет)
Дай человеку рыбу - будет сыт день.
Научи человека рыбачить - будет сыт всегда
Прикольно работает но когда дела доходит до WaypointReached то нечего не работает😅
покажи скрипт
Спасибо
С середины где-то с 3:00 и до конца была игра про зомбаков, есть название карты?
Нету, она не закончена
@@SvalkaKvemona доделай, выглядит неплохо
@@SvalkaKvemonaподскажите, почему у нпс при ходьбе нет анимации? (внутри нпс есть скрипт animate)
@@KllKlok Потому-что это делается отдельно. Скрипт animate не работает просто так.
Забавно, но луа очень похоже на js
Не совсем
не бро, ты ошибаешься
Человек бензопила 8 бит?
Я вижу вы ценитель высокой культуры)
можно название песни на фоне? прост кажется очень знакомым
Chainsaw Man Opening - Kick Back [8 Bit; VRC6]: ua-cam.com/video/mgmfkIAXHjg/v-deo.html
И
CHIPTUNE ♫ 20XX : ua-cam.com/video/kZRQosq3PjM/v-deo.html
когда я пишу false прыжкам, то он перестает работать
А что делать если при запуске игры в оутпуте выдает ошибку?
ошибка: "ServerStorage.SimplePath:25: SimplePath Error: Pathfinding target must be a valid Vector3 or BasePart." как исправить?
И ошибка находится не в самом скрипте рига, а в скрипте simplepath
ошибка в том что скрипт не может определить какой объект цели ты ему дал. Тебе в переменной Target указать любой парт
кто знает как сделать нпс который будет убивать игрока когда прибегает на шум и возвращаться на место где он был
Привет, на самом деле штука прикольная. Вроде-бы легкая. Но у меня есть вопрос как сделать так чтобы он за HumanoidRootPart'ом игрока ходил? Или там незнаю нужно с сервера передавать с клиента короче да.
Самое простое, создать функцию, которая будет перебирать через цикл for всех игроков, и проверять кто в радиусе. Если игрок в радиусе, то выбрать его как цель. Уверен что есть способы лучше, но это самое первое и простое что пришло в голову
А именно for i, v in pairs бла бла или for i = 10,10,10?@@SvalkaKvemona
Первое. Нужно просто узнать дистанцию, и если игрок достаточно близко, то указать HumanoidRootPart как цель@@jopoy.
Понял, а как в скрипте написать путь до humanoid root part? то просто если я не ошибаюсь только можно через клиент@@SvalkaKvemona
Не, берешь игроков, Players:GetPlayers(), или что-то типа того. И потом перебираешь каждого, и пишешь типа v.Character.HumanoidRootPart.Position@@jopoy.
возможно я плохо слшал но как сделать нескольк обьектов пути
В каком плане?
Это конечно все здоров, но прекол в том, что в самом начале описания модуля на Dev форуме написано, что он использует PathfindingService роблокса и что этот модуль делает несколько расчетов, чтобы путь был более верным.
да да да, знаю я, ошибся при написании сценария
0:38, интересно, как сделать так чтобы нпс шёл на игрока
Тут уже комплексный гайд нужен. В целом, этот урок рассчитан на тех, кто уже хоть что-то умеет.
Просто сделай скрипт поиска хуманоида и направляй нас туда
так а почему мы должны тебе верить, что именно этот нн модуль лучше готового сервиса от разрабов роблокса и в частности самого движка. Ты получается хочешь сказать, что кодеры которые разрабатывали данный движок написали на этом же движке сервис хуже того, что ты сейчас показал? Я жду обоснования
Во первых, как же глупо спорить на эту тему...
Во вторых, я был невнимателен. Этот плагин использует поиск пути от роблокса, но, упрощает его использование, и оптимизирует его, от чего он работает быстрее
Привет, я тоже захотел сделать, у меня вылезала ошибка или не работал кусок с движение нпс при перемещении цели, разобрался, незнаю как у вас но у меня нпс считает waypoint как точки которые он долден пройти до цели, но почему-то либо он их обнуляет потом или что-то делает с ними что они равны нулю я незнаю что делать если надо могу предоставитт скриншот но пока ничего не работает
Просто скинь скрипт, и ошибку
Благодарю за связь, но я смог починить
Вопрос как ты сделал скрипт для НПС чтобы он ходил за игровым персонажем?я уже сделал при помощи брата но роблокс удалил скрипт, я пытался переделать , спрашивал у ИИ , смотрел видео но либо было нагромождение функций и условий либо просто неработающий скрипт.
@@Rudnik54 Думай сам, никто тебе ничего бесплатно делать не будет
@@SvalkaKvemonaСправедливо
прикольно, интересно, а можно ли заставить "ходить" не нпс а обычный парт? (мы хотим сделать румс фан игру но не знаем как заставить монстров лететь к двери)
Можно. Читай документацию модуля, я ссылку в описании оставил
@@SvalkaKvemona правда? ваушки!!!!
используй TweenService для этого
@@sdfglaksi5898 я не шарю
@@KlimKlim20 ну загугли насчёт TweenService он тебе уж точно пригодиться раз ты фан игру по дорсу делаешь
Что за музыка играет на 3:25?
Chainsaw Man Opening - Kick Back 8 Bit
@@starblaze0 Спасибо большое!
А как сделать способности для нпс? Типо удар по земли и Т.д
Это в один урок не уложить. Я не хочу думать за других людей. Сам изучай программирование, и сам думай как это реализовать
у меня НИП не может лазить по лестницам (TrussPart), как это исправить?
Смотри документацию которую я оставил в описании
а что дописать в скрипт что бы риг следовал зи игроком как у тебя в 0:34
фуф... Ну... Написать больше 200 строчек кода хочешь?
@@SvalkaKvemona если того стоит то хочу
@@SvalkaKvemona ну вообще было бы круто научиться писать код на двесте строк еще и работающий, а то я пока научился максимум на 5 строк самостоятельно. Я просто хочу сделать зомби нпс который приследовал бы игрока, имел регдолы и еще уйму всяких механик для него, но пока я не в силах такое сделать(
@@starblaze0 смотреть на горы легче чем залезть на них. У тебя обязательно получится если не будешь просто делать всё по туторам
@@SvalkaKvemona ну я щас пытаюсь чуть чуть разобраться сам в скриптинге, я щас прямо самые азы прохожу, но когда то сам смогу что то большее написать (надеюсь)
Rig не идёт до цели
Уже полчаса пересматриваю ничего не вижу странного
Квэмон, порекомендуй как начать скриптить, т.к я раньше пытался, но ничего не получалось :( Также предлагаю сотрудничать, я могу делать превью, и т.п.
Я сначала решил сделать тестовый проект по типу Steps steps, так как это было бы просто. Сначала было сложно вникнуть, но сейчас, я уже без проблем занимаюсь скриптингом. Я решал проблемы по мере поступления
Спс,скажи плиз как сделать чтобы когда он доходил до финиша,то его тпэхает обратно на его спавн и он начинал заново идти к финишу
В видео сказано про RBX script signals, вот их и используй 3:56
@@SvalkaKvemona а можешь дать пожалуйста скрипт на мой комментарий а то я не понимаю как сделать ему типо ресет,хочу как в курортный тукон 2
@@Ne_Pitbaiker Ты понимаешь что игру на туторах не сделать? Изучай програмирование
@@SvalkaKvemona дорого стоит
@@Ne_Pitbaiker В смысле?? А кто тебе запрещает учится самому по тому что есть в интернете
А как ему анимацию бега айдла сделать?
Через статы, можешь со статами и атрибутами сделать
Тип если стат у гуманойда ходьба, то пусть проигрывается анимка
а как сделать так чтоб этот нпс ходил за игроком(игроками)?
А вот думай сам :)
В видео было только про сам поиск пути. Я не буду давать рыбу, я дам удочку (метафора)
Квэмон.. Квэмон, где то я это слышал.. Это случайно не твой второй канал?
Да, он самый)
3:10 чо за игра на фоне
The Undead Coming: Armageddon
можешь опубликовать твоих зомби пожалуйста
100 робуксов
SimplePath и использует Pathfinding
Я уже в курсе, я ошибся при написании сценария
Скрипт не рабочий, выдаёт ошибку "attempt to perform arithmetic (sub) on number and nil". Что делать?
Дай полную ошибку и скрипт
@@SvalkaKvemona ошибка: "ServerStorage.SimplePath:285: attempt to perform arithmetic (sub) on number and nil"
@@SvalkaKvemona Скрипт:
local simplePath = require(game:GetService('ServerStorage'). SimplePath)
local ds = script.Parent
local target = ds.Parent.FLR1_DS_Patrolling.FLR1_DS_PatrollingPoint006
local pPath = simplePath.new(ds)
simplePath:Run(target)
(Скрипт SimplePath не изменялся)
@@Itz_Mimic Из возможных причин ошибки:
1. Ты скорее всего указал не подходящую цель. "DS" должен быть моделькой внутри которой хуманойд.
2. Target может определятся неправильно по той причине что в момент загрузки скрипта, объекта "FLR1_DS_PatrollingPoint006" может просто не существовать, из-за чего оно и не работает.
@@SvalkaKvemona 1. DS - это моделька, внутри которой ЕСТЬ humanoid
Ошибка все равно появляется, даже когда я поставил WaitForChild() для target
слушай товарищ, я испробовал этот модуль. и на данный момент он перестал работать. Run() по какой то причине не движет нпс до нужной точки. и стоит на одном месте. какие эти проблемы могут быть?
Скинь скрипт
@@SvalkaKvemona local ServerStorage = game:GetService("ServerStorage")
local SP = require(ServerStorage.SimplePath)
local rig = script.Parent
local walk = rig.WalkingAround
walk.Enabled = false
function FindPlayer(Position)
local List = game.Workspace:GetChildren()
local Torso = nil
local Distance = 40
local HumanoidRootPart = nil
local Humanoid = nil
local Player = nil
for i = 1, #List do
Player = List[i]
if (Player.ClassName == "Model") and (Player ~= script.Parent) then
HumanoidRootPart = Player:FindFirstChild("HumanoidRootPart")
Humanoid = Player:FindFirstChild("Humanoid")
if (HumanoidRootPart ~= nil) and (Humanoid ~=nil) and (Humanoid.Health > 0) then
if (HumanoidRootPart.Position - Position).Magnitude < Distance then
Torso = HumanoidRootPart
Distance = (HumanoidRootPart.Position - Position).Magnitude
end
end
end
end
return Torso
end
local path = SP.new(rig)
while true do
task.wait(0.1)
local Target = FindPlayer(script.Parent.HumanoidRootPart.Position)
if Target ~= nil then
walk.Enabled = false
task.wait(0.1)
path:Run(Target)
elseif walk.Enabled ~= true then
task.wait(1)
walk.Enabled = true
end
end
у меня всё работало но после того как я переместил модельку, скрипт перестал работать
@@SvalkaKvemona local ServerStorage = game:GetService("ServerStorage")
local SP = require(ServerStorage.SimplePath)
local rig = script.Parent
local walk = rig.WalkingAround
walk.Enabled = false
function FindPlayer(Position)
local List = game.Workspace:GetChildren()
local Torso = nil
local Distance = 40
local HumanoidRootPart = nil
local Humanoid = nil
local Player = nil
for i = 1, #List do
Player = List[i]
if (Player.ClassName == "Model") and (Player ~= script.Parent) then
HumanoidRootPart = Player:FindFirstChild("HumanoidRootPart")
Humanoid = Player:FindFirstChild("Humanoid")
if (HumanoidRootPart ~= nil) and (Humanoid ~=nil) and (Humanoid.Health > 0) then
if (HumanoidRootPart.Position - Position).Magnitude < Distance then
Torso = HumanoidRootPart
Distance = (HumanoidRootPart.Position - Position).Magnitude
end
end
end
end
return Torso
end
local path = SP.new(rig)
while true do
task.wait(0.1)
local Target = FindPlayer(script.Parent.HumanoidRootPart.Position)
if Target ~= nil then
walk.Enabled = false
task.wait(0.1)
path:Run(Target)
elseif walk.Enabled ~= true then
task.wait(1)
walk.Enabled = true
end
end
код полностью функционировал но когда я его переместил он перестал работать
@@SvalkaKvemona куда кидать, в ютубе они что то не отправляются
@@SvalkaKvemona local ServerStorage = game:GetService("ServerStorage")
local SP = require(ServerStorage.SimplePath)
local rig = script.Parent
local path = SP.new(rig)
local waypoints = workspace.Cutscene.Position
while true do
--local rndNum = math.random(1,#waypoints)
path:Run(waypoints)
task.wait(5)
end
у меня код по длиннее, но даже этот работать не хочет
Ребят, что делать, если риг просто по всей карте начинает летать?😢
А какой код?
@@SvalkaKvemonaЯ исправил, но так и не понял кое что. В общем, когда риг из ServerStorage переноситься в Workspace и позиция HumanoidRootPart меняется, то у частей тела отключается коллизия, а если её вручную включить, то персонаж начинает все равно летать, но повыше...
В общем, в итоге просто убрал строчку «Rig.HumanoidRootPart.Position = StartPos.Position”
Я уже малясь не вовремя, но, да. То что ты написал, не работало бы. Ты менял позицию не самого персонажа, а одной его части. Это так не работает. Тебе нужно перемещать группу с персонажем через метод Character:Move() или что-то типа того. Попробуй сам
Крутой тутор, только хочется, чтобы нпс шёл на игрока, а я без понятия как его указать. Я даже писал game.Players.LocalPlayer.Character , Но нпс не двинулся, а так на партах работает. Можно конечно поставить парт игроку, но точно ли это решение? Буду рад, если поможешь с этим.
Скажу тебе вот что. Во первых game.Players.LocalPlayer указывает просто локального игрока, которого можно узнать только из локального скрипта которых находится в этом же игроке. Во вторых Character это просто моделька игрока, для указания пути нужен Part, а не Model
А как сделать так, чтобы после того, как нас пришёл куда надо выполнялись другие действия. MoveToFinished не работает
path.Reached:Connect(function()
--Тут что-то пишешь что тебе нужно
--Вместо path напиши название переменной пути если ты назвал её по другому*
end)
@@SvalkaKvemona какое название переменной пути? 🫥🫥
@@juysik Какое укажешь такое и будет. Ты знаешь что такое переменная?
@@SvalkaKvemona то есть Target? Место к которому шёл npc?
@@juysik изучи базу языка lua...
Хоть мне это не надо. Но зато нету ничего лишнего и все сказал всечто надо.
как сделать чтобы он шёл за игроком?
написать функцию которая каждую секунду ищет ближайшего игрока
Привет. Подскажи пожалуйста как направить рига идти к игроку? Я написал такой скрипт и он не находит игрока.
Скрипт:
local SimplePath = require(game:GetService("ServerStorage").SimplePath)
local Zombie = script.Parent
local HumanoidRootPart = workspace.Players.Player.HumanoidRootPart
local path = SimplePath.new(Zombie, {
AgentCanJump = true,
AgentRadius = 1.0,
AgentHeight = 6.0,
AgentWalkableClimb = 2.0,
})
path.WaypointReached:Connect(function()
path:Run(HumanoidRootPart)
end)
path.Reached:Connect(function()
path:Run(HumanoidRootPart)
end)
path.Blocked:Connect(function()
path:Run(HumanoidRootPart)
end)
path.Error:Connect(function()
path:Run(HumanoidRootPart)
end)
path:Run(HumanoidRootPart)
Подскажи какой надо путь к игроку указать?
Ты указываешь игрока по пути которого не существует. Видишь ли, иногда, скрипт может загрузиться быстрее чем объект который тебе нужен, из-за этого скрипт его не находит. Что-бы это исправить попробуй использовать метод waitforchild()
и на исправления
path.Error:Connect(function()
поставте лайк пж я трудился
как сделать парт цель
Просто назови его Target
not bad not bad
я сделал как на видео но почему нпс не двигается у меня?
Вот несколько вопросов которые помогут исправить твою проблему:
1. Ты импортировал модуль в скрипт и в проект?
2. Ты засунул скрипт в RIG?
3. Ты указал цель для RIG-а?
И в конце концов, покажи скрипт
я просто по видео закинул модуль в ServerStorage и в Rig писал весь этот скрипт@@SvalkaKvemona
я только недавно начал кодить и пытаюсь для игры сделать монстра который будет идти на челов и бить их@@SvalkaKvemona
А Part цель сделал? Создай куб в мире с названием "Target"@@coffencoffen36
ОООООО ДАА СРАБОТАЛО я просто ошибку сделал в названии
СПАСИБО!!@@SvalkaKvemona
Это не свалка квэмона это дворец квэмона
Моему ваще по барабану он стоит на том месте где стоял и не пошевелился
1. Ты установил модуль в проект?
2. Ты засунул скрипт в твоего персонажа?
3. Ты точно правильно написал скрипт? Можешь его скинуть?
@@SvalkaKvemona пж скинь😭
@@soribalkhimov3147 если тебе настолько в падлу посмотреть это видео более внимательно, то тебе игру не создать
@@SvalkaKvemona вот код;
local SimplePath = require(game.GetService("ServerStorage").SimplePath)
local Rig = script.Parent
local Target = workspace.YY
local path = SimplePath.new(Rig)
path:Run(YY)
local SimplePath = require(game:GetService("ServerStorage").SimplePath)
local Rig = script.Parent
local HumanoidRootPart = workspace:WaitForChild("HumanoidRootPart")
local path = SimplePath.new(Rig, {
AgentCanJump = true,
AgentHeight = 6.0,
AgentWalkableClimb = 2.0,
})
while true do
path:Run(HumanoidRootPart)
path.WaypointReached:Connect(function()
path:Run(HumanoidRootPart)
end)
task.wait(1)
end
скажите пожалуйста, почему скрипт на преследование игрока не работает
уфф... Во первых, ты ищещь парт персонажа в воркспейсе, где его нет. Во вторых, сувать RBX script signals в циклы вайл тру не лучшая идея
@@SvalkaKvemona ну он же ждёт после этого 1 секунду
@@SvalkaKvemona с партом работало
@@io32xd функция :WaitForChild не ищет объект по всем иерархиям а просто обращается к первому попавшемуся по имени. Тоесть, Humanoid root part, это часть игрока, но игрока в пути ты не учитываешь, по этому просто ищешь парт с таким названием в воркспейсе.
По идеи нужно написать что-то вроде:
local HumanoidRootPart = workspace:WaitForChild("Player"):WaitForChild("HumanoidRootPart"), или типа того
@ice/hvtrs8%2F-wuw%2Cymuvu%60e%2Ccmm-cjalngl-UA_K-xBwV2322NP%5BcPyWqUou спасибо за помощь, попробую
А как указать путь к игроку???
Ищи его скриптом и направляй нпс туда
Да, знаю, очень поздно написал, но щас скажу сырой скрипт, но рабочий.
Создай скрипт в ServerScriptService, дальше пишем
local SimplePath = require(game:GetService("ServerStorage").SimplePath) - путь к симпл патху
local Rig = workspace.Rig - Зомби
local path = SimplePath.new(Rig)
game.Players.PlayerAdded:Connect(function(plr) - Игрок зашёл в игру, ну и сам plr = игрок
while true do
task.wait(0.1)
path:Run(plr.Character.HumanoidRootPart)
end
end)
второй раз захожу на русский тутор
Можно полный скрипт?
нет
а как написать скрипт на НПС который ходит за тобой?
А вот сам думай. Это видео не для новичков сделано, а для уже хоть что-то понимающих. Программирование это пазл. Попробуй его собрать. Для начала придумай как это бы происходило.
Допустим, каждые 5 секунд, скрипт бы собирал всех игроков на карте, считал дистанцию между игроком и врагом, а потом через отсортированный список отбирал бы самого первого. Попробуй по отдельности разобрать все эти шаги, и у тебя выйдет
@@SvalkaKvemona а как указать путь до HumanoidRootPart?
У Гуманоида нету позиции, юзай торсо или HumanoidRootPart
Спасибо
уааааааааа прикольна
я не понял как сделать анимацию
Этот урок не об этом. Учи сам
А как сделать чтоб риг шёл на игрока?
Скрипт
Спасибо, уважаемый@@bebra3392, Вы очень помогли мне своим сообщением, продолжайте в том же духе
Не знаешь - не пиши
@@ShadowYT_Shandridow но он же правильно написал
@@zlyyyka очевидно что нужен скрипт, но какой?
@@ShadowYT_Shandridow рабочий
дайте скрип для цель игрока
нет я твоя скрип не дать
Как сделать парт цель😂
создай парт и переименуй его в Target
У меня не получается
Посмотри видео от начала и до конца очень внимательно. Разбери работу скрипта логически.
@@SvalkaKvemona я пробавал 10 раз не роботает local sp = require(game:GetService("ServerStorage").SimplePath)
local rig = script.Parent
local target = game.Workspace.tar
local path = sp.new(rig)
path:Run(target)
скрипт