Compare commits

...

12 Commits

Author SHA1 Message Date
aleos
fb9a52416f Attempts to correct display messages
Thanks to @eppc0330!
2022-05-19 14:15:03 -04:00
aleos
b9446c4e6e Renamed bonus2 bSpeedRate to bonus bMoveHaste 2022-05-18 15:02:29 -04:00
aleos
18e0de8658 Removes leftover status define 2022-05-17 16:30:39 -04:00
aleos
ee9a2cd98c Minor SQL and line reversions 2022-05-17 16:25:49 -04:00
aleos
0908cb3f1a Minor cleanups from reversions 2022-05-17 16:21:57 -04:00
aleos
3c18adb5d2 Merge branch 'master' into hotfix/issue5766_speedrate 2022-05-17 16:12:08 -04:00
aleos
909c141996 Adds bonus2 bSpeedRate
* This bonus will apply EFST_MOVEHASTE_INFINITY.
* Reverts bonuses that were changed to a status change.
2022-05-17 16:11:12 -04:00
aleos
1f4d58801d Merge branch 'master' into hotfix/issue5766_speedrate 2022-05-17 13:29:26 -04:00
aleos
79af5ffdc7 Adds a stacking check 2021-04-01 14:38:37 -04:00
aleos
4020d3f37c Updates SQL database 2021-03-31 15:32:37 -04:00
aleos
4dc5eb57dd Follow up
* Fixes a typo in the SC name.
* Adjusts pre-renewal item database.
2021-03-31 15:29:13 -04:00
aleos
0beb30ad1b Adds SC_MOVEHASTE_INFINITY status
* Partial fix for #5766.
* Removes bSpeedRate,25 bonuses for several items which should be applied via a status change.
Thanks to @mrjnumber1!
2021-03-31 15:22:18 -04:00
13 changed files with 96 additions and 67 deletions

View File

@ -145,7 +145,7 @@ Body:
- Staff_Of_Wing
- Wing_Of_Eagle
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Combos:
- Combo:
- Survival_Rod_
@ -888,7 +888,7 @@ Body:
bonus bAgi,5;
bonus bStr,5;
bonus bAspdRate,5;
bonus bSpeedRate,25;
bonus bMoveHaste,25;
bonus bSPDrainValue,1;
if (BaseClass == Job_Thief)
bonus bNoGemStone;

View File

@ -5360,7 +5360,7 @@ Body:
Refineable: true
Script: |
bonus bStr,10;
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Id: 1364
AegisName: Great_Axe
Name: Great Axe
@ -5435,6 +5435,7 @@ Body:
bonus bAtkEle,Ele_Holy;
skill "AL_HEAL",3;
bonus2 bAddRace,RC_Demon,3;
bonus bMoveHaste,25;
- Id: 1367
AegisName: Slaughter
Name: Slaughter
@ -5606,7 +5607,7 @@ Body:
skill "AL_HEAL",3;
bonus2 bAddRace,RC_Demon,3;
bonus bStr,10;
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Id: 1373
AegisName: Brood_Axe_C
Name: Refined Bloody Axe
@ -5627,7 +5628,7 @@ Body:
WeaponLevel: 4
Script: |
bonus bStr,20;
bonus bSpeedRate,25;
bonus bMoveHaste,25;
bonus bAspdRate,5;
- Id: 1374
AegisName: Tomahawk_C
@ -15251,7 +15252,7 @@ Body:
Skill "HW_MAGICPOWER",10;
bonus bMaxHPRate,200;
bonus bNoGemStone;
bonus bSpeedRate,25;
bonus bMoveHaste,25;
bonus bNoWalkDelay;
- Id: 2201
AegisName: Sunglasses
@ -18917,7 +18918,8 @@ Body:
bonus bMaxHPrate,20;
bonus bMaxSPrate,20;
bonus bSPrecovRate,15;
bonus bSpeedRate,25;
bonus bMoveHaste,25;
bonus bInt,25;
- Id: 2411
AegisName: Grave
Name: Greaves
@ -27217,7 +27219,7 @@ Body:
ArmorLevel: 1
View: 219
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Id: 5151
AegisName: Headset_OST
Name: Note Headphones
@ -28139,7 +28141,7 @@ Body:
ArmorLevel: 1
View: 253
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Id: 5204
AegisName: Event_Pierrot_Nose
Name: Rudolph's Nose
@ -29515,7 +29517,7 @@ Body:
bonus bInt,1;
bonus bAgi,1;
bonus bAspdRate,3;
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Id: 5270
AegisName: Fallen_Leaves_
Name: Autumn Leaves
@ -29576,7 +29578,7 @@ Body:
Refineable: true
View: 305
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
bonus bDef,4;
skill "TF_HIDING",1;
UnEquipScript: |
@ -29595,7 +29597,7 @@ Body:
Refineable: true
View: 306
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
bonus bDef,4;
skill "TF_HIDING",1;
UnEquipScript: |
@ -29614,7 +29616,7 @@ Body:
Refineable: true
View: 307
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
bonus bDef,4;
skill "TF_HIDING",1;
UnEquipScript: |
@ -29633,7 +29635,7 @@ Body:
Refineable: true
View: 308
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
bonus bDef,4;
skill "TF_HIDING",1;
UnEquipScript: |
@ -29826,7 +29828,7 @@ Body:
NoSell: true
NoGuildStorage: true
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
bonus bAspdRate,-10;
bonus bCastrate,25;
- Id: 5287

