浏览代码

Fixed the three hits of EarthQuake not being calculated seperately.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13794 54d463be-8e91-2dee-dedb-b68131a5f0ec
Inkfish 16 年之前
父节点
当前提交
6e54839512
共有 3 个文件被更改,包括 14 次插入2 次删除
  1. 1 0
      Changelog-Trunk.txt
  2. 1 1
      db/skill_db.txt
  3. 12 1
      src/map/skill.c

+ 1 - 0
Changelog-Trunk.txt

@@ -7,6 +7,7 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 	* Added missing packet 0x2c9 and fixed 0x2da's length error. [Inkfish]
 	* Fiberlock now can trap multiple enemies on the same cell and its triggering area was reduced to 1x1. [Inkfish]
 	* Miracle should only be dispelled on map change. [Inkfish]
+	* Fixed the three hits of EarthQuake not being calculated seperately. [Inkfish]
 09/05/18
 	* Item-bonuses now use the official default durations for status changes [Playtester]
 	* status calc code cleanup [ultramage]

+ 1 - 1
db/skill_db.txt

@@ -588,7 +588,7 @@
 544,-5,6,1,0,0x40,0,10,1,no,0,0,0,weapon,0,	NJ_ISSEN,Final Strike
 
 // Additional NPC Skills (Episode 11.3)
-653,0,8,4,0,0x6,5:7:9:11:13:5:7:9:11:13,10,3,no,0,0x2,0,magic,0,	NPC_EARTHQUAKE,Earthquake
+653,0,8,4,0,0x6,5:7:9:11:13:5:7:9:11:13,10,1,no,0,0x2,0,magic,0,	NPC_EARTHQUAKE,Earthquake
 654,9,6,1,3,0,5,10,1,no,0,0x2,14,weapon,0,	NPC_FIREBREATH,Fire Breath
 655,9,6,1,1,0,5,10,1,no,0,0x2,14,weapon,0,	NPC_ICEBREATH,Ice Breath
 656,9,6,1,4,0,5,10,1,no,0,0x2,14,weapon,0,	NPC_THUNDERBREATH,Thunder Breath

+ 12 - 1
src/map/skill.c

@@ -2226,7 +2226,14 @@ static int skill_timerskill(int tid, unsigned int tick, int id, intptr data)
 					map_foreachinarea(skill_frostjoke_scream,skl->map,skl->x-range,skl->y-range,
 						skl->x+range,skl->y+range,BL_CHAR,src,skl->skill_id,skl->skill_lv,tick);
 					break;
-
+				case NPC_EARTHQUAKE:
+					skill_area_temp[0] = map_foreachinrange(skill_area_sub, src, skill_get_splash(skl->skill_id, skl->skill_lv), BL_CHAR, src, skl->skill_id, skl->skill_lv, tick, BCT_ENEMY, skill_area_sub_count);
+					skill_area_temp[1] = src->id;
+					skill_area_temp[2] = 0;
+					map_foreachinrange(skill_area_sub, src, skill_get_splash(skl->skill_id, skl->skill_lv), splash_target(src), src, skl->skill_id, skl->skill_lv, tick, skl->flag, skill_castend_damage_id);
+					if( skl->type > 1 )
+						skill_addtimerskill(src,tick+250,src->id,0,0,skl->skill_id,skl->skill_lv,skl->type-1,skl->flag);
+					break;
 				case WZ_WATERBALL:
 					if (!status_isdead(target))
 						skill_attack(BF_MAGIC,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag);
@@ -2698,6 +2705,10 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
 			// recursive invocation of skill_castend_damage_id() with flag|1
 			map_foreachinrange(skill_area_sub, bl, skill_get_splash(skillid, skilllv), splash_target(src), src, skillid, skilllv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id);
 
+			//FIXME: Isn't EarthQuake a ground skill after all?
+			if( skillid == NPC_EARTHQUAKE )
+				skill_addtimerskill(src,tick+250,src->id,0,0,skillid,skilllv,2,flag|BCT_ENEMY|SD_SPLASH|1);
+
 			//FIXME: move this to skill_additional_effect or some such? [ultramage]
 			if( skillid == SM_MAGNUM || skillid == MS_MAGNUM )
 			{ // Initiate 10% of your damage becomes fire element.