商店对话框¶
Time:5 分钟
Dialog
商店非常易于创建,且可以设为出售各种不同的物品(如武器、汽车或升级服务等)。这类商店也可以在各种不同的游戏(从冒险游戏到 RPG)中使用。本教程将介绍如何制作武器商店。
初始设置¶
我们将会建立一个出售武器的商店,因此需要至少选择一个能够出售的武器。“Toolbox(工具箱)” 的 “Tools & Weapons(工具与武器)” 类别中有一些非常棒的武器。
有了武器,我们就可以开始了。武器应位于 Workspace
中,并且我们需要将所有武器都放入 ReplicatedStorage
中。将武器重命名为 “Weapon1”;如果有多个武器,则按以下方式对其进行命名:“Weapon1”、“Weapon2” 等。此时,ReplicatedStorage
应如下所示(如果有多个武器,则会稍有不同):
创建商店¶
卖家¶
在实体商店里,柜台后面始终有人随时为你提供帮助,我们现在也需要设立这样一位人员。开发者可以在这位卖家上尽情发挥自己的创意。在本教程中,我们将使用 Model
内的一个基本 Part
。现在,我们需要将 Dialog
插入这位卖家中,并确保你插入的目标部件名为 “Head”(头部)。接下来,我们需要将 Humanoid
插入这位卖家的 Model
中。
要插入 Dialog
,请前往 Insert(插入)-> Object(对象)-> Dialog(对话框) 。
商店¶
设置好卖家与可以出售武器的武器后,下一步就是创建商店了。创建商店时,我们将使用 DialogChoice
和 DialogChoice/ResponseDialog
来询问各种问题并给出答案。
首先请选择所创建的 Dialog
,然后在属性窗口中,将 Dialog/Purpose
值更改为 “Shop”(商店)。然后将属性窗口中的 Dialog/InitialPrompt
值更改为当玩家开始与店主交谈时店主会说的话,本示例中将会使用 “Welcome to my shop!”(欢迎光临我的商店!)。
接下来,我们会为顾客添加可选择的选项,以便向卖家进行询问。该操作可通过将 DialogChoice
插入 Dialog
中来完成。要插入 DialogChoice
,请前往
Insert(插入)-> Object(对象)- > DialogChoice 。
在属性窗口中,将 DialogChoice/UserDialog
值更改为 “May I browse your goods?”(我可以浏览你的商品吗?),并将 DialogChoice/ResponseDialog
值更改为 “Sure!”(当然可以!)。
**注意:**上面所列举的所有对话文本都可以进行更改,并不会影响商店本身。
下一步,我们需要将更多 DialogChoice 插入刚刚创建的 DialogChoice
中,需要插入的 DialogChoice 数目应等同于出售武器的数目。可以从 “ChoiceA” 开始对其进行重命名,使其等同于出售的武器数目。举例来说,如果商店将会出售三个武器,则命名应为 “ChoiceA” 至 “ChoiceC”。
对话框现在应如下所示:
使商店运作¶
要使商店运作起来,需要将 Script
插入卖家头部的 Dialog
中。在脚本中,复制以下代码:
注意: 下面的代码使用了一个 "Leaderboard
。
Creating a Dialog Shop: Code Sample 1 ```
local dialog = script.Parent
dialog.DialogChoiceSelected:Connect(function(player, choice)
-- Check the player has a stats object
local stats = player:FindFirstChild('leaderstats')
if not stats then return end
-- And that the stats object contains a gold member
local gold = stats:FindFirstChild('Gold')
if not gold then return end
if choice == script.Parent.DialogChoice.ChoiceA then
if gold.Value >= 5 then -- 5 is the amount of gold you need to purchase this weapon
game.ReplicatedStorage.Weapon1:Clone().Parent = player.Backpack
gold.Value = gold.Value - 5 -- subtract the amount of gold you need to purchase
end
elseif choice == dialog.DialogChoice.ChoiceB then
if gold.Value >= 10 then
game.ReplicatedStorage.Weapon2:Clone().Parent = player.Backpack
gold.Value = gold.Value - 10
end
elseif choice == dialog.DialogChoice.ChoiceC then
if gold.Value >= 15 then
game.ReplicatedStorage.Weapon3:Clone().Parent = player.Backpack
gold.Value = gold.Value - 15
end
end
end)
0
***__Roblox官方链接__:[商店对话框](https://developer.roblox.com/zh-cn/articles/Shop-Dialogs)