View File

@ -4210,7 +4210,7 @@ Body:
Flags:
BuyingStore: true
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Id: 4132
AegisName: Mistress_Card
Name: Mistress Card

View File

@ -405,7 +405,7 @@ Body:
- Shield_Of_Gust
- Shining_Trapezohedron
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,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; bonus bMoveHaste,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;
bonus bMoveHaste,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;
bonus bMoveHaste,25;
/* unknown speed value */
bonus bHealPower,10;
- Combos:
@ -10751,7 +10751,7 @@ Body:
- White_Wing_Suits
Script: |
.@r = getequiprefinerycnt(EQI_ARMOR);
bonus bSpeedRate,25;
bonus bMoveHaste,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;
bonus bMoveHaste,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 */
bonus bMoveHaste,25; /* unknown value */
}
- Combos:
- Combo:

View File

@ -5703,7 +5703,7 @@ Body:
bonus bStr,10;
bonus2 bAddRace,RC_Demon,3;
skill "AL_HEAL",3;
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Id: 1316
AegisName: Adventure_Axe
Name: Adventure Axe
@ -6479,7 +6479,7 @@ Body:
Refineable: true
Script: |
bonus bStr,10;
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Id: 1364
AegisName: Great_Axe
Name: Great Axe
@ -6554,6 +6554,7 @@ Body:
bonus bAtkEle,Ele_Holy;
skill "AL_HEAL",3;
bonus2 bAddRace,RC_Demon,3;
bonus bMoveHaste,25;
- Id: 1367
AegisName: Slaughter
Name: Slaughter
@ -6725,7 +6726,7 @@ Body:
skill "AL_HEAL",3;
bonus2 bAddRace,RC_Demon,3;
bonus bStr,10;
bonus bSpeedRate,25;
bonus bMoveHaste,25;
/*Gold PC Room: bonus bBaseAtk,10; bonus bMatk,10;*/
- Id: 1373
AegisName: Brood_Axe_C
@ -23541,7 +23542,7 @@ Body:
bonus bMaxHPrate,200;
bonus bNoKnockback;
bonus bDelayrate,-100;
bonus bSpeedRate,25;
bonus bMoveHaste,25;
bonus bIntravision;
bonus bNoWalkDelay;
bonus bNoGemStone;
@ -27307,7 +27308,7 @@ Body:
bonus bMaxHPrate,20;
bonus bMaxSPrate,20;
bonus bSPrecovRate,25;
bonus bSpeedRate,25;
bonus bMoveHaste,25;
bonus bInt,25;
- Id: 2411
AegisName: Grave
@ -28420,7 +28421,7 @@ Body:
bonus bMaxHPrate,20;
bonus bMaxSPrate,20;
bonus bSPrecovRate,15;
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Id: 2463
AegisName: Feral_Boots
Name: Feral Boots
@ -29000,7 +29001,7 @@ Body:
.@r = getrefine();
bonus bMdef,.@r;
if (.@r>=14) {
bonus bSpeedRate,25;
bonus bMoveHaste,25;
}
- Id: 2492
AegisName: Bayani_Bangungot_Boots
@ -29019,7 +29020,7 @@ Body:
.@r = getrefine();
bonus bMdef,.@r;
if (.@r>=12) {
bonus bSpeedRate,25;
bonus bMoveHaste,25;
}
- Id: 2493
AegisName: Goibne's_Combat_Boots_
@ -40687,7 +40688,7 @@ Body:
ArmorLevel: 1
View: 219
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Id: 5151
AegisName: Headset_OST
Name: Note Headphones
@ -41615,7 +41616,7 @@ Body:
ArmorLevel: 1
View: 253
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Id: 5204
AegisName: Event_Pierrot_Nose
Name: Rudolph's Nose
@ -42886,7 +42887,7 @@ Body:
Refineable: true
View: 305
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
bonus bDef,4;
skill "TF_HIDING",1;
UnEquipScript: |
@ -42905,7 +42906,7 @@ Body:
Refineable: true
View: 306
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
bonus bDef,4;
skill "TF_HIDING",1;
UnEquipScript: |
@ -42924,7 +42925,7 @@ Body:
Refineable: true
View: 307
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
bonus bDef,4;
skill "TF_HIDING",1;
UnEquipScript: |
@ -42943,7 +42944,7 @@ Body:
Refineable: true
View: 308
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
bonus bDef,4;
skill "TF_HIDING",1;
UnEquipScript: |
@ -43157,7 +43158,7 @@ Body:
NoMail: true
NoAuction: true
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
bonus bAspdRate,5;
bonus bVariableCastrate,-5;
- Id: 5287
@ -49531,7 +49532,7 @@ Body:
ArmorLevel: 1
View: 314
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
bonus bAspdRate,10;
bonus bVariableCastrate,-25;
- Id: 5629
@ -49819,8 +49820,10 @@ Body:
View: 308
Script: |
bonus bDef,4;
bonus bSpeedRate,25;
bonus bMoveHaste,25;
skill "TF_HIDING",1;
UnEquipScript: |
sc_end SC_HIDING;
- Id: 5646
AegisName: F_Whisper_Mask
Name: F Whisper Mask
@ -52858,7 +52861,7 @@ Body:
NoAuction: true
Script: |
bonus bAllStats,5;
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Id: 5810
AegisName: Ph.D_Hat_V
Name: Ph.D Hat V
@ -53666,7 +53669,7 @@ Body:
View: 999
Script: |
bonus2 bAddEffWhenHit,Eff_Stone,600;
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Id: 5870
AegisName: Bunny_Egg_Shell
Name: Bunny Egg Shell
@ -75421,7 +75424,7 @@ Body:
bonus bAllStats,2;
bonus bMdef,5;
bonus bUnbreakableHelm;
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Id: 18626
AegisName: Gelato_Hat
Name: Gelato Hat
@ -75615,7 +75618,7 @@ Body:
bonus bStr,2;
bonus bVit,1;
if (getrefine() > 7)
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Id: 18638
AegisName: Citron_Hat
Name: Citron Hat
@ -82595,7 +82598,7 @@ Body:
bonus bAspd,1;
}
if (.@r >= 12) {
bonus bSpeedRate,25;
bonus bMoveHaste,25;
}
bonus2 bExpAddRace,RC_All,5;
bonus2 bDropAddRace,RC_All,5;
@ -83839,7 +83842,7 @@ Body:
ArmorLevel: 1
EquipLevelMin: 30
Script: |
autobonus "{ bonus bSpeedRate,25; }",50,5000,BF_NORMAL,"{ showscript \"Smokie-formation!\"; active_transform 1056,5000; /*SMOKIE*/ }";
autobonus "{ bonus bMoveHaste,25; }",50,5000,BF_NORMAL,"{ showscript \"Smokie-formation!\"; active_transform 1056,5000; /*SMOKIE*/ }";
- Id: 19239
AegisName: PoringTownCarrot
Name: Poring Village Carrot
@ -83852,7 +83855,7 @@ Body:
ArmorLevel: 1
EquipLevelMin: 30
Script: |
autobonus "{ bonus bSpeedRate,25; }",50,5000,BF_NORMAL,"{ showscript \"Lunatic-formation!\"; active_transform 1063,5000; /*LUNATIC*/ }";
autobonus "{ bonus bMoveHaste,25; }",50,5000,BF_NORMAL,"{ showscript \"Lunatic-formation!\"; active_transform 1063,5000; /*LUNATIC*/ }";
- Id: 19240
AegisName: Toy_Syringe_K
Name: Toy Syringe
@ -90200,6 +90203,7 @@ Body:
EquipLevelMin: 1
View: 717
Script: |
if (gettime(DT_MONTH) == OCTOBER)
bonus bVariableCastrate,-10;
- Id: 19904
AegisName: C_Skull_Cap
@ -90324,7 +90328,8 @@ Body:
EquipLevelMin: 1
View: 691
Script: |
bonus bSpeedRate,25;
if (gettime(DT_MONTH) == OCTOBER)
bonus bMoveHaste,25;
- Id: 19918
AegisName: C_Lude_Mask
Name: Costume Lude Mask
@ -90336,6 +90341,7 @@ Body:
EquipLevelMin: 1
View: 802
Script: |
if (gettime(DT_MONTH) == OCTOBER)
bonus bAddItemHealRate,20;
- Id: 19919
AegisName: C_Cube_Mask_
@ -90348,6 +90354,7 @@ Body:
EquipLevelMin: 1
View: 472
Script: |
if (gettime(DT_MONTH) == OCTOBER)
bonus bAspdRate,10;
- Id: 19920
AegisName: C_Adv_Whisper_Mask
@ -90361,6 +90368,7 @@ Body:
EquipLevelMin: 1
View: 458
Script: |
if (gettime(DT_MONTH) == OCTOBER)
bonus bFlee,20;
- Id: 19921
AegisName: C_Drooping_Wild_Rose
@ -90893,8 +90901,10 @@ Body:
EquipLevelMin: 1
View: 1144
Script: |
if (gettime(DT_MONTH) == DECEMBER) {
bonus bAspdRate,10;
bonus bSpeedRate,25;
bonus bMoveHaste,25;
}
- Id: 19977
AegisName: C_Golden_Exclamation
Name: Costume Golden Exclamation Mark
@ -99821,6 +99831,7 @@ Body:
bonus bMaxHPrate,3;
bonus bMaxSPrate,3;
bonus2 bSubRace,RC_Player_Human,5;
bonus2 bSubRace,RC_Player_Doram,5;
if (.@r>=7) {
bonus bMaxHPrate,7;
bonus bMaxSPrate,7;
@ -99829,7 +99840,7 @@ Body:
bonus bLongHPGainValue,5;
}
if (.@r>=8)
bonus bSpeedRate,40;
bonus bMoveHaste,25;
if (.@r>=9) {
bonus bMaxHPrate,10;
bonus bMaxSPrate,10;
@ -102596,7 +102607,7 @@ Body:
bonus bMaxHPRate,4+(.@r/3);
bonus bMaxSPRate,4+(.@r/3);
if (.@r > 9)
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Id: 22075
AegisName: Shoes_Of_Cracks
Name: Rift Shoes
@ -103571,9 +103582,9 @@ Body:
}
if (.@r >=9) {
.@bonus += 5;
bonus bMoveHaste,25;
}
bonus bMaxSPrate,.@bonus;
bonus bSpeedRate,25;
- Id: 22132
AegisName: Nergal_Shoes
Name: Fire Thunder Great Boots
@ -111304,7 +111315,7 @@ Body:
bonus bFlee,15;
}
if (.@r >= 10)
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Id: 24440
AegisName: S_Sonic_Armor
Name: Sonic Shadow Armor
@ -116372,7 +116383,7 @@ Body:
bonus bDef,15;
bonus bFlee,15;
if (.@r>=10) {
bonus bSpeedRate,25;
bonus bMoveHaste,25;
}
}
- Id: 24733

