Browse Source

- Skill use is now cancelled when you use it while cloaking, and the uncloaking process warps you.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9591 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 18 years ago
parent
commit
678096381e
3 changed files with 10 additions and 1 deletions
  1. 3 0
      Changelog-Trunk.txt
  2. 1 1
      src/common/socket.c
  3. 6 0
      src/map/unit.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.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
+2006/12/29
+	* Skill use is now cancelled when you use it while cloaking, and the
+	  uncloaking process warps you. [Skotlex]
 2006/12/28
 	* Reapplied Skotlex's socket.c changes from r9587 and r9582. :S
 	* Part 3 of TheUltraMage's socket cleanup.

+ 1 - 1
src/common/socket.c

@@ -175,7 +175,7 @@ static int recv_to_fifo(int fd)
 	if( (fd < 0) || (fd >= FD_SETSIZE) || (NULL == session[fd]) || (session[fd]->eof) )
 		return -1;
 
-	len = recv(fd, (char *) session[fd]->rdata + session[fd]->rdata_size, RFIFOSPACE(fd), 0); 
+	len = recv(fd, (char *) session[fd]->rdata + session[fd]->rdata_size, RFIFOSPACE(fd), 0);
 
 	if (len == SOCKET_ERROR) {
 		if (s_errno == S_ECONNABORTED) {

+ 6 - 0
src/map/unit.c

@@ -988,7 +988,10 @@ int unit_skilluse_id2(struct block_list *src, int target_id, int skill_num, int
 
  	if(sc && sc->data[SC_CLOAKING].timer != -1 &&
 		!(sc->data[SC_CLOAKING].val4&4) && skill_num != AS_CLOAKING)
+	{
 		status_change_end(src,SC_CLOAKING,-1);
+		if (!src->prev) return 0; //Warped away!
+	}
 
 	if(casttime > 0) {
 		ud->skilltimer = add_timer( tick+casttime, skill_castend_id, src->id, 0 );
@@ -1088,7 +1091,10 @@ int unit_skilluse_pos2( struct block_list *src, int skill_x, int skill_y, int sk
 
 	if (sc && sc->data[SC_CLOAKING].timer != -1 &&
 		!(sc->data[SC_CLOAKING].val4&4))
+	{
 		status_change_end(src,SC_CLOAKING,-1);
+		if (!src->prev) return 0; //Warped away!
+	}
 
 	if(casttime > 0) {
 		ud->skilltimer = add_timer( tick+casttime, skill_castend_pos, src->id, 0 );