فهرست منبع

- Removed the max level configs from battle/exp.txt
- 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.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5220 54d463be-8e91-2dee-dedb-b68131a5f0ec

skotlex 19 سال پیش
والد
کامیت
cd88503b76
4فایلهای تغییر یافته به همراه15 افزوده شده و 18 حذف شده
  1. 4 0
      Changelog-Trunk.txt
  2. 2 12
      conf-tmpl/battle/exp.conf
  3. 3 2
      src/map/skill.c
  4. 6 4
      src/map/status.c

+ 4 - 0
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]

+ 2 - 12
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

+ 3 - 2
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);

+ 6 - 4
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:		/* 集中力向上 */
 		case SC_BLESSING:			/* ブレッシング */
 		case SC_ANGELUS:			/* アンゼルス */
@@ -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:			/* エナジ?コ?ト */
 			sc->opt3 &= ~4;
 			break;
+		case SC_INCATKRATE: //Simulated Explosion spirits effect.
+			if (bl->type != BL_MOB)
+				break;
 		case SC_EXPLOSIONSPIRITS:	// 爆裂波動
 			sc->opt3 &= ~8;
 			break;