跳到主要内容

PokerTracker 4 Premium Add-Ons(面向开发者)

概述

Premium Add-Ons 从 PokerTracker 4.10 及更高版本开始可用。它们允许你创建受保护的自定义内容,例如 HUD Profiles、Statistics 和 Reports,以防止用户修改或与他人分享你的 Add-On。Premium Add-On 会自动安装到用户已注册的 PokerTracker 4 客户端。你保存的任何更改都会立即发布,且每位用户会在下次启动 PokerTracker 4 时收到这些更改。

只有预先批准的 Premium Add-On Developers 才能使用发布和保护 Premium Add-On 所需的工具。PokerTracker 管理层保留决定哪些开发者被接受加入或从 Premium Add-On Developer Program 中移除的权利。

工作原理

  1. 申请成为 Premium Add-On 开发者的权限。
  2. 创建你想要出售或与 PokerTracker 4 社区分享的自定义内容。
  3. 将内容作为高级附加组件上传到开发者控制台。
  4. 设置此插件每位客户默认获得的权限,并定义你希望能够分配的牌级组层级。
  5. 如果你想把多个附加组件作为一个产品分发,可以将它们打包成一个套餐。
  6. 一次一个地为客户授予访问权限,或者通过分配客户组来授予。
  7. 为需要不同设置的客户分配投注组并覆盖权限。
  8. 当客户重新启动 PokerTracker 4 时,插件会使用你配置的权限自动下载并安装。

可受保护的内容

Addon Type 下拉菜单提供以下内容类型:

  • HUD
  • Reports
  • Stats
  • Replayer Themes

Product 目前仅提供 PokerTracker 4。

如何应用

如需申请成为 PokerTracker Premium Add-On 开发者,请发送电子邮件至 merchants@pokertracker.com,主题填写 “PokerTracker 4 Premium Add-On Developer Application”。在邮件中,请提供以下信息:

  1. 您注册的 PokerTracker.com 用户账户。
  2. 你是以个人还是企业身份申请,并提供邮寄地址和电话号码。如果以企业身份申请,还需包含公司名称。
  3. 您将提供 PokerTracker Premium Add-Ons 的网站 URL。
  4. 对你本人或公司的简要介绍。
  5. 你将提供的 premium add-ons 类型的简要说明。

PokerTracker 通常会在两个工作日内回复。

关键概念

开发者控制面板由四类对象组成——附加组件、套餐、客户和客户组——而权限和牌级组是应用到它们上的设置。此页面上的每项任务都是对其中一个对象进行的操作。

权限

权限是附加组件类型所公开的开关式功能选项——例如,客户是否可以在你的某个报表中添加或删除统计项。每种类型都有自己的列表,因此你看到的复选框取决于你选择的 Addon TypeProduct。HUD 提供 15 项权限,Reports 提供 6 项,Replayer Themes 提供 1 项。

在选择类型和产品之前,表单会显示“Select an addon type and product to load available permissions.”,而不是显示空白网格。

牌级组

牌级组是一个最高、包含式的牌级限制。每种游戏类型对应一个单独的值:

字段含义示例条目
NL 和 PL 级别最高无限注或底池限注级别0.25
限注级别最高固定限注级别0.50
最大锦标赛/SNG 买入最高锦标赛或 SNG 买入金额22.00

根据需要定义任意数量的牌级组,并将它们视为不同层级。每位客户会被分配到一个层级,或者不分配任何层级。

层级通过其数值而不是你指定的名称来标识。上面的示例在客户下拉菜单中显示为 0.25 NL, 0.50 FL & 22.00 buyin。保存时,数值会规范化为两位小数,因此 5 会存储为 5.00

套餐

套餐将多个附加组件捆绑在一起。将客户添加到某个套餐后,他们会自动获得其中每个附加组件的访问权限,这样你就可以把一组附加组件作为单一产品分发。

一个套餐会定义其自己的权限和下注组,每种其包含的附加组件类型各一套。这些设置会替换成员附加组件上的设置,成员附加组件只提供其内容——因此,访问权限来自套餐的客户遵循的是套餐的限制,而不是附加组件的限制。参见 Packages

客户和客户组

一个客户就是一份 PokerTracker 4 许可,由其注册时使用的电子邮件地址和注册码标识。客户组是一个有名称的客户集合:将该组分配给一个 add-on 或套餐后,所有成员都会立即获得访问权限。

