Guest User

greenBank - coded by greentarch

a guest
Feb 24th, 2013
974
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.15 KB | None | 0 0
  1. /*
  2.     greenBank
  3.         coded by greentarch.
  4.        
  5.     NOTE : You need to create a folder named 'greenBank' at scriptfiles folder!
  6. */
  7.  
  8. #include < a_samp >
  9. #include < YSI\y_ini >
  10. #include < YSI\y_commands >
  11.  
  12. #define DIALOG_BANK     (898)
  13. // #define DIALOG_BALANCE  (899)
  14. #define DIALOG_DEPOSIT  (901)
  15. #define DIALOG_WITHDRAW (903)
  16. #define DIALOG_BANK2    (8989)
  17. #define DIALOG_BANK3    (8990)
  18.  
  19. new
  20.     bankMoney[ MAX_PLAYERS ],
  21.     bool: bAcc[ MAX_PLAYERS char ];
  22.    
  23. forward parsePlayerBank( playerid, name[ ], value[ ] );
  24. public parsePlayerBank( playerid, name[ ], value[ ] ) {
  25.     INI_Int( "bankMoney", bankMoney[ playerid ] );
  26.     return true;
  27. }
  28.  
  29. stock bankFile( playerid ) {
  30.     new
  31.         file[ 72 ],
  32.         name[ 24 ];
  33.     GetPlayerName( playerid, name, 24 );
  34.     format( file, sizeof ( file ), "greenBank/%s.ini", name );
  35.     return file;
  36. }
  37.  
  38. stock isNumeric( const str[ ] ) {
  39.     new
  40.         i = 0,
  41.         j = strlen( str );
  42.     for ( ; i < j; ++ i ) {
  43.         if ( str[ i ] < '0' || str[ i ] > '9' ) {
  44.             return false;
  45.         }
  46.     }
  47.     return true;
  48. }
  49.  
  50. public OnPlayerConnect( playerid ) {
  51.     if ( fexist( bankFile( playerid ) ) ) {
  52.         INI_ParseFile( bankFile( playerid ), "parsePlayerBank", .bExtra = true, .extra = playerid );
  53.         bAcc{ playerid } = true;
  54.     }
  55.     else {
  56.         bAcc{ playerid } = false;
  57.     }
  58.     return true;
  59. }
  60.  
  61. public OnPlayerDisconnect( playerid, reason ) {
  62.     if ( bAcc{ playerid } ) {
  63.         new
  64.             INI: file = INI_Open( bankFile( playerid ) );
  65.         INI_WriteInt( file, "bankMoney", bankMoney[ playerid ] );
  66.         INI_Close( file );
  67.     }
  68.     return 1;
  69. }
  70.  
  71.  
  72. CMD:bank( playerid, params[ ] ) {
  73.     if ( !bAcc{ playerid } ) {
  74.         ShowPlayerDialog( playerid, DIALOG_BANK2, DIALOG_STYLE_MSGBOX, "{FFFFFF}Bank Account",
  75.         "{FFFFFF}You don't have a bank account yet.\nWould you like to create a bank account?", "Yes", "No" );
  76.         return true;
  77.     }
  78.     else {
  79.         ShowPlayerDialog( playerid, DIALOG_BANK, DIALOG_STYLE_LIST, "{FFFFFF}Bank Account",
  80.         "{FFFFFF}Balance\nDeposit\nWithdraw", "Select", "Cancel" );
  81.         return true;
  82.     }
  83. }
  84.  
  85. public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] ) {
  86.     switch ( dialogid ) {
  87.         case DIALOG_BANK2 : {
  88.             if ( response ) {
  89.                 new
  90.                     INI:file = INI_Open( bankFile( playerid ) );
  91.                 INI_WriteInt( file, "bankMoney", 0 );
  92.                 INI_Close( file );
  93.                 bAcc{ playerid } = true;
  94.                 ShowPlayerDialog( playerid, DIALOG_BANK3, DIALOG_STYLE_MSGBOX, "{FFFFFF}Bank Account",
  95.                 "{FFFFFF}Your bank account has been created. Would you like to deposit some of your money now?", "Yes", "No" );
  96.             }
  97.         }
  98.         case DIALOG_BANK3 : {
  99.             if ( response ) {
  100.                 ShowPlayerDialog( playerid, DIALOG_BANK, DIALOG_STYLE_LIST, "{FFFFFF}Bank Account",
  101.                 "{FFFFFF}Balance\nDeposit\nWithdraw", "Select", "Cancel" );
  102.             }
  103.         }
  104.         case DIALOG_BANK : {
  105.             if ( response ) {
  106.                 new
  107.                     str[ 250 ];
  108.                 switch ( listitem ) {
  109.                     case 0 : { // Balance
  110.                         format( str, sizeof ( str ), "{FFFFFF}Bank Balance : {33FF33}$%i", bankMoney[ playerid ] );
  111.                         ShowPlayerDialog( playerid, DIALOG_BANK3, DIALOG_STYLE_MSGBOX, "{FFFFFF}Balance", str, "Return", "Exit" );
  112.                     }
  113.                     case 1 : { // Deposit
  114.                         format( str, sizeof ( str ),
  115.                         "{FFFFFF}Write the amount of money that you want to deposit at the blank field below! \n\n\
  116.                         {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
  117.                         ShowPlayerDialog( playerid, DIALOG_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit",
  118.                         str, "Deposit", "Cancel" );
  119.                     }
  120.                     case 2 : { // Withdraw
  121.                         format( str, sizeof ( str ),
  122.                         "{FFFFFF}Write the amount of money that you want to withdraw at the blank field below! \n\n\
  123.                         {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
  124.                         ShowPlayerDialog( playerid, DIALOG_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw",
  125.                         str, "Withdraw", "Cancel" );
  126.                     }
  127.                 }
  128.             }
  129.         }
  130.         case DIALOG_DEPOSIT : {
  131.             if ( response ) {
  132.                 new
  133.                     str[ 300 ];
  134.                 if ( !isNumeric( inputtext ) ) {
  135.                     format( str, sizeof ( str ),
  136.                     "{FF3333}ERROR: {FFFFFF}The input must be a number! \n\
  137.                     {FFFFFF}Write the amount of money that you want to deposit at the blank field below! \n\n\
  138.                     {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
  139.                     ShowPlayerDialog( playerid, DIALOG_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit",
  140.                     str, "Deposit", "Cancel" );
  141.                     return true;
  142.                 }
  143.                 if ( strval( inputtext ) < 0 || strval( inputtext ) > 10000000 ) {
  144.                     format( str, sizeof ( str ),
  145.                     "{FF3333}ERROR: {FFFFFF}Valid amount : 0 - 10000000 < 10 million >! \n\
  146.                     {FFFFFF}Write the amount of money that you want to deposit at the blank field below! \n\n\
  147.                     {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
  148.                     ShowPlayerDialog( playerid, DIALOG_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit",
  149.                     str, "Deposit", "Cancel" );
  150.                     return true;
  151.                 }
  152.                 if ( strval( inputtext ) > GetPlayerMoney( playerid ) ) {
  153.                     format( str, sizeof ( str ),
  154.                     "{FF3333}ERROR: {FFFFFF}You don't have that much money! \n\
  155.                     {FFFFFF}Write the amount of money that you want to deposit at the blank field below! \n\n\
  156.                     {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
  157.                     ShowPlayerDialog( playerid, DIALOG_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit",
  158.                     str, "Deposit", "Cancel" );
  159.                     return true;
  160.                 }
  161.                 bankMoney[ playerid ] = ( bankMoney[ playerid ] + strval( inputtext ) );
  162.                 new
  163.                     INI: file = INI_Open( bankFile( playerid ) );
  164.                 INI_WriteInt( file, "bankMoney", bankMoney[ playerid ] );
  165.                 INI_Close( file );
  166.                 format( str, sizeof ( str ), "{FFFFFF}You have deposited {33FF33}$%i {FFFFFF}to your bank account! \n\n\
  167.                 {FFFFFF}Bank Balance : {33FF33}$%i", strval( inputtext ), bankMoney[ playerid ] );
  168.                 GivePlayerMoney( playerid, - strval( inputtext ) );
  169.                 ShowPlayerDialog( playerid, DIALOG_BANK3, DIALOG_STYLE_MSGBOX, "{FFFFFF}Deposit", str, "Return", "Exit" );
  170.             }
  171.         }
  172.         case DIALOG_WITHDRAW : {
  173.             if ( response ) {
  174.                 new
  175.                     str[ 300 ];
  176.                 if ( !isNumeric( inputtext ) ) {
  177.                     format( str, sizeof ( str ),
  178.                     "{FF3333}ERROR: {FFFFFF}The input must be a number! \n\
  179.                     {FFFFFF}Write the amount of money that you want to withdraw at the blank field below! \n\n\
  180.                     {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
  181.                     ShowPlayerDialog( playerid, DIALOG_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw",
  182.                     str, "Withdraw", "Cancel" );
  183.                     return true;
  184.                 }
  185.                 if ( strval( inputtext ) < 0 || strval( inputtext ) > 10000000 ) {
  186.                     format( str, sizeof ( str ),
  187.                     "{FF3333}ERROR: {FFFFFF}Valid amount : 0 - 10000000 < 10 million >! \n\
  188.                     {FFFFFF}Write the amount of money that you want to withdraw at the blank field below! \n\n\
  189.                     {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
  190.                     ShowPlayerDialog( playerid, DIALOG_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw",
  191.                     str, "Deposit", "Cancel" );
  192.                     return true;
  193.                 }
  194.                 if ( strval( inputtext ) > bankMoney[ playerid ] ) {
  195.                     format( str, sizeof ( str ),
  196.                     "{FF3333}ERROR: {FFFFFF}You don't have that much money in your bank account! \n\
  197.                     {FFFFFF}Write the amount of money that you want to withdraw at the blank field below! \n\n\
  198.                     {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
  199.                     ShowPlayerDialog( playerid, DIALOG_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw",
  200.                     str, "Withdraw", "Cancel" );
  201.                     return true;
  202.                 }
  203.                 bankMoney[ playerid ] = ( bankMoney[ playerid ] - strval( inputtext ) );
  204.                 new
  205.                     INI: file = INI_Open( bankFile( playerid ) );
  206.                 INI_WriteInt( file, "bankMoney", bankMoney[ playerid ] );
  207.                 INI_Close( file );
  208.                 format( str, sizeof ( str ), "{FFFFFF}You have withdrawn {33FF33}$%i {FFFFFF}from your bank account! \n\n\
  209.                 {FFFFFF}Bank Balance : {33FF33}$%i", strval( inputtext ), bankMoney[ playerid ] );
  210.                 GivePlayerMoney( playerid, strval( inputtext ) );
  211.                 ShowPlayerDialog( playerid, DIALOG_BANK3, DIALOG_STYLE_MSGBOX, "{FFFFFF}Withdraw", str, "Return", "Exit" );
  212.             }
  213.         }
  214.     }
  215.     return true;
  216. }
Advertisement
Add Comment
Please, Sign In to add comment