Skip to main content

Winter Starfall 中的源代码与场景

本教程包含下载并运行 Winter Starfall 源代码的说明,以及演示登录与购买场景最佳实践的代码示例讲解。

源代码下载

先决条件

  • 安装 Node JS
  • 安装 Visual Studio Code

本地开发环境搭建

  1. GitHub 下载源代码。
  2. 在 VS Code 中打开 /website 文件夹,并选择安装它推荐的所有扩展。
  3. /website 目录中,运行 npm install 以安装所有依赖项。
  4. 使用 npm run dev 启动网站。选择它提供的链接以查看网站。

Azure 凭据

要更新 AZURE_CREDENTIALS 密钥,请在 Azure 门户的 shell 中运行以下命令: az ad sp create-for-rbac --name "VanguardOutrider2" --role contributor --scopes /subscriptions/YOUR_SUBSCRIPTION_ID/resourceGroups/YOUR_RESOURCE_GROUP_NAME --json-auth

登录流程

Winter Starfall 中的玩家认证流程分为两步:登录调用,以及用于从服务获取玩家信息并将玩家加载到剧情正确位置的登录后函数。

玩家认证

在登录部分,文件 use-login.tsx 定义了一个 TypeScript 包装函数,用于处理玩家可用的多种认证方式。 第 144 - 169 行定义了使用邮件地址登录的回调函数,登录成功后会调用登录后函数。
该游戏提供了 3 种可恢复的玩家认证方式:邮件、Google 和 Facebook,从而确保玩家账号永远不会丢失。更多信息请参阅登录最佳实践

登录后:获取玩家数据

在获取到安全令牌之后,会用它来运行登录后函数以获取已保存的游戏状态。 第 340 - 378 行定义了 postLoginFunctions,它会调用各种 Economy 和 PlayFab Services API,根据玩家加载正确的剧情位置、库存物品、货币等信息。
  • 首先,ClientGetTitleData 会获取所有 API 调用所需的密钥
  • 然后,EconomySearchItems 在目录中搜索货币和物品类型
  • 其结果作为 EconomyGetInventoryItems 的输入,用来返回玩家的库存物品
  • 接着,ClientGetUserData 检索存储在玩家数据中的剧情位置值。

购买流程

在游戏的某些节点,玩家可以选择从商店购买和出售库存物品。购买流程在另一个包装函数中实现。在 use-store.tx 文件的第 40 - 69 行,会调出玩家在特定位置遇到的正确商店,并通过搜索目录来填充可出售的商品。
EconomyGetItem 定义在 use-playfab.tsx 的第 423 - 446 行,其中使用 PlayFab Economy API GetItems 在目录中搜索并返回物品。
进行购买时,会调用 PurchaseInventoryItems API。它定义在 use-playfab.tsx 的第 540 - 565 行。

出售物品

出售流程是使用由 Azure Functions 驱动的 CloudScript 来扩展 Economy 系统功能的一个示例。 SellItem.cs 定义了在出售物品时执行的 CloudScript 函数。 第 49 - 61 行使用 PlayFab 的 GetTitleData API 返回商店乘数并计算出售价格。
随后在 use-store.ts 的第 161 - 187 行调用了该 CloudScript 函数。
要在本地运行 Winter Starfall,你需要一个 Azure 账号以支持 CloudScript 函数。你可以注册一个免费的 Azure 账号,然后按照上文的说明正确重置 Azure 凭据。

参见

最后修改于 2026年8月7日