//===== Hercules Script ======================================= //= Automated Teller Machine Script //===== By: ================================================== //= Patskie (Creator) //= Spanish Translation by Easycore //===== Current Version: ===================================== //= 2.0 //===== Description: ========================================= //= Enhanced atm system //===== Additional Comments: ================================= //= Do not remove the credits //= 1.0 - Initial Release //= 2.0 - Massive Update! Check here! //= - http://hercules.ws/board/topic/402-atm-system/ //============================================================ - script BankSystem -1,{ OnInit: bindatcmd "atm", strnpcinfo( 3 ) + "::OnBankTransaction"; .npc$ = "[ ^996600ATM System^000000 ]"; query_sql "CREATE TABLE IF NOT EXISTS `bank` ( `account_id` INT NOT NULL DEFAULT '0', `money` BIGINT NOT NULL DEFAULT '0', PRIMARY KEY( `account_id` ) ) ENGINE=MyISAM"; .interest_rate = 1000; // 1000 zeny interest rate every day .number_of_bank_account_reminder = 5; // times the npc will inform the user about their account number end; OnClock0000: query_sql "UPDATE `bank` SET `money` = `money` - '" + .interest_rate + "' WHERE `money` > '" + .interest_rate + "'"; end; OnPCLoginEvent: if ( #activated ) { if ( #bank_account_reminder < .number_of_bank_account_reminder ) { #bank_account_reminder++; message strcharinfo( 0 ), "Your bank account number is " + getcharid( 3 ) + ". Please remember this so you can use our ATM system. Thank you!"; } end; } #activated = 1; query_sql "INSERT INTO `bank` ( `account_id`, `money` ) VALUES ( '" + getcharid( 3 ) + "', '0' )"; message strcharinfo( 0 ), "Your account has activated the ATM system of this server"; end; OnBankTransaction: mes .npc$; mes "Hola ^FF0000" + strcharinfo( 0 ) + "^000000,¿qué puedo hacer por ti?"; next; switch( select( ( !#activated ? "" : "Depositar:Retirar:Consulta de fondos:" ) + "Nada" ) ) { case 1: mes .npc$; mes "Por favor, introduzca su número de cuenta antes de proceder."; next; input .@account_number; if ( .@account_number != getcharid( 3 ) ) { mes .npc$; mes "Has introducido un número de cuenta inválido. Si usted siente que ha perdido su número de cuenta; por favor, póngase en contacto con el administrador de este juego para obtener más ayuda."; break; } mes .npc$; mes "Hola,¿cuánto quiere depositar?"; next; input .@amount; if ( !.@amount || .@amount > 2147483647 ) { mes .npc$; mes "Número erroneo"; break; } mes .npc$; mes "¿Está seguro que quiere depositar ^FF0000" + .@amount + "^000000 zeny en su cuenta?"; next; if ( select( "Si:No" ) - 1 ) break; mes .npc$; mes "Déjeme comprobar si posee la cantidad correspondiente en su solicitud"; next; if ( Zeny < .@amount ) { mes .npc$; mes "Parece que usted no posee este tipo de cantidad. Terminaré esta transacción entonces."; break; } mes .npc$; mes "Se han depositado ^FF0000" + .@amount + "^000000 zeny en su cuenta. Gracias por preferir ^FF0000ATM System"; query_sql "UPDATE `bank` SET `money` = `money` + '" + .@amount + "' WHERE `account_id` = '" + getcharid( 3 ) + "'"; Zeny -= .@amount; break; case 2: mes .npc$; mes "Por favor, introduzca su número de cuenta para proceder:"; next; input .@account_number; if ( .@account_number != getcharid( 3 ) ) { mes .npc$; mes "Has introducido un número de cuenta inválido. Si usted siente que ha perdido su número de cuenta; por favor, póngase en contacto con el administrador de este juego para obtener más ayuda."; break; } mes .npc$; mes "Hola, ¿cuánto zeny desea retirar?"; next; input .@amount; if ( !.@amount || .@amount > 2147483647 ) { mes .npc$; mes "Número erroneo"; break; } mes .npc$; mes "¿Está seguro que quiere retirar ^FF0000" + .@amount + "^000000 zeny de su cuenta?"; next; if ( select( "Si:No" ) - 1 ) break; mes .npc$; mes "Déjeme comprobar si posee la cantidad correspondiente en su solicitud."; next; query_sql "SELECT `money` FROM `bank` WHERE `account_id` = '" + getcharid( 3 ) + "'", .@balance; if ( .@balance < .@amount ) { mes .npc$; mes "Parece que usted no posee este tipo de cantidad. Terminaré esta transacción entonces."; break; } mes .npc$; mes "Déjeme ver si usted puede soportar la cantidad que solicitó."; next; if ( ( Zeny + .@amount ) > 2000000000 ) { mes .npc$; mes "Usted no puede permitirse el lujo de soportar toda esta cantidad de zeny. La máxima cantidad que usted puede llevar son ^FF00002,000,000,000^000000 zeny solamente."; break; } mes .npc$; mes "Se han retirado ^FF0000" + .@amount + "^000000 zeny de su cuenta. Gracias por preferir ^FF0000ATM System"; query_sql "UPDATE `bank` SET `money` = `money` - '" + .@amount + "' WHERE `account_id` = '" + getcharid( 3 ) + "'"; Zeny += .@amount; break; case 3: query_sql "SELECT `money` FROM `bank` WHERE `account_id` = '" + getcharid( 3 ) + "'", .@balance; mes .npc$; mes "El balance de su cuenta es de: ^FF0000" + .@balance + "^000000 zeny."; break; case 4: mes .npc$; mes "¡Está bien, nos vemos pronto!"; break; default: break; } close; }