summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrud0lp20 <rud0lp20@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-05-27 18:59:49 +0000
committerrud0lp20 <rud0lp20@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-05-27 18:59:49 +0000
commitf8d5302f9f7352d4379061ebc8ad38e55b4cf4b3 (patch)
treefb8e9e8313cc9dd609608e05189b59135cf5eaa0
parent564742e3eda7d3ecc448000591c6a274e7f8aa36 (diff)
downloadhercules-f8d5302f9f7352d4379061ebc8ad38e55b4cf4b3.tar.gz
hercules-f8d5302f9f7352d4379061ebc8ad38e55b4cf4b3.tar.bz2
hercules-f8d5302f9f7352d4379061ebc8ad38e55b4cf4b3.tar.xz
hercules-f8d5302f9f7352d4379061ebc8ad38e55b4cf4b3.zip
Fixed bugreport:5842 RK_DRAGONBREATH damage should now be reducible by defender and energy coat and be blocked by anti long ranged skills.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16157 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--db/re/skill_unit_db.txt2
-rw-r--r--src/map/battle.c9
-rw-r--r--src/map/skill.c1
3 files changed, 10 insertions, 2 deletions
diff --git a/db/re/skill_unit_db.txt b/db/re/skill_unit_db.txt
index 21f62ca4c..273f9aff8 100644
--- a/db/re/skill_unit_db.txt
+++ b/db/re/skill_unit_db.txt
@@ -156,7 +156,7 @@
8403,0xed, , -1, 1,1000,enemy, 0x018 //EL_FIRE_MANTLE
8406,0xee, , 0, 1, -1,friend,0x018 //EL_WATER_BARRIER
-8409,0xef, , 0, 1, -1,friend,0x018 //EL_ZEPHYR
+8409,0xef, , 0, 1,1000,friend,0x018 //EL_ZEPHYR
8412,0xf0, , 0, 1, -1,friend,0x018 //EL_POWER_OF_GAIA
10006,0xc1, , 2, 0, -1,guild, 0x040 //GD_LEADERSHIP
diff --git a/src/map/battle.c b/src/map/battle.c
index 558e90a08..978b45792 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -413,6 +413,12 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damag
}
}
+ if(sc->data[SC_ZEPHYR] &&
+ flag&(BF_LONG|BF_SHORT)){
+ d->dmg_lv = ATK_BLOCK;
+ return 0;
+ }
+
if( sc->data[SC_SAFETYWALL] && (flag&(BF_SHORT|BF_MAGIC))==BF_SHORT )
{
struct skill_unit_group* group = skill_id2group(sc->data[SC_SAFETYWALL]->val3);
@@ -594,7 +600,7 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damag
(flag&(BF_LONG|BF_WEAPON)) == (BF_LONG|BF_WEAPON))
damage -= 20*damage/100;
- if(sc->data[SC_FOGWALL]) {
+ if(sc->data[SC_FOGWALL] && skill_num != RK_DRAGONBREATH) {
if(flag&BF_SKILL) //25% reduction
damage -= 25*damage/100;
else if ((flag&(BF_LONG|BF_WEAPON)) == (BF_LONG|BF_WEAPON))
@@ -3923,6 +3929,7 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
md.damage = ((status_get_hp(src) / 50) + (status_get_max_sp(src) / 4)) * skill_lv;
RE_LVL_MDMOD();
if (sd) md.damage = md.damage * (100 + 5 * (pc_checkskill(sd,RK_DRAGONTRAINING) - 1)) / 100;
+ md.flag |= BF_LONG|BF_WEAPON;
break;
/**
* Ranger
diff --git a/src/map/skill.c b/src/map/skill.c
index d997f97b6..e25510a64 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -11212,6 +11212,7 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns
case UNT_WATER_INSIGNIA:
case UNT_WIND_INSIGNIA:
case UNT_EARTH_INSIGNIA:
+ case UNT_ZEPHYR:
sc_start(bl,type, 100, sg->skill_lv, sg->interval);
break;