diff options
Diffstat (limited to 'npc/commands/zeny.txt')
-rw-r--r-- | npc/commands/zeny.txt | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/npc/commands/zeny.txt b/npc/commands/zeny.txt new file mode 100644 index 00000000..944c1bb9 --- /dev/null +++ b/npc/commands/zeny.txt @@ -0,0 +1,98 @@ +// @esp atcommand +// changes the number of Esperin +// +// group lv: 3 +// group char lv: 99 +// log: True +// +// usage: +// @esp <delta> +// #esp "char" <delta> +// +// 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; +} |