diff options
author | (no author) <(no author)@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2005-02-11 16:58:06 +0000 |
---|---|---|
committer | (no author) <(no author)@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2005-02-11 16:58:06 +0000 |
commit | 0c87b6196c334797f487e9c8a82ea1e0b4a4bdbe (patch) | |
tree | 894b8e4bade3d9a718ac403bebacc5f81828bca0 /src/map | |
parent | 94661807ec510d48ca6dd135f0e02a3a835bc614 (diff) | |
download | hercules-0c87b6196c334797f487e9c8a82ea1e0b4a4bdbe.tar.gz hercules-0c87b6196c334797f487e9c8a82ea1e0b4a4bdbe.tar.bz2 hercules-0c87b6196c334797f487e9c8a82ea1e0b4a4bdbe.tar.xz hercules-0c87b6196c334797f487e9c8a82ea1e0b4a4bdbe.zip |
* Tidied up battle_check_target abit
* Updated traps to affect allies as well in GvG
* Updated cast and delay time for Soul Breaker
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@1077 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/battle.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/map/battle.c b/src/map/battle.c index 1bc612e0c..9f3361237 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -3682,15 +3682,22 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f // スキルユニットの場合、親を求める if( src->type==BL_SKILL) { - int inf2 = skill_get_inf2(((struct skill_unit *)src)->group->skill_id); - if( (ss=map_id2bl( ((struct skill_unit *)src)->group->src_id))==NULL ) + struct skill_unit *su = (struct skill_unit *)src; + int skillid, inf2; + + nullpo_retr (-1, su); + nullpo_retr (-1, su->group); + skillid = su->group->skill_id; + inf2 = skill_get_inf2(skillid); + if( (ss=map_id2bl( su->group->src_id))==NULL ) return -1; if(ss->prev == NULL) return -1; if(inf2&0x80 && - (map[src->m].flag.pvp || pc_iskiller((struct map_session_data *)src, (struct map_session_data *)target)) && // [MouseJstr] - !(target->type == BL_PC && pc_isinvisible((struct map_session_data *)target))) - return 0; + (map[src->m].flag.pvp || + (skillid >= 115 && skillid <= 125 && map[src->m].flag.gvg)) && + !(target->type == BL_PC && pc_isinvisible((struct map_session_data *)target))) + return 0; if(ss == target) { if(inf2&0x100) return 0; |