Navigation

第 5 部分 - 划分收入

使用游戏网络货币化插件,就可以在多个支付指示器之间划分游戏收入。网络货币化 API 不能直接做到这一点,所以它使用称为概率收益分配的流程。您可以阅读更多关于网络货币化网站概念的信息。

正如您在之前教程中所见,您需要给配置对象传输一个插件,其中包含一个 paymentPointer。下面是收款钱包的地址:

const gameWebMonetization = new GameWebMonetization({
    paymentPointer: '$ilp.uphold.com/zdXzL8aWJ4ii'
});

但是,您也可以提供一批配置对象,并为每个配置对象分配一个 weight 值,例如:

const gameWebMonetization = new GameWebMonetization([
    {
        paymentPointer: '$ilp.uphold.com/zdXzL8aWJ4ii',
        weight: 60
    },
    {
        paymentPointer: '$ilp.uphold.com/ziW6E7iwKUkp',
        weight: 40
    }
]);

weight 属性控制该插件选择支付提供商的百分比概率。因此,总的 weight 值之和不能超过 100。

这取决于你如何分配权重。例如,您可能希望在游戏的所有团队成员之间平均分配权重。或者,您可能向开发者分配 70% 权重,向美工分配 30% 权重?完全取决于您。weight 值直接控制网络货币化 API 启动时钱包获选的机会。

以下是完整 main.js 测试,供您在操作时查阅:

import { GameWebMonetization } from './GameWebMonetization.js';

const gameWebMonetization = new GameWebMonetization([
    {
        paymentPointer: '$ilp.uphold.com/zdXzL8aWJ4ii',
        weight: 60
    },
    {
        paymentPointer: '$ilp.uphold.com/ziW6E7iwKUkp',
        weight: 40
    }
]);

gameWebMonetization.on(GameWebMonetization.START, (event) => {
    console.log('[inside event start] - The state: ', event);
});

gameWebMonetization.start();

如果您多次运行此项测试,会看到支付指示器在控制台中发生变更:

倍数支付指示器 1 倍数支付指示器 2

如果很难知道谁拥有每个支付指示器,我们可以有选择地在配置中传递 pointerName 属性,如下所示:

const gameWebMonetization = new GameWebMonetization([
    {
        paymentPointer: '$ilp.uphold.com/zdXzL8aWJ4ii',
        weight: 60,
        pointerName: "Bob"
    },
    {
        paymentPointer: '$ilp.uphold.com/ziW6E7iwKUkp',
        weight: 40,
        pointerName: "Alice"
    }
]);

若要获取名称,我们只需访问插件提供的 pointerName 属性:

console.log('Paying into the wallet of', gameWebMonetization.pointerName);

如果我们转到浏览器并刷新,可以看到显示的名称:

指示器名称 1

如果您多次更新,会看到名称随权重值改变:

指示器名称 2

即使您是唯一参与制作游戏的人,也可以使用本系统向您的电子钱包支付不同货币。请谨记,一旦选定支付提供商,其就将保持整个游戏回合处于活跃状态。