summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/map/skill.c9
-rw-r--r--src/map/status.c2
-rw-r--r--src/map/unit.c6
3 files changed, 6 insertions, 11 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index 89a9fa658..5d03b739a 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -9709,9 +9709,9 @@ int skill_castend_pos2(struct block_list* src, int x, int y, int skillid, int sk
map_foreachinarea(skill_graffitiremover,src->m,x-i,y-i,x+i,y+i,BL_SKILL);
break;
- case SO_CLOUD_KILL:
case SO_WARMER:
- flag|=(skillid == SO_WARMER)?8:4;
+ flag|= 8;
+ case SO_CLOUD_KILL:
skill_unitsetting(src,skillid,skilllv,x,y,0);
break;
@@ -14420,10 +14420,6 @@ int skill_clear_group (struct block_list *bl, int flag)
if (flag&1)
group[count++]= ud->skillunit[i];
break;
- case SO_CLOUD_KILL:
- if( flag&4 )
- group[count++]= ud->skillunit[i];
- break;
case SO_WARMER:
if( flag&8 )
group[count++]= ud->skillunit[i];
@@ -14462,7 +14458,6 @@ struct skill_unit_group *skill_locate_element_field(struct block_list *bl)
case SA_LANDPROTECTOR:
case NJ_SUITON:
case SO_WARMER:
- case SO_CLOUD_KILL:
case SC_BLOODYLUST:
return ud->skillunit[i];
}
diff --git a/src/map/status.c b/src/map/status.c
index f3625b1e7..68b7498fc 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -685,7 +685,7 @@ void initChangeTables(void) {
set_sc( SO_ELECTRICWALK , SC_PROPERTYWALK , SI_PROPERTYWALK , SCB_NONE );
set_sc( SO_SPELLFIST , SC_SPELLFIST , SI_SPELLFIST , SCB_NONE );
set_sc_with_vfx( SO_DIAMONDDUST , SC_CRYSTALIZE , SI_COLD , SCB_NONE ); // it does show the snow icon on mobs but doesn't affect it.
- set_sc( SO_CLOUD_KILL , SC_POISON , SI_CLOUDKILL , SCB_NONE );
+ add_sc( SO_CLOUD_KILL , SC_POISON );
set_sc( SO_STRIKING , SC_STRIKING , SI_STRIKING , SCB_WATK|SCB_CRI );
set_sc( SO_WARMER , SC_WARMER , SI_WARMER , SCB_NONE );
set_sc( SO_VACUUM_EXTREME , SC_VACUUM_EXTREME , SI_VACUUM_EXTREME , SCB_NONE );
diff --git a/src/map/unit.c b/src/map/unit.c
index 4eaa4ba30..4827c0c68 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -1260,12 +1260,11 @@ int unit_skilluse_id2(struct block_list *src, int target_id, short skill_num, sh
casttime = skill_vfcastfix(src, casttime, skill_num, skill_lv);
#endif
+ unit_stop_walking(src,1);// eventhough this is not how official works but this will do the trick. bugreport:6829
// in official this is triggered even if no cast time.
clif_skillcasting(src, src->id, target_id, 0,0, skill_num, skill_get_ele(skill_num, skill_lv), casttime);
if( casttime > 0 || temp )
{
- unit_stop_walking(src,1);
-
if (sd && target->type == BL_MOB)
{
TBL_MOB *md = (TBL_MOB*)target;
@@ -1453,11 +1452,12 @@ int unit_skilluse_pos2( struct block_list *src, short skill_x, short skill_y, sh
if (!src->prev) return 0;
}
}
+
+ unit_stop_walking(src,1);
// in official this is triggered even if no cast time.
clif_skillcasting(src, src->id, 0, skill_x, skill_y, skill_num, skill_get_ele(skill_num, skill_lv), casttime);
if( casttime > 0 )
{
- unit_stop_walking(src,1);
ud->skilltimer = add_timer( tick+casttime, skill_castend_pos, src->id, 0 );
if( (sd && pc_checkskill(sd,SA_FREECAST) > 0) || skill_num == LG_EXEEDBREAK)
status_calc_bl(&sd->bl, SCB_SPEED);