台服dnf吧 关注:123,602贴子:2,048,640
  • 3回复贴,共1

frida插件实现宠物装备附魔

取消只看楼主收藏回复



IP属地:广东1楼2023-05-20 14:51回复
    var CUserCharacInfo_getCurCharacInvenW = new NativeFunction(ptr(0x80DA28E), 'pointer', ['pointer'], {"abi":"sysv"});
    var CInventory_GetInvenRef = new NativeFunction(ptr(0x84FC1DE), 'pointer', ['pointer', 'int', 'int'], {"abi":"sysv"});
    var Inven_Item_isEmpty = new NativeFunction(ptr(0x811ED66), 'int', ['pointer'], {"abi":"sysv"});
    var CUser_send_itemspace = new NativeFunction(ptr(0x865DB6C), 'int', ['pointer', 'int'], {"abi":"sysv"});
    function CreatureEh(user){
    var CreatureEqu = CUserCharacInfo_getCurCharacInvenW(user);//获取背包
    var CreatureEquZero = CInventory_GetInvenRef(CreatureEqu, 3, 140);//获取宠物栏宠物装备第一个格子
    if(Inven_Item_isEmpty(CreatureEquZero))//检查格子中的部位是否是空的
    {
    api_CUser_SendNotiPacketMessage(user, "附魔失败, 缺少适合条件的装备", 3);
    }else{
    CreatureEquZero.add(13).writeU32(2550098);//附魔的卡片ID(徽章ID同样适用)
    api_CUser_SendNotiPacketMessage(user, "附魔成功。", 3);
    }
    CUser_send_itemspace(user, 7);//更新背包
    }


    IP属地:广东2楼2023-05-20 14:51
    收起回复
      2025-12-25 11:12:32
      广告
      不感兴趣
      开通SVIP免广告
      记得去重复,可以用指令触发该函数, 或者和任务完成券一样, 指定消耗品来触发。用数组或者随机数可以进行随机附魔。宠物虽然也可以附魔,但是重新登录会消失。


      IP属地:广东3楼2023-05-20 14:54
      收起回复
        失败返还道具问题,看下你的插件是否有函数api_CUser_AddItem(user, item_id, item_cnt),有的话,在判断为失败的地方附加添加道具代码。比如附魔失败这里:
        if(Inven_Item_isEmpty(CreatureEquZero))//检查格子中的部位是否是空的
        {
        api_CUser_SendNotiPacketMessage(user, "附魔失败, 缺少适合条件的装备", 3);
        api_CUser_AddItem(user, 3300, 1);//发放1个编号3300道具
        }
        跨界石那些自己找找判断为失败的地方添加就行


        IP属地:广东11楼2023-05-21 14:29
        收起回复