Guest User

Sistema de Mochila

a guest
Dec 2nd, 2013
2,018
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 14.76 KB | None | 0 0
  1. /*
  2. Créditos á Spyro_Racing pela criação Geral do FilterScript
  3. Á Double-O-Files pelo DOF2, Zeex pelo ZCMD, e Mike ( MP2 ) pela criação das funções IsNumeric e RemovePlayerWeapon
  4. Não retirar os créditos.
  5. */
  6.  
  7. #include a_samp
  8. #include DOF2
  9. #include ZCMD
  10.  
  11. new
  12.     StringMochila [ 128 ] ,
  13.     String2 [ 70 ];
  14.    
  15. #define DIALOG_MOCHILA1 123+123 // Dialog em Geral
  16. #define DIALOG_MOCHILA2 123+124 // Guardar Skin
  17. #define DIALOG_MOCHILA3 123+125 // Guardar Arma
  18. #define DIALOG_MOCHILA4 123+126 // Guardar Dinheiro
  19. #define DIALOG_MOCHILA5 123+127 // Usar Skin
  20. #define DIALOG_MOCHILA6 123+128 // Pegar Arma
  21. #define DIALOG_MOCHILA7 123+129 // Pegar Dinheiro
  22. #define DIALOG_MOCHILA8 123+130 // Guardar Arma 1
  23. #define DIALOG_MOCHILA9 123+131 // Guardar Arma 2
  24. #define DIALOG_MOCHILA10 123+132 // Pegar Arma 1
  25. #define DIALOG_MOCHILA11 123+133 // Pegar Arma 2
  26.  
  27. public
  28.     OnPlayerConnect ( playerid )
  29.     {
  30.     format ( StringMochila, sizeof ( StringMochila ), "Mochilas/%s.txt", PlayerName ( playerid ) );
  31.     if ( !DOF2_FileExists ( StringMochila ) )
  32.     {
  33.         DOF2_CreateFile ( StringMochila ) ;
  34.         DOF2_SetString ( StringMochila , "Skin", "Nenhuma" );
  35.         DOF2_SetString ( StringMochila , "Arma1", "Nenhuma" );
  36.         DOF2_SetString ( StringMochila , "Municao1", "Nenhuma" );
  37.         DOF2_SetString ( StringMochila , "Arma2", "Nenhuma" );
  38.         DOF2_SetString ( StringMochila , "Municao2", "Nenhuma" );
  39.         DOF2_SetString ( StringMochila , "Dinheiro", "Nenhuma" ) ;
  40.     }
  41.     return true;
  42. }
  43.  
  44. public
  45.     OnPlayerSpawn ( playerid )
  46.     {
  47.     SetPlayerPos ( playerid , 2089.0505,2068.1211,10.8203 );
  48.     SetPlayerInterior( playerid , 0 ) ;
  49.     return true ;
  50. }
  51.  
  52. CMD:minhamochila(playerid)
  53. {
  54.     format ( StringMochila, sizeof ( StringMochila ), "Mochilas/%s.txt", PlayerName ( playerid ) );
  55.     if ( DOF2_FileExists ( StringMochila ) )
  56.     {
  57.         ShowPlayerDialog ( playerid, DIALOG_MOCHILA1, DIALOG_STYLE_LIST, "Mochila", "Colocar Mochila\nGuardar Mochila\nGuardar Skin\nGuardar Arma\nGuardar Dinheiro\nUsar Skin\nPegar Arma\nPegar Dinheiro", "Feito" , "Cancelar" ) ;
  58.     }
  59.     return true;
  60. }
  61.  
  62. public
  63.     OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  64.     {
  65.     format ( StringMochila, sizeof ( StringMochila ), "Mochilas/%s.txt", PlayerName ( playerid ) );
  66.     if ( dialogid == DIALOG_MOCHILA1 )
  67.     {
  68.         if ( response )
  69.         {
  70.             switch ( listitem )
  71.             {
  72.                 case 0:
  73.                 {
  74.                     RemovePlayerAttachedObject ( playerid , 1 ) ;
  75.                     SetPlayerAttachedObject ( playerid , 1 , 3026 , 1,-0.16, -0.08, 0.0, 0.5, 0.5, 0.0, 1.0, 1.3, 1.0, -1, 0); // Coordenadas by Fórum SA:MP
  76.                     SendClientMessage ( playerid, 0xFF6347 , "Mochila colocada." ) ;
  77.                     ShowPlayerDialog ( playerid, DIALOG_MOCHILA1, DIALOG_STYLE_LIST, "Mochila", "Colocar Mochila\nGuardar Mochila\nGuardar Skin\nGuardar Arma\nGuardar Dinheiro\nUsar Skin\nPegar Arma\nPegar Dinheiro", "Feito" , "Cancelar" ) ;
  78.                 }
  79.                 case 1:
  80.                 {
  81.                     RemovePlayerAttachedObject ( playerid , 1 ) ;
  82.                     SendClientMessage ( playerid, 0xFF6347 , "Mochila guardada." ) ;
  83.                     ShowPlayerDialog ( playerid, DIALOG_MOCHILA1, DIALOG_STYLE_LIST, "Mochila", "Colocar Mochila\nGuardar Mochila\nGuardar Skin\nGuardar Arma\nGuardar Dinheiro\nUsar Skin\nPegar Arma\nPegar Dinheiro", "Feito" , "Cancelar" ) ;
  84.                 }
  85.                 case 2:
  86.                 {
  87.                     ShowPlayerDialog ( playerid , DIALOG_MOCHILA2 , DIALOG_STYLE_MSGBOX, "Guardar Skin", "Você tem certeza que deseja guardar sua skin?", "Tenho", "Não" ) ;
  88.                 }
  89.                 case 3:
  90.                 {
  91.                     ShowPlayerDialog ( playerid , DIALOG_MOCHILA3, DIALOG_STYLE_LIST, "Guardar Arma", "Inventório 1\nIntentório 2", "Guardar", "Cancelar" );
  92.                 }
  93.                 case 4:
  94.                 {
  95.                     ShowPlayerDialog ( playerid , DIALOG_MOCHILA4, DIALOG_STYLE_INPUT, "Guardar Dinheiro", "Digite a quantia que deseja guardar:", "Guardar", "Cancelar" );
  96.                 }
  97.                 case 5:
  98.                 {
  99.                     if ( strcmp ( DOF2_GetString ( StringMochila , "Skin") , "Nenhuma", true ) == 0 )
  100.                         return SendClientMessage ( playerid , -1 , "Você não possui nenhuma Skin guardada!" ) ;
  101.                     if ( strcmp ( DOF2_GetString ( StringMochila , "Skin") , "Nenhuma", false ) == 0 )
  102.                     {
  103.                         format ( String2 , sizeof ( String2 ) , "Você tem certeza que deseja usar a Skin que guardou ( %d )?", DOF2_GetString ( StringMochila , "Skin" ) );
  104.                         ShowPlayerDialog ( playerid , DIALOG_MOCHILA5 , DIALOG_STYLE_MSGBOX , "Usar Skin" , String2 , "Usar" , "Cencelar");
  105.                     }
  106.                 }
  107.                 case 6:
  108.                 {
  109.                     ShowPlayerDialog ( playerid , DIALOG_MOCHILA6, DIALOG_STYLE_LIST, "Pegar Arma", "Inventório 1\nIntentório 2", "Pegar", "Cancelar" );
  110.                 }
  111.                 case 7:
  112.                 {
  113.                     format ( String2 , sizeof ( String2 ) , "Você deseja pegar quanto em dinheiro na sua mochila ( R$:%d )?", DOF2_GetString ( StringMochila , "Dinheiro" ) );
  114.                     ShowPlayerDialog ( playerid , DIALOG_MOCHILA7 , DIALOG_STYLE_INPUT , "Pegar Dinheiro" , String2 , "Pegar" , "Cencelar");
  115.                 }
  116.             }
  117.             return true;
  118.         }
  119.         if ( dialogid == DIALOG_MOCHILA2 )
  120.         {
  121.             if ( strcmp ( DOF2_GetString ( StringMochila , "Skin") , "Nenhuma", false ) == 0 )
  122.                 return SendClientMessage ( playerid , 0xEE5C42, "Você já possui uma Skin guardada!" );
  123.             if ( response )
  124.                 {
  125.                     DOF2_SetInt ( StringMochila , "Skin" , GetPlayerSkin ( playerid ) ) ;
  126.                     DOF2_SaveFile ();
  127.                     SendClientMessage ( playerid, 0x00FF7F, "Roupa Guardada com Sucesso!" ) ;
  128.                     SetPlayerSkin ( playerid, 0 ) ;
  129.                 }
  130.         }
  131.         return true;
  132.     }
  133.    
  134.     if ( dialogid ==  DIALOG_MOCHILA3 )
  135.     {
  136.         if ( response )
  137.         {
  138.             switch ( listitem )
  139.             {
  140.                 case 0:
  141.                 {
  142.                     if ( strcmp ( DOF2_GetString ( StringMochila , "Arma1") , "Nenhuma", false ) == 0 )
  143.                         return SendClientMessage ( playerid , 0xEE5C42, "Você já possui uma arma guardada nesse inventório!" );
  144.                     new
  145.                         NomeArma [ 30 ];
  146.                     GetWeaponName( GetPlayerWeapon ( playerid ) , NomeArma , sizeof ( NomeArma ) ) ;
  147.                     if ( GetPlayerWeapon ( playerid ) == 0 )
  148.                         return SendClientMessage ( playerid , -1 , "Você não pode guardar sua mão na mochila." ) ;
  149.                     format ( String2 , sizeof ( String2 ) , "Você tem certeza que deseja guardar sua %s?", NomeArma );
  150.                     ShowPlayerDialog ( playerid , DIALOG_MOCHILA8 , DIALOG_STYLE_MSGBOX , "Guardar Arma" , String2 , "Guardar" , "Cencelar");
  151.                 }
  152.                 case 1:
  153.                 {
  154.                     if ( strcmp ( DOF2_GetString ( StringMochila , "Arma2") , "Nenhuma", false ) == 0 )
  155.                         return SendClientMessage ( playerid , 0xEE5C42, "Você já possui uma arma guardada nesse inventório!" );
  156.                     if ( GetPlayerWeapon ( playerid ) == 0 )
  157.                         return SendClientMessage ( playerid , -1 , "Você não pode guardar sua mão na mochila." ) ;
  158.                     new
  159.                         NomeArma [ 30 ];
  160.                     GetWeaponName( GetPlayerWeapon ( playerid ) , NomeArma , sizeof ( NomeArma ) ) ;
  161.                     format ( String2 , sizeof ( String2 ) , "Você tem certeza que deseja guardar sua %s?", NomeArma );
  162.                     ShowPlayerDialog ( playerid , DIALOG_MOCHILA9 , DIALOG_STYLE_MSGBOX , "Guardar Arma" , String2 , "Guardar" , "Cencelar");
  163.                 }
  164.             }
  165.         }
  166.         return true;
  167.     }
  168.     if ( dialogid == DIALOG_MOCHILA4 )
  169.     {
  170.         if ( response )
  171.         {
  172.             if ( ! IsNumeric ( inputtext ) )
  173.                 return SendClientMessage ( playerid , 0xEE5C42 , "Somente números!" ) , ShowPlayerDialog ( playerid , DIALOG_MOCHILA4, DIALOG_STYLE_INPUT, "Guardar Dinheiro", "Digite a quantia que deseja guardar:", "Guardar", "Cancelar" );
  174.             if ( GetPlayerMoney ( playerid ) < strval ( inputtext ) )
  175.                 return  SendClientMessage ( playerid ,0xB22222AA , "Você não tem está quantia em dinheiro ! ") ;
  176.             DOF2_SetInt ( StringMochila , "Dinheiro" , DOF2_GetInt ( StringMochila , "Dinheiro" ) + strval ( inputtext ) ) ;
  177.             DOF2_SaveFile ();
  178.             format ( String2 , sizeof ( String2 ) , "Você guardou R$%d na sua mochila. Você possui guardado R$%d" , strval ( inputtext ) , DOF2_GetInt ( StringMochila , "Dinheiro" ) );
  179.             SendClientMessage ( playerid , 0x00FF00AA , String2 ) ;
  180.             GivePlayerMoney ( playerid , - strval ( inputtext ) ) ;
  181.         }
  182.         return true;
  183.     }
  184.     if ( dialogid == DIALOG_MOCHILA5 )
  185.     {
  186.         if ( response )
  187.         {
  188.             format ( String2 , sizeof ( String2 ) , "Você colocou a Skin %d que estava em seu inventório." , DOF2_GetInt ( StringMochila , "Skin" ) );
  189.             SendClientMessage ( playerid , 0x00FF00AA , String2 ) ;
  190.             SetPlayerSkin ( playerid , DOF2_GetInt ( StringMochila , "Skin" ) ) ;
  191.             DOF2_SetString ( StringMochila , "Skin" , "Nenhuma" ) ;
  192.             DOF2_SaveFile();
  193.         }
  194.         return true;
  195.     }
  196.    
  197.     if ( dialogid == DIALOG_MOCHILA6 )
  198.     {
  199.         if ( response )
  200.         {
  201.             switch ( listitem )
  202.             {
  203.                 case 0:
  204.                 {
  205.                     if ( strcmp ( DOF2_GetString ( StringMochila , "Arma1") , "Nenhuma", true ) == 0 )
  206.                         return SendClientMessage ( playerid , 0xEE5C42, "Você não possui uma arma guardada nesse inventório!" );
  207.                     new
  208.                         NomeArma [ 30 ];
  209.                     GetWeaponName( GetPlayerWeapon ( playerid ) , NomeArma , sizeof ( NomeArma ) ) ;
  210.                     format ( String2 , sizeof ( String2 ) , "Você tem certeza que deseja pegar sua %s?", NomeArma );
  211.                     ShowPlayerDialog ( playerid , DIALOG_MOCHILA10 , DIALOG_STYLE_MSGBOX , "Pegar Arma" , String2 , "Pegar" , "Cencelar");
  212.                 }
  213.                 case 1:
  214.                 {
  215.                     if ( strcmp ( DOF2_GetString ( StringMochila , "Arma2") , "Nenhuma", true ) == 0 )
  216.                         return SendClientMessage ( playerid , 0xEE5C42, "Você não possui uma arma guardada nesse inventório!" );
  217.                     new
  218.                         NomeArma [ 30 ];
  219.                     GetWeaponName( GetPlayerWeapon ( playerid ) , NomeArma , sizeof ( NomeArma ) ) ;
  220.                     format ( String2 , sizeof ( String2 ) , "Você tem certeza que deseja pegar sua %s?", NomeArma );
  221.                     ShowPlayerDialog ( playerid , DIALOG_MOCHILA11 , DIALOG_STYLE_MSGBOX , "Pegar Arma" , String2 , "Pegar" , "Cencelar");
  222.                 }
  223.             }
  224.         }
  225.         return true;
  226.     }
  227.  
  228.     if ( dialogid == DIALOG_MOCHILA7 )
  229.     {
  230.         if ( response )
  231.         {
  232.             if ( ! IsNumeric ( inputtext ) )
  233.             {
  234.                 SendClientMessage ( playerid , 0xEE5C42 , "Somente números!" ) ;
  235.                 format ( String2 , sizeof ( String2 ) , "Você deseja pegar quanto em dinheiro na sua mochila ( R$:%d )?", DOF2_GetString ( StringMochila , "Dinheiro" ) );
  236.                 ShowPlayerDialog ( playerid , DIALOG_MOCHILA7 , DIALOG_STYLE_INPUT , "Pegar Dinheiro" , String2 , "Pegar" , "Cencelar");
  237.             }
  238.             if ( DOF2_GetInt ( StringMochila , "Dinheiro" ) < strval ( inputtext ) )
  239.             {
  240.                 SendClientMessage ( playerid ,0xB22222AA , "Você não tem está quantia em dinheiro ! ") ;
  241.                 format ( String2 , sizeof ( String2 ) , "Você deseja pegar quanto em dinheiro na sua mochila ( R$:%d )?", DOF2_GetString ( StringMochila , "Dinheiro" ) );
  242.                 ShowPlayerDialog ( playerid , DIALOG_MOCHILA7 , DIALOG_STYLE_INPUT , "Pegar Dinheiro" , String2 , "Pegar" , "Cencelar");
  243.             }
  244.             DOF2_SetInt ( StringMochila , "Dinheiro" , DOF2_GetInt ( StringMochila , "Dinheiro" ) - strval ( inputtext ) ) ;
  245.             DOF2_SaveFile ();
  246.             format ( String2 , sizeof ( String2 ) , "Você pegou R$%d na sua mochila. Você possui guardado R$%d" , strval ( inputtext ) , DOF2_GetInt ( StringMochila , "Dinheiro" ) );
  247.             SendClientMessage ( playerid , 0x00FF00AA , String2 ) ;
  248.             GivePlayerMoney ( playerid , GetPlayerMoney ( playerid ) + strval ( inputtext ) ) ;
  249.         }
  250.         return true;
  251.     }
  252.    
  253.     if ( dialogid == DIALOG_MOCHILA8 )
  254.     {
  255.         if ( response )
  256.         {
  257.             new
  258.                 NomeArma [ 30 ];
  259.             GetWeaponName( GetPlayerWeapon ( playerid ) , NomeArma , sizeof ( NomeArma ) ) ;
  260.             format ( String2 , sizeof ( String2 ) , "Você colocou a arma %s em sua mochila." , NomeArma );
  261.             SendClientMessage ( playerid , 0x00FF00AA , String2 ) ;
  262.             new
  263.                 Armas [ 13 ] [ 2 ] ;
  264.  
  265.             for ( new i = 0; i < 13; ++ i)
  266.             {
  267.                 GetPlayerWeaponData ( playerid , i , Armas [ i ] [ 0 ] , Armas [ i ] [ 1 ] ) ;
  268.                 DOF2_SetInt ( StringMochila , "Arma2" ,  GetPlayerWeapon ( playerid ) ) ;
  269.                 DOF2_SetString ( StringMochila , "Municao2" ,  Armas [ i ] [ 1 ] ) ;
  270.                 DOF2_SaveFile();
  271.             }
  272.             RemovePlayerWeapon ( playerid , GetPlayerWeapon ( playerid ) ) ;
  273.         }
  274.         return true;
  275.     }
  276.     if ( dialogid == DIALOG_MOCHILA9 )
  277.     {
  278.         if ( response )
  279.         {
  280.             new
  281.                 NomeArma2 [ 30 ];
  282.             GetWeaponName( GetPlayerWeapon ( playerid ) , NomeArma2 , sizeof ( NomeArma2 ) ) ;
  283.             format ( String2 , sizeof ( String2 ) , "Você colocou a arma %s em sua mochila." , NomeArma2 );
  284.             SendClientMessage ( playerid , 0x00FF00AA , String2 ) ;
  285.             new
  286.                 Armas2 [ 13 ] [ 2 ] ;
  287.  
  288.             for ( new i = 0; i < 13; ++ i)
  289.             {
  290.                 GetPlayerWeaponData ( playerid , i , Armas2 [ i ] [ 0 ] , Armas2 [ i ] [ 1 ] ) ;
  291.                 DOF2_SetInt ( StringMochila , "Arma2" ,  GetPlayerWeapon ( playerid ) ) ;
  292.                 DOF2_SetString ( StringMochila , "Municao2" ,  Armas [ i ] [ 1 ] ) ;
  293.                 DOF2_SaveFile();
  294.             }
  295.             RemovePlayerWeapon ( playerid , GetPlayerWeapon ( playerid ) ) ;
  296.         }
  297.         return true;
  298.     }
  299.     if ( dialogid == DIALOG_MOCHILA10 )
  300.     {
  301.         if ( response )
  302.         {
  303.             new
  304.                 NomeArma3 [ 30 ];
  305.             GetWeaponName( DOF2_GetInt ( StringMochila , "Arma1" ) , NomeArma3 , sizeof ( NomeArma3 ) ) ;
  306.             format ( String2 , sizeof ( String2 ) , "Você pegou a arma %s em sua mochila." , NomeArma3 );
  307.             SendClientMessage ( playerid , 0x00FF00AA , String2 ) ;
  308.             GivePlayerWeapon ( playerid , DOF2_GetInt ( StringMochila , "Arma1" ), DOF2_GetInt ( StringMochila , "Municao1" ) ) ;
  309.             DOF2_SetString ( StringMochila , "Arma1", "Nenhuma" ) ;
  310.             DOF2_SetString ( StringMochila , "Municao1", "Nenhuma" ) ;
  311.             DOF2_SaveFile ();
  312.         }
  313.         return true;
  314.     }
  315.     if ( dialogid == DIALOG_MOCHILA11 )
  316.     {
  317.         if ( response )
  318.         {
  319.             new
  320.                 NomeArma4 [ 30 ];
  321.             GetWeaponName( DOF2_GetInt ( StringMochila , "Arma2" ) , NomeArma4 , sizeof ( NomeArma4 ) ) ;
  322.             format ( String2 , sizeof ( String2 ) , "Você pegou a arma %s em sua mochila." , NomeArma4 );
  323.             SendClientMessage ( playerid , 0x00FF00AA , String2 ) ;
  324.             GivePlayerWeapon ( playerid , DOF2_GetInt ( StringMochila , "Arma2" ), DOF2_GetInt ( StringMochila , "Municao2" ) ) ;
  325.             DOF2_SetString ( StringMochila , "Arma2", "Nenhuma" ) ;
  326.             DOF2_SetString ( StringMochila , "Municao2", "Nenhuma" ) ;
  327.             DOF2_SaveFile ();
  328.         }
  329.         return true;
  330.     }
  331.     return true;
  332. }
  333.  
  334. PlayerName ( playerid )
  335. {
  336.     new Nome [ 24 ] ;
  337.     GetPlayerName ( playerid , Nome, sizeof (Nome) );
  338.     return Nome;
  339. }
  340.  
  341. IsNumeric(const string[]) // by Mike (MP2)
  342. {
  343.     for (new i = 0, j = strlen(string); i < j; i++)
  344.     {
  345.  
  346.         if (string[i] > '9' || string[i] < '0') return false;
  347.  
  348.     }
  349.     return true;
  350. }
  351.  
  352. RemovePlayerWeapon(playerid, weaponid) // by Mike (MP2)
  353. {
  354.     new pWeaponData[13][2];
  355.     for (new i = 0; i < 13; i++)
  356.     {
  357.         GetPlayerWeaponData(playerid, i, pWeaponData[i][0], pWeaponData[i][1]);
  358.     }
  359.  
  360.     ResetPlayerWeapons(playerid);
  361.     for(new i=0; i<13; i++)
  362.     {
  363.         if(pWeaponData[i][0] != 0 && pWeaponData[i][0] != weaponid)
  364.         {
  365.             GivePlayerWeapon(playerid, pWeaponData[i][0], pWeaponData[i][1]);
  366.         }
  367.     }
  368.     return 0;
  369. }
Advertisement
Add Comment
Please, Sign In to add comment