Advertisement
Guest User

Untitled

a guest
Sep 21st, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.87 KB | None | 0 0
  1. #pragma region Shop Esferas
  2.     if (strcmp("Npc Troca", SellName) == 0) // Nome do NPC
  3.     {
  4.         int idITem = 3467;
  5.         int idQtd = 10;
  6.  
  7.         // Verifica o inventario do jogador.
  8.         int cnt = 0;
  9.         for (int i = 0; i < pMob[conn].MaxCarry; i++)
  10.         {
  11.             if (pMob[conn].MOB.Carry[i].sIndex == idITem)
  12.             {
  13.                 int amountCarry = BASE_GetItemAmount(&pMob[conn].MOB.Carry[i]);
  14.                 if (amountCarry == 0)
  15.                     cnt++;
  16.                 else
  17.                     cnt += amountCarry;
  18.             }
  19.         }
  20.  
  21.         // Verifica se o jogador tem mais que 10 itens
  22.         if (cnt < idQtd)
  23.         {
  24.             SendClientMessage(conn, "Você não possui itens suficientes para troca.");
  25.             return FALSE;
  26.         }
  27.  
  28.         // Apaga os itens do inventario do jogador
  29.         int ex_cnt = 0;
  30.         for (int i = 0; i < pMob[conn].MaxCarry; i++)
  31.         {
  32.             if (pMob[conn].MOB.Carry[i].sIndex == idITem)
  33.             {
  34.                 if (ex_cnt >= idQtd)
  35.                     continue;
  36.  
  37.                 int extCarry = BASE_GetItemAmount(&pMob[conn].MOB.Carry[i]);
  38.                 if (extCarry < idQtd)
  39.                 {
  40.                     BASE_ClearItem(&pMob[conn].MOB.Carry[i]);
  41.                     ex_cnt += extCarry;
  42.                     SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry[i]);
  43.                 }
  44.                 else if (extCarry > idQtd)
  45.                 {
  46.                     BASE_SetItemAmount(&pMob[conn].MOB.Carry[i], extCarry - 10);
  47.                     ex_cnt += extCarry;
  48.                     SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry[i]);
  49.                 }
  50.                 else if (extCarry == 0)
  51.                 {
  52.                     ex_cnt++;
  53.                     BASE_ClearItem(&pMob[conn].MOB.Carry[i]);
  54.                     SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry[i]);
  55.                 }
  56.             }
  57.         }
  58.  
  59.         // OS itens foram apagagos, agora o jogador recebe o premio.
  60.  
  61.         int idPremio = 413; // Id da Poeira de LAc
  62.         int qtPremio = 10;  // Quantidade de premios
  63.  
  64.         STRUCT_ITEM premio;
  65.         memset(&premio, 0, sizeof(STRUCT_ITEM));
  66.  
  67.         premio.sIndex = idPremio;
  68.         premio.stEffect[0].cEffect = EF_AMOUNT;
  69.         premio.stEffect[0].cValue = qtPremio;
  70.  
  71.         PutItem(conn, &premio);
  72.         return FALSE;
  73.     }
  74. #pragma endregion
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement