Browse Source

- Added a check to handle Spider Web as a targetted skill. If there's more than one character on the targetted cell, a different one may get trapped, but it will mostly do as it is now.
- Added check to Asura so that it will move you to the target when it fails ONLY when you can cast the skill on the target (not stunned, asleep, target not hidden, etc)


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

skotlex 19 năm trước cách đây
mục cha
commit
359899fbb2
4 tập tin đã thay đổi với 13 bổ sung4 xóa
  1. 6 0
      Changelog-Trunk.txt
  2. 2 0
      db/Changelog.txt
  3. 1 1
      db/skill_db.txt
  4. 4 3
      src/map/skill.c

+ 6 - 0
Changelog-Trunk.txt

@@ -4,6 +4,12 @@ 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/08
+	* Added a check to handle Spider Web as a targetted skill. If there's more
+	  than one character on the targetted cell, a different one may get trapped,
+	  but it will mostly do as it is now. [Skotlex]
+	* Added check to Asura so that it will move you to the target when it fails
+	  ONLY when you can cast the skill on the target (not stunned, asleep, target
+	  not hidden, etc) [Skotlex]
 	* Changed the map_freeblock_unlock code so that when there's an "already
 	  free'd pointer" error, the memory manager will print out the invoking
 	  function rather than map_freeblock_unlock, this should help fix it up next

+ 2 - 0
db/Changelog.txt

@@ -19,6 +19,8 @@
 	-----
 
 =========================
+08/08
+	* Made PF_FOGWALL a targetted skill. [Skotlex]
 08/07
 	* Slightly increased drop rate of some low-level guns [Playtester]
 	- also lowered drop rate of Armor Charm to 0.01% again

+ 1 - 1
db/skill_db.txt

@@ -425,7 +425,7 @@
 402,9,6,1,0,1,0,5,1,no,0,0,0,none,0	//PF_MINDBREAKER#Mind Breaker#
 403,0,0,4,0,1,0,1,1,yes,0,0,0,magic,0	//PF_MEMORIZE#Foresight#
 404,9,6,2,2,1,0,5,1,yes,0,256,2,magic,0	//PF_FOGWALL#Blinding Mist#
-405,7,6,2,0,1,0,1,1,no,0,128,3,magic,0	//PF_SPIDERWEB#Fiber Lock#
+405,7,6,1,0,1,0,1,1,no,0,128,3,magic,0	//PF_SPIDERWEB#Fiber Lock#
 406,0,6,4,-1,2,2,10,1,no,33,0,0,weapon,0	//ASC_METEORASSAULT#Meteor Assault#
 407,0,6,4,0,1,0,1,0,no,0,0,0,none,0	//ASC_CDP#Create Deadly Poison#
 408,9,6,4,0,1,0,1,1,yes,0,4,0,none,0	//WE_BABY#Baby#

+ 4 - 3
src/map/skill.c

@@ -3233,7 +3233,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 			return skill_castend_damage_id (src, bl, skillid, skilllv, tick, flag);
 		default:
 			//Skill is actually ground placed.
-			if (src == bl && skill_get_unit_id(skillid,0))
+			if ((src == bl || skillid == PF_SPIDERWEB) && skill_get_unit_id(skillid,0))
 				return skill_castend_pos2(src,bl->x,bl->y,skillid,skilllv,tick,0);
 	}
 
@@ -5768,8 +5768,9 @@ int skill_castend_id (int tid, unsigned int tick, int id, int data)
 			if (sc->data[SC_BLADESTOP].timer != -1)
 				status_change_end(src,SC_BLADESTOP,-1);
 		}
-		if (target && target->m == src->m)
-		{	//Move character to target anyway.
+		if (target && target->m == src->m &&
+			(tid == -1 || status_check_skilluse(src, target, ud->skillid, 1))
+		)	{	//Move character to target anyway.
 			int dx,dy;
 			dx = target->x - src->x;
 			dy = target->y - src->y;