Pages

quarta-feira, 18 de dezembro de 2013

[FS]Sistema de Mochila

Eaí pessoal do Samp Extreme, tranquilo?
Atualmente, estou criando um servidor RPG, e tive a ideia de fazer um sistema de mochila, que salva arma, skin e dinheiro. Mas isso é na versão v1.0.
Futuramente terá mais funções...
( Tempo fazendo : 40 minutos )
( É necessário fazer a pasta ''Mochilas'' no scriptfiles )

Por enquanto ele só salva 2 armas, 1 skin e a quantidade que quiser de dinheiro ( ... )
Não testei o FilterScript, caso tenha algum bug, informar via Inbox ou pelo tópico mesmo...
Espero que gostem do FilterScript, essa é a versão v1.0, como dito, futuramente terá mais, isso talvez dependam das dicas que você deem também 

Codigo :

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



Creditos : Julio Cardozo 

4 comentários: