-- DNF宠物升级券处理函数
item_handler[123009] = function(user, item_id)
    -- 定义可回收的宠物ID以及回收奖励ID列表
    local cre_map = {
        [202005131] = 202005132, -- 标的宠物  回收获得大饼{3340} 
        [202005131] = 202005133, 
    }
    local cre_item = dpx.item.info(user.cptr, 7, 0)-- 获取背包中宠物第一格的信息
    if pet_item then

        local cre_id = cre_item.id
        local reward_id = cre_map[pet_id]
        if reward_id then
            -- 删除背包中的宠物,并随机给予回收奖励
            dpx.item.delete(user.cptr, 7, 0, 1)
            dpx.item.add(user.cptr, reward_id, 1)
        else
            -- 背包中的宠物不能回收,回收券返回背包
            dpx.item.add(user.cptr, item_id)
            user:SendNotiPacketMessage("该宠物不能回收!", 1)
        end
    else
        user:SendNotiPacketMessage("请确保宠物栏第一格有宠物!", 1)
    end
end

-- DNF宠物升级券处理函数

以上是我自己写的一个宠物升级券的功能。

下面的逻辑很简单。主要在cre_map的定义中。一个[xxxxx] = xxxxx,为一组。比如1001到1010,一共10个宠物升级。从头到尾,一串写下来。即可通过宠物升级券依次实现宠物升级功能。

同理,根据这个拓展开,我们很容易能够知道。可以通过这个升级券,改写成宠物回收券。也就是删除某个宠物,然后给指定道具。