Browse Source

- Figured out a better way to make TATAMIGAESHI attack only on the instant it is placed down.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8350 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 19 years ago
parent
commit
397c92b0df
2 changed files with 10 additions and 16 deletions
  1. 2 2
      db/skill_cast_db.txt
  2. 8 14
      src/map/skill.c

+ 2 - 2
db/skill_cast_db.txt

@@ -886,8 +886,8 @@
 525,1000,1000,0,0,0
 //-- NJ_ZENYNAGE
 526,0,5000,0,0,0
-//-- NJ_TATAMIGAESHI // Duration1 is land-effect & range-inmunity effect. Duration2 is skill_attack duration (minimal value)
-527,0,3000,0,3000,200
+//-- NJ_TATAMIGAESHI // Duration1 is land-effect, Duration2 is range-inmunity effect.
+527,0,3000,0,3000,3000
 //-- NJ_KASUMIKIRI // Delay unknown (if there is one)
 528,0,0,0,30000:60000:90000:120000:150000:180000:210000:240000:270000:300000,0
 //-- NJ_SHADOWJUMP // Delay unknown (if there is one)

+ 8 - 14
src/map/skill.c

@@ -6243,7 +6243,7 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
 		}
 		break;
 	case NJ_TATAMIGAESHI:
-		sc_start(src,type,100,skilllv,skill_get_time(skillid,skilllv));
+		sc_start(src,type,100,skilllv,skill_get_time2(skillid,skilllv));
 		skill_unitsetting(src,skillid,skilllv,src->x,src->y,0);
 		break;
 
@@ -6780,6 +6780,13 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, int skillid,
 					unit->bl.x,unit->bl.y,group->bl_flag,&unit->bl,gettick(),1);
 		}
 	}
+	if (skillid == NJ_TATAMIGAESHI)
+	{	//Disable it, since it should do instant damage
+	   //(which was done in the map_foreachincell call up there) [Skotlex]
+		group->target_flag=BCT_NOONE;
+		group->bl_flag= 0;
+	}
+
 	if (!group->alive_count)
 	{	//No cells? Something that was blocked completely by Land Protector?
 		skill_delunitgroup(src, group);
@@ -7173,19 +7180,6 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns
 		}
 
  		case UNT_TATAMIGAESHI:
-		{
-			/* NJ_TATAMIGAESHI has to work like that (has to be instant, instead of during 1s), according to Tharis' last video
-			   Did not find a better way to do it (even in traps' code) */
-
-			struct skill_unit_group *sug; // better name needed
-
-			if ( (sug = map_find_skill_unit_oncell(bl,bl->x,bl->y,NJ_TATAMIGAESHI,NULL)->group) != NULL )
-			{
-				if ( DIFF_TICK(gettick(), sug->tick) <= skill_get_time2(sg->skill_id, sg->skill_lv) )
-					skill_attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0);
- 			}
-			break;
-		}
 		case UNT_DEMONSTRATION:
 			skill_attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0);
 			break;