Quellcode durchsuchen

Fixes Rogue Backstab Double Hit (#4703)

* Fixes #4702.
* Skill no longer ignores the target's flee.
* Skill now deals 2 hit when using dagger instead of doubling the damage.
Thanks to @yashimwong!
Yashim Wong vor 5 Jahren
Ursprung
Commit
d9f61e7803
2 geänderte Dateien mit 6 neuen und 8 gelöschten Zeilen
  1. 0 4
      db/re/skill_db.yml
  2. 6 4
      src/map/battle.cpp

+ 0 - 4
db/re/skill_db.yml

@@ -6304,10 +6304,6 @@ Body:
     MaxLevel: 10
     MaxLevel: 10
     Type: Weapon
     Type: Weapon
     TargetType: Attack
     TargetType: Attack
-    DamageFlags:
-      IgnoreFlee: true
-    Flags:
-      AllowWhenHidden: true
     Range: -1
     Range: -1
     Hit: Single
     Hit: Single
     HitCount: 1
     HitCount: 1

+ 6 - 4
src/map/battle.cpp

@@ -3654,10 +3654,6 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
 				skillratio += (200 + 40 * skill_lv) / 2;
 				skillratio += (200 + 40 * skill_lv) / 2;
 			else
 			else
 				skillratio += 200 + 40 * skill_lv;
 				skillratio += 200 + 40 * skill_lv;
-#ifdef RENEWAL
-			if (sd && sd->status.weapon == W_DAGGER)
-				skillratio *= 2;
-#endif
 			break;
 			break;
 		case RG_RAID:
 		case RG_RAID:
 #ifdef RENEWAL
 #ifdef RENEWAL
@@ -5358,6 +5354,12 @@ static struct Damage initialize_weapon_data(struct block_list *src, struct block
 		wd.flag |= battle_range_type(src, target, skill_id, skill_lv);
 		wd.flag |= battle_range_type(src, target, skill_id, skill_lv);
 		switch(skill_id)
 		switch(skill_id)
 		{
 		{
+#ifdef RENEWAL
+			case RG_BACKSTAP:
+				if (sd && sd->status.weapon == W_DAGGER)
+					wd.div_ = 2;
+				break;
+#endif
 			case MH_SONIC_CRAW:{
 			case MH_SONIC_CRAW:{
 				TBL_HOM *hd = BL_CAST(BL_HOM,src);
 				TBL_HOM *hd = BL_CAST(BL_HOM,src);
 				wd.div_ = hd->homunculus.spiritball;
 				wd.div_ = hd->homunculus.spiritball;