ソースを参照

Fixed HAMI_CASTLE

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8366 54d463be-8e91-2dee-dedb-b68131a5f0ec
toms 19 年 前
コミット
07365afd80
4 ファイル変更17 行追加2 行削除
  1. 1 0
      Changelog-Trunk.txt
  2. 1 0
      db/Changelog.txt
  3. 2 0
      db/skill_cast_db.txt
  4. 13 2
      src/map/skill.c

+ 1 - 0
Changelog-Trunk.txt

@@ -4,6 +4,7 @@ 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/08/19
+	* Fixed HAMI_CASTLE [Toms]
 	* Fixed HLIF_CHANGE [Toms]
 	* Updated HLIF_BRAIN skill [Toms]
 	* Fixed homunculus intimacy on feeding [Toms]

+ 1 - 0
db/Changelog.txt

@@ -20,6 +20,7 @@
 
 =========================
 08/19
+	* Added HAMI_CASTLE block time [Toms]
 	* Updated NJ_BAKUENRYU skill tree [Toms]
 	* Updated HLIF_CHANGE skill [Toms]
 	* Updated Kouenka, removed aftercast delay [Toms]

+ 2 - 0
db/skill_cast_db.txt

@@ -969,6 +969,8 @@
 8002,0,0,0,40000:35000:30000:25000:20000,0
 //-- HLIF_CHANGE
 8004,0,0,0,60000:180000:300000,600000:900000:1200000
+//-- HAMI_CASTLE
+8005,0,0,0,0,60000:70000:80000:90000:129000
 //-- HAMI_DEFENCE
 8006,0,0,0,40000:35000:30000:25000:20000,30000
 //-- HAMI_BLOODLUST

+ 13 - 2
src/map/skill.c

@@ -5523,12 +5523,15 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 		break;
 
 	case HAMI_CASTLE:	//[orn]
-		if(rand()%100 > 20*skilllv || src == bl)
-			break; //Failed.
+		if (src == bl && sd && sd->hd && merc_is_hom_active(sd->hd)) // (If used with @useskill, put the homunc as dest)
+			bl = &sd->hd->bl;
+		if(rand()%100 < 20*skilllv && src != bl)
 		{
 			int x,y;
 			x = src->x;
 			y = src->y;
+			if (hd)
+				skill_blockmerc_start(hd, skillid, skill_get_time2(skillid,skilllv));
 
 			if (unit_movepos(src,bl->x,bl->y,0,0)) {
 				clif_skill_nodamage(src,bl,skillid,skilllv,1);
@@ -5541,6 +5544,14 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 					AREA_SIZE, BL_MOB, bl, src);
 			}
 		}
+		else
+		{
+			// Failed
+			if (hd)
+				clif_skill_fail(hd->master, skillid, 0, 0);
+			else
+				clif_skill_fail(sd, skillid, 0, 0);
+		}
 		break;
 	case HVAN_CHAOTIC:	//[orn]
 		{