summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-18 16:43:20 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-18 16:43:20 +0000
commitaff8dade6593463301abee054981a4ea21fff273 (patch)
treecaacd036116e75a315e95302871e2f23718e5c03 /src/map/skill.c
parent39292f6f6a30287d2a4ffdd035f80616a8e6e8a4 (diff)
downloadhercules-aff8dade6593463301abee054981a4ea21fff273.tar.gz
hercules-aff8dade6593463301abee054981a4ea21fff273.tar.bz2
hercules-aff8dade6593463301abee054981a4ea21fff273.tar.xz
hercules-aff8dade6593463301abee054981a4ea21fff273.zip
- Made HLIF_HEAL a self skill that auto-selects target to caster's master.
- Implemented SC_BLOODLUST and SC_CHANGE, cleaned up HLIF_CHANGE - Applied a correction to HVAN_EXPLOSION - Fixed Homun ASPD calculation being able to underflow and give you min speed. - Added monster_ai&128 to make aggressive mobs ignore that behaviour of always picking Homun targets above player targets regardless of who is closer. - Fixed homun info packet being unable to display HP/SP correctly once the values are above 32k. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8349 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index b8fd82f3b..f8b946eb0 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -3091,12 +3091,12 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
case CR_ACIDDEMONSTRATION:
case TF_THROWSTONE:
case NPC_SMOKING:
- case HVAN_EXPLOSION: //[orn]
case GS_FLING:
case NJ_ZENYNAGE:
skill_attack(BF_MISC,src,src,bl,skillid,skilllv,tick,flag);
break;
+ case HVAN_EXPLOSION:
case NPC_SELFDESTRUCTION:
if (src != bl)
skill_attack(BF_MISC,src,src,bl,skillid,skilllv,tick,flag);
@@ -4063,7 +4063,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
case NPC_SELFDESTRUCTION:
//Self Destruction hits everyone in range (allies+enemies)
//Except for Summoned Marine spheres on non-versus maps, where it's just enemy.
- i = (md && md->special_state.ai == 2 && !map_flag_vs(src->m))?
+ i = ((hd || (md && md->special_state.ai == 2)) && !map_flag_vs(src->m))?
BCT_ENEMY:BCT_ALL;
clif_skill_nodamage(src, src, skillid, -1, 1);
map_foreachinrange(skill_area_sub, bl,
@@ -5554,14 +5554,12 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
clif_skill_fail(hd->master,skillid,0,0);
break;
case HLIF_CHANGE: //[orn]
- if ( hd ) {
- clif_skill_nodamage(src,bl,skillid,skilllv,
- sc_start(&hd->bl,type,100,skilllv,skill_get_time(skillid,skilllv))) ;
- status_heal(&hd->bl, hd->master->homunculus.max_hp, 0, 0);
- skill_blockmerc_start(hd, skillid, skill_get_time2(skillid,skilllv)) ;
- }
- else
- clif_skill_fail(hd->master,skillid,0,0);
+ clif_skill_nodamage(src,bl,skillid,skilllv,
+ sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
+ if (sd)
+ skill_blockpc_start(sd, skillid, skill_get_time2(skillid,skilllv));
+ if (hd)
+ skill_blockmerc_start(hd, skillid, skill_get_time2(skillid,skilllv));
break;
default: