// @esp atcommand // changes the number of Esperin // // group lv: 3 // group char lv: 99 // log: True // // usage: // @esp // #esp "char" // // example: // @esp +5 // @esp -5 // @esp +++ - script @esp 32767,{ end; OnCall: .@delta$ = .@atcmd_parameters$[0]; if (debug && startswith(.@delta$, "--")) { Zeny = 0; if (.@delta$ == "---") { BankVault = 0; } } else if (debug && (startswith(.@delta$, "++") || .@delta$ == "")) { Zeny = MAX_ZENY; if (.@delta$ == "+++") { BankVault = MAX_BANK_ZENY; } } else { .@d = atoi(.@delta$); if (.@d < 0) { .@a = Zeny + .@d; // The amount of zeny remaining after if (.@a < 0) // If we can't remove that much zeny, try removing from bank too { Zeny = 0; .@b = BankVault + .@a; // amount remaining in bank after if (.@b < 0) { BankVault = 0; } else { BankVault += .@a; } } else // We can remove that much zeny { Zeny += .@d; } } else { .@a = Zeny + .@d; // The amount of zeny after if (.@a < 0 || .@a >= MAX_ZENY) // If we can't add that much zeny, try adding to bank { .@c = .@d - (.@a - Zeny); // the amount to put in bank Zeny = MAX_ZENY; .@b = BankVault + .@c; // amout in bank after if (.@b < 0 || .@b == MAX_BANK_ZENY) { BankVault = MAX_BANK_ZENY; } else { BankVault += .@c; } } else // We can add that much zeny { Zeny += .@d; } } } end; OnInit: if (debug > 0) { bindatcmd "e", "@esp::OnCall", 0, 99, 0; bindatcmd "esp", "@esp::OnCall", 0, 99, 0; bindatcmd "money", "@esp::OnCall", 0, 99, 0; end; } bindatcmd "esp", "@esp::OnCall", 99, 99, 1; }