summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
Diffstat (limited to 'src/map')
-rw-r--r--src/map/skill.c8
-rw-r--r--src/map/status.c8
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: