From 965ef3e88a407aceffd7aea0d33eb92adb993aa3 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Thu, 4 Feb 2021 12:19:44 -0300 Subject: Final batch of changes and balance after through testing with Ledmitz (and Prsm$ - Fix bugs on @getexp and @chargetexp - Bump exp for Beheader quest from 400k to 750k - Beheader: 999 DMG +50% Double Attack, 1800ms, -20% HIT, -25% CRIT. No int and no bow. NOTE: The -20 HIT might be or not be lowered further. Beheader is not as powerful as it looks like! --- world/map/npc/commands/exp.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'world/map/npc/commands/exp.txt') 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; -- cgit v1.2.3-70-g09d2