浏览代码

- Corrected Warp Portal not sending the map names with the .gat extension.
- Probably corrected Disarm's strip animation.


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

skotlex 18 年之前
父节点
当前提交
7b2a5ff106
共有 2 个文件被更改,包括 19 次插入7 次删除
  1. 3 0
      Changelog-Trunk.txt
  2. 16 7
      src/map/skill.c

+ 3 - 0
Changelog-Trunk.txt

@@ -3,6 +3,9 @@ Date	Added
 AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
 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.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 
+2007/03/20
+	* Corrected Warp Portal not sending the map names with the .gat extension.
+	* Probably corrected Disarm's strip animation.
 2007/03/19
 2007/03/19
 	* Rewrote the jail logic to always use a status change. This means that the
 	* Rewrote the jail logic to always use a status change. This means that the
 	  character's save point is not changed when jailed, and the char is always
 	  character's save point is not changed when jailed, and the char is always

+ 16 - 7
src/map/skill.c

@@ -1352,7 +1352,8 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
 		rate = 3*skilllv;
 		rate = 3*skilllv;
 		if (sstatus->dex > tstatus->dex)
 		if (sstatus->dex > tstatus->dex)
 			rate += (sstatus->dex - tstatus->dex)/5;
 			rate += (sstatus->dex - tstatus->dex)/5;
-		skill_strip_equip(bl, EQP_WEAPON, rate, skilllv, skill_get_time(skillid,skilllv));
+		if (skill_strip_equip(bl, EQP_WEAPON, rate, skilllv, skill_get_time(skillid,skilllv)))
+			clif_skill_nodamage(src,bl,skillid,skilllv,1);
 		break;
 		break;
 	}
 	}
 
 
@@ -1576,8 +1577,9 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list *
 			skilllv = dstsd->autospell2[i].lv?dstsd->autospell2[i].lv:1;
 			skilllv = dstsd->autospell2[i].lv?dstsd->autospell2[i].lv:1;
 			if (skilllv < 0) skilllv = 1+rand()%(-skilllv);
 			if (skilllv < 0) skilllv = 1+rand()%(-skilllv);
 
 
-			rate = ((sd && !sd->state.arrow_atk) || (status_get_range(src)<=2)) ?
-				dstsd->autospell2[i].rate : dstsd->autospell2[i].rate / 2;
+			rate = dstsd->autospell2[i].rate;
+			if (attack_type&BF_LONG)
+				 rate>>=1;
 			
 			
 			if (skillnotok(skillid, dstsd))
 			if (skillnotok(skillid, dstsd))
 				continue;
 				continue;
@@ -6069,10 +6071,17 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
 
 
 	case AL_WARP:
 	case AL_WARP:
 		if(sd) {
 		if(sd) {
-			clif_skill_warppoint(sd,skillid,skilllv,mapindex_id2name(sd->status.save_point.map),
-				(skilllv>1 && sd->status.memo_point[0].map)?mapindex_id2name(sd->status.memo_point[0].map):"",
-				(skilllv>2 && sd->status.memo_point[1].map)?mapindex_id2name(sd->status.memo_point[1].map):"",
-				(skilllv>3 && sd->status.memo_point[2].map)?mapindex_id2name(sd->status.memo_point[2].map):"");
+			char memo[4][MAP_NAME_LENGTH] = {"", "", "", ""};
+			snprintf(memo[0], MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(sd->status.save_point.map));
+			if (skilllv>1 && sd->status.memo_point[0].map)
+				snprintf(memo[1], MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(sd->status.memo_point[0].map));
+			if (skilllv>2 && sd->status.memo_point[1].map)
+				snprintf(memo[2], MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(sd->status.memo_point[1].map));
+			if (skilllv>3 && sd->status.memo_point[2].map)
+				snprintf(memo[3], MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(sd->status.memo_point[2].map));
+
+			clif_skill_warppoint(sd,skillid,skilllv,
+				memo[0],memo[1],memo[2],memo[3]);
 		}
 		}
 		break;
 		break;