diff options
author | Jesusaves <cpntb1@ymail.com> | 2021-04-10 03:00:20 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2021-04-10 03:00:20 -0300 |
commit | ba1e827b6b4c17c35a163e6b55be8c122de632b8 (patch) | |
tree | 819f93d0ffee3697e336471710afb9681f0b8d86 /npc/commands/zeny.txt | |
parent | 6e7f3113c0faad9edd4367d100ba9dd77e8d3130 (diff) | |
download | serverdata-ba1e827b6b4c17c35a163e6b55be8c122de632b8.tar.gz serverdata-ba1e827b6b4c17c35a163e6b55be8c122de632b8.tar.bz2 serverdata-ba1e827b6b4c17c35a163e6b55be8c122de632b8.tar.xz serverdata-ba1e827b6b4c17c35a163e6b55be8c122de632b8.zip |
Add several convenience functions. Fix some bugs regarding misuse of readparam()
Diffstat (limited to 'npc/commands/zeny.txt')
-rwxr-xr-x | npc/commands/zeny.txt | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/npc/commands/zeny.txt b/npc/commands/zeny.txt deleted file mode 100755 index de1013eb..00000000 --- a/npc/commands/zeny.txt +++ /dev/null @@ -1,78 +0,0 @@ -- script @zeny NPC32767,{ - callfunc "argv_splitter"; - .@n$ = if_then_else(@argv$[1] != "", "char", "") + "Zeny"; - if (GM < CMD_ZENY && GM < G_SYSOP) goto L_GM; // check if you can use it on self - .@target_id = BL_ID; - if (@argv$[1] != "") set .@target_id, getcharid(3, @argv$[1]); - if (@argv$[1] != "" && !(isloggedin(.@target_id))) goto L_Failed; // do NOT fallback to self - if (@argv$[1] != "" && GM < CMD_CHARZENY && GM < G_SYSOP) goto L_GM; // when target is not self, use charZeny permission - if (@argv$[0] == "--") goto L_Remove; - if (@argv$[0] == "---") goto L_RemoveAll; - if (@argv$[0] == "++") goto L_Max; - if (@argv$[0] == "+++") goto L_MaxAll; - set .@delta, @argv[0]; // ± Zeny - set .@Zeny, get(Zeny, .@target_id); // get the number of Zeny in char - set .@bank, get(#BankAccount, .@target_id); // get number of Zeny in (world) account - set .@new_Zeny, .@Zeny + .@delta; // new balance in char - if (.@new_Zeny < 0) goto L_MaybeRemoveBank; // Zeny would be below 0 so check if we can take from bank - if (.@new_Zeny > .max_Zeny) goto L_MaybeAddBank; // Zeny would be over the limit so check if we can store in bank - Zeny = (.@Zeny + .@delta), .@target_id; - goto L_Success; - -L_Remove: - Zeny = 0, .@target_id; - goto L_Success; - -L_RemoveAll: - Zeny = 0, .@target_id; - #BankAccount = 0, .@target_id; - goto L_Success; - -L_Max: - Zeny = .max_Zeny, .@target_id; - goto L_Success; - -L_MaxAll: - Zeny = .max_Zeny, .@target_id; - #BankAccount = .max_int, .@target_id; - goto L_Success; - -L_MaybeAddBank: - .@new_bank = (.@bank + (.@new_Zeny - .max_Zeny)); - if (.@new_bank > .max_int || .@new_bank < 0) goto L_OutOfBounds; - Zeny = .max_Zeny, .@target_id; - #BankAccount = .@new_bank, .@target_id; - goto L_Success; - -L_MaybeRemoveBank: - if ((.@bank + .@new_Zeny) < 0) goto L_OutOfBounds; - Zeny = 0, .@target_id; - #BankAccount = (.@bank + .@new_Zeny), .@target_id; - goto L_Success; - -L_OutOfBounds: - // XXX: maybe we could also take from other chars from the same accout? - message strcharinfo(0), .@n$+" : Impossible to proceed! This would cause the player to have less than 0 Zeny or more than " + .max_int + "."; - end; - -L_Failed: - // XXX: should we allow GMs to change Zeny of users that are not logged in? - message strcharinfo(0), .@n$+" : Impossible to attach to the target player. Did you try putting the name in \"quotation marks\"?"; - end; - -L_Success: - gmlog "@Zeny " + @args$; - message strcharinfo(0), .@n$+" : The operation succeeded."; - end; - -L_GM: - message strcharinfo(0), .@n$+" : GM command is level "+ if_then_else(@argv$[1] != "", CMD_CHARZENY, CMD_ZENY) +", but you are level " + GM; - end; - -OnInit: - set .max_Zeny, 1000000000; // hardcoded in tmwa - set .max_int, 2147483647; // max int32 value - registercmd chr(ATCMD_SYMBOL) + "Zeny", strnpcinfo(0); - registercmd chr(ATCMD_SYMBOL) + "charZeny", strnpcinfo(0); - end; -} |