diff options
author | ultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-09-10 18:11:10 +0000 |
---|---|---|
committer | ultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-09-10 18:11:10 +0000 |
commit | c44e355943ad24235aceb6bd2157544bdf46ba64 (patch) | |
tree | 03da679cfae3127a81928033b127886fde9b6d9d | |
parent | e6d726f486b00d443320269a96a0e6d9a12d8d38 (diff) | |
download | hercules-c44e355943ad24235aceb6bd2157544bdf46ba64.tar.gz hercules-c44e355943ad24235aceb6bd2157544bdf46ba64.tar.bz2 hercules-c44e355943ad24235aceb6bd2157544bdf46ba64.tar.xz hercules-c44e355943ad24235aceb6bd2157544bdf46ba64.zip |
Added config option 'quest_exp_rate' to adjust exp gained by the 'getexp' script command (followup to r11165).
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11171 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r-- | Changelog-Trunk.txt | 2 | ||||
-rw-r--r-- | conf-tmpl/Changelog.txt | 2 | ||||
-rw-r--r-- | conf-tmpl/battle/exp.conf | 3 | ||||
-rw-r--r-- | doc/script_commands.txt | 10 | ||||
-rw-r--r-- | src/map/battle.c | 1 | ||||
-rw-r--r-- | src/map/battle.h | 1 | ||||
-rw-r--r-- | src/map/script.c | 12 |
7 files changed, 26 insertions, 5 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 202188212..0ade30dee 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,8 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. +2007/09/10 + * Added config option to adjust exp gained by 'getexp' [ultramage] 2007/09/09 * Removed bonus bAddEffWhenHitShort as it is unneeded and unused. * Corrected getpetinfo so it actually returns "null" when there's no pet diff --git a/conf-tmpl/Changelog.txt b/conf-tmpl/Changelog.txt index 731cb4e65..d339798eb 100644 --- a/conf-tmpl/Changelog.txt +++ b/conf-tmpl/Changelog.txt @@ -1,5 +1,7 @@ Date Added +2007/09/10 + * Added 'quest_exp_rate', adjusts exp gained by 'getexp' [ultramage] 2007/09/05 * Added 'nomemo' mapflags to some Cursed Abbey maps [Playtester] 2007/08/19 diff --git a/conf-tmpl/battle/exp.conf b/conf-tmpl/battle/exp.conf index 7a9fa6ae0..f3d438ea2 100644 --- a/conf-tmpl/battle/exp.conf +++ b/conf-tmpl/battle/exp.conf @@ -55,6 +55,9 @@ exp_bonus_max_attacker: 12 // MVP bonus exp rate. (Note 2) mvp_exp_rate: 100 +// Rate of base/job exp given by NPCs. (Note 2) +quest_exp_rate: 100 + // The rate of job exp. from using Heal skill (100 is the same as the heal amount, 200 is double. // The balance of the exp. rate is best used with 5 to 10) heal_exp: 0 diff --git a/doc/script_commands.txt b/doc/script_commands.txt index b589cf481..9804ecbdc 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -9,7 +9,7 @@ //= Maeki Rika - A section on general concepts and lots of //= other updates and additions. //===== Version =========================================== -//= 3.05.20070819 +//= 3.06.20070910 //========================================================= //= 1.0 - First release, filled will as much info as I could //= remember or figure out, most likely there are errors, @@ -82,6 +82,8 @@ //= Fixed typo in 'areamonster' description (missing argument) [ultramage] //= 3.06 20070909 //= Added 'gethominfo' description [Skotlex] +//= 3.06.20070910 +//= Added info about the new behavior of 'getexp' [ultramage] //===== Description ======================================= //= A reference manual for the eAthena scripting language, //= sorted out depending on their functionality. @@ -3516,8 +3518,7 @@ There's good reasons to be very careful when using this command. *getexp <base xp>,<job xp>; This command will give the invoking character a specified number of base and job -experience points. Can be used as a quest reward. Negative amounts of experience -were not tested but should work. +experience points. Can be used as a quest reward. Negative values won't work. getexp 10000,5000; @@ -3531,6 +3532,9 @@ You can also reduce the ammount of experience points: set BaseExp,BaseExp-10000; +Note that 'getexp' is now subject to the 'quest_exp_rate' config option, which +adjusts the gained value. If you want to bypass this, use the 'set' method. + --------------------------------------- *setlook <look type>,<look value>; diff --git a/src/map/battle.c b/src/map/battle.c index 93bc5e1d0..3ff567b90 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -3691,6 +3691,7 @@ static const struct _battle_data { { "mob_remove_delay", &battle_config.mob_remove_delay, 60000, 15000, INT_MAX, }, { "sg_miracle_skill_duration", &battle_config.sg_miracle_skill_duration, 3600000, 0, INT_MAX, }, { "hvan_explosion_intimate", &battle_config.hvan_explosion_intimate, 45000, 0, 100000, }, + { "quest_exp_rate", &battle_config.quest_exp_rate, 100, 0, INT_MAX, }, }; diff --git a/src/map/battle.h b/src/map/battle.h index ca9563ce6..a4bab9b54 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -433,6 +433,7 @@ extern struct Battle_Config int hom_rename; int homunculus_show_growth ; //[orn] int homunculus_friendly_rate; + int quest_exp_rate; } battle_config; void do_init_battle(void); diff --git a/src/map/script.c b/src/map/script.c index a5dc7696b..a754aca14 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -7767,13 +7767,21 @@ BUILDIN_FUNC(getexp) { TBL_PC *sd = script_rid2sd(st); int base=0,job=0; + double bonus; + + nullpo_retr(0, sd); base=script_getnum(st,2); job =script_getnum(st,3); if(base<0 || job<0) return 0; - if(sd) - pc_gainexp(sd,NULL,base,job); + + // bonus for npc-given exp + bonus = battle_config.quest_exp_rate / 100.; + base = (int) cap_value(base * bonus, 0, INT_MAX); + job = (int) cap_value(job * bonus, 0, INT_MAX); + + pc_gainexp(sd, NULL, base, job); return 0; } |