item_handler[123010] = function(user, item_id)

    local num = math.random(1, 3)
    local questlist = {10211,10212,10213}
    dpx.quest.accept(user, questlist[num], true)

    dpx.quest.update(user)

end

以上代码逻辑梳理

使用123010道具时触发,首先通过math.random(1,3)生成一个随机数。

然后定义一个questlist任务代码池。第三个则是接取任务了,使用这个道具随机接取某个任务。这样可以做到每次接的任务都不一样。
重点来了,我们所谓的悬赏任务怎么实现呢?

我自己的公益服的实现方法是这样的。
1.设置好若干个任务

2.给任务的等级设置成99级,或者是超过登记补丁的最高等级,即可。逻辑就是让玩家接不到这个任务。

3.给特定地图的BOSS或怪物添加悬赏令道具的随机掉落。
4.玩家通过刷图爆出悬赏令,使用后接取任务。

另外,为了防止玩家囤积悬赏令道具,我还设置了24小时过期机制。必须当日完成。到此,悬赏令的代码逻辑实现了。