//===== eAthena Script ======================================= //= Banker Script //===== By: ================================================== //= Kutt Katrea //= Basado en "Banker Script" by Syrus22 //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= eAthena SVN //===== Description: ========================================= //= Un sistema de banco para guardar y compartir Zeny //= entre personajes de la misma cuenta. //===== Additional Comments: ================================= //= Syrus22 - Hay una cuota opcional al principio del script. //= Basta cambiar el primer comando set para activarla con //= el precio deseado. //= //= Kutt Katrea - Implementación de variables @max para evitar //= el error por overflow (dinero negativo en el banco) y la //= pérdida de Zeny en caso de retirar más Zeny del que se //= puede cargar. //= Implementadoun sistema simple para recuperar Zeny en caso de //= haber sufrido del error por overflow //============================================================ prontera.gat,132,217,5 script Banquera#1::Banquera 861,{ set @cost,500; set @max_storage,2000000000; set @max_hold,1000000000; set @max_deposit,(@max_storage-#bankstorage); set @max_withdrawal,(@max_hold-Zeny); set @npc_show_name$,"^004400[Banquera]^000000"; if ( #bankstorage >= 0 ) goto Lnormal; mes "[Banquera]"; mes "A causa de un bug en el antiguo sistema de banco, parte de tu Zeny se perdió."; mes "Una gran disculpa."; set #bankstorage,@max_storage; next; Lnormal: mes @npc_show_name$; mes "Bienvenido al Primer Banco de Rune-Midgard"; if (#bankstorage > 0) mes "Actualmente tienes: ^FF0000" + #bankstorage + "^000000 Zeny en el banco."; mes "¿Que transacción quieres hacer?"; next; if (#bankstorage > 0) menu "Depósito",Ldeposit,"Retiro",Lwithdrawl,"Cancelar",Lcancel; menu "Depósito",Ldeposit,"Cancelar",Lcancel; Ldeposit: if (#bankstorage==@max_storage) goto Lnodeposit; mes @npc_show_name$; mes "¿Cuanto quieres depositar?"; mes "Lo máximo que puedes depositar es ^0000FF" + @max_deposit + "^000000 Zeny"; if (@cost > 0) goto Ldepocost; goto Ldepocont; Lnodeposit: mes @npc_show_name$; mes "Lo siento, pero no puedes depositar más Zeny"; close; Ldepocost: mes "¡Ah! Y no olvides que hay un cargo de ^FF0000" + @cost + "^000000 Zeny en cada transacción."; goto Ldepocont; Ldepocont: next; input @deposit; if (@deposit < 1) goto Lrealamount; if (@deposit > Zeny) goto Lneedzeny; if (@deposit > (Zeny - @cost)) goto Lneedzeny2; if (@deposit > @max_deposit) goto Lnomorespace; set Zeny,Zeny - @deposit; set Zeny,Zeny - @cost; set #bankstorage,#bankstorage + @deposit; mes @npc_show_name$; mes "Muchas gracias. Tu Zeny está en buenas manos."; emotion e_thx; close; Lnomorespace: mes @npc_show_name$; mes "Solo puedo guardar hasta ^0000FF" + @max_deposit + "^000000 más de Zeny"; mes "Elige otra cantidad."; next; goto Ldeposit; Lwithdrawl: mes @npc_show_name$; mes "Tienes ^0000FF" + #bankstorage + "^000000 guardado."; mes "¿Cuanto quieres retirar?"; mes "Lo máximo es ^0000FF" + @max_withdrawal + "^000000 Zeny."; if (@cost > 0) goto Lwithcost; goto Lwithcont; Lwithcost: mes "¡Ah! Y no olvides que hay un cargo de ^FF0000" + @cost + "^000000 Zeny en cada transacción."; goto Lwithcont; Lwithcont: next; input @withdrawl; if (@withdrawl < 1) goto Lrealamount; if (@withdrawl > #bankstorage) goto Lneedzeny3; if ((@withdrawl + Zeny) > @max_hold) goto Lnoholdspace; if ((@cost > Zeny) && ((Zeny + @withdrawl) > @cost)) goto Lcostask; if (@cost > Zeny) goto Lneedzeny2; goto Lwithcont2; Lcostask: mes @npc_show_name$; mes "No tienes suficiente Zeny para pagar la cuota de transacción."; mes "¿Quieres que tome la cuota directamente de tu retiro?"; next; menu "Si, Por favor.",Lwithtake,"No, gracias.",Lcancel; Lwithtake: mes @npc_show_name$; mes "Bien, entonces..."; set @withdrawl,@withdrawl - @cost; set #bankstorage,#bankstorage - @cost; set @cost,0; next; goto Lwithcont2; Lnoholdspace: mes @npc_show_name$; mes "No puedes cargar tanto dinero, escoge otra cantidad:"; next; goto Lwithcont; Lwithcont2: set Zeny,Zeny - @cost; set Zeny,Zeny + @withdrawl; set #bankstorage,#bankstorage - @withdrawl; mes @npc_show_name$; mes "Aqui está tu Zeny. Que tengas un buen dia."; emotion e_thx; close; Lrealamount: mes @npc_show_name$; mes "No me gastes bromas. La proxima vez, elije una cantidad real, por favor."; close; Lneedzeny: mes @npc_show_name$; mes "No tienes suficiente Zeny para cubrir ese depósito."; close; Lneedzeny2: mes @npc_show_name$; mes "No tienes suficiente Zeny para la cuota de transacción"; close; Lneedzeny3: mes @npc_show_name$; mes "No tienes tanto Zeny en tu cuenta"; close; Lcancel: mes @npc_show_name$; mes "Vuelve pronto."; close; } morocc.gat,146,85,7 duplicate(Banquera) Banquera#02 860 geffen.gat,128,64,3 duplicate(Banquera) Banquera#03 861 izlude.gat,118,103,7 duplicate(Banquera) Banquera#04 860 aldebaran.gat,134,115,7 duplicate(Banquera) Banquera#05 861