Просмотр исходного кода

- Fixed WZ_WATERBALL + HW_MAGICPOWER

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5601 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 19 лет назад
Родитель
Сommit
c22cfd5ae8
3 измененных файлов с 10 добавлено и 11 удалено
  1. 1 0
      Changelog-Trunk.txt
  2. 1 1
      src/map/mob.c
  3. 8 10
      src/map/skill.c

+ 1 - 0
Changelog-Trunk.txt

@@ -5,6 +5,7 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.  EV
 GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
 
 2006/03/14
+	* Fixed WZ_WATERBALL + HW_MAGICPOWER [Skotlex]
 	* Fixed incorrect range check in autospell-when-hit triggers. [Skotlex]
 	* Modified Wedding recall skills to behave as in official [Skotlex]
 	* Modified Arrow Shower to be a ground-based skill and work as it should on

+ 1 - 1
src/map/mob.c

@@ -3362,7 +3362,7 @@ int mobskill_castend_id( int tid, unsigned int tick, int id,int data )
 	else
 		skill_castend_damage_id(&md->bl,bl,md->skillid,md->skilllv,tick,0);
 
-	if (md->sc.count && md->sc.data[SC_MAGICPOWER].timer != -1 && md->skillid != HW_MAGICPOWER)
+	if (md->sc.count && md->sc.data[SC_MAGICPOWER].timer != -1 && md->skillid != HW_MAGICPOWER && md->skillid != WZ_WATERBALL)
 		status_change_end(&md->bl, SC_MAGICPOWER, -1);
 		
 	if (md->db->skill[md->skillidx].emotion >= 0)

+ 8 - 10
src/map/skill.c

@@ -2299,7 +2299,7 @@ static int skill_timerskill(int tid, unsigned int tick, int id,int data )
 			return 0;
 		if(status_isdead(src))
 			return 0;
-		if(status_isdead(target) && skl->skill_id != RG_INTIMIDATE)
+		if(status_isdead(target) && skl->skill_id != RG_INTIMIDATE && skl->skill_id != WZ_WATERBALL)
 			return 0;
 
 		switch(skl->skill_id) {
@@ -2356,17 +2356,15 @@ static int skill_timerskill(int tid, unsigned int tick, int id,int data )
 				break;
 
 			case WZ_WATERBALL:
-				if (skl->type>1) {
-					skl->timer = 0;	// skill_addtimerskill‚ÅŽg—p‚³‚ê‚È‚¢‚悤‚É
+				if (!status_isdead(target))
+					skill_attack(BF_MAGIC,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag);
+				if (skl->type>1 && !status_isdead(target)) {
+					skl->timer = 0;
 					skill_addtimerskill(src,tick+150,target->id,0,0,skl->skill_id,skl->skill_lv,skl->type-1,skl->flag);
 					skl->timer = -1;
-				}
-				skill_attack(BF_MAGIC,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag);
-				if (skl->type <= 1) {	// partial fix: it still doesn't end if the target dies
-					// should put outside of the switch, but since this is the only
-					// mage targetted spell for now,
+				} else {
 					struct status_change *sc = status_get_sc(src);
-					if(sc && sc->data[SC_MAGICPOWER].timer != -1)	//ƒ}ƒWƒbƒNƒpƒ??‚Ì?‰Ê?I—¹
+					if(sc && sc->data[SC_MAGICPOWER].timer != -1)
 						status_change_end(src,SC_MAGICPOWER,-1);
 				}
 				break;
@@ -5791,7 +5789,7 @@ int skill_castend_id( int tid, unsigned int tick, int id,int data )
 	else
 		skill_castend_damage_id(&sd->bl,bl,sd->skillid,sd->skilllv,tick,0);
 
-	if(sd->sc.count && sd->sc.data[SC_MAGICPOWER].timer != -1 && sd->skillid != HW_MAGICPOWER)
+	if(sd->sc.count && sd->sc.data[SC_MAGICPOWER].timer != -1 && sd->skillid != HW_MAGICPOWER && sd->skillid != WZ_WATERBALL)
 		status_change_end(&sd->bl,SC_MAGICPOWER,-1);		
 
 	//Clean this up for future references to battle_getcurrentskill. [Skotlex]