Jelajahi Sumber

-Fix EDP pre-re not adding bonus (for grimtooth and venomknife) bugreport:6259
-Fix Invisibility remove by ruwach / sight / impr_concentration bugreport:7285
-Fix Dispel not removing dance, (inversed area check)
-Fix Cmake compilation broken since r17189

-Upd check-doc, athena-start to ask arg if none given.


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

glighta 12 tahun lalu
induk
melakukan
94d2acd0ad
7 mengubah file dengan 23 tambahan dan 18 penghapusan
  1. 0 3
      CMakeLists.txt
  2. 2 0
      athena-start
  3. 7 4
      src/map/battle.c
  4. 10 8
      src/map/skill.c
  5. 1 3
      src/map/status.c
  6. 2 0
      tools/check-doc
  7. 1 0
      tools/config.pl

+ 0 - 3
CMakeLists.txt

@@ -471,14 +471,11 @@ set( DEVELOPMENT_DIRECTORIES
 	)
 set( RUNTIME_FILES
 	"${CMAKE_CURRENT_SOURCE_DIR}/athena-start"
-	"${CMAKE_CURRENT_SOURCE_DIR}/char-server.sh"
 	"${CMAKE_CURRENT_SOURCE_DIR}/charserv-sql.bat"
 	"${CMAKE_CURRENT_SOURCE_DIR}/dbghelp.dll"
 	"${CMAKE_CURRENT_SOURCE_DIR}/libmysql.dll"
 	"${CMAKE_CURRENT_SOURCE_DIR}/LICENSE"
-	"${CMAKE_CURRENT_SOURCE_DIR}/login-server.sh"
 	"${CMAKE_CURRENT_SOURCE_DIR}/logserv-sql.bat"
-	"${CMAKE_CURRENT_SOURCE_DIR}/map-server.sh"
 	"${CMAKE_CURRENT_SOURCE_DIR}/mapserv-sql.bat"
 	"${CMAKE_CURRENT_SOURCE_DIR}/pcre3.dll"
 	"${CMAKE_CURRENT_SOURCE_DIR}/README.txt"

+ 2 - 0
athena-start

@@ -113,6 +113,8 @@ case $1 in
 ;;	
     *)
         echo "Usage: athena-start { start | stop | restart | status | watch }"
+        read -p "Enter a valid option: " readEnterKey
+		$0 $readEnterKey
 ;;
 esac
 

+ 7 - 4
src/map/battle.c

