diff --git a/db/pre-re/item_combos.yml b/db/pre-re/item_combos.yml index 63e1b480dc..e11bea8e8c 100644 --- a/db/pre-re/item_combos.yml +++ b/db/pre-re/item_combos.yml @@ -145,7 +145,7 @@ Body: - Staff_Of_Wing - Wing_Of_Eagle Script: | - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; - Combos: - Combo: - Survival_Rod_ @@ -888,7 +888,7 @@ Body: bonus bAgi,5; bonus bStr,5; bonus bAspdRate,5; - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; bonus bSPDrainValue,1; if (BaseClass == Job_Thief) bonus bNoGemStone; diff --git a/db/pre-re/item_db_equip.yml b/db/pre-re/item_db_equip.yml index ff14b321e8..d5aa7afba3 100644 --- a/db/pre-re/item_db_equip.yml +++ b/db/pre-re/item_db_equip.yml @@ -5611,7 +5611,7 @@ Body: skill "AL_HEAL",3; bonus2 bAddRace,RC_Demon,3; bonus bStr,10; - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; - Id: 1373 AegisName: Brood_Axe_C Name: Refined Bloody Axe @@ -5632,7 +5632,7 @@ Body: WeaponLevel: 4 Script: | bonus bStr,20; - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; bonus bAspdRate,5; - Id: 1374 AegisName: Tomahawk_C @@ -15256,7 +15256,7 @@ Body: Skill "HW_MAGICPOWER",10; bonus bMaxHPRate,200; bonus bNoGemStone; - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; bonus bNoWalkDelay; - Id: 2201 AegisName: Sunglasses @@ -27225,7 +27225,7 @@ Body: ArmorLevel: 1 View: 219 Script: | - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; - Id: 5151 AegisName: Headset_OST Name: Note Headphones @@ -28147,7 +28147,7 @@ Body: ArmorLevel: 1 View: 253 Script: | - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; - Id: 5204 AegisName: Event_Pierrot_Nose Name: Rudolph's Nose @@ -29523,7 +29523,7 @@ Body: bonus bInt,1; bonus bAgi,1; bonus bAspdRate,3; - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; - Id: 5270 AegisName: Fallen_Leaves_ Name: Autumn Leaves @@ -29838,7 +29838,7 @@ Body: NoSell: true NoGuildStorage: true Script: | - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; bonus bAspdRate,-10; bonus bCastrate,25; - Id: 5287 diff --git a/db/pre-re/status.yml b/db/pre-re/status.yml index a8c70d7433..a56e6ac703 100644 --- a/db/pre-re/status.yml +++ b/db/pre-re/status.yml @@ -6972,13 +6972,3 @@ Body: NoDispell: true NoClearance: true NoClearbuff: true - - Status: Movehaste_Infinity - Icon: EFST_MOVHASTE_INFINITY - CalcFlags: - Speed: true - Flags: - NoRemoveOnDead: true - NoClearbuff: true - NoSave: true - Fail: - Movehaste_Infinity: true diff --git a/db/re/item_combos.yml b/db/re/item_combos.yml index cc8f8dc8ba..aa0d76686c 100644 --- a/db/re/item_combos.yml +++ b/db/re/item_combos.yml @@ -405,7 +405,7 @@ Body: - Shield_Of_Gust - Shining_Trapezohedron Script: | - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; - Combos: - Combo: - Survival_Rod @@ -1980,7 +1980,7 @@ Body: - S_Dancer_Shoes - S_Dancer_Armor Script: | - autobonus3 "{ bonus bAspdRate,10; bonus bSpeedRate,25; }",1000,5000,"BD_ADAPTATION"; + autobonus3 "{ bonus bAspdRate,10; bonus2 bSpeedRate,25; }",1000,5000,"BD_ADAPTATION"; /* Unknow Specialeffect */ - Combos: - Combo: @@ -4383,7 +4383,7 @@ Body: bonus bAgi,5; bonus bStr,5; bonus bAspdRate,5; - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; bonus bSPDrainValue,1; if (BaseClass == Job_Thief) bonus bNoGemStone; @@ -7932,7 +7932,7 @@ Body: - Puente_Robe_IL - Nurse_Cap_IL Script: | - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; /* unknown speed value */ bonus bHealPower,10; - Combos: @@ -10751,7 +10751,7 @@ Body: - White_Wing_Suits Script: | .@r = getequiprefinerycnt(EQI_ARMOR); - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; bonus bCritAtkRate,4*(readparam(bluk)/20); if (.@r >= 7) { bonus bAspdRate,8; @@ -10774,7 +10774,7 @@ Body: Script: | .@r = getequiprefinerycnt(EQI_ARMOR); bonus bHPGainValue,500; - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; bonus2 bSkillAtk,"RA_CLUSTERBOMB",30*(readparam(bint)/20); bonus2 bSkillUseSP,"RA_ELECTRICSHOCKER",30; if (.@r >= 7) { @@ -11609,7 +11609,7 @@ Body: Script: | bonus bFlee,5; if ((getequiprefinerycnt(EQI_SHADOW_ARMOR) + getequiprefinerycnt(EQI_SHADOW_SHOES)) >= 15) { - bonus bSpeedRate,25; /* unknown value */ + bonus2 bSpeedRate,25; /* unknown value */ } - Combos: - Combo: diff --git a/db/re/item_db_equip.yml b/db/re/item_db_equip.yml index 587afdfa73..03551ef243 100644 --- a/db/re/item_db_equip.yml +++ b/db/re/item_db_equip.yml @@ -5703,9 +5703,7 @@ Body: bonus bStr,10; bonus2 bAddRace,RC_Demon,3; skill "AL_HEAL",3; - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; - UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; + bonus2 bSpeedRate,25; - Id: 1316 AegisName: Adventure_Axe Name: Adventure Axe @@ -6481,9 +6479,7 @@ Body: Refineable: true Script: | bonus bStr,10; - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; - UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; + bonus2 bSpeedRate,25; - Id: 1364 AegisName: Great_Axe Name: Great Axe @@ -6558,9 +6554,7 @@ Body: bonus bAtkEle,Ele_Holy; skill "AL_HEAL",3; bonus2 bAddRace,RC_Demon,3; - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; - UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; + bonus2 bSpeedRate,25; - Id: 1367 AegisName: Slaughter Name: Slaughter @@ -6732,7 +6726,7 @@ Body: skill "AL_HEAL",3; bonus2 bAddRace,RC_Demon,3; bonus bStr,10; - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; /*Gold PC Room: bonus bBaseAtk,10; bonus bMatk,10;*/ - Id: 1373 AegisName: Brood_Axe_C @@ -23548,7 +23542,7 @@ Body: bonus bMaxHPrate,200; bonus bNoKnockback; bonus bDelayrate,-100; - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; bonus bIntravision; bonus bNoWalkDelay; bonus bNoGemStone; @@ -27314,10 +27308,8 @@ Body: bonus bMaxHPrate,20; bonus bMaxSPrate,20; bonus bSPrecovRate,25; - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; + bonus2 bSpeedRate,25; bonus bInt,25; - UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; - Id: 2411 AegisName: Grave Name: Greaves @@ -28429,9 +28421,7 @@ Body: bonus bMaxHPrate,20; bonus bMaxSPrate,20; bonus bSPrecovRate,15; - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; - UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; + bonus2 bSpeedRate,25; - Id: 2463 AegisName: Feral_Boots Name: Feral Boots @@ -29011,10 +29001,8 @@ Body: .@r = getrefine(); bonus bMdef,.@r; if (.@r>=14) { - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; + bonus2 bSpeedRate,25; } - UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; - Id: 2492 AegisName: Bayani_Bangungot_Boots Name: Bayani Bangungot Boots of Nightmare @@ -29032,10 +29020,8 @@ Body: .@r = getrefine(); bonus bMdef,.@r; if (.@r>=12) { - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; + bonus2 bSpeedRate,25; } - UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; - Id: 2493 AegisName: Goibne's_Combat_Boots_ Name: Goibne's Greaves @@ -40702,7 +40688,7 @@ Body: ArmorLevel: 1 View: 219 Script: | - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; - Id: 5151 AegisName: Headset_OST Name: Note Headphones @@ -41630,7 +41616,7 @@ Body: ArmorLevel: 1 View: 253 Script: | - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; - Id: 5204 AegisName: Event_Pierrot_Nose Name: Rudolph's Nose @@ -42901,11 +42887,10 @@ Body: Refineable: true View: 305 Script: | - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; + bonus2 bSpeedRate,25; bonus bDef,4; skill "TF_HIDING",1; UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; sc_end SC_HIDING; - Id: 5274 AegisName: Shiny_Wig @@ -42921,11 +42906,10 @@ Body: Refineable: true View: 306 Script: | - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; + bonus2 bSpeedRate,25; bonus bDef,4; skill "TF_HIDING",1; UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; sc_end SC_HIDING; - Id: 5275 AegisName: Marvelous_Wig @@ -42941,11 +42925,10 @@ Body: Refineable: true View: 307 Script: | - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; + bonus2 bSpeedRate,25; bonus bDef,4; skill "TF_HIDING",1; UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; sc_end SC_HIDING; - Id: 5276 AegisName: Fantastic_Wig @@ -42961,11 +42944,10 @@ Body: Refineable: true View: 308 Script: | - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; + bonus2 bSpeedRate,25; bonus bDef,4; skill "TF_HIDING",1; UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; sc_end SC_HIDING; - Id: 5277 AegisName: Yellow_Bandana @@ -43176,7 +43158,7 @@ Body: NoMail: true NoAuction: true Script: | - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; bonus bAspdRate,5; bonus bVariableCastrate,-5; - Id: 5287 @@ -49550,11 +49532,9 @@ Body: ArmorLevel: 1 View: 314 Script: | - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; + bonus2 bSpeedRate,25; bonus bAspdRate,10; bonus bVariableCastrate,-25; - UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; - Id: 5629 AegisName: F_Vacation_Hat Name: F Vacation Hat @@ -49840,10 +49820,10 @@ Body: View: 308 Script: | bonus bDef,4; - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; + bonus2 bSpeedRate,25; skill "TF_HIDING",1; UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; + sc_end SC_HIDING; - Id: 5646 AegisName: F_Whisper_Mask Name: F Whisper Mask @@ -52881,7 +52861,7 @@ Body: NoAuction: true Script: | bonus bAllStats,5; - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; - Id: 5810 AegisName: Ph.D_Hat_V Name: Ph.D Hat V @@ -53689,7 +53669,7 @@ Body: View: 999 Script: | bonus2 bAddEffWhenHit,Eff_Stone,600; - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; - Id: 5870 AegisName: Bunny_Egg_Shell Name: Bunny Egg Shell @@ -75444,7 +75424,7 @@ Body: bonus bAllStats,2; bonus bMdef,5; bonus bUnbreakableHelm; - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; - Id: 18626 AegisName: Gelato_Hat Name: Gelato Hat @@ -75638,9 +75618,7 @@ Body: bonus bStr,2; bonus bVit,1; if (getrefine() > 7) - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; - UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; + bonus2 bSpeedRate,25; - Id: 18638 AegisName: Citron_Hat Name: Citron Hat @@ -82620,7 +82598,7 @@ Body: bonus bAspd,1; } if (.@r >= 12) { - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; } bonus2 bExpAddRace,RC_All,5; bonus2 bDropAddRace,RC_All,5; @@ -83864,9 +83842,7 @@ Body: ArmorLevel: 1 EquipLevelMin: 30 Script: | - autobonus "{ sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; }",50,5000,BF_NORMAL,"{ showscript \"Smokie-formation!\"; active_transform 1056,5000; /*SMOKIE*/ }"; - UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; + autobonus "{ bonus2 bSpeedRate,25; }",50,5000,BF_NORMAL,"{ showscript \"Smokie-formation!\"; active_transform 1056,5000; /*SMOKIE*/ }"; - Id: 19239 AegisName: PoringTownCarrot Name: Poring Village Carrot @@ -83879,9 +83855,7 @@ Body: ArmorLevel: 1 EquipLevelMin: 30 Script: | - autobonus "{ sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; }",50,5000,BF_NORMAL,"{ showscript \"Lunatic-formation!\"; active_transform 1063,5000; /*LUNATIC*/ }"; - UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; + autobonus "{ bonus2 bSpeedRate,25; }",50,5000,BF_NORMAL,"{ showscript \"Lunatic-formation!\"; active_transform 1063,5000; /*LUNATIC*/ }"; - Id: 19240 AegisName: Toy_Syringe_K Name: Toy Syringe @@ -90355,9 +90329,7 @@ Body: View: 691 Script: | if (gettime(DT_MONTH) == OCTOBER) - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; - UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; + bonus2 bSpeedRate,25; - Id: 19918 AegisName: C_Lude_Mask Name: Costume Lude Mask @@ -90931,10 +90903,8 @@ Body: Script: | if (gettime(DT_MONTH) == DECEMBER) { bonus bAspdRate,10; - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; + bonus2 bSpeedRate,25; } - UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; - Id: 19977 AegisName: C_Golden_Exclamation Name: Costume Golden Exclamation Mark @@ -99870,7 +99840,7 @@ Body: bonus bLongHPGainValue,5; } if (.@r>=8) - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; + bonus2 bSpeedRate,25; if (.@r>=9) { bonus bMaxHPrate,10; bonus bMaxSPrate,10; @@ -99880,8 +99850,6 @@ Body: } if (.@r>=10) skill "AS_CLOAKING",3; - UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; - Id: 20953 AegisName: H_AD_Hood Name: High Adventurer Hood @@ -102639,7 +102607,7 @@ Body: bonus bMaxHPRate,4+(.@r/3); bonus bMaxSPRate,4+(.@r/3); if (.@r > 9) - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; - Id: 22075 AegisName: Shoes_Of_Cracks Name: Rift Shoes @@ -103614,11 +103582,9 @@ Body: } if (.@r >=9) { .@bonus += 5; - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; + bonus2 bSpeedRate,25; } bonus bMaxSPrate,.@bonus; - UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; - Id: 22132 AegisName: Nergal_Shoes Name: Fire Thunder Great Boots @@ -111349,7 +111315,7 @@ Body: bonus bFlee,15; } if (.@r >= 10) - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; - Id: 24440 AegisName: S_Sonic_Armor Name: Sonic Shadow Armor @@ -116417,7 +116383,7 @@ Body: bonus bDef,15; bonus bFlee,15; if (.@r>=10) { - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; } } - Id: 24733 diff --git a/db/re/item_db_etc.yml b/db/re/item_db_etc.yml index d9ee36eff3..87ebaa69e9 100644 --- a/db/re/item_db_etc.yml +++ b/db/re/item_db_etc.yml @@ -4411,9 +4411,7 @@ Body: BuyingStore: true DropEffect: CLIENT Script: | - sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; - UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; + bonus2 bSpeedRate,25; - Id: 4132 AegisName: Mistress_Card Name: Mistress Card @@ -11027,9 +11025,7 @@ Body: BuyingStore: true DropEffect: CLIENT Script: | - autobonus "{ bonus bAgi,44; sc_start SC_MOVEHASTE_INFINITY,INFINITE_TICK,25; heal 0,-40; }",500,3000,0,"{ specialeffect2 EF_POTION_BERSERK; showscript \"I got the signal!!!!\"; }"; - UnEquipScript: | - sc_end SC_MOVEHASTE_INFINITY; + autobonus "{ bonus bAgi,44; bonus2 bSpeedRate,25; heal 0,-40; }",500,3000,0,"{ specialeffect2 EF_POTION_BERSERK; showscript \"I got the signal!!!!\"; }"; - Id: 4582 AegisName: Bungisngis_Card Name: Bungisngis Card @@ -44725,7 +44721,7 @@ Body: bonus5 bAutoSpellWhenHit,"SO_FIREWALK",5,35,BF_WEAPON,0; bonus5 bAutoSpellWhenHit,"SO_ELECTRICWALK",5,80,BF_MAGIC,0; autobonus "{ bonus bFlee,200; }",30,10000,BF_WEAPON,"{ specialeffect2 EF_TEIHIT1; }"; - autobonus "{ bonus bSpeedRate,25; }",25,10000,BF_MAGIC,"{ specialeffect2 EF_POTION_BERSERK; }"; + autobonus "{ bonus2 bSpeedRate,25; }",25,10000,BF_MAGIC,"{ specialeffect2 EF_POTION_BERSERK; }"; - Id: 300000 AegisName: IDTest_Card Name: IDTest Card @@ -45884,7 +45880,7 @@ Body: Flags: DropEffect: CLIENT Script: | - bonus bSpeedRate,25; + bonus2 bSpeedRate,25; bonus bHit,-50; - Id: 300140 AegisName: ILL_Sropho_Card diff --git a/db/re/status.yml b/db/re/status.yml index 47fe80576d..4cc7adc4fd 100644 --- a/db/re/status.yml +++ b/db/re/status.yml @@ -8110,13 +8110,3 @@ Body: All: true Flags: RemoveElementalOption: true - - Status: Movehaste_Infinity - Icon: EFST_MOVHASTE_INFINITY - CalcFlags: - Speed: true - Flags: - NoRemoveOnDead: true - NoClearbuff: true - NoSave: true - Fail: - Movehaste_Infinity: true diff --git a/doc/item_bonus.txt b/doc/item_bonus.txt index 9839bb4dbf..5e3f56ca09 100644 --- a/doc/item_bonus.txt +++ b/doc/item_bonus.txt @@ -154,6 +154,7 @@ bonus bFlee2Rate,n; Perfect Dodge + n% bonus bPerfectHitRate,n; On-target impact attack probability n% (only the highest among all is applied) bonus bPerfectHitAddRate,n; On-target impact attack probability + n% bonus bSpeedRate,n; Movement speed + n% (only the highest among all is applied, won't be stacked with SC_SPEEDUP0, SC_SPEEDUP1) +bonus2 bSpeedRate,n; Movement speed + n% where EFST_MOVHASTE_INFINITY is applied (only the highest among all is applied, won't be stacked with SC_SPEEDUP0, SC_SPEEDUP1) bonus bSpeedAddRate,n; Movement speed + n% bonus bAspd,n; Attack speed + n bonus bAspdRate,n; Attack speed + n% diff --git a/src/map/pc.cpp b/src/map/pc.cpp index 86f546a0ba..98f8b3e0b1 100755 --- a/src/map/pc.cpp +++ b/src/map/pc.cpp @@ -4026,6 +4026,13 @@ void pc_bonus2(struct map_session_data *sd,int type,int type2,int val) nullpo_retv(sd); switch(type){ + case SP_SPEED_RATE: //Non stackable increase + if (sd->state.lr_flag != 2) { + sd->bonus.speed_rate = min(sd->bonus.speed_rate, -val); + sd->special_state.movehaste = true; + clif_status_load(&sd->bl, EFST_MOVHASTE_INFINITY, 1); + } + break; case SP_ADDELE: // bonus2 bAddEle,e,x; PC_BONUS_CHK_ELEMENT(type2,SP_ADDELE); if(!sd->state.lr_flag || sd->state.lr_flag == 3) diff --git a/src/map/pc.hpp b/src/map/pc.hpp index f568615180..9df787bc3f 100644 --- a/src/map/pc.hpp +++ b/src/map/pc.hpp @@ -408,6 +408,7 @@ struct map_session_data { unsigned int bonus_coma : 1; unsigned int no_mado_fuel : 1; // Disable Magic_Gear_Fuel consumption [Secret] unsigned int no_walk_delay : 1; + bool movehaste; } special_state; uint32 login_id1, login_id2; uint64 class_; //This is the internal job ID used by the map server to simplify comparisons/queries/etc. [Skotlex] diff --git a/src/map/script_constants.hpp b/src/map/script_constants.hpp index 49ecee2d9c..9aae48c6eb 100644 --- a/src/map/script_constants.hpp +++ b/src/map/script_constants.hpp @@ -1840,7 +1840,6 @@ export_constant(SC_DEEP_POISONING_OPTION); export_constant(SC_POISON_SHIELD); export_constant(SC_POISON_SHIELD_OPTION); - export_constant(SC_MOVEHASTE_INFINITY); #ifdef RENEWAL export_constant(SC_EXTREMITYFIST2); #endif diff --git a/src/map/status.cpp b/src/map/status.cpp index 707c659c4b..0fad034150 100644 --- a/src/map/status.cpp +++ b/src/map/status.cpp @@ -3141,6 +3141,9 @@ int status_calc_pc_sub(struct map_session_data* sd, uint8 opt) if (sd->special_state.no_walk_delay) clif_status_load(&sd->bl, EFST_ENDURE, 0); + if (sd->special_state.movehaste) + clif_status_load(&sd->bl, EFST_MOVHASTE_INFINITY, 0); + memset(&sd->special_state,0,sizeof(sd->special_state)); if (pc_isvip(sd)) // Magic Stone requirement avoidance for VIP. @@ -7364,8 +7367,6 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha if( sc->data[SC_JAWAII_SERENADE] ){ val = max( val, 25 ); } - if (sc->data[SC_MOVEHASTE_INFINITY]) - val = max(val, sc->data[SC_MOVEHASTE_INFINITY]->val1); // !FIXME: official items use a single bonus for this [ultramage] if( sc->data[SC_SPEEDUP0] ) // Temporary item-based speedup @@ -9808,7 +9809,6 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty case SC_CLAN_INFO: case SC_DAILYSENDMAILCNT: case SC_SOULATTACK: - case SC_MOVEHASTE_INFINITY: tick = INFINITE_TICK; break;