Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Lemon Bank
- coded by LemonPunch.
- NOTE : You need to create a folder named 'lemonbank' at scriptfiles folder!
- */
- #include <a_samp>
- #include <YSI\y_ini>
- #include <YSI\y_commands>
- #define DIALOG_BANK (898)
- // #define DIALOG_BALANCE (899)
- #define DIALOG_DEPOSIT (901)
- #define DIALOG_WITHDRAW (903)
- #define DIALOG_BANK2 (8989)
- #define DIALOG_BANK3 (8990)
- new
- bankMoney[ MAX_PLAYERS ],
- bool: bAcc[ MAX_PLAYERS char ];
- forward parsePlayerBank( playerid, name[ ], value[ ] );
- public parsePlayerBank( playerid, name[ ], value[ ] ) {
- INI_Int( "bankMoney", bankMoney[ playerid ] );
- return true;
- }
- stock bankFile( playerid ) {
- new
- file[ 72 ],
- name[ 24 ];
- GetPlayerName( playerid, name, 24 );
- format( file, sizeof ( file ), "lemonpunch/%s.ini", name );
- return file;
- }
- stock isNumeric( const str[ ] ) {
- new
- i = 0,
- j = strlen( str );
- for ( ; i < j; ++ i ) {
- if ( str[ i ] < '0' || str[ i ] > '9' ) {
- return false;
- }
- }
- return true;
- }
- public OnPlayerConnect( playerid ) {
- if ( fexist( bankFile( playerid ) ) ) {
- INI_ParseFile( bankFile( playerid ), "parsePlayerBank", .bExtra = true, .extra = playerid );
- bAcc{ playerid } = true;
- }
- else {
- bAcc{ playerid } = false;
- }
- return true;
- }
- public OnPlayerDisconnect( playerid, reason ) {
- if ( bAcc{ playerid } ) {
- new
- INI: file = INI_Open( bankFile( playerid ) );
- INI_WriteInt( file, "bankMoney", bankMoney[ playerid ] );
- INI_Close( file );
- }
- return 1;
- }
- CMD:bank( playerid, params[ ] ) {
- if ( !bAcc{ playerid } ) {
- ShowPlayerDialog( playerid, DIALOG_BANK2, DIALOG_STYLE_MSGBOX, "{FFFFFF}Bank Account",
- "{FFFFFF}You don't have a bank account yet.\nWould you like to create a bank account?", "Yes", "No" );
- return true;
- }
- else {
- ShowPlayerDialog( playerid, DIALOG_BANK, DIALOG_STYLE_LIST, "{FFFFFF}Bank Account",
- "{FFFFFF}Balance\nDeposit\nWithdraw", "Select", "Cancel" );
- return true;
- }
- }
- public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] ) {
- switch ( dialogid ) {
- case DIALOG_BANK2 : {
- if ( response ) {
- new
- INI:file = INI_Open( bankFile( playerid ) );
- INI_WriteInt( file, "bankMoney", 0 );
- INI_Close( file );
- bAcc{ playerid } = true;
- ShowPlayerDialog( playerid, DIALOG_BANK3, DIALOG_STYLE_MSGBOX, "{FFFFFF}Bank Account",
- "{FFFFFF}Your bank account has been created. Would you like to deposit some of your money now?", "Yes", "No" );
- }
- }
- case DIALOG_BANK3 : {
- if ( response ) {
- ShowPlayerDialog( playerid, DIALOG_BANK, DIALOG_STYLE_LIST, "{FFFFFF}Bank Account",
- "{FFFFFF}Balance\nDeposit\nWithdraw", "Select", "Cancel" );
- }
- }
- case DIALOG_BANK : {
- if ( response ) {
- new
- str[ 250 ];
- switch ( listitem ) {
- case 0 : { // Balance
- format( str, sizeof ( str ), "{FFFFFF}Bank Balance : {33FF33}$%i", bankMoney[ playerid ] );
- ShowPlayerDialog( playerid, DIALOG_BANK3, DIALOG_STYLE_MSGBOX, "{FFFFFF}Balance", str, "Return", "Exit" );
- }
- case 1 : { // Deposit
- format( str, sizeof ( str ),
- "{FFFFFF}Write the amount of money that you want to deposit at the blank field below! \n\n\
- {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
- ShowPlayerDialog( playerid, DIALOG_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit",
- str, "Deposit", "Cancel" );
- }
- case 2 : { // Withdraw
- format( str, sizeof ( str ),
- "{FFFFFF}Write the amount of money that you want to withdraw at the blank field below! \n\n\
- {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
- ShowPlayerDialog( playerid, DIALOG_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw",
- str, "Withdraw", "Cancel" );
- }
- }
- }
- }
- case DIALOG_DEPOSIT : {
- if ( response ) {
- new
- str[ 300 ];
- if ( !isNumeric( inputtext ) ) {
- format( str, sizeof ( str ),
- "{FF3333}ERROR: {FFFFFF}The input must be a number! \n\
- {FFFFFF}Write the amount of money that you want to deposit at the blank field below! \n\n\
- {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
- ShowPlayerDialog( playerid, DIALOG_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit",
- str, "Deposit", "Cancel" );
- return true;
- }
- if ( strval( inputtext ) < 0 || strval( inputtext ) > 10000000 ) {
- format( str, sizeof ( str ),
- "{FF3333}ERROR: {FFFFFF}Valid amount : 0 - 10000000 < 10 million >! \n\
- {FFFFFF}Write the amount of money that you want to deposit at the blank field below! \n\n\
- {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
- ShowPlayerDialog( playerid, DIALOG_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit",
- str, "Deposit", "Cancel" );
- return true;
- }
- if ( strval( inputtext ) > GetPlayerMoney( playerid ) ) {
- format( str, sizeof ( str ),
- "{FF3333}ERROR: {FFFFFF}You don't have that much money! \n\
- {FFFFFF}Write the amount of money that you want to deposit at the blank field below! \n\n\
- {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
- ShowPlayerDialog( playerid, DIALOG_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit",
- str, "Deposit", "Cancel" );
- return true;
- }
- bankMoney[ playerid ] = ( bankMoney[ playerid ] + strval( inputtext ) );
- new
- INI: file = INI_Open( bankFile( playerid ) );
- INI_WriteInt( file, "bankMoney", bankMoney[ playerid ] );
- INI_Close( file );
- format( str, sizeof ( str ), "{FFFFFF}You have deposited {33FF33}$%i {FFFFFF}to your bank account! \n\n\
- {FFFFFF}Bank Balance : {33FF33}$%i", strval( inputtext ), bankMoney[ playerid ] );
- GivePlayerMoney( playerid, - strval( inputtext ) );
- ShowPlayerDialog( playerid, DIALOG_BANK3, DIALOG_STYLE_MSGBOX, "{FFFFFF}Deposit", str, "Return", "Exit" );
- }
- }
- case DIALOG_WITHDRAW : {
- if ( response ) {
- new
- str[ 300 ];
- if ( !isNumeric( inputtext ) ) {
- format( str, sizeof ( str ),
- "{FF3333}ERROR: {FFFFFF}The input must be a number! \n\
- {FFFFFF}Write the amount of money that you want to withdraw at the blank field below! \n\n\
- {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
- ShowPlayerDialog( playerid, DIALOG_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw",
- str, "Withdraw", "Cancel" );
- return true;
- }
- if ( strval( inputtext ) < 0 || strval( inputtext ) > 10000000 ) {
- format( str, sizeof ( str ),
- "{FF3333}ERROR: {FFFFFF}Valid amount : 0 - 10000000 < 10 million >! \n\
- {FFFFFF}Write the amount of money that you want to withdraw at the blank field below! \n\n\
- {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
- ShowPlayerDialog( playerid, DIALOG_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw",
- str, "Deposit", "Cancel" );
- return true;
- }
- if ( strval( inputtext ) > bankMoney[ playerid ] ) {
- format( str, sizeof ( str ),
- "{FF3333}ERROR: {FFFFFF}You don't have that much money in your bank account! \n\
- {FFFFFF}Write the amount of money that you want to withdraw at the blank field below! \n\n\
- {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
- ShowPlayerDialog( playerid, DIALOG_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw",
- str, "Withdraw", "Cancel" );
- return true;
- }
- bankMoney[ playerid ] = ( bankMoney[ playerid ] - strval( inputtext ) );
- new
- INI: file = INI_Open( bankFile( playerid ) );
- INI_WriteInt( file, "bankMoney", bankMoney[ playerid ] );
- INI_Close( file );
- format( str, sizeof ( str ), "{FFFFFF}You have withdrawn {33FF33}$%i {FFFFFF}from your bank account! \n\n\
- {FFFFFF}Bank Balance : {33FF33}$%i", strval( inputtext ), bankMoney[ playerid ] );
- GivePlayerMoney( playerid, strval( inputtext ) );
- ShowPlayerDialog( playerid, DIALOG_BANK3, DIALOG_STYLE_MSGBOX, "{FFFFFF}Withdraw", str, "Return", "Exit" );
- }
- }
- }
- return true;
- }
Add Comment
Please, Sign In to add comment