From d56f5afd4540115e4ea43208d367b4f09c18623c Mon Sep 17 00:00:00 2001 From: skotlex Date: Wed, 23 Aug 2006 16:12:25 +0000 Subject: - Fixed HVAN_EXPLOSION (What did I fixed? either it doing no damage, or it giving no exp to the caster, whichever bug was there) - Frost Nova won't display a nodamage skill packet (still need to sort out a way to fix the splash damaged packets) - Some cleaning on the timeout code for traps. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8453 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/skill.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'src/map/skill.c') diff --git a/src/map/skill.c b/src/map/skill.c index 974d3c2ae..209116db8 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -2029,6 +2029,7 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds dmg.dmotion = clif_skill_damage(dsrc,bl,tick,dmg.amotion,dmg.dmotion, damage, dmg.div_, CR_HOLYCROSS, -1, 5); break; //Skills who's damage should't show any skill-animation. + case HVAN_EXPLOSION: case NPC_SELFDESTRUCTION: if(src->type==BL_PC) dmg.blewcount = 10; @@ -2139,7 +2140,7 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds sc->count && sc->data[SC_DOUBLECAST].timer != -1 && rand() % 100 < 40+10*sc->data[SC_DOUBLECAST].val1) { -// skill_addtimerskill(src, tick + dmg.div_*dmg.amotion, bl->id, 0, 0, skillid, skilllv, BF_MAGIC, flag|1); +// skill_addtimerskill(src, tick + dmg.div_*dmg.amotion, bl->id, 0, 0, skillid, skilllv, BF_MAGIC, flag|2); skill_addtimerskill(src, tick + dmg.amotion, bl->id, 0, 0, skillid, skilllv, BF_MAGIC, flag|2); } @@ -4035,8 +4036,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case NJ_HYOUSYOURAKU: case NJ_RAIGEKISAI: - case WZ_FROSTNOVA: clif_skill_nodamage(src,bl,skillid,skilllv,1); + case WZ_FROSTNOVA: skill_area_temp[1] = 0; map_foreachinrange(skill_attack_area, src, skill_get_splash(skillid, skilllv), BL_CHAR, @@ -9175,6 +9176,7 @@ int skill_attack_area (struct block_list *bl, va_list ap) flag=va_arg(ap,int); type=va_arg(ap,int); + if (skill_area_temp[1] == bl->id) //This is the target of the skill, do a full attack and skip target checks. return skill_attack(atk_type,src,dsrc,bl,skillid,skilllv,tick,flag); @@ -9969,16 +9971,13 @@ int skill_unit_timer_sub (struct block_list *bl, va_list ap) case UNT_TALKIEBOX: { struct block_list *src=map_id2bl(group->src_id); - if(group->unit_id == UNT_ANKLESNARE && group->val2); - else{ - if(src && src->type==BL_PC && !group->state.into_abyss) - { //Avoid generating trap items when it did not cost to create them. [Skotlex] - struct item item_tmp; - memset(&item_tmp,0,sizeof(item_tmp)); - item_tmp.nameid=1065; - item_tmp.identify=1; - map_addflooritem(&item_tmp,1,bl->m,bl->x,bl->y,NULL,NULL,NULL,0); - } + if(src && src->type==BL_PC && !group->state.into_abyss) + { //Avoid generating trap items when it did not cost to create them. [Skotlex] + struct item item_tmp; + memset(&item_tmp,0,sizeof(item_tmp)); + item_tmp.nameid=1065; + item_tmp.identify=1; + map_addflooritem(&item_tmp,1,bl->m,bl->x,bl->y,NULL,NULL,NULL,0); } skill_delunit(unit); } -- cgit v1.2.3-60-g2f50