台服dnf吧 关注:114,893贴子:1,762,818
  • 24回复贴,共1

dp2.9时装删除券,宠物删除券

只看楼主收藏回复

感谢提供dp2.9的大佬们,@sidyhe,@吴哥大哥


代码:
--- 删除宠物 490703702:删除券的编号
item_handler[490703702] = function(user, item_id)
local info = dpx.item.info(user.cptr, game.ItemSpace.CREATURE, 0);
if info then
-- user, space, slot, count AVATAR CREATURE
dpx.item.delete(user.cptr, game.ItemSpace.CREATURE, 0);
user:SendNotiPacketMessage("宠物删除成功", 0);
end
end
--- 时装删除券 490703704:删除券的编号
item_handler[490703704] = function(user, item_id)
local info = dpx.item.info(user.cptr, game.ItemSpace.AVATAR, 0);
if info then
-- user, space, slot, count AVATAR CREATURE
dpx.item.delete(user.cptr, game.ItemSpace.AVATAR, 0);
user:SendNotiPacketMessage("时装删除成功", 0);
end
end


IP属地:贵州1楼2024-04-18 10:42回复
    直接全用frida呗
    frida代码:




    IP属地:福建本楼含有高级字体2楼2024-04-18 10:56
    收起回复
      //清理宠物栏(第一排)
      function clear_creature_inven(user,count,item_id)
      {
      var inven = CUserCharacInfo_getCurCharacInvenW(user);//获取角色背包
      var charac_no = CUserCharacInfo_getCurCharacNo(user);//获取角色uid
      var index = 0;//初始化成功删除的数量
      var total = count + 0;//计算宠物的截止格子位置(起始位置默认从137开始,表示最后3个格子,如果是前3格,则从0开始)
      for(var i = 0; i < total; ++i)
      {
      var creature = CInventory_getInvenRef(inven, INVENTORY_TYPE_CREATURE, i);//获取当前格子的宠物
      var CrId = Inven_Item_getKey(creature);//获取该宠物id
      if(CrId)
      {
      //CInventory_delete_item(inven, INVENTORY_TYPE_CREATURE, i, 1, 8, 1);//删除消耗品第一格数量1
      Inven_Item_reset(creature);//删除该宠物
      //CUser_SendUpdateItemList(user, 1, 7, i);
      api_MySQL_exec(mysql_taiwan_cain_2nd, 'delete from creature_items where charac_no=' + charac_no + ' and slot='+i+' and it_id='+CrId+';');//数据库删除该宠物
      index++;
      }
      }
      if(index>0) {
      api_CUser_SendNotiPacketMessage(user,"恭喜: "+index+"件宠物删除成功!",14);
      CUser_send_itemspace(user, ENUM_ITEMSPACE_CREATURE);//通知客户端更新宠物背包
      } else {
      api_CUser_SendNotiPacketMessage(user,"注意:宠物删除失败,缺少可删除的宠物!",0);
      const reward_item_lists = [[item_id,1]];
      const Money = 0;
      var charac_no = CUserCharacInfo_getCurCharacNo(user);
      api_scheduleOnMainThread_delay(api_CUser_AddItem,[user,item_id,1],1);//道具返还间隔
      }
      }


      IP属地:湖南4楼2024-04-21 12:00
      收起回复
        本来用UI礼包返回道具的形式,但是不知道为什么第一次使用返回显示的礼包是金币0,后面就都可以


        IP属地:湖南5楼2024-04-21 12:06
        收起回复
          //显示ui窗口
          function api_CUser_Add_Item(user, item, num)
          {
          api_CUser_AddItem(user, item, num)//背包增加道具
          SendItemWindowNotification(user, [[item, num]]);
          }
          function SendItemWindowNotification(user, item_list)
          {
          var packet_guard = api_PacketGuard_PacketGuard();
          InterfacePacketBuf_put_header(packet_guard, 1, 163); //协议 ENUM_NOTIPACKET_POWER_WAR_PROLONG
          InterfacePacketBuf_put_byte(packet_guard, 1); //默认1
          InterfacePacketBuf_put_short(packet_guard, 0); //槽位id 填入0即可
          InterfacePacketBuf_put_int(packet_guard, 0); //未知 0以上即可
          InterfacePacketBuf_put_short(packet_guard, item_list.length); //道具组数
          //写入道具代码和道具数量
          for (var i = 0; i < item_list.length; i++)
          {
          InterfacePacketBuf_put_int(packet_guard, item_list[i][0]); //道具代码
          InterfacePacketBuf_put_int(packet_guard, item_list[i][1]); //道具数量 装备/时装时 任意均可
          }
          InterfacePacketBuf_finalize(packet_guard, 1); //确定发包内容
          CUser_Send(user, packet_guard); //发包
          Destroy_PacketGuard_PacketGuard(packet_guard); //清空buff区
          }
          //显示ui窗口


          IP属地:湖南6楼2024-04-22 18:09
          收起回复
            没有出现你说的那种情况


            IP属地:贵州来自Android客户端8楼2024-04-22 22:43
            回复
              你用热更后,第一次通过这个获得过的道路返回试试


              IP属地:湖南来自iPhone客户端9楼2024-04-23 07:29
              回复
                那个bug 我每次热重载更完第一次如果是返回道具会出现那个情况。


                IP属地:湖南来自iPhone客户端10楼2024-04-23 07:30
                收起回复