浏览代码

- Changed in the behaviour of wedding skills, should invoke skill_castend_pos when skill_castend_id triggers, should enable all the config settings for land skills to apply to the wedding skills.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6321 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 19 年之前
父节点
当前提交
28a65510a3
共有 2 个文件被更改,包括 17 次插入15 次删除
  1. 2 0
      Changelog-Trunk.txt
  2. 15 15
      src/map/skill.c

+ 2 - 0
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.
 2006/04/27
+	* Changed in the behaviour of wedding skills, they should be getting all
+	  the land-skill checks now. [Skotlex]
 	* Small change in @commands, may fix the null-pointer error. [Skotlex]
 	* Changebase script command will also refresh the weapon sprites (in case
 	  you changed into Wedding/Xmas class) [Skotlex]

+ 15 - 15
src/map/skill.c

@@ -3179,21 +3179,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 			break;
 		case NPC_SMOKING: //Since it is a self skill, this one ends here rather than in damage_id. [Skotlex]
 			return skill_castend_damage_id (src, bl, skillid, skilllv, tick, flag);
-		case WE_CALLPARTNER:
-		case WE_CALLPARENT:
-		case WE_CALLBABY: 
-		{	//Find a random spot to place the skill. [Skotlex]
-			short x,y;
-			i = skill_get_splash(skillid, skilllv);
-			x = src->x + i;
-			y = src->y + i;
-			if (map_random_dir(src, &x, &y))
-				return skill_castend_pos2(src,x,y,skillid,skilllv,tick,0);
-			else {
-				if (sd) clif_skill_fail(sd,skillid,0,0);
-				return 0;
-			}
-		}
 		//These are actually ground placed.
 		case CR_GRANDCROSS:
 		case NPC_GRANDDARKNESS:
@@ -5605,6 +5590,21 @@ int skill_castend_id( int tid, unsigned int tick, int id,int data )
 		return 0;
 	}
 
+	switch (ud->skillid) {
+		//These three should become skill_castend_pos
+		case WE_CALLPARTNER:
+		case WE_CALLPARENT:
+		case WE_CALLBABY: 
+			//Find a random spot to place the skill. [Skotlex]
+			inf2 = skill_get_splash(ud->skillid, ud->skilllv);
+			ud->skillx = src->x + inf2;
+			ud->skilly = src->y + inf2;
+			if (!map_random_dir(src, &ud->skillx, &ud->skilly)) {
+				ud->skillx = src->x;
+				ud->skilly = src->y;
+			}
+			return skill_castend_pos(tid,tick,id,data);
+	}
 
 	if(ud->skillid != SA_CASTCANCEL ) {
 		if( ud->skilltimer != tid ) {