diff options
author | markzd <markzd@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-12-07 16:42:49 +0000 |
---|---|---|
committer | markzd <markzd@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-12-07 16:42:49 +0000 |
commit | d9f07c906f597ba9721c5eff727c8091adbfd239 (patch) | |
tree | 0d62934c4a763cdf683f3c2d0760e246b6a4bea0 | |
parent | 1530932bd5a56eed2d2ac57aa8ebcbb7da92281e (diff) | |
download | hercules-d9f07c906f597ba9721c5eff727c8091adbfd239.tar.gz hercules-d9f07c906f597ba9721c5eff727c8091adbfd239.tar.bz2 hercules-d9f07c906f597ba9721c5eff727c8091adbfd239.tar.xz hercules-d9f07c906f597ba9721c5eff727c8091adbfd239.zip |
- Fixed wizard sightblaster skill which was not knocking back traps. (bugreport:144)
- Fixed soul linker Swoo(Eswoo) skill to make proper application of stun to caster and target when the second is shrunkened.(bugreport:6157)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17008 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r-- | src/map/skill.c | 8 | ||||
-rw-r--r-- | src/map/status.c | 8 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 8f5df51a2..718bf7faa 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -2475,6 +2475,9 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds case HT_LANDMINE: dmg.dmotion = clif_skill_damage(dsrc,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skillid, -1, type); break; + case WZ_SIGHTBLASTER: + dmg.dmotion = clif_skill_damage(src,bl,tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skillid, flag&SD_LEVEL?-1:skilllv, 5); + break; case AB_DUPLELIGHT_MELEE: case AB_DUPLELIGHT_MAGIC: dmg.amotion = 300;/* makes the damage value not overlap with previous damage (when displayed by the client) */ @@ -7151,7 +7154,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case SL_SWOO: if (tsce) { - sc_start(src,SC_STUN,100,skilllv,10000); + if(sd) + clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0); + status_change_start(src,SC_STUN,10000,skilllv,0,0,0,10000,8); + status_change_end(bl, SC_SWOO, INVALID_TIMER); break; } case SL_SKA: // [marquis007] diff --git a/src/map/status.c b/src/map/status.c index 2f83caf52..7cf76c56e 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -9783,7 +9783,10 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data) case SC_SIGHT: case SC_RUWACH: case SC_SIGHTBLASTER: - map_foreachinrange( status_change_timer_sub, bl, sce->val3, BL_CHAR, bl, sce, type, tick); + if(type == SC_SIGHTBLASTER) + map_foreachinrange( status_change_timer_sub, bl, sce->val3, BL_CHAR|BL_SKILL, bl, sce, type, tick); + else + map_foreachinrange( status_change_timer_sub, bl, sce->val3, BL_CHAR, bl, sce, type, tick); if( --(sce->val2)>0 ){ sce->val4 += 250; // use for Shadow Form 2 seconds checking. @@ -10566,7 +10569,8 @@ int status_change_timer_sub(struct block_list* bl, va_list ap) status_check_skilluse(src, bl, WZ_SIGHTBLASTER, 2)) { skill_attack(BF_MAGIC,src,src,bl,WZ_SIGHTBLASTER,1,tick,0); - if (sce) sce->val2 = 0; //This signals it to end. + if (sce && !(bl->type&BL_SKILL)) //The hit is not counted if it's against a trap + sce->val2 = 0; //This signals it to end. } break; case SC_CLOSECONFINE: |