浏览代码

- Changed the default of sg_angel_skill_ratio to 10 based on recent information from Tharis.
- Cleaned up the doridori parse clif function.
- Moved doridori_counter to state.doridori
- Merged some of mpeg's work on NJ skills


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

skotlex 18 年之前
父节点
当前提交
845659a32d
共有 10 个文件被更改,包括 37 次插入22 次删除
  1. 2 0
      Changelog-Trunk.txt
  2. 2 0
      conf-tmpl/Changelog.txt
  3. 1 1
      conf-tmpl/battle/skill.conf
  4. 3 0
      db/Changelog.txt
  5. 8 8
      db/skill_cast_db.txt
  6. 1 2
      src/map/battle.c
  7. 14 6
      src/map/clif.c
  8. 1 1
      src/map/map.h
  9. 3 2
      src/map/skill.c
  10. 2 2
      src/map/status.c

+ 2 - 0
Changelog-Trunk.txt

@@ -4,6 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 2006/09/07
+	* Cleaned up the doridori parse clif function. [Skotlex]
+	* Merged some of mpeg's work on NJ skills [Skotlex]
 	* Removed the Warmth "stacking" code. [Skotlex]
 	* Added back the effect of /doridori to skill-SP regen [Skotlex]
 	* Implemented a rough version of Angel of the Sun/Moon/Stars, it has a low

+ 2 - 0
conf-tmpl/Changelog.txt

@@ -1,6 +1,8 @@
 Date	Added
 
 2006/09/07
+	* Changed the default of sg_angel_skill_ratio to 10 based on recent
+	  information from Tharis. [Skotlex]
 	* Added sg_angel_skill_ratio to specify rate at which the Angel skill
 	  triggers. [Skotlex]
 	* Increased duration of Miracle of the Sun/Moon/Stars to one hour.

+ 1 - 1
conf-tmpl/battle/skill.conf

@@ -265,4 +265,4 @@ sg_miracle_skill_ratio: 1
 sg_miracle_skill_duration: 3600000
 
 //Angel of the Sun, Moon and Stars skill ratio (100% = 10000)
-sg_angel_skill_ratio: 1
+sg_angel_skill_ratio: 10

+ 3 - 0
db/Changelog.txt

@@ -19,6 +19,9 @@
 	-----
 
 =========================
+
+09/07
+	* Merged some of mpeg's work on NJ skills [Skotlex]
 09/06
 	* Changed all bCriticalRate to bCritical [Playtester]
 	* Updated skill_require_db's entry for Abracadabra, it requires yellow 2

+ 8 - 8
db/skill_cast_db.txt

@@ -897,20 +897,20 @@
 534,700:1400:2100:2800:3500:4200:4900:5600:6300:7000,0,0,0,0
 //-- NJ_KAENSIN
 535,6000:5500:5000:4500:4000:3500:3000:2500:2000:1500,1000,0,20000,0,
-//-- NJ_BAKUENRYU
+//-- NJ_BAKUENRYU // Cast and Delay taken from lvl5 (need to confirm it's not influenced by lvl)
 536,3000,2000,0,0,0
 //-- NJ_HYOUSENSOU
 537,700:1400:2100:2800:3500:4200:4900:5600:6300:7000,0,0,0,0
-//-- NJ_SUITON
-538,3300:3200:3100:3000:2900:2800:2700:2600:2500:2400,0,0,15000:20000:25000:30000:35000:40000:45000:50000:55000:60000,15000:20000:25000:30000:35000:40000:45000:50000:55000:60000
-//-- NJ_HYOUSYOURAKU // Cast time taken from jA (not reliable, must be checked)
+//-- NJ_SUITON // Delay unknown (if there is one)
+538,3000,0,0,15000:20000:25000:30000:35000:40000:45000:50000:55000:60000,15000:20000:25000:30000:35000:40000:45000:50000:55000:60000
+//-- NJ_HYOUSYOURAKU // Cast time and Delay taken from jA (not reliable, must be checked)
 539,3000,1000:1200:1400:1600:1800:2000:2200:2400:2600:2800,0,0,10000:11000:12000:13000:14000:15000:16000:17000:18000:19000
 //-- NJ_HUUJIN
 540,700:1400:2100:2800:3500:4200:4900:5600:6300:7000,0,0,0,0
-//-- NJ_RAIGEKISAI
-541,3700:3400:3100:2800:2500,0,0,0,0 // Not sure of cast but very litely to be correct (English Translation Project)
-//-- NJ_KAMAITACHI
-542,3000,2000,0,0,0 // Cast and delay unknown > temp values taken from NJ_BAKUENRYU
+//-- NJ_RAIGEKISAI // Cast and Delay must be checked (Seems to be more 4s at lvl1. Don't have other lvls)
+541,3700:3400:3100:2800:2500,0,0,0,0
+//-- NJ_KAMAITACHI // Cast and delay unknown > temp values taken from NJ_BAKUENRYU
+542,3000,2000,0,0,0
 //-- NJ_NEN
 543,5000:4000:3000:2000:1000,0,0,30000:45000:60000:75000:90000,30000:45000:60000:75000:90000
 //-- NJ_ISSEN // cast and delay unknown > temp values taken from MO_EXTREMITYFIST

