소스 검색

- Fixed a crash when trying to extend TK's infinite combo feature.
- Corrected Poison React to counter regardless of distance, and to use the skill's 50+5*lv% counter chance (instead of 100%).


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

skotlex 19 년 전
부모
커밋
189f0e05f0
4개의 변경된 파일8개의 추가작업 그리고 2개의 파일을 삭제
  1. 3 0
      Changelog-Trunk.txt
  2. 3 1
      src/map/battle.c
  3. 1 1
      src/map/skill.c
  4. 1 0
      src/map/status.c

+ 3 - 0
Changelog-Trunk.txt

@@ -4,6 +4,9 @@ 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/07/18
+	* Fixed a crash when trying to extend TK's infinite combo feature. [Skotlex]
+	* Corrected Poison React to counter regardless of distance, and to use the
+	  skill's 50+5*lv% counter chance (instead of 100%). [Skotlex]
 	* Corrected Venom splasher's splash damage [Skotlex]
 	* You now can't move/attack/use-skills when using Cloaking of a level less
 	  than 3 [Skotlex]

+ 3 - 1
src/map/battle.c

@@ -2944,7 +2944,9 @@ int battle_weapon_attack( struct block_list *src,struct block_list *target,
 
 	if (tsc) {
 		if (tsc->data[SC_POISONREACT].timer != -1 && 
-			check_distance_bl(src, target, tstatus->rhw.range+1) &&
+			(rand()%100 < tsc->data[SC_POISONREACT].val3
+			|| sstatus->def_ele == ELE_POISON) &&
+//			check_distance_bl(src, target, tstatus->rhw.range+1) && Doesn't checks range! o.O;
 			status_check_skilluse(target, src, TF_POISON, 0)
 		) {	//Poison React
 			if (sstatus->def_ele == ELE_POISON) {

+ 1 - 1
src/map/skill.c

@@ -1910,7 +1910,7 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds
 				sd->skilllv_old = skilllv;
 				if (pc_famerank(sd->char_id,MAPID_TAEKWON))
 			  	{	//Extend combo time.
-					delete_timer(sc->data[SC_COMBO].timer, status_change_timer);
+					delete_timer(sd->sc.data[SC_COMBO].timer, status_change_timer);
 					sd->sc.data[SC_COMBO].timer = add_timer(
 						tick+sd->sc.data[SC_COMBO].val4,
 					  	status_change_timer, src->id, SC_COMBO);

+ 1 - 0
src/map/status.c

@@ -4669,6 +4669,7 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
 			break;
 		case SC_POISONREACT:
 			val2=val1/2 + val1%2; // Number of counters [Celest]
+			val3=50 + 5*val1; //Chance to counter. [Skotlex]
 			break;
 		case SC_MAGICROD:
 			val2 = val1*20; //SP gained