xudabiao666 2022-07-06 11:19 采纳率: 25%
浏览 12
已结题

激活道具 弹出异常定位Lua脚本 的一句话 如何通过代码打印出 报错的定位点

在激活皮肤的时候 提示异常

藐视是1个数字无法正常读取,但是无法定位是哪个地方出错,能否 在后端日志打印出这个错误具体是哪个值引起的

能否添加剪短的代码 从后端日志 打印出 报错的定位点

img

代码如下:

img

  • 写回答

1条回答 默认 最新

  • xudabiao666 2022-07-06 11:20
    关注

    function handleActive(actor, packet)
    local id = LDataPack.readInt(packet)
    local sssid = LDataPack.readInt(packet)
    local roleindex = checkZhuangbanIdGetRoleIndex(actor, id,sssid)
    print("收到id:"..id.." ,和type:"..sssid)

    if not roleindex then
        print("zhuangban handleActive not found roletype " .. tostring(id) .. " - " .. sssid)
        return
    end
    
    local conf = Classconfig(id,sssid)
    local var = getStaticVar(actor)
    
    if var.zhuangban[id] then
        print("zhuangban handleActive already active" .. tostring(id))
        return
    end
    
    
    for _,v in pairs(conf.cost) do
        if not LActor.consumeItem(actor,v.itemId,v.num,false,"zhuangban active") then return false end
    

    end

    local invalidTime = 0
    if conf.invalidtime then
        invalidTime = conf.invalidtime + System.getNowTime()
    end
    var.zhuangban[id] = invalidTime
    LActor.log(actor, "zhuangbansystem.handleActive", "mark1", id, var.zhuangban[id])
    
    --激活默认等级为1
    if not var.zhuangbanlevel then var.zhuangbanlevel = {} end
    if not var.zhuangbantype then var.zhuangbantype = {} end
    var.zhuangbanlevel[id] = 1
    
    var.zhuangbantype[id] = sssid
    
    local pack = LDataPack.allocPacket(actor, systemId, Protocol.sZhuangBanCmd_Active)
    if not pack then return end
    LDataPack.writeInt(pack, id)
    LDataPack.writeInt(pack, invalidTime)
    LDataPack.writeInt(pack, var.zhuangbanlevel[id])
    LDataPack.writeInt(pack, var.zhuangbantype[id])
    LDataPack.flush(pack)
    
    calcAttr(actor,"装备系统-激活装扮"..(conf.name or ""))
    
    if invalidTime ~= 0 then
        setInvalidTimer(actor, true, true)
    end
    
    -- 广播
    local actorname = LActor.getActorName(LActor.getActorId(actor))
    local posname = ZhuangBanConfig.zhuangbanpos[conf.pos]
    local noticeids = conf.noticeid
    if not noticeids then return end
    noticemanager.broadCastNotice(noticeids, actorname, posname, conf.name)
    

    end

    评论

    报告相同问题?

    问题事件

    • 系统已结题 7月14日
    • 创建了问题 7月6日

    悬赏问题

    • ¥15 单点式登录SSO怎么爬虫获取动态SSO_AUTH_ACCESS_Token
    • ¥15 MATLAB中的fft问题
    • ¥30 哈夫曼编码译码器打印树形项目
    • ¥20 求完整顺利登陆QQ邮箱的python代码
    • ¥15 怎么下载MySQL,怎么卸干净原来的MySQL
    • ¥15 网络打印机Ip地址自动获取出现问题
    • ¥15 求局部放电案例库,用于预测局部放电类型
    • ¥100 QT Open62541
    • ¥15 stata合并季度数据和日度数据
    • ¥15 谁能提供rabbitmq,erlang,socat压缩包,记住版本要对应