diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/skill.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index b3a5d432b..813018852 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1775,7 +1775,7 @@ int skill_blown (struct block_list *src, struct block_list *target, int count) if (src != target && map_flag_gvg(target->m)) return 0; //No knocking back in WoE - if (!count&0xffff) + if (!(count&0xffff)) return 0; //Actual knockback distance is 0. switch (target->type) { @@ -4743,7 +4743,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in int x,y, dir = unit_getdir(src); //Fails on noteleport maps, except for vs maps [Skotlex] - if(map[src->m].flag.noteleport && !map_flag_vs(src->m)) { + if(map[src->m].flag.noteleport && + !(map_flag_vs(src->m) || map_flag_gvg2(src->m)) + ) { x = src->x; y = src->y; } else { @@ -7096,7 +7098,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, unsigned break; if (ss == bl) //Also needed to prevent infinite loop crash. break; - skill_blown(ss, bl, skill_get_blewcount(sg->skill_id,sg->skill_lv)); + skill_blown(ss, bl, 0x10000|skill_get_blewcount(sg->skill_id,sg->skill_lv)); break; } return skillid; |