客户对每个附加组件都拥有一份访问权限,而该权限会记录其来源——你、一个套餐或一个群组。

创建 premium add-on

备注

开发者控制台仅对已获批准加入 PokerTracker Premium Add-On 计划的账户开放。参见 如何申请

  1. 使用你的 PokerTracker 账户登录 PokerTracker 开发者控制台
  2. 在左侧边栏中,选择 Premium Addons > Manage Addons
  3. 点击 NEW ADDON
  4. 选择 Addon TypeProduct,然后输入 Addon Name
  5. 如果新客户应先进入限时试用,请输入 Trial Length (Days)
  6. Upload Your Files 下,选择插件文件。
  7. Permissions 下,勾选此 add-on 默认授予每位客户的功能。
  8. Stake Groups 下,点击 ADD STAKE GROUP,然后输入您之后想要分配的级别。
  9. 点击 CREATE ADDON

New premium add-on form with the Reports type chosen, showing the permission grid and one stake group

上传字段会显示大小限制以及你所选类型接受的扩展名:

附加组件类型最大大小扩展名
HUD20 MB.cfg, .pt4hud
报告20 MB.pt4rpt
回放器主题25 MB.zip, .pt4theme

某些类型还会在 Addon Images 下要求上传图片——一个 Screenshot 和一个 Thumbnail,以及 HUD 附加组件所需的 HUD Logo。当表单显示这些项时请提供,因为不上传会导致保存失败,并提示“Please upload required files: Screenshot, Thumbnail”。

你的高级附加组件现在已上传到商店,并可共享。下一步是为你的客户分配访问权限。

修改现有 add-on

  1. 使用你的 PokerTracker 开发者控制台 账户登录,然后选择 Premium Addons > Manage Addons
  2. 找到你想要修改的插件。
  3. 在对应行点击 EDIT
  4. 进行你的更改。
  5. 点击 SAVE CHANGES

Manage Addons table listing three add-ons, each row offering CUSTOMERS, EDIT and DELETE buttons

每一行都提供相同的三个按钮:CUSTOMERS 打开该附加组件的客户列表,EDIT 打开附加组件进行编辑,DELETE 将其移除。Customers 列使用 0 (P: 5) 这种表示法,其中第一个数字表示你直接添加到该附加组件的客户数,括号中的数字表示通过套餐访问它的客户数。

任何已保存的更改都会立即发布,并且你分配到该附加组件的每位客户在下次启动 PokerTracker 4 时都会收到这些更改。

注意

如果客户有权限修改或自定义你的附加组件,任何他们所做的修改都会在你更新该附加组件时被删除。请据此规划,以免这些更改的丢失影响你的客户。

设置 add-on 默认值

权限和下注组都在附加组件的编辑页面中设置,可通过 Manage Addons > EDIT 进入,但两者的工作方式不同。权限是真正的默认设置:该附加组件的每位客户都会遵循这些权限,除非你为该客户覆盖某项权限。下注组是你在这里定义的一个层级菜单,供之后分配使用——在你为某个客户或群组选择之前,定义它不会限制任何人。

默认权限

勾选每位客户都应获得的权限,然后点击 SAVE CHANGES

HUD permission grid of fifteen checkboxes with three of them ticked

只有与这些默认值不同的部分才会为客户保存。因此,当你之后更改某个默认值时,所有未自行覆盖该权限的客户都会自动采用新更改,而他们自己的覆盖设置则保持不变。若要给某个客户单独设置不同内容,请参见覆盖权限

定义牌级组

  1. 滚动到该 add-on 编辑页面中的 Stake Groups
  2. 点击 ADD STAKE GROUP 添加一行编号。
  3. 输入 NL & PL StakesLimit StakesMax Tourn./SNG Buyin 的值。
  4. 对你想提供的每个层级重复此操作。
  5. 点击 SAVE CHANGES

Stake Groups section showing one stake group with no-limit, limit and tournament buy-in values

将某个字段留空即可保持该游戏类型不受该层级限制。整行留空则不会保存。未定义任何级别组时,该部分显示为“No stake groups configured.”

修改牌级组的数值

直接编辑这些值,然后点击 SAVE CHANGES。已经分配到该级别组的每位客户都会立即跟随新值——客户是分配到级别组本身,而不是其数值副本,因此无需重新分配。

移除牌级组

在该级别组所在行点击 REMOVE,然后点击 SAVE CHANGES。不会出现确认提示,且只有在保存后该行才会真正移除——在此之前,点击 CANCEL 会连同其他未保存的编辑一起放弃该移除。

