diff options
author | skyleo <skyleo@skyleo.de> | 2020-01-14 10:10:35 +0100 |
---|---|---|
committer | skyleo <skyleo@skyleo.de> | 2020-01-14 10:10:35 +0100 |
commit | 6cbe270b3c5bdb09c62da09fa87f6f3336fa2740 (patch) | |
tree | e4a6898bdef439f3fbe645b002fa9c95b8a62e3c /src/map/battle.c | |
parent | c03722679a01e5f181c2138565e95a6b0981a124 (diff) | |
download | hercules-6cbe270b3c5bdb09c62da09fa87f6f3336fa2740.tar.gz hercules-6cbe270b3c5bdb09c62da09fa87f6f3336fa2740.tar.bz2 hercules-6cbe270b3c5bdb09c62da09fa87f6f3336fa2740.tar.xz hercules-6cbe270b3c5bdb09c62da09fa87f6f3336fa2740.zip |
Fix Basilica unintentionally restraining boss mobs
Thanks to Marida from oRO Dev Team for fixing this.
Diffstat (limited to 'src/map/battle.c')
-rw-r--r-- | src/map/battle.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/map/battle.c b/src/map/battle.c index 0b88f17c9..e93ba6e91 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -6600,10 +6600,6 @@ static int battle_check_target(struct block_list *src, struct block_list *target m = target->m; - if (flag & BCT_ENEMY && (map->getcell(m, src, src->x, src->y, CELL_CHKBASILICA) || map->getcell(m, src, target->x, target->y, CELL_CHKBASILICA))) { - return -1; - } - //t_bl/s_bl hold the 'master' of the attack, while src/target are the actual //objects involved. if( (t_bl = battle->get_master(target)) == NULL ) @@ -6612,6 +6608,11 @@ static int battle_check_target(struct block_list *src, struct block_list *target if( (s_bl = battle->get_master(src)) == NULL ) s_bl = src; + if ((flag & BCT_ENEMY) != 0 && (status_get_mode(s_bl) & MD_BOSS) == 0 && (map->getcell(m, src, src->x, src->y, CELL_CHKBASILICA) + || map->getcell(m, src, target->x, target->y, CELL_CHKBASILICA))) { + return -1; + } + if (s_bl->type == BL_PC) { const struct map_session_data *s_sd = BL_UCCAST(BL_PC, s_bl); switch (t_bl->type) { |