Guest User

Untitled

a guest
Oct 20th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 16.50 KB | None | 0 0
  1. #define DIALOG_INVENT 2252
  2. #define DIALOG_INVENT_OPT 2253
  3. #define DIALOG_INVENT_OPT_GIVE_PLAYER 2254
  4. #define DIALOG_INVENT_OPT_GIVE_AMOUNT 2255
  5. #define DIALOG_INVENT_OPT_GIVE_CONFIRM 2256
  6. #define DIALOG_INVENT_OPT_TRASH 2257
  7. #define DIALOG_INVENT_OPT_TRASH_CONFIRM 2258
  8.  
  9. /*           INVENTARIO INFO         (EXEMPLO) */
  10. #define ITEM_TYPE_WEAPON            1
  11. #define ITEM_TYPE_WEAPON_AMMO       2
  12. #define ITEM_TYPE_WEAPON_SILENCER   3
  13. #define ITEM_TYPE_GPS               4
  14. #define ITEM_TYPE_WATCH             5
  15. #define ITEM_TYPE_GRENADE           6
  16. #define ITEM_TYPE_COMPUTER          7
  17. #define ITEM_TYPE_SCRATCH_CARD      8
  18. #define ITEM_TYPE_FISH_KIT          9
  19. #define ITEM_TYPE_PE_DE_CABRA      10
  20. #define ITEM_TYPE_CORDA            11
  21. #define ITEM_TYPE_MARTELO          12
  22. #define ITEM_TYPE_AGENDA           13
  23. #define ITEM_TYPE_GALAO            14
  24. #define ITEM_TYPE_DINAMITE         15
  25. #define ITEM_TYPE_DRUG         16
  26. enum _inventInfo
  27. {
  28.     itemName[35],
  29.     itemType,
  30.     itemInfo,
  31.     itemDesc[100]
  32. };
  33. static const inventInfo[][_inventInfo] =
  34. {
  35.     {"None", 0, 0, "None"}
  36. };
  37.  
  38. public OnDialogblablabla
  39.         case DIALOG_INVENT:
  40.         {
  41.             if( response )
  42.             {
  43.                 new str[70], item;
  44.                 format( str, 70, "SELECT * FROM piteminfo WHERE cid=%d",playerInfo[playerid][pCid]);
  45.                 mysql_query( str );
  46.                 mysql_store_result( );
  47.                 if( mysql_num_rows() )
  48.                 {
  49.                     mysql_data_seek( listitem );
  50.                     if( mysql_fetch_row( str ) )
  51.                     {
  52.                        sscanf( str, "p<|>{dd}d{d}",item );
  53.                     }
  54.                 }
  55.                 mysql_free_result( );
  56.                 SetPVarInt( playerid,"InventChoosen", item );
  57.                 ShowPlayerDialog( playerid, DIALOG_INVENT_OPT, DIALOG_STYLE_LIST, "Seu Inventário", "Usar Item\nDar para Player\nJogar no chão", "Selecionar", "Voltar" );
  58.             }
  59.         }
  60.         case DIALOG_INVENT_OPT:
  61.         {
  62.             if( response )
  63.             {
  64.                 switch( listitem )
  65.                 {
  66.                     case 0:
  67.                     {
  68.  
  69.                         new item = GetPVarInt( playerid, "InventChoosen" );
  70.  
  71.  
  72.                         switch( inventInfo[item][itemType] )
  73.                         {
  74.  
  75.                         }
  76.  
  77.                     }
  78.                     case 1: //dar pra player
  79.                     {
  80.                         if( response )
  81.                         {
  82.                             new title[80], msg[128], item = GetPVarInt( playerid, "InventChoosen" );
  83.                             format( title, sizeof title, "Inventário - Dar %s", inventInfo[item][itemName]);
  84.                             format( msg, sizeof msg, "Digite a id/ParteDoNome do player pra quem você quer dar o item: %s", inventInfo[item][itemName] );
  85.  
  86.                             ShowPlayerDialog( playerid, DIALOG_INVENT_OPT_GIVE_PLAYER, DIALOG_STYLE_INPUT, title, msg, "Enviar", "Voltar" );
  87.                         }
  88.                         else
  89.                         {
  90.                             playerInvent( playerid, playerid );
  91.                         }
  92.                     }
  93.                     case 2: //jogar
  94.                     {
  95.                         if( response )
  96.                         {
  97.                             new title[80], msg[128], item = GetPVarInt( playerid, "InventChoosen" );
  98.                             format( title, sizeof title, "Inventário - Jogar %s", inventInfo[item][itemName]);
  99.                             format( msg, sizeof msg, "Digite a quantidade de unidades que deseja jogar fora de %s", inventInfo[item][itemName] );
  100.  
  101.                             ShowPlayerDialog( playerid, DIALOG_INVENT_OPT_TRASH, DIALOG_STYLE_INPUT, title, msg, "Enviar", "Voltar" );
  102.                         }
  103.                         else
  104.                         {
  105.                             playerInvent( playerid, playerid );
  106.                         }
  107.                     }
  108.                 }
  109.             }
  110.             else
  111.                 playerInvent( playerid, playerid );
  112.         }
  113.  
  114.         case DIALOG_INVENT_OPT_GIVE_PLAYER:
  115.         {
  116.             if( response )
  117.             {
  118.                 new player;
  119.                 if( sscanf( inputtext, "u", player ) || player == playerid  )
  120.                 {
  121.                     new title[80], msg[128], item = GetPVarInt( playerid, "InventChoosen" );
  122.                     format( title, sizeof title, "Inventário - Dar %s", inventInfo[item][itemName]);
  123.                     format( msg, sizeof msg, "Digite a id/ParteDoNome do player pra quem você quer dar o item: %s\n(O player selecionado não existe)", inventInfo[item][itemName] );
  124.  
  125.                     ShowPlayerDialog( playerid, DIALOG_INVENT_OPT_GIVE_PLAYER, DIALOG_STYLE_INPUT, title, msg, "Enviar", "Voltar" );
  126.                 }
  127.                 else if( GetDistanceBetweenPlayers( playerid, player ) > 5.0 )
  128.                 {
  129.                     new title[80], msg[128], item = GetPVarInt( playerid, "InventChoosen" );
  130.                     format( title, sizeof title, "Inventário - Dar %s", inventInfo[item][itemName]);
  131.                     format( msg, sizeof msg, "Digite a id/ParteDoNome do player pra quem você quer dar o item: %s\n(O player selecionado está muito longe)", inventInfo[item][itemName] );
  132.  
  133.                     ShowPlayerDialog( playerid, DIALOG_INVENT_OPT_GIVE_PLAYER, DIALOG_STYLE_INPUT, title, msg, "Enviar", "Voltar" );
  134.                 }
  135.                 else
  136.                 {
  137.                     SetPVarInt( playerid, "InventGivePlayer", player );
  138.  
  139.                     new title[80], msg[128], item = GetPVarInt( playerid, "InventChoosen" );
  140.                     format( title, sizeof title, "Inventário - Dar %s para %s", inventInfo[item][itemName], getPlayerName( player, true ) );
  141.                     format( msg, sizeof msg, "Digite a quantidade de itens que você quer dar para %s:", getPlayerName( player, true ) );
  142.  
  143.                     ShowPlayerDialog( playerid, DIALOG_INVENT_OPT_GIVE_AMOUNT, DIALOG_STYLE_INPUT, title, msg, "Enviar", "Voltar" );
  144.                 }
  145.             }
  146.             else
  147.             {
  148.                 ShowPlayerDialog( playerid, DIALOG_INVENT_OPT, DIALOG_STYLE_LIST, "Seu Inventário", "Usar Item\nDar para Player\nJogar no chão", "Selecionar", "Voltar" );
  149.             }
  150.         }
  151.  
  152.         case DIALOG_INVENT_OPT_GIVE_AMOUNT:
  153.         {
  154.             if( response )
  155.             {
  156.                 new item =  GetPVarInt( playerid, "InventChoosen" ),
  157.                     player = GetPVarInt( playerid, "InventGivePlayer" ),
  158.                     amount = strval(inputtext);
  159.  
  160.                 if( 0 < amount <= GetPlayerItemAmount( playerid, item ) )
  161.                 {
  162.                     SetPVarInt(playerid, "InventGiveAmount", amount );
  163.                     new title[80], msg[128];
  164.                     format( title, sizeof title, "Inventário - Dar %s para %s", inventInfo[item][itemName], getPlayerName( player, true ) );
  165.                     format( msg, sizeof msg, "Você está prestes a dar %d unidades de %s para %s. Deseja confirmar a ação?", amount, inventInfo[item][itemName],getPlayerName( player, true ) );
  166.  
  167.                     ShowPlayerDialog( playerid, DIALOG_INVENT_OPT_GIVE_CONFIRM, DIALOG_STYLE_MSGBOX, title, msg, "Enviar", "Voltar" );
  168.                 }
  169.                 else
  170.                 {
  171.                     new title[80], msg[128];
  172.                     format( title, sizeof title, "Inventário - Dar %s para %s", inventInfo[item][itemName], getPlayerName( player, true ) );
  173.                     format( msg, sizeof msg, "Digite a quantidade de itens que você quer dar para %s: (Quantidade inválida)", getPlayerName( player, true ) );
  174.  
  175.                     ShowPlayerDialog( playerid, DIALOG_INVENT_OPT_GIVE_AMOUNT, DIALOG_STYLE_INPUT, title, msg, "Enviar", "Voltar" );
  176.                 }
  177.             }
  178.             else
  179.             {
  180.                 new title[80], msg[128], item = GetPVarInt( playerid, "InventChoosen" );
  181.                 format( title, sizeof title, "Inventário - Dar %s", inventInfo[item][itemName]);
  182.                 format( msg, sizeof msg, "Digite a id/ParteDoNome do player pra quem você quer dar o item: %s", inventInfo[item][itemName] );
  183.  
  184.                 ShowPlayerDialog( playerid, DIALOG_INVENT_OPT_GIVE_PLAYER, DIALOG_STYLE_INPUT, title, msg, "Enviar", "Voltar" );
  185.             }
  186.  
  187.         }
  188.  
  189.         case DIALOG_INVENT_OPT_GIVE_CONFIRM:
  190.         {
  191.             if( response )
  192.             {
  193.                 new
  194.                     item =  GetPVarInt( playerid, "InventChoosen" ),
  195.                     player = GetPVarInt( playerid, "InventGivePlayer" ),
  196.                     amount = GetPVarInt( playerid, "InventGiveAmount" )
  197.                 ;
  198.  
  199.                 new
  200.                     msg[128]
  201.                 ;
  202.  
  203.  
  204.                 format( msg, 128, "dá %d unidades de %s para %s.", amount, inventInfo[item][itemName], getPlayerName( player, true ) );
  205.                 cmd_eu( playerid, msg );
  206.  
  207.                 GivePlayerItem( playerid, item, -amount );
  208.                 GivePlayerItem( player, item, amount );
  209.  
  210.  
  211.             }
  212.             else
  213.             {
  214.                 new title[80], msg[128];
  215.                 new
  216.                     item =  GetPVarInt( playerid, "InventChoosen" ),
  217.                     player = GetPVarInt( playerid, "InventGivePlayer" )
  218.                 ;
  219.                 format( title, sizeof title, "Inventário - Dar %s para %s", inventInfo[item][itemName], getPlayerName( player, true ) );
  220.                 format( msg, sizeof msg, "Digite a quantidade de itens que você quer dar para %s:", getPlayerName( player, true ) );
  221.  
  222.                 ShowPlayerDialog( playerid, DIALOG_INVENT_OPT_GIVE_AMOUNT, DIALOG_STYLE_INPUT, title, msg, "Enviar", "Voltar" );
  223.             }
  224.         }
  225.  
  226.         case DIALOG_INVENT_OPT_TRASH:
  227.         {
  228.             if( response )
  229.             {
  230.                 new amount = strval(inputtext),
  231.                     item = GetPVarInt( playerid, "InventChoosen" );
  232.                 if( 0 < amount <= GetPlayerItemAmount( playerid, item ) )
  233.                 {
  234.                     SetPVarInt( playerid, "InventTrashAmount", amount );
  235.                     new title[80], msg[128];
  236.                     format( title, sizeof title, "Inventário - Jogar %s", inventInfo[item][itemName]);
  237.                     format( msg, sizeof msg, "Você está prestes a jogar %d unidades de %s fora. Deseja confirmar a ação?", amount, inventInfo[item][itemName] );
  238.  
  239.                     ShowPlayerDialog( playerid, DIALOG_INVENT_OPT_TRASH_CONFIRM, DIALOG_STYLE_INPUT, title, msg, "Sim", "Não" );
  240.                 }
  241.                 else
  242.                 {
  243.                     new title[80], msg[128];
  244.                     format( title, sizeof title, "Inventário - Jogar %s", inventInfo[item][itemName]);
  245.                     format( msg, sizeof msg, "Digite a quantidade de unidades que deseja jogar fora de %s\n(Quantidade Incorreta)", inventInfo[item][itemName] );
  246.  
  247.                     ShowPlayerDialog( playerid, DIALOG_INVENT_OPT_TRASH, DIALOG_STYLE_INPUT, title, msg, "Enviar", "Voltar" );
  248.                 }
  249.             }
  250.             else
  251.                 ShowPlayerDialog( playerid, DIALOG_INVENT_OPT, DIALOG_STYLE_LIST, "Seu Inventário", "Usar Item\nDar para Player\nJogar no chão", "Selecionar", "Voltar" );
  252.         }
  253.  
  254.         case DIALOG_INVENT_OPT_TRASH_CONFIRM:
  255.         {
  256.             new
  257.                 item = GetPVarInt( playerid, "InventChoosen" ),
  258.                 amount = GetPVarInt( playerid, "InventTrashAmount" )
  259.             ;
  260.             if( response )
  261.             {
  262.                 new msg[128];
  263.                 format( msg, 128, "joga %d unidades de %s fora.",amount, inventInfo[item][itemName] );
  264.                 cmd_eu( playerid, msg );
  265.                 GivePlayerItem( playerid, item, -amount );
  266.             }
  267.             else
  268.             {
  269.                 new title[80], msg[128];
  270.                 format( title, sizeof title, "Inventário - Jogar %s", inventInfo[item][itemName]);
  271.                 format( msg, sizeof msg, "Digite a quantidade de unidades que deseja jogar fora de %s\n(Quantidade Incorreta)", inventInfo[item][itemName] );
  272.  
  273.                 ShowPlayerDialog( playerid, DIALOG_INVENT_OPT_TRASH, DIALOG_STYLE_INPUT, title, msg, "Enviar", "Voltar" );
  274.             }
  275.         }
  276.  
  277. PlayerOwnItem( playerid, itemid )
  278. {
  279.     new q[180];
  280.     format( q, 180, "SELECT * FROM `piteminfo` WHERE `cid`=%d AND `iid`=%d AND `amount` > 0", #error mudar identificação do player ->playerInfo[playerid][pCid], itemid );
  281.     mysql_query( q );
  282.     mysql_store_result();
  283.     if( mysql_num_rows() )
  284.     {
  285.         mysql_free_result();
  286.         return 1;
  287.     }
  288.     else
  289.     {
  290.         mysql_free_result();
  291.         return 0;
  292.     }
  293.  
  294. }
  295.  
  296. GetPlayerItemAmount( playerid, itemid )
  297. {
  298.     new q[180];
  299.     format( q, 180, "SELECT amount FROM `piteminfo` WHERE `cid`=%d AND `iid`=%d AND `amount` > 0", #error mudar identificação do player ->playerInfo[playerid][pCid], itemid );
  300.     mysql_query( q );
  301.     mysql_store_result();
  302.     new amount = mysql_fetch_int();
  303.     mysql_free_result();
  304.     return amount;
  305.  
  306.  
  307. }
  308.  
  309. GivePlayerItem( playerid, itemid, amount )
  310. {
  311.     #define GPI_DEBUG
  312.     new _q[128];
  313.     format( _q, 128, "SELECT * FROM `piteminfo` WHERE `cid`=%d AND `iid`=%d", #error mudar identificação do player ->playerInfo[playerid][pCid], itemid );
  314.     mysql_query( _q );
  315.     //--->
  316.     mysql_store_result();
  317.     //--->
  318.  
  319.     if( mysql_num_rows() )
  320.     {
  321.         //----------------->
  322.         if( amount < 0 )
  323.         {
  324.             new _dbAmount;
  325.             if( mysql_fetch_row( _q, "|" ) )
  326.             {
  327.                 sscanf( _q, "p<|>{ddd}d", _dbAmount );
  328.             }
  329.  
  330.             mysql_free_result();
  331.             //---------------------------------->
  332.  
  333.             if( ( _dbAmount + amount ) <= 0 )
  334.             {
  335.                 format( _q, 128, "DELETE FROM `piteminfo` WHERE `iid`=%d AND `cid`=%d", itemid, #error mudar identificação do player ->playerInfo[playerid][pCid] );
  336.                 mysql_query( _q );
  337.             }
  338.             else
  339.             {
  340.                 format( _q, 128, "UPDATE `piteminfo` SET amount=amount%d WHERE `iid`=%d AND `cid`=%d", amount, itemid, #error mudar identificação do player ->playerInfo[playerid][pCid] );
  341.                 mysql_query( _q );
  342.             }
  343.         }
  344.         else
  345.         {
  346.             mysql_free_result();
  347.             format( _q, 128, "UPDATE `piteminfo` SET amount=amount+%d WHERE `iid`=%d AND `cid`=%d", amount, itemid, #error mudar identificação do player ->playerInfo[playerid][pCid] );
  348.             mysql_query( _q );
  349.         }
  350.     }
  351.     else
  352.     {
  353.         mysql_free_result();
  354.         //----------------->
  355.         if( amount > 0 )
  356.         {
  357.             format( _q, 128, "INSERT INTO `piteminfo` (id,cid,iid,amount) VALUES (NULL,%d,%d,%d);", #error mudar identificação do player ->playerInfo[playerid][pCid], itemid, amount );
  358.             mysql_query( _q );
  359.         }
  360.     }
  361.     new msg[80];
  362.     format( msg, 80, "SERVER: Foi inserido/retirado %s(%d)[%d] do seu inventário.", inventInfo[itemid][itemName], itemid, amount );
  363.     return SendClientMessage( playerid, -1, msg );
  364. }
  365.  
  366. #define MAX_PLAYER_ITEMS 50
  367. playerInvent( playerid, toplayerid )
  368. {
  369.     new _mStr[256];
  370.     format( _mStr, sizeof _mStr, "SELECT * FROM `piteminfo` WHERE `cid`= %d LIMIT %d", #error mudar identificação do player -> playerInfo[playerid][pCid], MAX_PLAYER_ITEMS );
  371.     mysql_query( _mStr );
  372.     mysql_store_result();
  373.     new rows = mysql_num_rows();
  374.     if( rows == 0 )
  375.     {
  376.         SendClientMessage( playerid, 0xC1BFBFAA, "Você não possui nenhum item!" );
  377.     }
  378.     else
  379.     {
  380.         new field[4][5], _fo[50], _dG[1024];
  381.         for( new i; i < rows; i++ )
  382.         {
  383.             if(mysql_fetch_row(_mStr,"|")) // Splits the row
  384.             {
  385.                 explode(_mStr, field, "|");
  386.                 format( _fo, 50, "%s (ITEM %d) - Quantidade %d\n", inventInfo[strval(field[2])], strval(field[2]), strval(field[3]) );
  387.                 strcat( _dG, _fo );
  388.             }
  389.         }
  390.         new a[50];
  391.         format( a, 50, "Mochila de %s", getPlayerName( playerid, true ) );
  392.         if( playerid == toplayerid )
  393.             ShowPlayerDialog( toplayerid, DIALOG_INVENT, DIALOG_STYLE_LIST, a, _dG, "Ok", "Cancelar" );
  394.         else
  395.             ShowPlayerDialog( toplayerid, 1, DIALOG_STYLE_MSGBOX, a, _dG, "Fechar", "" );
  396.         mysql_free_result();
  397.     }
  398.     return 1;
  399. }
Add Comment
Please, Sign In to add comment