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 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?