- 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
This commit is contained in:
skotlex 2006-08-22 03:30:07 +00:00
parent a18ae6fb49
commit 30bf9a2b13
2 changed files with 8 additions and 28 deletions

View File

@ -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]

View File

@ -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])