summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-08-22 22:49:54 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-08-22 22:49:54 +0000
commitcd6a53f9c55548cfd77038882e96cffa1865fb29 (patch)
tree30f3b71215b71fa71adaa9a92059a1aca1987b6e /src/map/skill.c
parent292c8eb8404b2cce75a2b99a9fa53dc7458bdceb (diff)
downloadhercules-cd6a53f9c55548cfd77038882e96cffa1865fb29.tar.gz
hercules-cd6a53f9c55548cfd77038882e96cffa1865fb29.tar.bz2
hercules-cd6a53f9c55548cfd77038882e96cffa1865fb29.tar.xz
hercules-cd6a53f9c55548cfd77038882e96cffa1865fb29.zip
- Fixed Dragon Fear's status change selection and duration.
- Fixed Metamorphosis not displaying a speed-change update on the client. - Status changes that were blocked by element are no longer blocked, instead, now no-damage skills are blocked if they have an element which is absorbed by the target (This is the behaviour that Tharis believes is correct). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11067 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index a67eb9d70..5f6c249ce 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -3400,6 +3400,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
tstatus = status_get_status_data(bl);
sstatus = status_get_status_data(src);
+
+ if(src!=bl && (i = skill_get_pl(skillid, skilllv)) > ELE_NEUTRAL &&
+ battle_attr_fix(NULL, NULL, 100, i, tstatus->def_ele, tstatus->ele_lv) <= 0)
+ return 1; //Skills with an element should be blocked if the target element absorbs it.
//Check for undead skills that convert a no-damage skill into a damage one. [Skotlex]
switch (skillid) {
@@ -5657,7 +5661,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
case NPC_DRAGONFEAR:
if (flag&1) {
const int sc[] = { SC_STUN, SC_CURSE, SC_SILENCE, SC_BLEEDING };
- sc_start(bl,rand()%ARRAYLENGTH(sc),100,skilllv,skill_get_time2(skillid,skilllv));
+ i = rand()%ARRAYLENGTH(sc);
+ sc_start(bl,sc[i],100,skilllv,skill_get_time2(skillid,i+1));
break;
}
case NPC_WIDEBLEEDING: