summaryrefslogtreecommitdiff
path: root/src/map/mob.c
diff options
context:
space:
mode:
authorcelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2004-11-21 14:48:28 +0000
committercelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2004-11-21 14:48:28 +0000
commitb6e172482b1a91869c8ffd630d8b0e97c98ad8d0 (patch)
tree1dc20e710d329b9aabada92e0ebc7fb78deeea18 /src/map/mob.c
parent81ff879313b29ee97375d214b00f78b1f75d3d4a (diff)
downloadhercules-b6e172482b1a91869c8ffd630d8b0e97c98ad8d0.tar.gz
hercules-b6e172482b1a91869c8ffd630d8b0e97c98ad8d0.tar.bz2
hercules-b6e172482b1a91869c8ffd630d8b0e97c98ad8d0.tar.xz
hercules-b6e172482b1a91869c8ffd630d8b0e97c98ad8d0.zip
- Updated Basilica, Sharp Shooting, Berserk, Meditatio
- Fixed a typo with Blade Stop that was causing crashes, sorry. ^^; - Reverted changes to Cloaking, ours is already more updated (than Freya!) ^_^ git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/athena@293 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/mob.c')
-rw-r--r--src/map/mob.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/map/mob.c b/src/map/mob.c
index 1f953b75d..b3a2d83c0 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -601,7 +601,7 @@ static int mob_attack(struct mob_data *md,unsigned int tick,int data)
md->state.targettype = NONE_ATTACKABLE;
return 0;
}
- if(tsd && !(mode&0x20) && (tsd->sc_data[SC_TRICKDEAD].timer != -1 ||
+ if(tsd && !(mode&0x20) && (tsd->sc_data[SC_TRICKDEAD].timer != -1 || tsd->sc_data[SC_BASILICA].timer != -1 ||
((pc_ishiding(tsd) || tsd->state.gangsterparadise) && !((race == 4 || race == 6) && !tsd->perfect_hiding) ) ) ) {
md->target_id=0;
md->state.targettype = NONE_ATTACKABLE;
@@ -1174,8 +1174,8 @@ int mob_target(struct mob_data *md,struct block_list *bl,int dist)
return 0;
if(mode&0x20 || // Coercion is exerted if it is MVPMOB.
- (sc_data && sc_data[SC_TRICKDEAD].timer == -1 &&
- ( (option && !(*option&0x06) ) || race==4 || race==6) ) ){
+ (sc_data && sc_data[SC_TRICKDEAD].timer == -1 && sc_data[SC_BASILICA].timer == -1 &&
+ ( (option && !(*option&0x06) ) || race==4 || race==6) ) ) {
if(bl->type == BL_PC) {
nullpo_retr(0, sd = (struct map_session_data *)bl);
if(sd->invincible_timer != -1 || pc_isinvisible(sd))
@@ -1240,7 +1240,7 @@ static int mob_ai_sub_hard_activesearch(struct block_list *bl,va_list ap)
)
{
if(mode&0x20 ||
- (tsd->sc_data[SC_TRICKDEAD].timer == -1 &&
+ (tsd->sc_data[SC_TRICKDEAD].timer == -1 && tsd->sc_data[SC_BASILICA].timer == -1 &&
((!pc_ishiding(tsd) && !tsd->state.gangsterparadise) || ((race == 4 || race == 6) && !tsd->perfect_hiding) ))){ // 妨害がないか判定
if( mob_can_reach(smd,bl,12) && // 到達可能性判定
rand()%1000<1000/(++(*pcc)) ){ // 範囲内PCで等確率にする
@@ -1428,7 +1428,7 @@ static int mob_ai_sub_hard_slavemob(struct mob_data *md,unsigned int tick)
race=mob_db[md->class].race;
if(mode&0x20 ||
- (sd->sc_data[SC_TRICKDEAD].timer == -1 &&
+ (sd->sc_data[SC_TRICKDEAD].timer == -1 && sd->sc_data[SC_BASILICA].timer == -1 &&
( (!pc_ishiding(sd) && !sd->state.gangsterparadise) || ((race == 4 || race == 6) && !sd->perfect_hiding) ) ) ){ // 妨害がないか判定
md->target_id=sd->bl.id;
@@ -1642,7 +1642,9 @@ static int mob_ai_sub_hard(struct block_list *bl,va_list ap)
if(tsd || tmd) {
if(tbl->m != md->bl.m || tbl->prev == NULL || (dist=distance(md->bl.x,md->bl.y,tbl->x,tbl->y))>=md->min_chase)
mob_unlocktarget(md,tick); // 別マップか、視界外
- else if( tsd && !(mode&0x20) && (tsd->sc_data[SC_TRICKDEAD].timer != -1 || ((pc_ishiding(tsd) || tsd->state.gangsterparadise) && !((race == 4 || race == 6) && !tsd->perfect_hiding) )) )
+ else if( tsd && !(mode&0x20) && (tsd->sc_data[SC_TRICKDEAD].timer != -1 || tsd->sc_data[SC_BASILICA].timer != -1 ||
+ ((pc_ishiding(tsd) || tsd->state.gangsterparadise) &&
+ !((race == 4 || race == 6) && !tsd->perfect_hiding) )) )
mob_unlocktarget(md,tick); // スキルなどによる策敵妨害
else if(!battle_check_range(&md->bl,tbl,mob_db[md->class].range)){
// 攻撃範囲外なので移動