summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-08 19:05:35 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-08 19:05:35 +0000
commitf96f703a1252a0229b59a58951dc2ba55dd66736 (patch)
tree63aa2fb6be9ff2db4b6c715c4b50b5593bf18b43 /src/map/skill.c
parent13bd7f95bf5efb4e4acf274baf20636682ea4b58 (diff)
downloadhercules-f96f703a1252a0229b59a58951dc2ba55dd66736.tar.gz
hercules-f96f703a1252a0229b59a58951dc2ba55dd66736.tar.bz2
hercules-f96f703a1252a0229b59a58951dc2ba55dd66736.tar.xz
hercules-f96f703a1252a0229b59a58951dc2ba55dd66736.zip
- Added a check to handle Spider Web as a targetted skill. If there's more than one character on the targetted cell, a different one may get trapped, but it will mostly do as it is now.
- Added check to Asura so that it will move you to the target when it fails ONLY when you can cast the skill on the target (not stunned, asleep, target not hidden, etc) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8190 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index 2b3301547..3c505eb81 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -3233,7 +3233,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
return skill_castend_damage_id (src, bl, skillid, skilllv, tick, flag);
default:
//Skill is actually ground placed.
- if (src == bl && skill_get_unit_id(skillid,0))
+ if ((src == bl || skillid == PF_SPIDERWEB) && skill_get_unit_id(skillid,0))
return skill_castend_pos2(src,bl->x,bl->y,skillid,skilllv,tick,0);
}
@@ -5768,8 +5768,9 @@ int skill_castend_id (int tid, unsigned int tick, int id, int data)
if (sc->data[SC_BLADESTOP].timer != -1)
status_change_end(src,SC_BLADESTOP,-1);
}
- if (target && target->m == src->m)
- { //Move character to target anyway.
+ if (target && target->m == src->m &&
+ (tid == -1 || status_check_skilluse(src, target, ud->skillid, 1))
+ ) { //Move character to target anyway.
int dx,dy;
dx = target->x - src->x;
dy = target->y - src->y;