- Corrected Brandish Spear to work on levels above 10.

- Updated Two-HandQuicken, One-HandQuicken to give 30 +2*lv% aspd-rate for skill levels above 10 (meant for boss casted skills)
- Fixed Spear-Quicken messing with the calc_flag


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6936 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
skotlex 2006-06-02 16:06:37 +00:00
parent 3fd0a5fecc
commit 683b150179
3 changed files with 25 additions and 15 deletions

View File

@ -4,6 +4,10 @@ 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. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/06/02 2006/06/02
* Corrected Brandish Spear to work on levels above 10. [Skotlex]
* Updated Two-HandQuicken, One-HandQuicken to give 30 +2*lv% aspd-rate for
skill levels above 10 (meant for boss casted skills) [Skotlex]
* Fixed Spear-Quicken messing with the calc_flag [Skotlex]
* Fixed Freeze/Stone/Benedictio not changing your elemental LEVEL to 1. * Fixed Freeze/Stone/Benedictio not changing your elemental LEVEL to 1.
[Skotlex] [Skotlex]
* [Fixed] * [Fixed]

View File

@ -3912,15 +3912,14 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
case KN_BRANDISHSPEAR: /*ブランディッシュスピア*/ case KN_BRANDISHSPEAR: /*ブランディッシュスピア*/
{ {
int c,n=4,ar; int c,n=4;
int dir = map_calc_dir(src,bl->x,bl->y); int dir = map_calc_dir(src,bl->x,bl->y);
struct square tc; struct square tc;
int x=bl->x,y=bl->y; int x=bl->x,y=bl->y;
ar=skilllv/3;
skill_brandishspear_first(&tc,dir,x,y); skill_brandishspear_first(&tc,dir,x,y);
skill_brandishspear_dir(&tc,dir,4); skill_brandishspear_dir(&tc,dir,4);
/* 範?④ */ /* 範?④ */
if(skilllv == 10){ if(skilllv > 9){
for(c=1;c<4;c++){ for(c=1;c<4;c++){
map_foreachincell(skill_area_sub, map_foreachincell(skill_area_sub,
bl->m,tc.val1[c],tc.val2[c],BL_CHAR, bl->m,tc.val1[c],tc.val2[c],BL_CHAR,

View File

@ -3185,14 +3185,18 @@ static short status_calc_aspd_rate(struct block_list *bl, struct status_change *
int max = 0; int max = 0;
if(sc->data[SC_STAR_COMFORT].timer!=-1) if(sc->data[SC_STAR_COMFORT].timer!=-1)
max = sc->data[SC_STAR_COMFORT].val2; max = sc->data[SC_STAR_COMFORT].val2;
if((sc->data[SC_TWOHANDQUICKEN].timer!=-1 ||
sc->data[SC_ONEHAND].timer!=-1
) && max < 30)
max = 30;
if(sc->data[SC_MADNESSCANCEL].timer!=-1 && max < 20) if(sc->data[SC_MADNESSCANCEL].timer!=-1 && max < 20)
max = 20; max = 20;
if(sc->data[SC_TWOHANDQUICKEN].timer!=-1 &&
max < sc->data[SC_TWOHANDQUICKEN].val2)
max = sc->data[SC_TWOHANDQUICKEN].val2;
if(sc->data[SC_ONEHAND].timer!=-1 &&
max < sc->data[SC_ONEHAND].val2)
max = sc->data[SC_ONEHAND].val2;
if(sc->data[SC_ADRENALINE2].timer!=-1 && if(sc->data[SC_ADRENALINE2].timer!=-1 &&
max < sc->data[SC_ADRENALINE2].val2) max < sc->data[SC_ADRENALINE2].val2)
max = sc->data[SC_ADRENALINE2].val2; max = sc->data[SC_ADRENALINE2].val2;
@ -3951,7 +3955,7 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
struct map_session_data *sd = NULL; struct map_session_data *sd = NULL;
struct status_change* sc; struct status_change* sc;
struct status_data *status; struct status_data *status;
int opt_flag , calc_flag = 0, undead_flag; int opt_flag , calc_flag, undead_flag;
nullpo_retr(0, bl); nullpo_retr(0, bl);
sc=status_get_sc(bl); sc=status_get_sc(bl);
@ -4423,12 +4427,15 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
} }
} else val2 = 0; } else val2 = 0;
break; break;
case SC_ONEHAND:
case SC_SPEARQUICKEN: /* スピアクイッケン */ case SC_TWOHANDQUICKEN:
calc_flag = 1; val2 = 30;
if (val1 > 10) //For boss casted skills [Skotlex]
val2 += 2*(val1-10);
break;
case SC_SPEARQUICKEN:
val2 = 20+val1; val2 = 20+val1;
break; break;
case SC_MOONLIT: case SC_MOONLIT:
val2 = bl->id; val2 = bl->id;
skill_setmapcell(bl,CG_MOONLIT, val1, CELL_SETMOONLIT); skill_setmapcell(bl,CG_MOONLIT, val1, CELL_SETMOONLIT);
@ -5265,7 +5272,7 @@ int status_change_end( struct block_list* bl , int type,int tid )
struct map_session_data *sd; struct map_session_data *sd;
struct status_change *sc; struct status_change *sc;
struct status_data *status; struct status_data *status;
int opt_flag=0, calc_flag = 0; int opt_flag=0, calc_flag;
nullpo_retr(0, bl); nullpo_retr(0, bl);