diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index bc1df14687..36933d5505 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,11 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2006/04/28 + * Mobinfo's drop list will use jName rather than Name for drop names. + [Skotlex] + * Some cleaning of the ASC_BREAKER code in skill_attack [Skotlex] + * Modified skill_attack so that all skills with amotion get their damage + delayed (should fix mob walk-teleport issues) [Skotlex] * Added function stristr to strlib.c, used by mob.c and item_db.c for case-insensitive seeks. [Skotlex] * Removed the sending of the online guild list when you log-on, may fix the diff --git a/db/Changelog.txt b/db/Changelog.txt index 502825b64a..f86df9deb3 100644 --- a/db/Changelog.txt +++ b/db/Changelog.txt @@ -27,6 +27,7 @@ ========================= 04/28 + * Storm Kick's range increased to 2. [Skotlex] * Lowered drop rates of Bio Lab 3 normal mobs [Playtester] - not finished yet, need 12 item drop slots... * Range of Flying Sidekick 10->8 cells [Lupus] diff --git a/db/skill_db.txt b/db/skill_db.txt index 85dcfa988a..295c914314 100644 --- a/db/skill_db.txt +++ b/db/skill_db.txt @@ -432,7 +432,7 @@ 410,9,6,4,0,1,3,1,1,yes,0,4,1,none,0 //WE_CALLBABY#Call Baby# 411,0,6,4,0,1,0,10,1,yes,0,0,0,misc,0 //TK_RUN#Running# 412,0,6,4,0,1,0,1,1,no,0,0,0,weapon,0 //TK_READYSTORM#Prepare Whirlwind# -413,0,8,4,-1,2,2,7,-3,no,0,512,0,weapon,0 //TK_STORMKICK#Whirlwind Kick# +413,-2,8,4,-1,2,2,7,-3,no,0,512,0,weapon,0 //TK_STORMKICK#Whirlwind Kick# 414,0,6,4,0,1,0,1,1,no,0,0,0,weapon,0 //TK_READYDOWN#Prepare Axe Kick# 415,-2,8,4,-1,0,0,7,-3,no,0,512,0,weapon,0 //TK_DOWNKICK#Axe Kick# 416,0,6,4,0,1,0,1,1,no,0,0,0,weapon,0 //TK_READYTURN#Prepare Round Kick# diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 6a2bccf3b5..4a27100c69 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 be60ae18fc..451cd7e51f 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);