Selaa lähdekoodia

Fixed bugreport:6833 a typo in the level difference database.
Fixed bugreport:6438 now WL_TETRAVORTEX shows proper animation display.
Follow up r16776 added some missing updates for MO_EXTREMITYFIST thanks to kyeme.

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

rud0lp20 12 vuotta sitten
vanhempi
commit
e3c02a5bc2
2 muutettua tiedostoa jossa 16 lisäystä ja 11 poistoa
  1. 1 1
      db/re/level_penalty.txt
  2. 15 10
      src/map/skill.c

+ 1 - 1
db/re/level_penalty.txt

@@ -28,7 +28,7 @@
 1,11,4,110
 1,11,3,105
 1,11,0,100
-1,11,11,100
+1,11,-1,100
 1,11,-6,95
 1,11,-11,90
 1,11,-16,85

+ 15 - 10
src/map/skill.c

@@ -2375,12 +2375,6 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds
 	case WL_CHAINLIGHTNING_ATK:
 		dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,1,WL_CHAINLIGHTNING,-2,6);
 		break;
-	case WL_TETRAVORTEX_FIRE:
-	case WL_TETRAVORTEX_WATER:
-	case WL_TETRAVORTEX_WIND:
-	case WL_TETRAVORTEX_GROUND:
-		dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,1,WL_TETRAVORTEX_FIRE,-2,type);
-		break;
 	case LG_OVERBRAND_BRANDISH:
 	case LG_OVERBRAND_PLUSATK:
 	case EL_FIRE_BOMB:
@@ -3153,7 +3147,7 @@ static int skill_timerskill(int tid, unsigned int tick, int id, intptr_t data)
 				case WL_TETRAVORTEX_WATER:
 				case WL_TETRAVORTEX_WIND:
 				case WL_TETRAVORTEX_GROUND:
-					skill_attack(BF_MAGIC,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag);
+					skill_attack(BF_MAGIC,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag|SD_ANIMATION);
 					skill_toggle_magicpower(src, skl->skill_id); // only the first hit will be amplify
 					if( skl->type >= 3 )
 					{ // Final Hit
@@ -4180,8 +4174,8 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
 					case WLS_WATER: subskill = WL_TETRAVORTEX_WATER; k |= 2; break;
 					case WLS_STONE: subskill = WL_TETRAVORTEX_GROUND; k |= 8; break;
 				}
-
-				skill_addtimerskill(src,tick+status_get_adelay(src)*i,bl->id,k,0,subskill,skilllv,i,flag);
+				skill_addtimerskill(src, tick + i * 200, bl->id, k, 0, subskill, skilllv, i, flag);
+				clif_skill_nodamage(src, bl, subskill, skilllv, 1);
 				status_change_end(src, spheres[i], INVALID_TIMER);
 			}
 		}
@@ -6302,6 +6296,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 				case SC_FIGHTINGSPIRIT:	case SC_ABUNDANCE:		case SC__SHADOWFORM:
 				case SC_LEADERSHIP:		case SC_GLORYWOUNDS:	case SC_SOULCOLD:
 				case SC_HAWKEYES:		case SC_GUILDAURA:	case SC_PUSH_CART:
+#ifdef RENEWAL
+				case SC_EXTREMITYFIST2:
+#endif
 					continue;
 				/**
 				 * bugreport:4888 these songs may only be dispelled if you're not in their song area anymore
@@ -6857,6 +6854,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 			#ifdef	RENEWAL
 				sp1 = sp1 / 2;
 				sp2 = sp2 / 2;
+				if( tsc && tsc->data[SC_EXTREMITYFIST2] )
+					sp1 = tstatus->sp;
 			#endif
 			status_set_sp(src, sp2, 3);
 			status_set_sp(bl, sp1, 3);
@@ -7669,7 +7668,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 				case SC_STEALTHFIELD_MASTER: case SC_STEALTHFIELD:
 				case SC_LEADERSHIP:		case SC_GLORYWOUNDS:	case SC_SOULCOLD:
 				case SC_HAWKEYES:		case SC_GUILDAURA:	case SC_PUSH_CART:
-				case SC_PARTYFLEE:
+				case SC_PARTYFLEE:	
+#ifdef RENEWAL
+				case SC_EXTREMITYFIST2:
+#endif
 					continue;
 				case SC_ASSUMPTIO:
 					if( bl->type == BL_MOB )
@@ -9142,6 +9144,9 @@ int skill_castend_id(int tid, unsigned int tick, int id, intptr_t data)
 		{	//End states
 			status_change_end(src, SC_EXPLOSIONSPIRITS, INVALID_TIMER);
 			status_change_end(src, SC_BLADESTOP, INVALID_TIMER);
+#ifdef RENEWAL
+			sc_start(src, SC_EXTREMITYFIST2, 100, ud->skilllv, skill_get_time(ud->skillid, ud->skilllv));
+#endif
 		}
 		if (target && target->m == src->m)
 		{	//Move character to target anyway.