@@ -3102,12 +3102,15 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src,struct blo
 				ATK_ADDRATE(sc->data[SC_GLOOMYDAY_SK]->val2);
 			if( sc->data[SC_EDP] ){
 				switch(skill_id){
-					case AS_SPLASHER:       case AS_VENOMKNIFE:
-					case AS_GRIMTOOTH:
-					break;
+					case AS_SPLASHER:
 #ifndef RENEWAL_EDP
-					case ASC_BREAKER:       case ASC_METEORASSAULT: break;
+					case ASC_BREAKER:       case ASC_METEORASSAULT:
 #else
+					case AS_GRIMTOOTH:	case AS_VENOMKNIFE:
+#endif
+					break; //skills above have no effect with edp
+
+#ifdef RENEWAL_EDP
 					case AS_SONICBLOW:
 					case ASC_BREAKER:
 					case GC_COUNTERSLASH:

+ 10 - 8
src/map/skill.c

@@ -6582,8 +6582,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 				case SC_DONTFORGETME:
 				case SC_FORTUNE:
 				case SC_SERVICE4U:
-					if( tsc->data[i]->val4 ) //val4 = out-of-song-area
-						continue;
+					if(tsc->data[i]->val4==0)
+						continue; //if in song-area don't end it
 					break;
 				case SC_ASSUMPTIO:
 					if( bl->type == BL_MOB )
@@ -6884,7 +6884,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 			clif_emotion(bl, md->db->skill[md->skill_idx].val[0]);
 			if(md->db->skill[md->skill_idx].val[4] && tsce)
 				status_change_end(bl, type, INVALID_TIMER);
-				
+
 			//If mode gets set by NPC_EMOTION then the target should be reset [Playtester]
 			if(skill_id == NPC_EMOTION && md->db->skill[md->skill_idx].val[1])
 				mob_unlocktarget(md,tick);
@@ -11369,11 +11369,10 @@ static int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, un
 			if (!sc) return 0;
 			if (!sce)
 				sc_start4(bl,type,100,sg->skill_lv,sg->val1,sg->val2,0,sg->limit);
-			else if (sce->val4 == 1) {
-				//Readjust timers since the effect will not last long.
-				sce->val4 = 0;
+			else if (sce->val4 == 1) { //Readjust timers since the effect will not last long.
+				sce->val4 = 0; //remove the mark that we stepped out
 				delete_timer(sce->timer, status_change_timer);
-				sce->timer = add_timer(tick+sg->limit, status_change_timer, bl->id, type);
+				sce->timer = add_timer(tick+sg->limit, status_change_timer, bl->id, type); //put duration back to 3min
 			}
 			break;
 
@@ -15855,7 +15854,10 @@ int skill_unit_timer(int tid, unsigned int tick, int id, intptr_t data)
 
 static int skill_unit_temp[20];  // temporary storage for tracking skill unit skill ids as players move in/out of them
 /*==========================================
- *
+ * flag :
+ *	1 : store that skill_unit in array
+ *	2 : clear that skill_unit
+ *	4 : call_on_left
  *------------------------------------------*/
 int skill_unit_move_sub (struct block_list* bl, va_list ap)
 {

+ 1 - 3
src/map/status.c

@@ -10726,17 +10726,15 @@ int status_change_timer_sub(struct block_list* bl, va_list ap)
 		status_change_end(bl, SC_CLOAKING, INVALID_TIMER);
 		status_change_end(bl, SC_CLOAKINGEXCEED, INVALID_TIMER);
 		status_change_end(bl, SC_CAMOUFLAGE, INVALID_TIMER);
-		status_change_end(bl, SC__INVISIBILITY, INVALID_TIMER);
 		break;
     case SC_RUWACH: /* Reveal hidden target and deal little dammages if ennemy */
 		if (tsc && (tsc->data[SC_HIDING] || tsc->data[SC_CLOAKING] ||
 				tsc->data[SC_CAMOUFLAGE] || tsc->data[SC_CLOAKINGEXCEED] ||
-					tsc->data[SC__INVISIBILITY])) {
+					tsc->data[SC__INVISIBILITY])) { //this sc should hit only
 			status_change_end(bl, SC_HIDING, INVALID_TIMER);
 			status_change_end(bl, SC_CLOAKING, INVALID_TIMER);
 			status_change_end(bl, SC_CAMOUFLAGE, INVALID_TIMER);
 			status_change_end(bl, SC_CLOAKINGEXCEED, INVALID_TIMER);
-			status_change_end(bl, SC__INVISIBILITY, INVALID_TIMER);
 			if(battle_check_target( src, bl, BCT_ENEMY ) > 0)
 				skill_attack(BF_MAGIC,src,src,bl,AL_RUWACH,1,tick,0);
 		}

+ 2 - 0
tools/check-doc

@@ -23,6 +23,8 @@ case $1 in
 
 	*)
         	echo "Usage: check-doc { script | atc | both }"
+        	read -p "Enter a valid option: " readEnterKey
+        	$0 $readEnterKey
 	;;
 esac
 

+ 1 - 0
tools/config.pl

@@ -304,6 +304,7 @@ sub CheckDupPort { my ($rhConfig,$sChkKeys) = @_;
     }
     return 0;
 }
+
 sub CheckUsedPort { my($sPort) = @_;
     open PIPE,"netstat -nat |" or die $!;
     my @line = grep { /$sPort/ } <PIPE>;