特工绍特 发表于 2022-8-6 01:18:45

LUA脚本_关于giveitem()函数的BUG

前提 : player ~= nil,存在物品 "怒斩"。
测试:   local _res1,_res2 = giveitem(player,"怒斩",1)

结果:1.只有1个返回值_res1,且_res1 返回的是 (猜测是) itemObj 。
            2.函数内部没有判断人物背包,致背满了之后物品还会继续掉地上。



      望测试后修复!

996技术-七伤拳 发表于 2022-8-17 10:40:46

说明书的问题如果 不成功 返回false成功了 则返回对象

nikluas 发表于 前天 10:18

996技术-七伤拳 发表于 2022-8-17 10:40
说明书的问题如果 不成功 返回false成功了 则返回对象

-- 1个100万经验书
function get_item7010(player)
    local sysvar = getsysvarex("冲级活动_sys_1个100万经验书")
    local playervar = getplayvar(player, "HUMAN", "冲级活动_user_1个100万经验书")
    local itemname = "1级宝石宝箱"

    release_print(sysvar, playervar)

    if (getstditeminfo(itemname, 1) == 0) then
      utils.sendtips(player, "该物品不存在")
      return false
    end

    if not (getbaseinfo(player, 1)) then
      release_print("此物品只能玩家领取")
      utils.sendtips(player, "此物品只能玩家领取")
      return false
    end
    if (sysvar >= 6) then
      utils.sendtips(player, "名额已上限")
      return false
    end
    if (playervar >= 1) then
      utils.sendtips(player, "您已经领取了此物品")
      return false
    end
    local ret=giveitem(player, itemname, 1, 64, "冲级活动领取1个100万经验书")
    release_print(type(ret),"ret:"..ret)
    utils.sendtips(player, "恭喜您成功领取了1个100万经验书")
    setsysvarex("冲级活动_sys_1个100万经验书", sysvar + 1, 1)
    setplayvar(player, "HUMAN", "冲级活动_user_1个100万经验书", playervar + 1, 1)
    main(player)
    return true
end
我想问一下,为什么我这个giveitem的返回值为什么一直返回一个string类型的0,然后我使用不存在的物品,给我返回0,存在的物品也依旧给我返回0,api上面写的是返回一个对象,如果失败应该返回一个nil才对
页: [1]
查看完整版本: LUA脚本_关于giveitem()函数的BUG