商店对话框

Time:5 分钟

Dialog 商店非常易于创建,且可以设为出售各种不同的物品(如武器、汽车或升级服务等)。这类商店也可以在各种不同的游戏(从冒险游戏到 RPG)中使用。本教程将介绍如何制作武器商店。

初始设置

我们将会建立一个出售武器的商店,因此需要至少选择一个能够出售的武器。“Toolbox(工具箱)” 的 “Tools & Weapons(工具与武器)” 类别中有一些非常棒的武器。

有了武器,我们就可以开始了。武器应位于 Workspace 中,并且我们需要将所有武器都放入 ReplicatedStorage 中。将武器重命名为 “Weapon1”;如果有多个武器,则按以下方式对其进行命名:“Weapon1”、“Weapon2” 等。此时,ReplicatedStorage 应如下所示(如果有多个武器,则会稍有不同):

Creating-A-Dialogue-Shop-Tree-0.png

创建商店

卖家

在实体商店里,柜台后面始终有人随时为你提供帮助,我们现在也需要设立这样一位人员。开发者可以在这位卖家上尽情发挥自己的创意。在本教程中,我们将使用 Model 内的一个基本 Part。现在,我们需要将 Dialog 插入这位卖家中,并确保你插入的目标部件名为 “Head”(头部)。接下来,我们需要将 Humanoid 插入这位卖家的 Model 中。

要插入 Dialog,请前往 Insert(插入)-> Object(对象)-> Dialog(对话框)

商店

设置好卖家与可以出售武器的武器后,下一步就是创建商店了。创建商店时,我们将使用 DialogChoiceDialogChoice/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”。

对话框现在应如下所示:
Creating-A-Dialogue-Shop-Tree.png

使商店运作

要使商店运作起来,需要将 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)