summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-07 19:07:37 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-07 19:07:37 +0000
commit2f18bd89583f2315dd0e77f2c44dce5737cf000e (patch)
treea407b60164a9e3fa2203d77256d5f66d4dde1710 /src/map/skill.c
parentcb279436f65b472f247c3b76843218e9243e8533 (diff)
downloadhercules-2f18bd89583f2315dd0e77f2c44dce5737cf000e.tar.gz
hercules-2f18bd89583f2315dd0e77f2c44dce5737cf000e.tar.bz2
hercules-2f18bd89583f2315dd0e77f2c44dce5737cf000e.tar.xz
hercules-2f18bd89583f2315dd0e77f2c44dce5737cf000e.zip
- Removed the setting of blow-count to 0 when the target is a boss on the battle_calc_* functions, now skill_blown will fail when the source is different from the target and the target is a boss.
- Some parenthesis cleanup before invoking battle_calc_base_damage, could be fixing the current issue with arrow attacks not adding the arrow damage. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8170 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index 2fb5ce253..936850166 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -1705,6 +1705,8 @@ int skill_blown (struct block_list *src, struct block_list *target, int count)
case BL_MOB:
if (((TBL_MOB*)target)->class_ == MOBID_EMPERIUM)
return 0;
+ if(src != target && is_boss(target)) //Bosses can't be knocked-back
+ return 0;
break;
case BL_SKILL:
su=(struct skill_unit *)target;
@@ -2938,14 +2940,14 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
if(flag&1){
if (bl->id==skill_area_temp[1])
break;
- if (skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,0x0500) && !status_get_mexp(bl))
+ if (skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,0x0500))
skill_blown(src,bl,skill_area_temp[2]);
} else {
int x=bl->x,y=bl->y,i,dir;
dir = map_calc_dir(bl,src->x,src->y);
skill_area_temp[1] = bl->id;
skill_area_temp[2] = skill_get_blewcount(skillid,skilllv)|dir<<20;
- if (skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,0) && !status_get_mexp(bl))
+ if (skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,0))
skill_blown(src,bl,skill_area_temp[2]);
for (i=0;i<4;i++) {
map_foreachincell(skill_area_sub,bl->m,x,y,BL_CHAR,