summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
authorrud0lp20 <rud0lp20@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-07-13 17:07:31 +0000
committerrud0lp20 <rud0lp20@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-07-13 17:07:31 +0000
commitf2a6b8d9161fa8da800a60b4917d54ff95eb9bc0 (patch)
tree17ba1be447010679d3ba1247960a006f187aebdd /src/map/skill.c
parent09d7d16f522b2a4aa7020698544e2153094005a2 (diff)
downloadhercules-f2a6b8d9161fa8da800a60b4917d54ff95eb9bc0.tar.gz
hercules-f2a6b8d9161fa8da800a60b4917d54ff95eb9bc0.tar.bz2
hercules-f2a6b8d9161fa8da800a60b4917d54ff95eb9bc0.tar.xz
hercules-f2a6b8d9161fa8da800a60b4917d54ff95eb9bc0.zip
Fixed bugreport:6220 updated SR_SKYNETBLOW behavior to official and damage formula and other Sura skills(SR_TIGERCANNON,SR_FALLENEMPIRE,SR_GATEOFHELL,SR_WINDMILL,SR_RIDEINLIGHTING,SR_LIGHTNINGWALK) and more to come...:D
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16424 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index fd58618ec..db7871ae9 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -1243,14 +1243,11 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
sc_start(bl, SC_EARTHDRIVE, 100, skilllv, skill_get_time(skillid, skilllv));
break;
case SR_DRAGONCOMBO:
- sc_start(bl, SC_STUN, 1 + 1 * skilllv, skilllv, skill_get_time(skillid, skilllv));
+ sc_start(bl, SC_STUN, 1 + skilllv, skilllv, skill_get_time(skillid, skilllv));
break;
case SR_FALLENEMPIRE:
sc_start(bl, SC_STOP, 100, skilllv, skill_get_time(skillid, skilllv));
break;
- case SR_TIGERCANNON:
- status_percent_damage(src, bl, 0, 5+1*skilllv, false); // The hell is this? [Rytech]
- break;
case SR_WINDMILL:
if( dstsd )
skill_addtimerskill(src,tick+status_get_amotion(src),bl->id,0,0,skillid,skilllv,BF_WEAPON,0);
@@ -2649,6 +2646,9 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds
case WM_METALICSOUND:
status_zap(bl, 0, damage*100/(100*(110-pc_checkskill(sd,WM_LESSON)*10)));
break;
+ case SR_TIGERCANNON:
+ status_zap(bl, 0, damage/10); // 10% of damage dealt
+ break;
}
if( sd )
skill_onskillusage(sd, bl, skillid, tick);
@@ -5445,7 +5445,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
clif_skill_nodamage(src,bl,skillid,skilllv,1);
i = 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);
- if( !i && skillid == NC_AXETORNADO )
+ if( !i && skillid == NC_AXETORNADO || skillid == SR_SKYNETBLOW )
clif_skill_damage(src,src,tick, status_get_amotion(src), 0, -30000, 1, skillid, skilllv, 6);
break;
@@ -12519,7 +12519,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, short skill, sh
}
if( require.spiritball > 0 && sd->spiritball < require.spiritball) {
- clif_skill_fail(sd,skill,USESKILL_FAIL_LEVEL,0);
+ clif_skill_fail(sd,skill,USESKILL_FAIL_SPIRITS,require.spiritball);
return 0;
}
@@ -13039,6 +13039,7 @@ int skill_castfix_sc (struct block_list *bl, int time, int skill_id, int skill_l
}
}
#endif
+ if( time < 0 ) return 0; // due to fixed castime so use -1 to nullify the casting. [malufett]
if (sc && sc->count) {
if (sc->data[SC_SLOWCAST])
time += time * sc->data[SC_SLOWCAST]->val2 / 100;
@@ -15874,7 +15875,7 @@ int skill_elementalanalysis(struct map_session_data* sd, int n, int skill_lv, un
tmp_item.nameid = product;
tmp_item.amount = add_amount;
tmp_item.identify = 1;
-
+
if( tmp_item.amount ) {
if( (flag = pc_additem(sd,&tmp_item,tmp_item.amount,LOG_TYPE_CONSUME)) ) {
clif_additem(sd,0,0,flag);