summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt4
-rw-r--r--src/map/skill.c5
-rw-r--r--src/map/status.c31
3 files changed, 25 insertions, 15 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index a0fe0ad95..35a2dfd86 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -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.
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.
[Skotlex]
* [Fixed]
diff --git a/src/map/skill.c b/src/map/skill.c
index 05b3579f9..b5a54e041 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -3912,15 +3912,14 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
case KN_BRANDISHSPEAR: /*ƒuƒ‰ƒ“ƒfƒBƒbƒVƒ…ƒXƒsƒA*/
{
- int c,n=4,ar;
+ int c,n=4;
int dir = map_calc_dir(src,bl->x,bl->y);
struct square tc;
int x=bl->x,y=bl->y;
- ar=skilllv/3;
skill_brandishspear_first(&tc,dir,x,y);
skill_brandishspear_dir(&tc,dir,4);
/* ”Í?‡C */
- if(skilllv == 10){
+ if(skilllv > 9){
for(c=1;c<4;c++){
map_foreachincell(skill_area_sub,
bl->m,tc.val1[c],tc.val2[c],BL_CHAR,
diff --git a/src/map/status.c b/src/map/status.c
index 428d76fdd..adeb09be1 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -3185,14 +3185,18 @@ static short status_calc_aspd_rate(struct block_list *bl, struct status_change *
int max = 0;
if(sc->data[SC_STAR_COMFORT].timer!=-1)
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)
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 &&
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 status_change* sc;
struct status_data *status;
- int opt_flag , calc_flag = 0, undead_flag;
+ int opt_flag , calc_flag, undead_flag;
nullpo_retr(0, 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;
break;
-
- case SC_SPEARQUICKEN: /* ƒXƒsƒAƒNƒCƒbƒPƒ“ */
- calc_flag = 1;
+ case SC_ONEHAND:
+ case SC_TWOHANDQUICKEN:
+ val2 = 30;
+ if (val1 > 10) //For boss casted skills [Skotlex]
+ val2 += 2*(val1-10);
+ break;
+ case SC_SPEARQUICKEN:
val2 = 20+val1;
break;
-
case SC_MOONLIT:
val2 = bl->id;
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 status_change *sc;
struct status_data *status;
- int opt_flag=0, calc_flag = 0;
+ int opt_flag=0, calc_flag;
nullpo_retr(0, bl);