summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt4
-rw-r--r--conf-tmpl/battle/exp.conf14
-rw-r--r--src/map/skill.c5
-rw-r--r--src/map/status.c10
4 files changed, 15 insertions, 18 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index be54eec80..f3f8165d0 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -5,6 +5,10 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EV
GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
2006/02/07
+ * Removed the max level configs from battle/exp.txt [Skotlex]
+ * Now NPC_POWERUP uses SC_INCATKRATE instead of SC_EXPLOSIONSPIRITS for
+ enhancing damage. Instead of +1k atk per skilllv, it is +50% atk per
+ skilllv. [Skotlex]
* Fixed char server changing the save/last point to new grounds in certain
situations. [Skotlex]
* Fixed SG_STAR_ANGER not getting it's damage bonus at all. [Skotlex]
diff --git a/conf-tmpl/battle/exp.conf b/conf-tmpl/battle/exp.conf
index 513d5eeab..494081d08 100644
--- a/conf-tmpl/battle/exp.conf
+++ b/conf-tmpl/battle/exp.conf
@@ -25,6 +25,8 @@
// 1000 miliseconds is 1 second.
// Unless otherwise specified, the minimum value is 0 for all
// features.
+//Note 4: The max level of classes is specified in the exp table.
+// See files db/exp.txt and db/exp2.txt to change them.
//--------------------------------------------------------------
// Rate at which exp. is given. (Note 2) (Note 3)
@@ -87,15 +89,3 @@ disp_zeny: no
// If no, an equation will be used which preserves statpoints earned/lost
// through external means (ie: stat point buyers/sellers)
use_statpoint_table: yes
-
-// Maximum levels. The actual maximum level you can acquire is the minimum between the max
-// defined by the experience table and these values.
-// If a character has a level higher than this maximum, it will not be reverted, it just won't
-// be able to get any more levels.
-// The @/# and script commands to level up will be capped by these max, not by the exp table's.
-//NOTE: The default max base is left at 255 to avoid problems with already existing chars.
-//NOTE: Advanced Job level refers only to advanced second classes (not high novice/first-class)
-max_base_level: 255
-max_job_level: 50
-max_super_novice_level: 99
-max_advanced_job_level: 70
diff --git a/src/map/skill.c b/src/map/skill.c
index 2b4ab9394..789eb1f62 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -5225,8 +5225,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
pc_breakshield(dstsd);
break;
- case NPC_POWERUP: //NPC”š—ô”g“®
- status_change_start(bl,SC_EXPLOSIONSPIRITS,skilllv,0,0,0,skilllv * 60000,0);
+ case NPC_POWERUP:
+ // +25% attack per skill level? It's a guess... [Skotlex]
+ status_change_start(bl,SC_INCATKRATE,25*skilllv,0,0,0,skilllv * 60000,0);
// another random guess xP
clif_skill_nodamage(src,bl,skillid,skilllv,1);
status_change_start(bl,SC_INCALLSTATUS,skilllv * 5,0,0,0,skilllv * 60000,0);
diff --git a/src/map/status.c b/src/map/status.c
index 1a7dbb3d6..4ae4b81f7 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -2140,8 +2140,6 @@ int status_calc_watk(struct block_list *bl, int watk)
watk += watk * 3;
if(sc->data[SC_NIBELUNGEN].timer!=-1 && bl->type != BL_PC && (status_get_element(bl)/10)>=8)
watk += sc->data[SC_NIBELUNGEN].val2;
- if(sc->data[SC_EXPLOSIONSPIRITS].timer!=-1 && bl->type != BL_PC)
- watk += (1000*sc->data[SC_EXPLOSIONSPIRITS].val1);
if(sc->data[SC_CURSE].timer!=-1)
watk -= watk * 25/100;
if(sc->data[SC_STRIPWEAPON].timer!=-1 && bl->type != BL_PC)
@@ -4536,7 +4534,9 @@ int status_change_start(struct block_list *bl,int type,int val1,int val2,int val
val4 = gettick(); //Store time at which you started running.
calc_flag = 1;
break;
-
+ case SC_INCATKRATE: /* ATK%㸠*/
+ if (bl->type == BL_MOB)
+ sc->opt3 |= 8; //Simulate Explosion Spirits effect for NPC_POWERUP [Skotlex]
case SC_CONCENTRATE: /* W’†—ÍŒüã */
case SC_BLESSING: /* ƒuƒŒƒbƒVƒ“ƒO */
case SC_ANGELUS: /* ƒAƒ“ƒ[ƒ‹ƒX */
@@ -4558,7 +4558,6 @@ int status_change_start(struct block_list *bl,int type,int val1,int val2,int val
case SC_INCFLEERATE: /* FLEE%㸠*/
case SC_INCMHPRATE: /* MHP%㸠*/
case SC_INCMSPRATE: /* MSP%㸠*/
- case SC_INCATKRATE: /* ATK%㸠*/
case SC_INCMATKRATE:
case SC_INCDEFRATE:
case SC_INCSTR:
@@ -5196,6 +5195,9 @@ int status_change_end( struct block_list* bl , int type,int tid )
case SC_ENERGYCOAT: /* ƒGƒiƒW?ƒR?ƒg */
sc->opt3 &= ~4;
break;
+ case SC_INCATKRATE: //Simulated Explosion spirits effect.
+ if (bl->type != BL_MOB)
+ break;
case SC_EXPLOSIONSPIRITS: // ”š—ô”g“®
sc->opt3 &= ~8;
break;