Browse Source

- Corrected skill require entry from the Twilight Pharmacy skills.
- Removed the Frost Nova entry from skill_unit_db
- Moved Gospel's code to skill_castend_pos2
- Some cleaning of skill_castend_pos2
- Fixed a unnecessary map_freeblock_unlock call in the default case of skill_castend_pos2
- Sense/Estimation will now display the mob info window to all party members in the same map.


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

skotlex 19 năm trước cách đây
mục cha
commit
3da94aa210
6 tập tin đã thay đổi với 40 bổ sung37 xóa
  1. 5 0
      Changelog-Trunk.txt
  2. 5 0
      db/Changelog.txt
  3. 6 6
      db/skill_require_db.txt
  4. 0 1
      db/skill_unit_db.txt
  5. 1 1
      src/map/clif.c
  6. 23 29
      src/map/skill.c

+ 5 - 0
Changelog-Trunk.txt

@@ -3,6 +3,11 @@ 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.
 
+2006/07/10
+	* Some cleaning of skill_castend_pos2, fixed Gospel, and a
+	  map_freeblock_unlock misplacement. [Skotlex]
+	* Sense/Estimation will now display the mob info window to all party
+	  members in the same map. [Skotlex]
 2006/07/08
 	* Fixed the new addeff structure not working well with SC_STONE (because
 	  SC_STONE is 0, which was by default not handled as a valid value).

+ 5 - 0
db/Changelog.txt

@@ -24,6 +24,11 @@
 	-----
 
 =========================
+
+07/10
+	* Corrected skill require entry from the Twilight Pharmacy skills.
+	  [Skotlex]
+	* Removed Frost Nova's skill_unit_db entry. [Skotlex]
 07/09
 	* Added Guillontine's SP Drain per attack [Playtester]
 	* More item updates thanks to Haplo [Playtester]

+ 6 - 6
db/skill_require_db.txt

@@ -383,12 +383,12 @@
 491,0,0,10,0,0,0,99,0,0,none,0,921,1,905,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CR_CULTIVATION##
 
 493,0,0,10,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//TK_MISSION##
-494,0,0,460:360:260:160:60,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//SL_HIGH#ˆêŽŸ?ãˆÊ?E‹Æ‚Ì?°#
-495,0,0,100,0,0,0,2,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//KN_ONEHAND#ƒ?ƒ“ƒnƒ“ƒhƒNƒBƒNƒ“#
-496,0,0,200,0,0,0,99,0,0,none,7134,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//AM_TWILIGHT1#ƒgƒ?ƒCƒ‰ƒCƒgƒtƒ@?[ƒ}ƒV?[1#
-497,0,0,200,0,0,0,99,0,0,none,7134,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//AM_TWILIGHT2#ƒgƒ?ƒCƒ‰ƒCƒgƒtƒ@?[ƒ}ƒV?[2#
-498,0,0,200,0,0,0,99,0,0,none,7134,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0//AM_TWILIGHT3#ƒgƒ?ƒCƒ‰ƒCƒgƒtƒ@?[ƒ}ƒV?[3#
-499,0,0,8,0,0,0,11,1,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//HT_POWER#ƒr?[ƒXƒgƒXƒgƒŒƒCƒsƒ“ƒO#
+494,0,0,460:360:260:160:60,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//SL_HIGH##
+495,0,0,100,0,0,0,2,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//KN_ONEHAND##
+496,0,0,200,0,0,0,99,0,0,none,0,7134,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//AM_TWILIGHT1##
+497,0,0,200,0,0,0,99,0,0,none,0,7134,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//AM_TWILIGHT2##
+498,0,0,200,0,0,0,99,0,0,none,0,7134,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0//AM_TWILIGHT3##
+499,0,0,8,0,0,0,11,1,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//HT_POWER##
 //temp plugs
 500,0,0,10,0,0,1,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_GLITTERING
 501,0,0,10,0,0,0,17:18:19:20:21,0,0,none,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_FLING

+ 0 - 1
db/skill_unit_db.txt

@@ -35,7 +35,6 @@
  83,0x86,    ,  0, 3,1000,enemy, 0x000	//WZ_METEOR
  85,0x86,,0,6:6:6:6:6:6:6:6:6:6:8,1250,enemy,0x008	//WZ_VERMILION
  87,0x8d,    , -1, 0,  -1,all,   0x000	//WZ_ICEWALL
- 88,0x86,    ,  0, 2,1000,enemy, 0x000	//WZ_FROSTNOVA
  89,0x86,    ,  0, 5, 450,enemy, 0x008	//WZ_STORMGUST
  91,0x86,    ,  0, 2,1000,enemy, 0x080	//WZ_HEAVENDRIVE
  92,0x8e,    ,  2, 0,  -1,enemy, 0x000	//WZ_QUAGMIRE

+ 1 - 1
src/map/clif.c

@@ -4827,7 +4827,7 @@ int clif_skill_estimation(struct map_session_data *sd,struct block_list *dst)
 //		WBUFB(buf,20+i)= (unsigned char)((fix=battle_attr_fix(NULL,dst,100,i+1,status->def_ele, status->ele_lv))<0?0:fix);
 
 	if(sd->status.party_id>0)
