From 30bf9a2b13ccee8c83659f9b45f27df5160a4437 Mon Sep 17 00:00:00 2001 From: skotlex Date: Tue, 22 Aug 2006 03:30:07 +0000 Subject: [PATCH] - Some more cleaning up of the splash skill code. Now the passed hit value for the splash targetted mobs is 9 instead of 5, this allows multi-hitting splash skills to display the number of hits correctly. - Also merged Blitz Beat to the rest of the splash code. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8415 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 3 +++ src/map/skill.c | 33 +++++---------------------------- 2 files changed, 8 insertions(+), 28 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 89a853b24b..d3aa7406da 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,9 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2006/08/21 + * Some more cleaning up of the splash skill code. Now the passed hit value + for the splash targetted mobs is 9 instead of 5, this allows multi-hitting + splash skills to display the number of hits correctly. [Skotlex] * Fixed call homunc bug when the homunc was vapo and the master has change of map [Toms] * Fixed SQL-Guild Creation, guild name was escaped 2 times [Toms] diff --git a/src/map/skill.c b/src/map/skill.c index 9b687ab8f9..132cf7effa 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -2879,6 +2879,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int case AS_SPLASHER: case AS_GRIMTOOTH: case SM_MAGNUM: + case HT_BLITZBEAT: case MC_CARTREVOLUTION: case NPC_SPLASHATTACK: case AC_SHOWER: @@ -2895,7 +2896,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int { //Invoked from map_foreachinarea, skill_area_temp[0] holds number of targets to divide damage by. if (skill_area_temp[1] != bl->id) skill_attack(skill_get_type(skillid), src, src, bl, - skillid, skilllv, tick, skill_area_temp[0]|0x1500); + skillid, skilllv, tick, skill_area_temp[0]|0x1900); else if (skillid == KN_BRANDISHSPEAR) skill_attack(skill_get_type(skillid), src, src, bl, skillid, skilllv, tick, skill_area_temp[0]); @@ -2905,7 +2906,8 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int clif_skill_nodamage(src,bl,skillid,skilllv,1); skill_area_temp[0] = 0; skill_area_temp[1] = bl->id; - if (skill_get_nk(skillid)&NK_SPLASHSPLIT) + //0xF000 -> Forced splash damage for Auto Blitz-Beat + if (flag&0xF000 || skill_get_nk(skillid)&NK_SPLASHSPLIT) map_foreachinrange(skill_area_sub, bl, skill_get_splash(skillid, skilllv), BL_CHAR, src, skillid, skilllv, tick, BCT_ENEMY, skill_area_sub_count); @@ -2919,7 +2921,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int //Splasher Should do 100% damage on targetted character. skill_attack(skill_get_type(skillid), src, src, bl, skillid, skilllv, - tick, skillid == AS_SPLASHER?0:skill_area_temp[0]); + tick, (skillid == AS_SPLASHER?0:skill_area_temp[0])|(flag&0xF000)); if (skillid == SM_MAGNUM) { //Initiate 10% of your damage becomes fire element. @@ -2928,31 +2930,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int } break; - //Done apart because you can't mix the flag with BCT_ENEMY for auto-blitz. - case HT_BLITZBEAT: - if (flag&1) { - if (skill_area_temp[1] != bl->id) - skill_attack(skill_get_type(skillid), src, src, bl, skillid, skilllv, - tick, skill_area_temp[0]|(flag&0xFF00)); - } else { - skill_area_temp[0] = 0; - skill_area_temp[1] = bl->id; - if (flag&0xF000) - map_foreachinrange(skill_area_sub, bl, - skill_get_splash(skillid, skilllv), BL_CHAR, - src, skillid, skilllv, tick, BCT_ENEMY, skill_area_sub_count); - else - skill_area_temp[0] = 1; - map_foreachinrange(skill_area_sub, bl, - skill_get_splash(skillid, skilllv), BL_CHAR, - src, skillid, skilllv, tick, BCT_ENEMY|1|flag, - skill_castend_damage_id); - - skill_attack(skill_get_type(skillid), src, src, bl, skillid, skilllv, - tick, skill_area_temp[0]|(flag&0xFF00)); - } - break; - case KN_BOWLINGBASH: if(flag&1){ if(bl->id==skill_area_temp[1])