summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt3
-rw-r--r--src/map/skill.c33
2 files changed, 8 insertions, 28 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 89a853b24..d3aa7406d 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 9b687ab8f..132cf7eff 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])