diff options
Diffstat (limited to 'world/map/npc/commands')
-rw-r--r-- | world/map/npc/commands/exp.txt | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/world/map/npc/commands/exp.txt b/world/map/npc/commands/exp.txt index 64530976..069f98d1 100644 --- a/world/map/npc/commands/exp.txt +++ b/world/map/npc/commands/exp.txt @@ -4,6 +4,7 @@ set .@n$, if_then_else(@argv$[1] != "", "char", "") + "getexp"; if (GM < CMD_ZENY && GM < G_SYSOP) goto L_GM; // check if you can use it on self set .@target_id, BL_ID; + set .@caster_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 @@ -12,11 +13,12 @@ if (.@delta > .max_int) goto L_OutOfBounds; if (!(attachrid(.@target_id))) goto L_Failed; getexp .@delta, 0; + if (!(attachrid(.@caster_id))) goto L_Failed; 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 + "."; + // XXX: can getexp even work with a negative number? + message strcharinfo(0), .@n$+" : Impossible to proceed! This would cause the player to have less than 0 xp or more than " + .max_int + "."; end; L_Failed: @@ -24,7 +26,7 @@ L_Failed: end; L_Success: - gmlog "@getexp " + @args$; + gmlog "@" + .@n$ + " " + @args$; message strcharinfo(0), .@n$+" : The operation succeeded."; end; |