View File

@ -4411,7 +4411,7 @@ Body:
BuyingStore: true
DropEffect: CLIENT
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
- Id: 4132
AegisName: Mistress_Card
Name: Mistress Card
@ -11025,7 +11025,7 @@ Body:
BuyingStore: true
DropEffect: CLIENT
Script: |
autobonus2 "{ bonus bAgi,44; bonus bNoWalkDelay; heal 0,-40; }",50,3000,0,"{ sc_start SC_SPEEDUP1,3000,50; }";
autobonus2 "{ bonus bAgi,44; bonus bNoWalkDelay; bonus bMoveHaste,25; heal 0,-40; }",500,3000,0,"{ specialeffect2 EF_POTION_BERSERK; showscript \"I got the signal!!!!\"; }";
- Id: 4582
AegisName: Bungisngis_Card
Name: Bungisngis Card
@ -44721,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 "{ bonus bMoveHaste,25; }",25,10000,BF_MAGIC,"{ specialeffect2 EF_POTION_BERSERK; }";
- Id: 300000
AegisName: IDTest_Card
Name: IDTest Card
@ -45880,7 +45880,7 @@ Body:
Flags:
DropEffect: CLIENT
Script: |
bonus bSpeedRate,25;
bonus bMoveHaste,25;
bonus bHit,-50;
- Id: 300140
AegisName: ILL_Sropho_Card