+ 1 - 2
src/map/battle.c

@@ -882,7 +882,6 @@ static struct Damage battle_calc_weapon_attack(
 			case CR_GRANDCROSS:
 			case NPC_GRANDDARKNESS:
 			case NJ_HUUMA:
-			case NJ_TATAMIGAESHI:
 			case GS_FLING:
 			case GS_TRIPLEACTION:
 			case GS_BULLSEYE:
@@ -2618,7 +2617,7 @@ struct Damage  battle_calc_misc_attack(
 			pc_payzeny(sd, md.damage);
 		}
 
-		if(is_boss(target))
+		if(is_boss(target) || tsd)
 			md.damage=md.damage*60/100;
 		break;
 	case GS_FLING:

+ 14 - 6
src/map/clif.c

@@ -11086,12 +11086,20 @@ void clif_parse_PMIgnoreList(int fd,struct map_session_data *sd)
 void clif_parse_NoviceDoriDori(int fd, struct map_session_data *sd) {
 	int level;
 	
-	if ((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE)
-		sd->doridori_counter++;
-	
-	if ((sd->class_&MAPID_BASEMASK) == MAPID_TAEKWON
-		&& sd->state.rest && (level = pc_checkskill(sd,TK_SPTIME)))
-		sc_start(&sd->bl,SkillStatusChangeTable(TK_SPTIME),100,level,skill_get_time(TK_SPTIME, level));
+	if (sd->state.doridori) return;
+
+	switch (sd->class_&MAPID_UPPERMASK)
+	{
+		case MAPID_TAEKWON:
+			if (!sd->state.rest)
+				break;
+			if (level = pc_checkskill(sd,TK_SPTIME))
+				sc_start(&sd->bl,SkillStatusChangeTable(TK_SPTIME),
+					100,level,skill_get_time(TK_SPTIME, level));
+		case MAPID_SUPER_NOVICE:
+			sd->state.doridori=1;
+			break;	
+	}
 	return;
 }
 /*==========================================

+ 1 - 1
src/map/map.h

@@ -595,6 +595,7 @@ struct map_session_data {
 		unsigned rewarp :1; //Signals that a player should warp as soon as he is done loading a map. [Skotlex]
 		unsigned killer : 1;
 		unsigned killable : 1;
+		unsigned doridori : 1;
 		unsigned short autoloot;
 		struct guild *gmaster_flag;
 	} state;
@@ -765,7 +766,6 @@ struct map_session_data {
 	int spirit_timer[MAX_SKILL_LEVEL];
 
 	int die_counter;
-	short doridori_counter;
 	char potion_success_counter;
 
 	int reg_num;

+ 3 - 2
src/map/skill.c

@@ -1848,6 +1848,7 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds
 			clif_specialeffect(bl, 438, AREA);
 			if (--sc->data[SC_KAITE].val2 <= 0)
 				status_change_end(bl, SC_KAITE, -1);
+			clif_skill_nodamage(bl,src,skillid,skilllv,1);
 			bl = src; //Just make the skill attack yourself @.@
 			sc = status_get_sc(bl);
 			tsd = (bl->type == BL_PC)?(TBL_PC*)bl:NULL;
@@ -5128,7 +5129,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 		}
 		break;
 
-	// Slim Pitcher (normally Condensed Potion doesn't give SP (Heals party members))
+	// Slim Pitcher
 	case CR_SLIMPITCHER:
 		if (potion_hp || potion_sp) {
 			int hp = potion_hp, sp = potion_sp;
@@ -5466,7 +5467,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 				pc_delspiritball(sd,1,0);
 		}
 		break;
-	
+
 	case GS_CRACKER:
 		if (!dstsd)	// according to latest patch, should not work on players [Reddozen]
 		{

+ 2 - 2
src/map/status.c

@@ -7006,9 +7006,9 @@ static int status_natural_heal(DBKey key,void * data,va_list app)
 		while(sregen->tick.sp >= (unsigned int)battle_config.natural_heal_skill_interval)
 		{
 			val = sregen->sp;
-			if (sd && sd->doridori_counter) {
+			if (sd && sd->state.doridori) {
 				val*=2;
-				sd->doridori_counter--;
+				sd->state.doridori = 0;
 				if (
 					(sd->class_&MAPID_UPPERMASK) == MAPID_STAR_GLADIATOR &&
 					rand()%10000 < battle_config.sg_angel_skill_ratio