注意

移除一个下注级别组也会将其从分配给该组的每位客户中清除。这些客户会恢复为 -- No Stake Restrictions --,这会完全取消他们的下注级别限制,因此如果这不是你想要的,请将他们重新分配到其他级别。

套餐

套餐位于 Premium Addons > Addon Packages,点击 NEW PACKAGE 可创建一个套餐。套餐与附加组件一样,包含 Package Name 和自己的 Trial Length (Days)

套餐限制

注意

套餐只使用其自身的权限和级别组。当客户的访问权限来自套餐时,成员附加组件上的设置会被忽略,因此请在套餐本身上配置限制。

Package Restrictions 会为套餐中的每种附加组件类型显示一个部分,每个部分都有自己的 Permissions 网格和 Stake Groups 行。因此,包含一个 Reports 附加组件和一个 HUD 附加组件的套餐会有两个部分需要填写,而且每个部分的行为都与上面的附加组件默认设置完全相同。

Package Restrictions with a Reports section holding one stake group and a HUD section with no stake groups yet

添加或移除成员附加组件

  1. 打开该套餐并滚动到 Package Addons
  2. 从下拉菜单中选择一个 add-on,然后点击 ASSIGN
  3. 点击某一行上的 UNASSIGN,即可将该附加组件从套餐中移除。
  4. 点击 SAVE CHANGES

移除某一类型的最后一个附加组件后,保存时会删除该类型的限制设置。

管理客户

客户可以通过三种方式之一获得你的附加组件访问权限:

  • 你直接将他们添加到该附加组件。
  • 他们属于一个已分配到该附加组件的客户组。
  • 他们拥有包含该附加组件的套餐访问权限。

要查看某个附加组件的客户,请前往 Manage Addons,然后点击该附加组件所在行上的 CUSTOMERS

Add-on customer list with a Source column of package badges and no per-row actions

Source 列会标明每个访问权限的来源。来自套餐或客户组的行会在此显示徽标,并在 Actions 中显示 -,因为它们的权限和级别组由套餐或客户组管理,而不是由单个客户管理。你直接添加到附加组件的行没有徽标,并且会显示逐行操作。

表格上方的 CUSTOMER GROUPS 面板列出了分配给该附加组件的组。参见客户组

添加客户

  1. 在附加组件的客户列表中点击 ADD CUSTOMER 可授予该附加组件访问权限,或者前往 Premium Addons > Customers > ADD CUSTOMER 先创建客户,但暂不授予任何访问权限。
  2. 选择 Product,然后输入客户的 Email
  3. 输入客户 Registration Code 的最后六个字符。
  4. 勾选该客户应加入的任何 Customer Groups
  5. 点击 ADD CUSTOMER

New customer form with product, email, registration code and a customer group checklist

电子邮件地址和 registration code 必须与客户注册 PokerTracker 4 时使用的内容一致。两者都可以在 PokerTracker 4 的 Help > About 中找到。表单只需要 registration code 的最后六个字符,不需要完整代码。如果 Help > About 未显示这些值,请先让客户升级到最新版本的 PokerTracker 4,然后再继续。

在创建客户时,系统会通过授权系统验证该代码。若该邮箱和注册码组合不匹配任何许可证,表单会提示“未找到提供的电子邮件地址和注册码对应的许可证。”,且不会创建客户。

在此表单中选择组会自动为其配置对应的附加组件访问权限。如果你不选择任何组,之后仍可将客户添加到某个组或授予附加组件访问权限。

编辑客户

打开该附加组件或套餐的客户列表,找到该客户,然后点击其所在行上的编辑操作。

Customer access page showing access type, expiration date, a stake group dropdown and a highlighted permission override

CUSTOMER SUMMARY 显示电子邮件地址、访问日期和注册码。CUSTOMER SETTINGS 包含 Access TypeExpiration Date。在其下方,每种附加组件类型都会提供一个 Stake Group 下拉菜单和一个 Permission Overrides 网格。完成后点击 SAVE CHANGES;这会带你返回之前所在的客户列表。

覆盖权限

Permission Overrides 下,切换你想为该客户更改的功能,然后点击 SAVE CHANGES。高亮显示的权限就是与附加组件或套餐默认值不同的权限——在上图中,Add/remove report filters? 仅为该客户单独启用。