-		clif_send(buf,packet_len_table[0x18c],&sd->bl,PARTY_AREA);
+		clif_send(buf,packet_len_table[0x18c],&sd->bl,PARTY_SAMEMAP);
 	else{
 		WFIFOHEAD(sd->fd,packet_len_table[0x18c]);
 		memcpy(WFIFOP(sd->fd,0),buf,packet_len_table[0x18c]);

+ 23 - 29
src/map/skill.c

@@ -4119,19 +4119,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 		}
 		break;
 
-	case PA_GOSPEL:				/* ゴスペル */
-		if (!tsc) break;
-		if (tsc->data[type].timer != -1 && tsc->data[type].val4 == BCT_SELF) {
-			i = status_change_end(bl,SC_GOSPEL,-1);
-		} else {
-			struct skill_unit_group *sg = skill_unitsetting(src,skillid,skilllv,src->x,src->y,0);
-			if (tsc->data[type].timer != -1)
-				status_change_end(bl,type,-1); //Was under someone else's Gospel. [Skotlex]
-			i = sc_start4(bl,type,100,skilllv,0,(int)sg,BCT_SELF,skill_get_time(skillid,skilllv));
-		}
-		clif_skill_nodamage(src,bl,skillid,skilllv,i);
-		break;
-
 	case BD_ADAPTATION:			/* アドリブ */
 		if(tsc && tsc->data[SC_DANCING].timer!=-1){
 			clif_skill_nodamage(src,bl,skillid,skilllv,1);
@@ -5729,7 +5716,8 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
 {
 	struct map_session_data *sd=NULL;
 	struct status_change *sc;
-	int i;
+	struct skill_unit_group *sg;
+	int i,type;
 
 	//if(skilllv <= 0) return 0;
 	if(skillid > 0 && skilllv <= 0) return 0;	// celest
@@ -5742,14 +5730,16 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
 	if(src->type==BL_PC)
 		sd=(struct map_session_data *)src;
 
-	sc = status_get_sc(src); //Needed for Magic Power checks.
+	sc = status_get_sc(src);
 	if (sc && !sc->count)
 		sc = NULL; //Unneeded.
+	type = SkillStatusChangeTable(skillid);
 
 	switch (skillid) { //Skill effect.
 		case WZ_METEOR:
 		case MO_BODYRELOCATION:
 		case CR_CULTIVATION:
+		case HW_GANBANTEIN:
 			break; //Effect is displayed on respective switch case.
 		default:
 			if(skill_get_inf(skillid)&INF_SELF_SKILL)
@@ -5991,14 +5981,9 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
 		break;
 	
 	case HW_GRAVITATION:
-		{
-			struct skill_unit_group *sg;
-			clif_skill_poseffect(src,skillid,skilllv,x,y,tick);
-			sg = skill_unitsetting(src,skillid,skilllv,x,y,0);	
-			sc_start4(src,SkillStatusChangeTable(skillid),100,
-				skilllv,0,BCT_SELF,(int)sg,skill_get_time(skillid,skilllv));
-			flag|=1;
-		}
+		sg = skill_unitsetting(src,skillid,skilllv,x,y,0);	
+		sc_start4(src,type,100,skilllv,0,BCT_SELF,(int)sg,skill_get_time(skillid,skilllv));
+		flag|=1;
 		break;
 
 	// Plant Cultivation [Celest]
@@ -6019,20 +6004,29 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
 				clif_skill_fail(sd,skillid,0,0);
 		}
 		break;
+
 	case SG_SUN_WARM:
 	case SG_MOON_WARM:
 	case SG_STAR_WARM:
-		{
-			struct skill_unit_group *sg;
+		sg = skill_unitsetting(src,skillid,skilllv,src->x,src->y,0);
+		sc_start4(src,type,100,skilllv,0,0,(int)sg,skill_get_time(skillid,skilllv));
+		flag|=1;
+		break;
+
+	case PA_GOSPEL:
+		if (sc && sc->data[type].timer != -1 && sc->data[type].val4 == BCT_SELF)
+			status_change_end(src,SC_GOSPEL,-1);
+		else
+	  	{
 			sg = skill_unitsetting(src,skillid,skilllv,src->x,src->y,0);
-			clif_skill_nodamage(src,src,skillid,skilllv,
-				sc_start4(src,SkillStatusChangeTable(skillid),
-					100,skilllv,0,0,(int)sg,skill_get_time(skillid,skilllv)));
+			if (sc->data[type].timer != -1)
+				status_change_end(src,type,-1); //Was under someone else's Gospel. [Skotlex]
+			sc_start4(src,type,100,skilllv,0,(int)sg,BCT_SELF,skill_get_time(skillid,skilllv));
 		}
 		break;
+
 	default:
 		ShowWarning("skill_castend_pos2: Unknown skill used:%d\n",skillid);
-		map_freeblock_unlock();
 		return 1;
 	}