TShelby

C++ | RENEWAL | do_item_purge

Aug 31st, 2018
337
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.12 KB | None | 0 0
  1. in common/service.h
  2. Add:
  3. #define ENABLE_ITEM_PURGE_RENEWAL
  4.  
  5. Then in cmd_gm, search and replace "ACMD(do_item_purge)" with :
  6.  
  7.  
  8.  
  9.  
  10. ACMD(do_item_purge)
  11. {
  12. #ifdef ENABLE_ITEM_PURGE_RENEWAL
  13.     char arg1[256];
  14.     one_argument(argument, arg1, sizeof(arg1));
  15.    
  16.     int         i;
  17.     LPITEM      item;
  18.    
  19.     if (!*arg1)
  20.     {
  21.         for (i = 0; i < INVENTORY_MAX_NUM; ++i)
  22.         {
  23.             if ((item = ch->GetInventoryItem(i)))
  24.             {
  25.                 ITEM_MANAGER::instance().RemoveItem(item, "PURGE_INV");
  26.                 ch->SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, QUICKSLOT_NEW_POS);
  27.             }
  28.         }
  29.         return;
  30.     }
  31.    
  32.     switch (LOWER(arg1[0]))
  33.     {
  34.         case 'i':
  35.             for (i = 0; i < INVENTORY_MAX_NUM; ++i)
  36.             {
  37.                 if ((item = ch->GetInventoryItem(i)))
  38.                 {
  39.                     ITEM_MANAGER::instance().RemoveItem(item, "PURGE_INV");
  40.                     ch->SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, QUICKSLOT_NEW_POS);
  41.                 }
  42.             }
  43.             break;
  44.        
  45.         case 'e':
  46.             for (i = INVENTORY_MAX_NUM; i < BELT_INVENTORY_SLOT_START; ++i)
  47.             {
  48.                 if ((item = ch->GetInventoryItem(i)))
  49.                 {
  50.                     ITEM_MANAGER::instance().RemoveItem(item, "PURGE_EQUIP");
  51.                     ch->SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, QUICKSLOT_NEW_POS);
  52.                 }
  53.             }
  54.             break;
  55.        
  56.         case 'd':
  57.             for (i = 0; i < DRAGON_SOUL_INVENTORY_MAX_NUM; ++i)
  58.             {
  59.                 if ((item = ch->GetItem(TItemPos(DRAGON_SOUL_INVENTORY, i ))))
  60.                 {
  61.                     ITEM_MANAGER::instance().RemoveItem(item, "PURGE_DS");
  62.                 }
  63.             }
  64.             break;
  65.    
  66.         case 'b':
  67.             for (i = BELT_INVENTORY_SLOT_START; i < BELT_INVENTORY_SLOT_END; ++i)
  68.             {
  69.                 if ((item = ch->GetInventoryItem(i)))
  70.                 {
  71.                     ITEM_MANAGER::instance().RemoveItem(item, "PURGE_BELT");
  72.                     ch->SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, QUICKSLOT_NEW_POS);
  73.                 }
  74.             }
  75.             break;
  76.        
  77.         case 'a':
  78.             for (i = 0; i < INVENTORY_AND_EQUIP_SLOT_MAX; ++i)
  79.             {
  80.                 if ((item = ch->GetInventoryItem(i)))
  81.                 {
  82.                     ITEM_MANAGER::instance().RemoveItem(item, "PURGE_ALL");
  83.                     ch->SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, QUICKSLOT_NEW_POS);
  84.                 }
  85.             }
  86.             break;
  87. #ifdef ENABLE_SPECIAL_STORAGE
  88.         case 's':
  89.             {
  90.                 for (i = 0; i < SPECIAL_INVENTORY_MAX_NUM; ++i)
  91.                 {
  92.                     if ((item = ch->GetItem(TItemPos(UPGRADE_INVENTORY, i ))))
  93.                     {
  94.                         ITEM_MANAGER::instance().RemoveItem(item, "PURGE");
  95.                     }
  96.                 }
  97.                 for (i = 0; i < SPECIAL_INVENTORY_MAX_NUM; ++i)
  98.                 {
  99.                     if ((item = ch->GetItem(TItemPos(BOOK_INVENTORY, i ))))
  100.                     {
  101.                         ITEM_MANAGER::instance().RemoveItem(item, "PURGE");
  102.                     }
  103.                 }
  104.                 for (i = 0; i < SPECIAL_INVENTORY_MAX_NUM; ++i)
  105.                 {
  106.                     if ((item = ch->GetItem(TItemPos(STONE_INVENTORY, i ))))
  107.                     {
  108.                         ITEM_MANAGER::instance().RemoveItem(item, "PURGE");
  109.                     }
  110.                 }
  111.             }
  112.             break;
  113. #endif
  114.            
  115.         default:
  116.             return;
  117.     }
  118. #else
  119.     int         i;
  120.     LPITEM      item;
  121.  
  122.     for (i = 0; i < INVENTORY_AND_EQUIP_SLOT_MAX; ++i)
  123.     {
  124.         if ((item = ch->GetInventoryItem(i)))
  125.         {
  126.             ITEM_MANAGER::instance().RemoveItem(item, "PURGE");
  127.             ch->SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, QUICKSLOT_NEW_POS);
  128.         }
  129.     }
  130.     for (i = 0; i < DRAGON_SOUL_INVENTORY_MAX_NUM; ++i)
  131.     {
  132.         if ((item = ch->GetItem(TItemPos(DRAGON_SOUL_INVENTORY, i ))))
  133.         {
  134.             ITEM_MANAGER::instance().RemoveItem(item, "PURGE");
  135.         }
  136.     }
  137. #endif
  138. }
Advertisement
Add Comment
Please, Sign In to add comment