- Corrected SC_INCREASEAGI and SC_DECREASEAGI speed-change formula.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8656 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
b1a05212b2
commit
1abe796ab7
@ -4,6 +4,8 @@ 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/09/06
|
2006/09/06
|
||||||
|
* Corrected SC_INCREASEAGI and SC_DECREASEAGI speed-change formula.
|
||||||
|
[Skotlex]
|
||||||
* Fixed Aex Aeterna ending on Soul Breaker's first half. [Skotlex]
|
* Fixed Aex Aeterna ending on Soul Breaker's first half. [Skotlex]
|
||||||
* Applied Orn's modification on speed increases/reductions with increase/
|
* Applied Orn's modification on speed increases/reductions with increase/
|
||||||
decrease agi [Toms]
|
decrease agi [Toms]
|
||||||
|
@ -3142,7 +3142,7 @@ static unsigned short status_calc_agi(struct block_list *bl, struct status_chang
|
|||||||
if(sc->data[SC_TRUESIGHT].timer!=-1)
|
if(sc->data[SC_TRUESIGHT].timer!=-1)
|
||||||
agi += 5;
|
agi += 5;
|
||||||
if(sc->data[SC_INCREASEAGI].timer!=-1)
|
if(sc->data[SC_INCREASEAGI].timer!=-1)
|
||||||
agi += 2 + sc->data[SC_INCREASEAGI].val1;
|
agi += sc->data[SC_INCREASEAGI].val2;
|
||||||
if(sc->data[SC_INCREASING].timer!=-1)
|
if(sc->data[SC_INCREASING].timer!=-1)
|
||||||
agi += 4; // added based on skill updates [Reddozen]
|
agi += 4; // added based on skill updates [Reddozen]
|
||||||
if(sc->data[SC_DECREASEAGI].timer!=-1)
|
if(sc->data[SC_DECREASEAGI].timer!=-1)
|
||||||
@ -3619,10 +3619,10 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha
|
|||||||
speed -= speed * 50/100;
|
speed -= speed * 50/100;
|
||||||
else if(sc->data[SC_SPEEDUP0].timer!=-1)
|
else if(sc->data[SC_SPEEDUP0].timer!=-1)
|
||||||
speed -= speed * 25/100;
|
speed -= speed * 25/100;
|
||||||
else if(sc->data[SC_INCREASEAGI].timer!=-1)
|
|
||||||
speed -= (sc->data[SC_INCREASEAGI].val1 * 5)/2; //[orn]
|
|
||||||
else if(sc->data[SC_FUSION].timer != -1)
|
else if(sc->data[SC_FUSION].timer != -1)
|
||||||
speed -= speed * 25/100;
|
speed -= speed * 25/100;
|
||||||
|
else if(sc->data[SC_INCREASEAGI].timer!=-1)
|
||||||
|
speed -= speed * sc->data[SC_INCREASEAGI].val3/100; //[orn]
|
||||||
else if(sc->data[SC_CARTBOOST].timer!=-1)
|
else if(sc->data[SC_CARTBOOST].timer!=-1)
|
||||||
speed -= speed * 20/100;
|
speed -= speed * 20/100;
|
||||||
else if(sc->data[SC_BERSERK].timer!=-1)
|
else if(sc->data[SC_BERSERK].timer!=-1)
|
||||||
@ -3635,14 +3635,14 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha
|
|||||||
//% reductions (they stack)
|
//% reductions (they stack)
|
||||||
if(sc->data[SC_DANCING].timer!=-1 && sc->data[SC_DANCING].val3&0xFFFF)
|
if(sc->data[SC_DANCING].timer!=-1 && sc->data[SC_DANCING].val3&0xFFFF)
|
||||||
speed += speed*(sc->data[SC_DANCING].val3&0xFFFF)/100;
|
speed += speed*(sc->data[SC_DANCING].val3&0xFFFF)/100;
|
||||||
if(sc->data[SC_DECREASEAGI].timer!=-1)
|
|
||||||
speed += (sc->data[SC_DECREASEAGI].val1 * 5)/2; //[orn]
|
|
||||||
if(sc->data[SC_STEELBODY].timer!=-1)
|
if(sc->data[SC_STEELBODY].timer!=-1)
|
||||||
speed = speed * 100/75;
|
speed = speed * 100/75;
|
||||||
if(sc->data[SC_QUAGMIRE].timer!=-1)
|
if(sc->data[SC_QUAGMIRE].timer!=-1)
|
||||||
speed = speed * 100/50;
|
speed = speed * 100/50;
|
||||||
if(sc->data[SC_SUITON].timer!=-1 && sc->data[SC_SUITON].val3)
|
if(sc->data[SC_SUITON].timer!=-1 && sc->data[SC_SUITON].val3)
|
||||||
speed = speed * 100/sc->data[SC_SUITON].val3;
|
speed = speed * 100/sc->data[SC_SUITON].val3;
|
||||||
|
if(sc->data[SC_DECREASEAGI].timer!=-1)
|
||||||
|
speed = speed * 100/sc->data[SC_DECREASEAGI].val3; //[orn]
|
||||||
if(sc->data[SC_DONTFORGETME].timer!=-1)
|
if(sc->data[SC_DONTFORGETME].timer!=-1)
|
||||||
speed = speed * 100/sc->data[SC_DONTFORGETME].val3;
|
speed = speed * 100/sc->data[SC_DONTFORGETME].val3;
|
||||||
if(sc->data[SC_DEFENDER].timer!=-1)
|
if(sc->data[SC_DEFENDER].timer!=-1)
|
||||||
@ -4767,8 +4767,14 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
|
|||||||
calc_flag = StatusChangeFlagTable[type];
|
calc_flag = StatusChangeFlagTable[type];
|
||||||
if(!(flag&4)) //Do not parse val settings when loading SCs
|
if(!(flag&4)) //Do not parse val settings when loading SCs
|
||||||
switch(type){
|
switch(type){
|
||||||
|
case SC_INCREASEAGI:
|
||||||
|
val2 = 2 + val1; //Agi increase
|
||||||
|
val3 = (5*val1)/2; //Speed increase
|
||||||
|
break;
|
||||||
case SC_DECREASEAGI:
|
case SC_DECREASEAGI:
|
||||||
val2 = 2 + val1; //Agi decrease
|
val2 = 2 + val1; //Agi decrease
|
||||||
|
val3 = 100 - (5*val1)/2; //Speed decrease
|
||||||
|
if (val3 < 1) val3 = 1;
|
||||||
if (sd) tick>>=1; //Half duration for players.
|
if (sd) tick>>=1; //Half duration for players.
|
||||||
break;
|
break;
|
||||||
case SC_ENDURE:
|
case SC_ENDURE:
|
||||||
@ -5590,6 +5596,8 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
|
|||||||
break;
|
break;
|
||||||
//In case the speed reduction comes loaded incorrectly,
|
//In case the speed reduction comes loaded incorrectly,
|
||||||
//prevent division by 0.
|
//prevent division by 0.
|
||||||
|
case SC_INCREASEAGI:
|
||||||
|
case SC_DECREASEAGI:
|
||||||
case SC_DONTFORGETME:
|
case SC_DONTFORGETME:
|
||||||
case SC_CLOAKING:
|
case SC_CLOAKING:
|
||||||
case SC_LONGING:
|
case SC_LONGING:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user