View File

@ -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)
bonus bMoveHaste,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%

View File

@ -11067,6 +11067,8 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd)
}
if( sd->state.changemap ) {// restore information that gets lost on map-change
status_calc_pc(sd, sd->state.autotrade ? SCO_FIRST : SCO_NONE); // Some conditions are map-dependent so we must recalculate
#if PACKETVER >= 20070918
clif_partyinvitationstate(sd);
clif_equipcheckbox(sd);
@ -11135,7 +11137,6 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd)
status_change_clear_onChangeMap(&sd->bl, &sd->sc);
map_iwall_get(sd); // Updates Walls Info on this Map to Client
status_calc_pc(sd, sd->state.autotrade ? SCO_FIRST : SCO_NONE); // Some conditions are map-dependent so we must recalculate
#ifdef VIP_ENABLE
if (!sd->state.connect_new &&

View File

@ -550,7 +550,7 @@ enum _sp {
SP_IGNORE_DEF_CLASS_RATE, SP_REGEN_PERCENT_HP, SP_REGEN_PERCENT_SP, SP_SKILL_DELAY, SP_NO_WALK_DELAY, //2088-2092
SP_LONG_SP_GAIN_VALUE, SP_LONG_HP_GAIN_VALUE, SP_SHORT_ATK_RATE, SP_MAGIC_SUBSIZE, SP_CRIT_DEF_RATE, // 2093-2097
SP_MAGIC_SUBDEF_ELE, SP_REDUCE_DAMAGE_RETURN, SP_ADD_ITEM_SPHEAL_RATE, SP_ADD_ITEMGROUP_SPHEAL_RATE, // 2098-2101
SP_WEAPON_SUBSIZE, SP_ABSORB_DMG_MAXHP2 // 2102-2103
SP_WEAPON_SUBSIZE, SP_ABSORB_DMG_MAXHP2, SP_MOVE_HASTE // 2102-2104
};
enum _look {

View File

@ -3512,6 +3512,14 @@ void pc_bonus(struct map_session_data *sd,int type,int val)
if(sd->state.lr_flag != 2)
sd->bonus.speed_add_rate -= val;
break;
case SP_MOVE_HASTE: //Non stackable increase
if (sd->state.lr_flag != 2) {
sd->bonus.speed_rate = min(sd->bonus.speed_rate, -val);
sd->special_state.movehaste++;
if (sd->special_state.movehaste == 1)
clif_status_load(&sd->bl, EFST_MOVHASTE_INFINITY, 1);
}
break;
case SP_ASPD: //Raw increase
if(sd->state.lr_flag != 2)
sd->bonus.aspd_add -= 10*val;
@ -9585,6 +9593,7 @@ int64 pc_readparam(struct map_session_data* sd,int64 type)
case SP_SPRATE: val = sd->dsprate; break;
case SP_SPEED_RATE: val = sd->bonus.speed_rate; break;
case SP_SPEED_ADDRATE: val = sd->bonus.speed_add_rate; break;
case SP_MOVE_HASTE: val = sd->bonus.speed_rate; break;
case SP_ASPD_RATE:
#ifndef RENEWAL_ASPD
val = sd->battle_status.aspd_rate;

View File

@ -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;
uint8 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]

View File

@ -851,6 +851,7 @@
export_constant2("bAddItemSPHealRate", SP_ADD_ITEM_SPHEAL_RATE);
export_constant2("bAddItemGroupSPHealRate", SP_ADD_ITEMGROUP_SPHEAL_RATE);
export_constant2("bWeaponSubSize", SP_WEAPON_SUBSIZE);
export_constant2("bMoveHaste", SP_MOVE_HASTE);
/* equip indices */
export_constant(EQI_COMPOUND_ON);

View File

@ -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 == 1)
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.