From d9f07c906f597ba9721c5eff727c8091adbfd239 Mon Sep 17 00:00:00 2001 From: markzd Date: Fri, 7 Dec 2012 16:42:49 +0000 Subject: - 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 --- src/map/skill.c | 8 +++++++- src/map/status.c | 8 ++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'src/map') 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: -- cgit v1.2.3-70-g09d2