diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-04-28 15:20:28 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-04-28 15:20:28 +0000 |
commit | 64cd11e4ddf883d3861277f778aaf17fea0f2632 (patch) | |
tree | efa19179d30add4ba1795256dfd8872af0700c1b /src/map | |
parent | b36751b7970a699f453da471261d258868741281 (diff) | |
download | hercules-64cd11e4ddf883d3861277f778aaf17fea0f2632.tar.gz hercules-64cd11e4ddf883d3861277f778aaf17fea0f2632.tar.bz2 hercules-64cd11e4ddf883d3861277f778aaf17fea0f2632.tar.xz hercules-64cd11e4ddf883d3861277f778aaf17fea0f2632.zip |
- Storm Kick's range increased to 2.
- Mobinfo's drop list will use jName rather than Name for drop names.
- Some cleaning of the ASC_BREAKER code in skill_attack
- Modified skill_attack so that all skills with amotion get their damage delayed (should fix mob walk-teleport issues)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@6346 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/atcommand.c | 2 | ||||
-rw-r--r-- | src/map/skill.c | 21 |
2 files changed, 11 insertions, 12 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 6a2bccf3b..4a27100c6 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -9374,7 +9374,7 @@ int atcommand_mobinfo( if (mob->dropitem[i].nameid <= 0 || (item_data = itemdb_search(mob->dropitem[i].nameid)) == NULL)
continue;
if (mob->dropitem[i].p > 0) {
- sprintf(atcmd_output2, " - %s %02.02f%%", item_data->name, (float)mob->dropitem[i].p / 100);
+ sprintf(atcmd_output2, " - %s %02.02f%%", item_data->jname, (float)mob->dropitem[i].p / 100);
strcat(atcmd_output, atcmd_output2);
if (++j % 3 == 0) {
clif_displaymessage(fd, atcmd_output);
diff --git a/src/map/skill.c b/src/map/skill.c index be60ae18f..451cd7e51 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1931,14 +1931,13 @@ int skill_attack( int attack_type, struct block_list* src, struct block_list *ds case ASC_BREAKER: // [celest]
if (attack_type&BF_WEAPON) { // the 1st attack won't really deal any damage
tmpdmg = damage; // store the temporary weapon damage
- } else { // only display damage for the 2nd attack
- if (tmpdmg == 0 || damage == 0) // if one or both attack(s) missed, display a 'miss'
- clif_skill_damage(dsrc, bl, tick, dmg.amotion, dmg.dmotion, 0, dmg.div_, skillid, skilllv, type);
- damage += tmpdmg; // add weapon and magic damage
- tmpdmg = 0; // clear the temporary weapon damage
- if (damage > 0) // if both attacks missed, do not display a 2nd 'miss'
- dmg.dmotion = clif_skill_damage(dsrc, bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skillid, skilllv, type);
- }
+ return 0; //Wait for the second iteration to do all the work below.
+ }
+ if (tmpdmg == 0 || damage == 0) // if one or both attack(s) missed, display a 'miss'
+ clif_skill_damage(dsrc, bl, tick, dmg.amotion, dmg.dmotion, 0, dmg.div_, skillid, skilllv, type);
+ damage += tmpdmg; // add weapon and magic damage
+ tmpdmg = 0; // clear the temporary weapon damage
+ dmg.dmotion = clif_skill_damage(dsrc, bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skillid, skilllv, type);
break;
case NPC_SELFDESTRUCTION:
if(src->type==BL_PC)
@@ -1992,7 +1991,7 @@ int skill_attack( int attack_type, struct block_list* src, struct block_list *ds if (su->group && skill_get_inf2(su->group->skill_id)&INF2_TRAP)
damage = 0; //Only Heaven's drive may damage traps. [Skotlex]
}
- if ((skillid || flag) && !(attack_type&BF_WEAPON)) { // do not really deal damage for ASC_BREAKER's 1st attack
+ if (!dmg.amotion) { // do not really deal damage for ASC_BREAKER's 1st attack
battle_damage(src,bl,damage,dmg.dmotion,0); //Deal damage before knockback to allow stuff like firewall+storm gust combo.
if (dmg.dmg_lv == ATK_DEF || damage > 0) {
if (!status_isdead(bl))
@@ -2007,7 +2006,7 @@ int skill_attack( int attack_type, struct block_list* src, struct block_list *ds skill_blown(dsrc,bl,dmg.blewcount);
//Delayed damage must be dealt after the knockback (it needs to know actual position of target)
- if ((skillid || flag) && attack_type&BF_WEAPON && skillid != ASC_BREAKER) { // do not really deal damage for ASC_BREAKER's 1st attack
+ if (dmg.amotion) { // do not really deal damage for ASC_BREAKER's 1st attack
battle_delay_damage(tick+dmg.amotion,src,bl,attack_type,skillid,skilllv,damage,dmg.dmg_lv,dmg.dmotion,0);
}
@@ -2027,7 +2026,7 @@ int skill_attack( int attack_type, struct block_list* src, struct block_list *ds }
if (rdamage>0) {
- if (attack_type&BF_WEAPON)
+ if (dmg.amotion)
battle_delay_damage(tick+dmg.amotion,bl,src,0,0,0,rdamage,ATK_DEF,0,0);
else
battle_damage(bl,src,rdamage,0,0);
|