From f96f703a1252a0229b59a58951dc2ba55dd66736 Mon Sep 17 00:00:00 2001 From: skotlex Date: Tue, 8 Aug 2006 19:05:35 +0000 Subject: - 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 --- Changelog-Trunk.txt | 6 ++++++ db/Changelog.txt | 2 ++ db/skill_db.txt | 2 +- src/map/skill.c | 7 ++++--- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 0ad477539..49315d29f 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,12 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2006/08/08 + * 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. [Skotlex] + * 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) [Skotlex] * Changed the map_freeblock_unlock code so that when there's an "already free'd pointer" error, the memory manager will print out the invoking function rather than map_freeblock_unlock, this should help fix it up next diff --git a/db/Changelog.txt b/db/Changelog.txt index 57f5ed4d1..ce8a6c8a7 100644 --- a/db/Changelog.txt +++ b/db/Changelog.txt @@ -19,6 +19,8 @@ ----- ========================= +08/08 + * Made PF_FOGWALL a targetted skill. [Skotlex] 08/07 * Slightly increased drop rate of some low-level guns [Playtester] - also lowered drop rate of Armor Charm to 0.01% again diff --git a/db/skill_db.txt b/db/skill_db.txt index 298ef3549..3df736ec4 100644 --- a/db/skill_db.txt +++ b/db/skill_db.txt @@ -425,7 +425,7 @@ 402,9,6,1,0,1,0,5,1,no,0,0,0,none,0 //PF_MINDBREAKER#Mind Breaker# 403,0,0,4,0,1,0,1,1,yes,0,0,0,magic,0 //PF_MEMORIZE#Foresight# 404,9,6,2,2,1,0,5,1,yes,0,256,2,magic,0 //PF_FOGWALL#Blinding Mist# -405,7,6,2,0,1,0,1,1,no,0,128,3,magic,0 //PF_SPIDERWEB#Fiber Lock# +405,7,6,1,0,1,0,1,1,no,0,128,3,magic,0 //PF_SPIDERWEB#Fiber Lock# 406,0,6,4,-1,2,2,10,1,no,33,0,0,weapon,0 //ASC_METEORASSAULT#Meteor Assault# 407,0,6,4,0,1,0,1,0,no,0,0,0,none,0 //ASC_CDP#Create Deadly Poison# 408,9,6,4,0,1,0,1,1,yes,0,4,0,none,0 //WE_BABY#Baby# 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; -- cgit v1.2.3-70-g09d2