summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/pre-re/item_db.conf13
-rw-r--r--db/re/item_db.conf16
-rw-r--r--src/map/skill.c6
-rw-r--r--src/map/status.c60
4 files changed, 46 insertions, 49 deletions
diff --git a/db/pre-re/item_db.conf b/db/pre-re/item_db.conf
index e9d13f16b..589b007e8 100644
--- a/db/pre-re/item_db.conf
+++ b/db/pre-re/item_db.conf
@@ -61722,7 +61722,7 @@ item_db: (
Buy: 2
Weight: 100
BuyingStore: true
- Script: <" sc_start SC_MOVHASTE_INFINITY,5000,0; ">
+ Script: <" sc_start SC_MOVHASTE_INFINITY, 5000, 100; ">
},
{
Id: 12017
@@ -61732,7 +61732,7 @@ item_db: (
Buy: 2
Weight: 100
BuyingStore: true
- Script: <" sc_start SC_SLOWDOWN,5000,0; ">
+ Script: <" sc_start SC_SLOWDOWN, 5000, 100; ">
},
{
Id: 12018
@@ -69079,6 +69079,7 @@ item_db: (
Type: 2
Buy: 0
Weight: 200
+ Script: <" sc_start SC_MOVHASTE_INFINITY, 300000, 100; ">
},
{
Id: 12711
@@ -81166,11 +81167,11 @@ item_db: (
notrade: true
noselltonpc: true
nocart: true
- nogstorage: true
nomail: true
noauction: true
+ nogstorage: true
}
- Script: <" getitem 12016,5; ">
+ Script: <" getitem Speed_Up_Potion, 5; ">
},
{
Id: 13995
@@ -81184,11 +81185,11 @@ item_db: (
notrade: true
noselltonpc: true
nocart: true
- nogstorage: true
nomail: true
noauction: true
+ nogstorage: true
}
- Script: <" getitem 12016,10; ">
+ Script: <" getitem Speed_Up_Potion, 10; ">
},
{
Id: 13996
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index a01a9d3d1..f9cb7dd2a 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -41090,7 +41090,7 @@ item_db: (
Weight: 10
Loc: 64
Script: <"
- autobonus "{ sc_start SC_MOVHASTE_INFINITY,3000,0; bonus bAgi,44; heal 0,-40; }",3,3000,0;
+ autobonus "{ sc_start SC_MOVHASTE_HORSE, 3000, 100; bonus bAgi, 44; heal 0, -40; }", 3, 3000, 0, "{ specialeffect2 EF_WIND; }";
">
},
{
@@ -76642,7 +76642,7 @@ item_db: (
Buy: 2
Weight: 100
BuyingStore: true
- Script: <" sc_start SC_MOVHASTE_INFINITY,5000,0; ">
+ Script: <" sc_start SC_MOVHASTE_INFINITY, 5000, 100; ">
},
{
Id: 12017
@@ -76652,7 +76652,7 @@ item_db: (
Buy: 2
Weight: 100
BuyingStore: true
- Script: <" sc_start SC_SLOWDOWN,5000,0; ">
+ Script: <" sc_start SC_SLOWDOWN, 5000, 100; ">
},
{
Id: 12018
@@ -85625,7 +85625,7 @@ item_db: (
Type: 2
Buy: 0
Weight: 200
- Script: <" sc_start SC_MOVHASTE_INFINITY,300000,0; ">
+ Script: <" sc_start SC_MOVHASTE_INFINITY, 300000, 100; ">
},
{
Id: 12711
@@ -103469,11 +103469,11 @@ item_db: (
notrade: true
noselltonpc: true
nocart: true
- nogstorage: true
nomail: true
noauction: true
+ nogstorage: true
}
- Script: <" getitem 12016,5; ">
+ Script: <" getitem Speed_Up_Potion, 5; ">
},
{
Id: 13995
@@ -103487,11 +103487,11 @@ item_db: (
notrade: true
noselltonpc: true
nocart: true
- nogstorage: true
nomail: true
noauction: true
+ nogstorage: true
}
- Script: <" getitem 12016,10; ">
+ Script: <" getitem Speed_Up_Potion, 10; ">
},
{
Id: 13996
diff --git a/src/map/skill.c b/src/map/skill.c
index 8d97409fb..9b06591f4 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -7383,9 +7383,9 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin
break;
case NPC_AGIUP:
- sc_start(src,bl,SC_MOVHASTE_INFINITY,100,skill_lv,skill->get_time(skill_id, skill_lv));
- clif->skill_nodamage(src,bl,skill_id,skill_lv,
- sc_start(src,bl,type,100,100,skill->get_time(skill_id, skill_lv)));
+ sc_start(src, bl, SC_MOVHASTE_INFINITY, 100, 100, skill->get_time(skill_id, skill_lv)); // Fix 100% movement speed in all levels. [Frost]
+ clif->skill_nodamage(src, bl, skill_id, skill_lv,
+ sc_start(src, bl, type, 100, 100, skill->get_time(skill_id, skill_lv)));
break;
case NPC_INVISIBLE:
diff --git a/src/map/status.c b/src/map/status.c
index 9f7465da0..5225dd40d 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -983,6 +983,7 @@ void initChangeTables(void) {
status->dbs->ChangeFlagTable[SC_ATTHASTE_INFINITY] = SCB_ASPD;
status->dbs->ChangeFlagTable[SC_MOVHASTE_HORSE] = SCB_SPEED;
status->dbs->ChangeFlagTable[SC_MOVHASTE_INFINITY] = SCB_SPEED;
+ status->dbs->ChangeFlagTable[SC_SLOWDOWN] |= SCB_SPEED;
status->dbs->ChangeFlagTable[SC_PLUSATTACKPOWER] = SCB_BATK;
status->dbs->ChangeFlagTable[SC_PLUSMAGICPOWER] = SCB_MATK;
status->dbs->ChangeFlagTable[SC_INCALLSTATUS] |= SCB_STR|SCB_AGI|SCB_VIT|SCB_INT|SCB_DEX|SCB_LUK;
@@ -5443,8 +5444,8 @@ unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc
val = max( val, sc->data[SC_CLOAKING]->val1 < 3 ? 300 : 30 - 3 * sc->data[SC_CLOAKING]->val1 );
if( sc->data[SC_GOSPEL] && sc->data[SC_GOSPEL]->val4 == BCT_ENEMY )
val = max( val, 75 );
- if( sc->data[SC_SLOWDOWN] ) // Slow Potion
- val = max( val, 100 );
+ if (sc->data[SC_SLOWDOWN]) // Slow Potion
+ val = max(val, sc->data[SC_SLOWDOWN]->val1);
if( sc->data[SC_GS_GATLINGFEVER] )
val = max( val, 100 );
if( sc->data[SC_NJ_SUITON] )
@@ -5486,8 +5487,8 @@ unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc
{
int val = 0;
- if( sc->data[SC_MOVHASTE_INFINITY] ) //FIXME: used both by NPC_AGIUP and Speed Potion script
- val = max( val, 50 );
+ if (sc->data[SC_MOVHASTE_INFINITY])
+ val = max(val, sc->data[SC_MOVHASTE_INFINITY]->val1);
if( sc->data[SC_INC_AGI] )
val = max( val, 25 );
if( sc->data[SC_WINDWALK] )
@@ -7091,25 +7092,20 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
if((type == SC_FREEZE || type == SC_FROSTMISTY || type == SC_COLD) && sc->data[SC_WARMER])
return 0; //Immune to Frozen and Freezing status if under Warmer status. [Jobbie]
break;
-
- //There all like berserk, do not everlap each other
- case SC_BERSERK:
- if( sc->data[SC__BLOODYLUST] )
+ case SC_BERSERK: // There all like berserk, do not everlap each other
+ if (sc->data[SC__BLOODYLUST])
return 0;
break;
-
case SC_BURNING:
- if(sc->opt1 || sc->data[SC_FROSTMISTY])
+ if (sc->opt1 || sc->data[SC_FROSTMISTY])
return 0;
break;
-
- case SC_CRUCIS:
- //Only affects demons and undead element (but not players)
- if((!undead_flag && st->race!=RC_DEMON) || bl->type == BL_PC)
+ case SC_CRUCIS: // Only affects demons and undead element (but not players)
+ if ((!undead_flag && st->race != RC_DEMON) || bl->type == BL_PC)
return 0;
break;
case SC_LEXAETERNA:
- if( (sc->data[SC_STONE] && sc->opt1 == OPT1_STONE) || sc->data[SC_FREEZE] )
+ if ((sc->data[SC_STONE] && sc->opt1 == OPT1_STONE) || sc->data[SC_FREEZE])
return 0;
break;
case SC_KYRIE:
@@ -7118,46 +7114,46 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
break;
case SC_OVERTHRUST:
if (sc->data[SC_OVERTHRUSTMAX])
- return 0; //Overthrust can't take effect if under Max Overthrust. [Skotlex]
+ return 0; // Overthrust can't take effect if under Max Overthrust. [Skotlex]
case SC_OVERTHRUSTMAX:
- if( sc->option&OPTION_MADOGEAR )
- return 0; //Overthrust and Overthrust Max cannot be used on Mado Gear [Ind]
+ if (sc->option&OPTION_MADOGEAR)
+ return 0; // Overthrust and Overthrust Max cannot be used on Mado Gear [Ind]
break;
case SC_ADRENALINE:
- if(sd && !pc_check_weapontype(sd,skill->get_weapontype(BS_ADRENALINE)))
+ if (sd && !pc_check_weapontype(sd, skill->get_weapontype(BS_ADRENALINE)))
return 0;
- if (sc->data[SC_QUAGMIRE] ||
- sc->data[SC_DEC_AGI] ||
- sc->option&OPTION_MADOGEAR //Adrenaline doesn't affect Mado Gear [Ind]
- )
+ if (sc->data[SC_QUAGMIRE] || sc->data[SC_DEC_AGI] || sc->option&OPTION_MADOGEAR) // Adrenaline doesn't affect Mado Gear [Ind]
return 0;
break;
case SC_ADRENALINE2:
- if(sd && !pc_check_weapontype(sd,skill->get_weapontype(BS_ADRENALINE2)))
+ if (sd && !pc_check_weapontype(sd,skill->get_weapontype(BS_ADRENALINE2)))
return 0;
- if (sc->data[SC_QUAGMIRE] ||
- sc->data[SC_DEC_AGI]
- )
+ if (sc->data[SC_QUAGMIRE] || sc->data[SC_DEC_AGI])
+ return 0;
+ break;
+ case SC_QUAGMIRE:
+ case SC_DEC_AGI:
+ case SC_DONTFORGETME:
+ if (sc->data[SC_MOVHASTE_INFINITY]) // Doesn't affect by Quagmire, Decrease Agi, Slow Grace [Frost]
return 0;
break;
case SC_MAGNIFICAT:
- if( sc->data[SC_OFFERTORIUM] || sc->option&OPTION_MADOGEAR ) //Mado is immune to magnificat
+ if (sc->data[SC_OFFERTORIUM] || sc->option&OPTION_MADOGEAR) // Mado is immune to magnificat
return 0;
break;
case SC_ONEHANDQUICKEN:
case SC_MER_QUICKEN:
case SC_TWOHANDQUICKEN:
- if(sc->data[SC_DEC_AGI])
+ if (sc->data[SC_DEC_AGI])
return 0;
-
case SC_CONCENTRATION:
case SC_SPEARQUICKEN:
case SC_TRUESIGHT:
case SC_WINDWALK:
case SC_CARTBOOST:
case SC_ASSNCROS:
- if(sc->option&OPTION_MADOGEAR)
- return 0; //Mado is immune to wind walk, cart boost, etc (others above) [Ind]
+ if (sc->option&OPTION_MADOGEAR)
+ return 0; // Mado is immune to wind walk, cart boost, etc (others above) [Ind]
case SC_INC_AGI:
if (sc->data[SC_QUAGMIRE])
return 0;