КАК СДЕЛАТЬ ЧТОБЫ NPC ВЫДАВАЛ ПРЕДМЕТ ПРИ ДИАЛОГЕ
Всем привет братва программистов в этом уроке я решил что буду использовать Teletype так как он удобнее
Я выбрал рандомное NPC из тулбокса
Он должен быть всегда закреплён на голове ибо это у нас моделька из тулбокса и мы находим детальку Head и дальше добавляем туда диалог с помощью плюса
Дальше в свойствах Диалога мы будем его составлять ,Intialprompt это с каким сообщением нас будет приветствовать наш NPC ибо туба мы можем вписать HI!
А GoodbyeDialog это наш вариант ответа при нажатии на него закончится наш диалог но к примеру можно туда вписать Bye! По классике
Дальше мы добавляем в наш Диалог ,DialogChoice это продолжение нашего Диалога если мы не нажмём Bye
У нас есть в DialogChoice UserDialog и Response Dialog Первый вариант это наши слова а Response Dialog это то что нам отвечает наш NPC так как мы в уроке будем делать то что NPC даёт нам предмет пиццу то я назову наш DialogChoice "GivingPizza"
Я составил свой простой диалог в UserDialog написал Hey Can you give me pizza и в ResponseDialog написал Ok
В модуле Replicatedstorage создаём свой Event знаете ли вы что такое Touched ,MouseClick, так вот это Эвенты только мы создаём свой Эвент
Дальше в Explorer находите модуль StarterPlayer и дальше внутри его в папке StarterCharacterScripts создаём LocalScript и даём ему имя FireService
И щас будем писать наш код в нём
На 1 строке мы создали переменную и присваиваем ей нашего NPC
Наш Npc находится в воркспейсе и обращаемся сначала game.workspace и дальше уже можно обращаться к деталям которые находятся в Workspace если что то не понятно пишите мне в лс
(напонимаю что person это имя нашего NPC а Dialog1 это начало диалога у нас)
Дальше мы пишем что при выборе DialogChoice тогда создаём функцию и создаём аргументы plr,choice
Что если аргумент choice равен Dialog.GivingPizza ибо нашему диалогу то тогда вызываем функцию GiveGear мы обратились к Replicatedstorage и грубо говоря щас попытаюсь растолковать (извиняйте если не умею нормально объяснять)
Мы обращаемся к Replicatedstorage и внутри него есть папка в роблоксе если что то находится внутри чего то это называется Child и внутри нашего Replicatedstorage есть Child GiveGear который отвечает за выдачю предмета и наше условие готово что если choice равен нашему Dialog а это у нас переменная которую мы создали на 1 строке)Теперь нам нужно создать саму пиццу
Я взял модельку пиццы из тулбокса и поместил в ServerStorage ибо вы можете взять любой друг предмет конечно не обязательно пиццу)
Дальше в модуле Server Script Service мы создаём Script
На 1 строке создаём переменную GivingEvent и присваиваем ей как раз таки наш Event который мы создали в папке Replicatedstorage
Мы написали game.Replicatedstorage когда мы написали это то можно обращаться уже к тому что находится в Replicatedstorage и таким образом можно обращаться к чему угодно game.(модуль).(то что находится внутри модуля) пример - game.StarterGui.Script
Дальше мы пишем что когда активируется наш Эвент то создаётся функция
Дальше мы обратились к ServerStorage и клонировали нашу пиццу нашу деталь и присвоили родителю нашего клона папку Backpack ибо мы занесли клона нашей пиццы в папку Backpack
На следующей строке мы делаем тоже самое только клона пиццы мы заносим в папку StarterGear
Вот и конец надеюсь я ничего не упустил