覆盖设置只适用于该客户本人,不会影响该附加组件或套餐的其他客户。只有你实际更改的权限会被保存,其余权限会继续遵循默认设置并随其变动。

设置级别组

与权限不同,级别组不会自动为你分配。新的访问权限会从 -- No Stake Restrictions -- 开始,且未选择任何项,无论该附加组件或套餐定义了多少层级,因此在你为客户选择某个层级之前,他们可在任意级别下游戏。

Stake Group 下,选择附加组件或套餐中定义的某个层级,然后点击 SAVE CHANGES。选择 -- No Stake Restrictions -- 可再次取消限制。套餐会为每种附加组件类型提供一个下拉菜单,若某类型未定义任何级别组,则显示为“No stake groups assigned”。重新打开该访问权限时,会显示你保存的层级。

在所有附加组件中查找客户

Premium Addons > Customers 会打开跨附加组件视图。可按电子邮件地址或注册码搜索,按产品筛选,或将列表缩小为仅显示具有有效访问权限的客户,然后点击 FILTERCLEAR 会重置筛选条件。

All Customers view with one row expanded to reveal that customer’s two package accesses

点击某行旁边的 + 可展开该客户的各项单独访问权限,每个产品一行。顶层行上的 Kind 显示为 ,表示该客户的访问权限混合分布于多个产品,而非全部属于同一种类型,因此需要展开该行才能查看其持有内容。付费访问的 Expires 值为 Never,试用则显示日期。

每个层级都有各自的操作。顶层行上的绿色齿轮会打开该客户的详情页,红色 X 会直接移除该客户。在展开的访问权限行上,绿色铅笔用于编辑该项访问权限,红色 X 仅移除该项访问权限。

客户详情页将某一客户的所有信息汇总到四个面板中:

  • CUSTOMER INFORMATION — 电子邮件地址、注册码和附加组件数量。DELETE CUSTOMER 会移除该客户及其所有访问权限。
  • CUSTOMER GROUPS — 该客户所属的组,提供 ADD TO GROUP 用于加入另一个组。
  • PRODUCT ACCESS — 该客户拥有的每一项访问权限。
  • ADD TO ADDON — 你提供的每个附加组件和套餐,均带有一个 ADD ACCESS 按钮。

客户组

客户组可让你将客户组织为带名称的集合。将某个组分配给附加组件或套餐后,即可一次性授予其所有成员访问权限。客户组位于 Premium Addons > Customer Groups,点击 NEW CUSTOMER GROUP 可创建一个。客户组包含 Group Name 和可选的 Description,而 MANAGE MEMBERS 可用于添加和移除客户。

分配组

有两种方式可达成相同结果:

  • 在附加组件或套餐的客户列表中,在 CUSTOMER GROUPS 面板里选择该组,然后点击 ASSIGN
  • Customer Groups > EDIT 中,在 ASSIGNED ADDONS 面板里选择目标项,然后点击 ASSIGN。此下拉列表既包含套餐,也包含单个附加组件。

Customer Groups panel on an add-on with a group selected and the ASSIGN button beside it

成员会立即获得该组的访问权限,之后你再添加到该组的任何人也会获得相同权限。

组权限和赌注组

组的限制是在每个附加组件或套餐的 Settings 页面上按附加组件或套餐分别配置的,而不是在组本身上配置。你在 Customer Groups 下编辑某个组,只会更改它的名称、描述和成员资格——不会推送任何限制。分配单个附加组件会立即授予访问权限,无需填写表单,因此如果该组需要的设置不是附加组件默认值,请在之后打开 Settings

保存这些设置后,会将其重新应用到该附加组件中所有来源于组的有效访问权限上,包括已经拥有访问权限的成员以及之后加入该组的任何人。清空这些设置会把这些成员恢复到附加组件默认值。组设置是在这些默认值之上叠加的,而不是替换它们,因此组从未更改过的权限仍会沿用附加组件默认值,并在你更改默认值时随之变化。

你单独授予的访问权限、来自其他组的访问权限,以及你已转换为个人访问的权限,都会被跳过并标记说明。因此,保存组设置不会覆盖任何你有意手动设置的内容。

如果某个成员的访问权限来自组,那么他没有单独的权限或赌注控制,因为这些设置属于该组。若要让某个成员使用不同设置,请使用 Convert to Individual Access。这会转换单个访问权限,而不是客户:他们仍留在组中,当前权限和赌注组会作为起点保留并变为可编辑,之后的组变更也不再影响该访问权限。它也不会受到后续 UNASSIGN 的影响,因为后者只会撤销仍然来源于组的访问权限。一个被分配到三个附加组件的组成员,需要针对每个附加组件分别转换一次。

