- Changed the state of Asura back to explosionspirits, added a hardcoded move_enable check when invoking Asura and NOT while in BladeStop or a Combo.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6552 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
skotlex 2006-05-10 16:18:16 +00:00
parent 2e0c3cb20d
commit 03ac2b977e
3 changed files with 38 additions and 51 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/05/10
* Changed the state of Asura back to explosionspirits, added a hardcoded
move_enable check when invoking Asura and NOT while in BladeStop or a
Combo. [Skotlex]
* Added back SC_XMAS to status.c, it got lost sometime during all the
previous reworkings. [Skotlex]
* Changed wedding costumes to use setoption rather than changebase.

View File

@ -193,7 +193,7 @@
268,0,0,1,0,50,0,99,0,0,none,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //MO_STEELBODY#金剛#
269,0,0,10,0,0,0,0:1:2:3:4:5:6:7:8:9:10:12:13:14:15:16:17:18:19:20:21:22,0,0,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //MO_BLADESTOP#白刃取り#
270,0,0,15,0,0,0,99,0,0,none,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //MO_EXPLOSIONSPIRITS#爆裂波動#
271,0,0,1,0,0,0,0:1:2:3:4:5:6:7:8:9:10:12:13:14:15:16:17:18:19:20:21:22,0,0,move_enable,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //MO_EXTREMITYFIST#ˆ¢<CB86>C—…”e™€Œ<E282AC>#
271,0,0,1,0,0,0,0:1:2:3:4:5:6:7:8:9:10:12:13:14:15:16:17:18:19:20:21:22,0,0,explosionspirits,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //MO_EXTREMITYFIST#ˆ¢<CB86>C—…”e™€Œ<E282AC>#
272,0,0,11:12:13:14:15,0,0,0,0:1:2:3:4:5:6:7:8:9:10:12:13:14:15:16:17:18:19:20:21:22,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //MO_CHAINCOMBO#連打掌#
273,0,0,11:12:13:14:15,0,0,0,0:1:2:3:4:5:6:7:8:9:10:12:13:14:15:16:17:18:19:20:21:22,0,0,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //MO_COMBOFINISH#猛龍拳#

View File

@ -2625,54 +2625,38 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl,int s
case KN_CHARGEATK:
case MO_EXTREMITYFIST: /* ˆ¢?C—…”ePŒ? */
if (skillid == MO_EXTREMITYFIST && sc && sc->count)
{
if (skillid == MO_EXTREMITYFIST && sc && sc->count)
{
if (sc->data[SC_EXPLOSIONSPIRITS].timer != -1)
status_change_end(src, SC_EXPLOSIONSPIRITS, -1);
if (sc->data[SC_BLADESTOP].timer != -1)
status_change_end(src,SC_BLADESTOP,-1);
}
if(!check_distance_bl(src, bl, 2)) { //Need to move to target.
int dx,dy;
dx = bl->x - src->x;
dy = bl->y - src->y;
if(dx > 0) dx++;
else if(dx < 0) dx--;
if (dy > 0) dy++;
else if(dy < 0) dy--;
if (skillid == KN_CHARGEATK) //Store distance in flag [Skotlex]
flag = distance_bl(src, bl);
if (!unit_movepos(src, src->x+dx, src->y+dy, 1, 1)) {
if (sd) clif_skill_fail(sd,skillid,0,0);
break;
}
clif_slide(src,src->x,src->y);
if (skillid != MO_EXTREMITYFIST || battle_check_target(src, bl, BCT_ENEMY) > 0) //Check must be done here because EF should be broken this way.. [Skotlex]
skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag);
else if (sd)
clif_skill_fail(sd,skillid,0,0);
/* Should be uneeded as you "slide", not run to the target.
struct unit_data *ud;
ud = unit_bl2ud(src);
if (ud) {
if(dx < 0) dx = -dx;
if(dy < 0) dy = -dy;
if(dy > dx) dx = dy;
dy = status_get_speed(src);
ud->attackabletime = tick + 100 + dy*dx;
unit_set_walkdelay(src, tick, 100 + dy*dx, 1);
if(DIFF_TICK(ud->canact_tick,ud->canmove_tick)<0)
ud->canact_tick = ud->canmove_tick;
}
*/
}
else //Assume minimum distance of 1 for Charge.
skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,skillid == KN_CHARGEATK?1:flag);
if (sc->data[SC_EXPLOSIONSPIRITS].timer != -1)
status_change_end(src, SC_EXPLOSIONSPIRITS, -1);
if (sc->data[SC_BLADESTOP].timer != -1)
status_change_end(src,SC_BLADESTOP,-1);
}
if(!check_distance_bl(src, bl, 2)) { //Need to move to target.
int dx,dy;
dx = bl->x - src->x;
dy = bl->y - src->y;
if(dx > 0) dx++;
else if(dx < 0) dx--;
if (dy > 0) dy++;
else if(dy < 0) dy--;
if (skillid == KN_CHARGEATK) //Store distance in flag [Skotlex]
flag = distance_bl(src, bl);
if (!unit_movepos(src, src->x+dx, src->y+dy, 1, 1)) {
if (sd) clif_skill_fail(sd,skillid,0,0);
break;
}
clif_slide(src,src->x,src->y);
if (skillid != MO_EXTREMITYFIST || battle_check_target(src, bl, BCT_ENEMY) > 0) //Check must be done here because EF should be broken this way.. [Skotlex]
skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag);
else if (sd)
clif_skill_fail(sd,skillid,0,0);
}
else //Assume minimum distance of 1 for Charge.
skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,skillid == KN_CHARGEATK?1:flag);
break;
/* •?ŠíŒn”Í??U?ƒXƒLƒ */
@ -7767,10 +7751,6 @@ int skill_check_condition(struct map_session_data *sd,int skill, int lv, int typ
case MO_EXTREMITYFIST: // ˆ¢?C—…”ePŒ?
// if(sd->sc.data[SC_EXTREMITYFIST].timer != -1) //To disable Asura during the 5 min skill block uncomment this...
// return 0;
if(sd->sc.data[SC_EXPLOSIONSPIRITS].timer == -1) {
clif_skill_fail(sd,skill,0,0);
return 0;
}
if(sd->sc.data[SC_BLADESTOP].timer!=-1)
spiritball--;
else if (sd->sc.data[SC_COMBO].timer != -1) {
@ -7781,6 +7761,10 @@ int skill_check_condition(struct map_session_data *sd,int skill, int lv, int typ
else if (sd->sc.data[SC_COMBO].val1 == CH_CHAINCRUSH)
spiritball = sd->spiritball?sd->spiritball:1;
//It should consume whatever is left as long as it's at least 1.
} else if(!unit_can_move(&sd->bl))
{ //Placed here as ST_MOVE_ENABLE should not apply if rooted or on a combo. [Skotlex]
clif_skill_fail(sd,skill,0,0);
return 0;
}
break;