You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ROBLOX多开发者产品异常求助:重复设置ProcessReceipt失效

解决Roblox MarketplaceService.ProcessReceipt重复赋值失效问题

你遇到的核心问题是MarketplaceService.ProcessReceipt是一个单值属性,第二次赋值会完全覆盖第一次的处理函数,导致只有最后一个产品(跳跃线圈)的购买逻辑能被执行,加速线圈的逻辑直接被忽略了。

正确的做法是把所有开发者产品的处理逻辑合并到同一个ProcessReceipt函数中,通过判断不同的ProductId来执行对应的操作。同时还要修正原代码里的几个小问题:

  • 避免变量名重复(比如原代码里的player参数被重新赋值)
  • 不要直接移动ReplicatedStorage里的线圈原件,应该克隆一份给玩家,否则所有购买的玩家会共用同一个线圈
  • 优化玩家角色的获取方式,直接用player.Character更可靠

修改后的完整代码如下:

local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

-- 定义产品ID常量
local SPEED_COIL_PRODUCT_ID = 1504714840
local JUMP_COIL_PRODUCT_ID = 1504717907

local function processReceipt(receiptInfo)
    -- 通过收据里的PlayerId获取玩家对象
    local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
    if not player then
        -- 如果玩家不在线,返回NotProcessedYet,Roblox会稍后重试
        return Enum.ProductPurchaseDecision.NotProcessedYet
    end

    -- 根据ProductId执行对应逻辑
    if receiptInfo.ProductId == SPEED_COIL_PRODUCT_ID then
        -- 克隆加速线圈并给玩家
        local speedCoilClone = ReplicatedStorage.SpeedCoil:Clone()
        speedCoilClone.Parent = player.Character or player.CharacterAdded:Wait()
    elseif receiptInfo.ProductId == JUMP_COIL_PRODUCT_ID then
        -- 克隆跳跃线圈并给玩家
        local jumpCoilClone = ReplicatedStorage.JumpCoil:Clone()
        jumpCoilClone.Parent = player.Character or player.CharacterAdded:Wait()
    end

    -- 确认购买成功
    return Enum.ProductPurchaseDecision.PurchaseGranted
end

-- 只设置一次ProcessReceipt
MarketplaceService.ProcessReceipt = processReceipt

关键说明:

  • 所有产品的购买逻辑都放在同一个processReceipt函数里,通过if-elseif判断不同的ProductId
  • 使用:Clone()复制线圈,避免原件被移走后其他玩家无法获取
  • 用player.Character or player.CharacterAdded:Wait()确保角色存在后再添加线圈,防止角色还没加载完成导致报错
  • 只对MarketplaceService.ProcessReceipt赋值一次,避免覆盖问题

内容的提问来源于stack exchange,提问作者SnipeBlox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 16:52:15