|
@@ -726,7 +726,7 @@ bool skill_isNotOk(uint16 skill_id, struct map_session_data *sd)
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case GC_DARKILLUSION:
|
|
case GC_DARKILLUSION:
|
|
- if( map_flag_gvg(m) ) {
|
|
|
|
|
|
+ if( map_flag_gvg2(m) ) {
|
|
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
|
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
@@ -4703,7 +4703,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
|
uint8 dir = map_calc_dir(bl, src->x, src->y);
|
|
uint8 dir = map_calc_dir(bl, src->x, src->y);
|
|
|
|
|
|
// teleport to target (if not on WoE grounds)
|
|
// teleport to target (if not on WoE grounds)
|
|
- if (skill_check_unit_movepos(3, src, bl->x, bl->y, 0, 1))
|
|
|
|
|
|
+ if (skill_check_unit_movepos(5, src, bl->x, bl->y, 0, 1))
|
|
skill_blown(src, src, 1, (dir+4)%8, BLOWN_NONE); //Target position is actually one cell next to the target
|
|
skill_blown(src, src, 1, (dir+4)%8, BLOWN_NONE); //Target position is actually one cell next to the target
|
|
|
|
|
|
// cause damage and knockback if the path to target was a straight one
|
|
// cause damage and knockback if the path to target was a straight one
|
|
@@ -5330,7 +5330,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
|
sc_start(src,src,SC_HIDING,100,skill_lv,skill_get_time(skill_id,skill_lv));
|
|
sc_start(src,src,SC_HIDING,100,skill_lv,skill_get_time(skill_id,skill_lv));
|
|
break;
|
|
break;
|
|
case NJ_KIRIKAGE:
|
|
case NJ_KIRIKAGE:
|
|
- if( !map_flag_gvg(src->m) && !map[src->m].flag.battleground )
|
|
|
|
|
|
+ if( !map_flag_gvg2(src->m) && !map[src->m].flag.battleground )
|
|
{ //You don't move on GVG grounds.
|
|
{ //You don't move on GVG grounds.
|
|
short x, y;
|
|
short x, y;
|
|
map_search_freecell(bl, 0, &x, &y, 1, 1, 0);
|
|
map_search_freecell(bl, 0, &x, &y, 1, 1, 0);
|
|
@@ -5674,7 +5674,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case LG_PINPOINTATTACK:
|
|
case LG_PINPOINTATTACK:
|
|
- if (skill_check_unit_movepos(3, src, bl->x, bl->y, 1, 1))
|
|
|
|
|
|
+ if (skill_check_unit_movepos(5, src, bl->x, bl->y, 1, 1))
|
|
clif_blown(src);
|
|
clif_blown(src);
|
|
skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
|
|
skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
|
|
break;
|
|
break;
|
|
@@ -6216,7 +6216,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|
break;
|
|
break;
|
|
|
|
|
|
case ALL_RESURRECTION:
|
|
case ALL_RESURRECTION:
|
|
- if(sd && (map_flag_gvg(bl->m) || map[bl->m].flag.battleground))
|
|
|
|
|
|
+ if(sd && (map_flag_gvg2(bl->m) || map[bl->m].flag.battleground))
|
|
{ //No reviving in WoE grounds!
|
|
{ //No reviving in WoE grounds!
|
|
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
|
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
|
break;
|
|
break;
|
|
@@ -11758,7 +11758,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case NJ_SHADOWJUMP:
|
|
case NJ_SHADOWJUMP:
|
|
- if( map_getcell(src->m,x,y,CELL_CHKREACH) && skill_check_unit_movepos(3, src, x, y, 1, 0) ) //You don't move on GVG grounds.
|
|
|
|
|
|
+ if( map_getcell(src->m,x,y,CELL_CHKREACH) && skill_check_unit_movepos(5, src, x, y, 1, 0) ) //You don't move on GVG grounds.
|
|
clif_blown(src);
|
|
clif_blown(src);
|
|
status_change_end(src, SC_HIDING, INVALID_TIMER);
|
|
status_change_end(src, SC_HIDING, INVALID_TIMER);
|
|
break;
|
|
break;
|
|
@@ -12647,7 +12647,7 @@ struct skill_unit_group *skill_unitsetting(struct block_list *src, uint16 skill_
|
|
ARR_FIND(0, MAX_SKILL_ITEM_REQUIRE, i, req.itemid[i] && (req.itemid[i] == ITEMID_TRAP || req.itemid[i] == ITEMID_TRAP_ALLOY));
|
|
ARR_FIND(0, MAX_SKILL_ITEM_REQUIRE, i, req.itemid[i] && (req.itemid[i] == ITEMID_TRAP || req.itemid[i] == ITEMID_TRAP_ALLOY));
|
|
if( i != MAX_SKILL_ITEM_REQUIRE && req.itemid[i] )
|
|
if( i != MAX_SKILL_ITEM_REQUIRE && req.itemid[i] )
|
|
req_item = req.itemid[i];
|
|
req_item = req.itemid[i];
|
|
- if( map_flag_gvg(src->m) || map[src->m].flag.battleground )
|
|
|
|
|
|
+ if( map_flag_gvg2(src->m) || map[src->m].flag.battleground )
|
|
limit *= 4; // longer trap times in WOE [celest]
|
|
limit *= 4; // longer trap times in WOE [celest]
|
|
if( battle_config.vs_traps_bctall && map_flag_vs(src->m) && (src->type&battle_config.vs_traps_bctall) )
|
|
if( battle_config.vs_traps_bctall && map_flag_vs(src->m) && (src->type&battle_config.vs_traps_bctall) )
|
|
target = BCT_ALL;
|
|
target = BCT_ALL;
|
|
@@ -15366,7 +15366,7 @@ bool skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_i
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case SR_CURSEDCIRCLE:
|
|
case SR_CURSEDCIRCLE:
|
|
- if (map_flag_gvg(sd->bl.m)) {
|
|
|
|
|
|
+ if (map_flag_gvg2(sd->bl.m)) {
|
|
if (map_foreachinrange(mob_count_sub, &sd->bl, skill_get_splash(skill_id, skill_lv), BL_MOB,
|
|
if (map_foreachinrange(mob_count_sub, &sd->bl, skill_get_splash(skill_id, skill_lv), BL_MOB,
|
|
MOBID_EMPERIUM, MOBID_GUARDIAN_STONE1, MOBID_GUARDIAN_STONE2)) {
|
|
MOBID_EMPERIUM, MOBID_GUARDIAN_STONE1, MOBID_GUARDIAN_STONE2)) {
|
|
char output[128];
|
|
char output[128];
|
|
@@ -16520,7 +16520,7 @@ int skill_delayfix(struct block_list *bl, uint16 skill_id, uint16 skill_lv)
|
|
time /= 2;
|
|
time /= 2;
|
|
break;
|
|
break;
|
|
case AS_SONICBLOW:
|
|
case AS_SONICBLOW:
|
|
- if (!map_flag_gvg(bl->m) && !map[bl->m].flag.battleground && sc->data[SC_SPIRIT]->val2 == SL_ASSASIN)
|
|
|
|
|
|
+ if (!map_flag_gvg2(bl->m) && !map[bl->m].flag.battleground && sc->data[SC_SPIRIT]->val2 == SL_ASSASIN)
|
|
time /= 2;
|
|
time /= 2;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -20635,7 +20635,7 @@ int skill_get_elemental_type( uint16 skill_id , uint16 skill_lv ) {
|
|
|
|
|
|
/**
|
|
/**
|
|
* Check before do `unit_movepos` call
|
|
* Check before do `unit_movepos` call
|
|
- * @param check_flag Flags: 1:Check for BG map, 2:Check for GVG map on WOE, 4:Check for GVG map
|
|
|
|
|
|
+ * @param check_flag Flags: 1:Check for BG maps, 2:Check for GVG maps on WOE times, 4:Check for GVG maps regardless Agit flags
|
|
* @return True:If unit can be moved, False:If check on flags are met or unit cannot be moved.
|
|
* @return True:If unit can be moved, False:If check on flags are met or unit cannot be moved.
|
|
**/
|
|
**/
|
|
static bool skill_check_unit_movepos(uint8 check_flag, struct block_list *bl, short dst_x, short dst_y, int easy, bool checkpath) {
|
|
static bool skill_check_unit_movepos(uint8 check_flag, struct block_list *bl, short dst_x, short dst_y, int easy, bool checkpath) {
|