取消分配组

点击该组所在行上的 UNASSIGN。来自该组的访问权限会被撤销。将单个成员从组中移除,会以同样方式撤销该成员来源于组的访问权限,而不会影响其他人。

哪个设置生效

来源适用于
附加组件或套餐默认值该附加组件或套餐的所有客户
客户组设置该附加组件的所有来源于组的有效访问权限,叠加在默认值之上
单个客户设置单个访问权限,叠加在默认值之上

客户对每个附加组件只有一个访问权限,因此最后两行中只有一行会对其生效——不会同时生效。Convert to Individual Access 就是把访问权限从第二行移到第三行。

下方两行都只保存相对于默认值的差异,因此顶部一行永远不会被绕过:组或客户未明确更改的任何内容,仍会沿用附加组件或套餐默认值,并在你更改默认值时随之变化。

package 使用的是它自己的 permissions 和 stake groups,而不是其中 add-on 的,因此请在 package 本身上配置限制。其访问权限来自 package 的客户,由该 package 自己的 customer list 管理:在 add-on 的 customer list 中,他们的 Source 列会显示 package 名称,Actions 单元格会显示 -

试用与访问权限

附加组件或套餐上的 Trial Length (Days) 会设置新试用期的默认持续时间。之后,每个客户的访问权限都会包含 Access Type 为 TRIAL 或 PAID,以及一个 Expiration Date

将试用客户转换为付费客户

有两个控件可以将试用客户转换为付费客户:

  • 在客户详情页中,可通过 Premium Addons > Customers,点击其所在行上的绿色齿轮进入,然后在要转换的访问权限上点击 SWITCH TO PAID
  • 在访问权限编辑页中,将 Access Type 设为 PAID,然后点击 SAVE CHANGES

付费访问权限会显示 Expires: Never,除非你设置了到期日期。

设置到期日期

打开客户的访问权限进行编辑,并输入新的 Expiration Date。该字段会直接替换原日期,而不是在其基础上增加天数,因此如果要将试用期延长一周,请输入比当前日期晚一周的日期。若留空,则回退到附加组件的试用时长,正如其帮助文本所示:“Defaults to trial length if blank”。

移除访问权限

移除访问权限会阻止客户继续使用你之前授予他们的某个附加组件。

有两个控件可移除访问权限,作用范围不同:

  • 单个访问权限行上的 Remove 会只移除该访问权限,并保留客户的其他访问权限。浏览器会要求你确认。
  • 交叉附加组件客户列表顶层行上的红色 X,即 Remove All,会连同其持有的所有访问权限一起删除该客户记录。

这两个控件都不会移除来源于客户组的访问权限。请将客户移出该组,或取消将该组分配给该附加组件。

Premium 自定义统计和自定义列

你发布的任何自定义统计或自定义列都必须使用唯一名称,避免与第三方自定义列或用户社区、其他 Premium Add-On 开发者创建的自定义统计名称冲突。

为所有自定义列和统计名称添加前缀,以降低名称冲突的可能性。例如,如果你的 Premium Add-On 产品名称是 LASVEGASHUD,且产品包含自定义统计和列,那么每个自定义统计或列名称的前缀可以是 lvh_。这一开发规范的附带好处是,可以更容易找到与你的 Premium Add-On 关联的所有自定义统计或列。

常见问题

为什么 Permissions 或 Stake Groups 下什么都没有?

要么还没有选择任何 Addon TypeProduct,要么你所选的组合不提供此类选项。在这两种情况下,表单会直接说明原因,而不会显示空网格。

更改赌注组的值后,我需要重新分配客户吗?

不需要。分配到该赌注组的每个客户都会跟随其新值。

“No Stake Restrictions” 是什么意思?

该附加组件类型不应用任何赌注限制,因此客户可以在任何赌注级别使用该附加组件。

为什么某个客户行没有 EDIT 或 DELETE 按钮?

它的访问权限来自套餐或客户组,已在 Source 列中标明。请在套餐或组上进行管理,或者从 Premium Addons > Customers 打开该客户。

为什么添加客户时会出现 “No license found” 错误?

电子邮件地址和 registration code 与任何许可证都不匹配。请将两者与 PokerTracker 4 Help > About 中的信息逐一核对,并且只输入 registration code 的最后六个字符。