使用某个物品到账点卷

var get_rand_int = new NativeFunction(ptr(0x086B1B87), 'int', ['int'], {
    "abi": "sysv"
});


if ((item_id >= 10000113) && (item_id <= 10000114)) //点券充值
{
rechargeCeraBasedOnItemId(user, item_id);
}

// 用户使用次数记录
var userUsageCount = {};

function rechargeCeraBasedOnItemId(user, item_id, charac_no) {
    var itemToCeraMapping = {
        10000113: [100, 1], // 物品ID 10000113 对应 100 点券,可以额外奖励
        10000114: [200, 0]  // 物品ID 10000114 对应 200 点券,不可额外奖励
    };

    if (itemToCeraMapping.hasOwnProperty(item_id)) {
        var [PriceCera, canHaveExtra] = itemToCeraMapping[item_id];
        var extraCera = 0;
        var userKey = charac_no + '_' + item_id;

        // 更新用户使用次数
        userUsageCount[userKey] = (userUsageCount[userKey] || 0) + 1;

        // 计算是否应当提供保底额外奖励
        var isGuaranteedExtra = userUsageCount[userKey] % 10 === 0;

        // 判断是否参与额外奖励
        if (canHaveExtra) {
            var maxExtraCera = Math.floor(PriceCera * 0.3); // 额外充值的最大数量为本体的30%
            if (isGuaranteedExtra) {
                extraCera = maxExtraCera; // 保底触发,获得最大额外充值
                userUsageCount[userKey] = 0; // 清空累计次数
            } else if (get_rand_int(100) < 50) {
                extraCera = Math.min(get_rand_int(PriceCera), maxExtraCera);
                // 如果获得了额外奖励,清空累计次数
                userUsageCount[userKey] = 0;
            }
        }

        api_recharge_cash_cera(user, PriceCera + extraCera);
        api_CUser_SendNotiPacketMessage(user, '成功到账' + (PriceCera + extraCera) + '点券' + (extraCera > 0 ? ',包括额外充值' + extraCera + '点券' : ''), 0);
    }
}
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容