瀏覽代碼

Corrected script for some item #10 (#7177)

* Corrected script for some item #10
* add some items JRO costume

Thanks to @Atemo
idk-whoami 2 年之前
父節點
當前提交
58a7f36c92

+ 120 - 0
db/re/item_combos.yml

@@ -27737,3 +27737,123 @@ Body:
     Script: |
       bonus bSMatk,2;
       bonus bMatkRate,10;
+  - Combos:
+      - Combo:
+          - aegis_28973           # 28973
+          - Dark_Blindfold        # 5104
+      - Combo:
+          - aegis_28973           # 28973
+          - Dark_Blindfold        # 18609
+    Script: |
+      bonus bVariableCastrate,-5;
+      bonus2 bMagicAddRace,RC_All,5;
+  - Combos:
+      - Combo:
+          - Magical_Cloth           # 450132
+          - Real_Ceila_Card       # 4692
+    Script: |
+      bonus bMatkRate,5;
+      bonus2 bIgnoreMdefRaceRate,RC_All,50;
+  - Combos:
+      - Combo:
+          - aegis_311460    # 311460
+          - Staremperor_Robe    # 29658
+    Script: |
+      bonus2 bSkillAtk,"SJ_NEWMOONKICK",15;
+  - Combos:
+      - Combo:
+          - aegis_311461    # 311461
+          - Staremperor_Robe    # 29658
+    Script: |
+      bonus2 bSkillAtk,"SJ_SOLARBURST",15;
+  - Combos:
+      - Combo:
+          - aegis_311462    # 311462
+          - Staremperor_Robe    # 29658
+    Script: |
+      bonus2 bSPDrainRate,2,1;
+  - Combos:
+      - Combo:
+          - aegis_311463    # 311463
+          - Rebellion_Robe    # 29667
+    Script: |
+      bonus2 bSkillAtk,"RL_BANISHING_BUSTER",15;
+  - Combos:
+      - Combo:
+          - aegis_311464    # 311464
+          - Rebellion_Robe    # 29667
+    Script: |
+      bonus2 bSkillAtk,"RL_R_TRIP",15;
+  - Combos:
+      - Combo:
+          - aegis_311465    # 311465
+          - Rebellion_Robe    # 29667
+    Script: |
+      bonus bFixedCast,-500;
+  - Combos:
+      - Combo:
+          - aegis_311466    # 311466
+          - Soulreaper_Robe    # 29654
+    Script: |
+      bonus2 bSkillUseSP,"SP_SPA",15;
+  - Combos:
+      - Combo:
+          - aegis_311467    # 311467
+          - Soulreaper_Robe    # 29654
+    Script: |
+      bonus2 bSkillAtk,"SP_SWHOO",15;
+  - Combos:
+      - Combo:
+          - aegis_311468    # 311468
+          - Soulreaper_Robe    # 29654
+    Script: |
+      bonus bFixedCast,-500;
+  - Combos:
+      - Combo:
+          - aegis_311469    # 311469
+          - Melee_Top    # 310327
+      - Combo:
+          - aegis_311469    # 311469
+          - Melee_Middle    # 310328
+      - Combo:
+          - aegis_311469    # 311469
+          - Melee_Bottom    # 310329
+    Script: |
+      bonus bPAtk,1;
+      bonus bPow,1;
+  - Combos:
+      - Combo:
+          - aegis_311469    # 311469
+          - aegis_311471    # 311471
+    Script: |
+      bonus bPAtk,5;
+      bonus bPow,3;
+  - Combos:
+      - Combo:
+          - aegis_311470    # 311470
+          - Range_Top    # 310325
+      - Combo:
+          - aegis_311470    # 311470
+          - Range_Middle    # 310330
+      - Combo:
+          - aegis_311470    # 311470
+          - Range_Bottom    # 310326
+    Script: |
+      bonus bPAtk,1;
+      bonus bCon,1;
+  - Combos:
+      - Combo:
+          - aegis_311470    # 311470
+          - Con_Robe_D    # 311355
+    Script: |
+      bonus bPAtk,5;
+      bonus bCon,3;
+  - Combos:
+      - Combo:
+          - 2020RTC_Imp_TW    # 400082
+          - 2021RTC_Headset_TW    # 400164
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus2 bSubRace,RC_Player_Human,1+2*(.@r/3);
+      bonus2 bSubRace,RC_Player_Doram,1+2*(.@r/3);
+      bonus bDelayrate,-1-.@r/3;

+ 449 - 19
db/re/item_db_equip.yml

@@ -12472,8 +12472,8 @@ Body:
       bonus bHealPower,200;
       bonus2 bAddClass,Class_All,100;
       skill "WZ_STORMGUST",10;
-      Skill "WZ_METEOR",10;
-      Skill "WZ_VERMILION",10;
+      skill "WZ_METEOR",10;
+      skill "WZ_VERMILION",10;
       skill "GM_SANDMAN",1;
       bonus bVariableCastrate,-100;
       bonus bFixedCastrate,-100;
@@ -23845,7 +23845,6 @@ Body:
     Type: Armor
     Buy: 10
     Weight: 200
-    MagicAttack: 5
     Defense: 50
     Slots: 1
     Jobs:
@@ -79704,7 +79703,6 @@ Body:
     Type: Armor
     Buy: 10
     Weight: 200
-    MagicAttack: 20
     Slots: 1
     Locations:
       Head_Top: true
@@ -98192,7 +98190,6 @@ Body:
     Type: Armor
     Buy: 10
     Weight: 100
-    MagicAttack: 10
     Slots: 1
     Locations:
       Garment: true
@@ -98201,6 +98198,7 @@ Body:
     Refineable: true
     View: 7
     Script: |
+      bonus bMatk,10;
       bonus bInt,1;
       bonus bDex,1;
   - Id: 20726
@@ -106318,7 +106316,6 @@ Body:
     AegisName: S_Healing_Weapon
     Name: Healing Shadow Weapon
     Type: Shadowgear
-    MagicAttack: 10
     Locations:
       Shadow_Weapon: true
     EquipLevelMin: 1
@@ -115217,7 +115214,6 @@ Body:
     AegisName: S_Booster_Earing
     Name: Booster Shadow Earring
     Type: ShadowGear
-    MagicAttack: 15
     Locations:
       Shadow_Right_Accessory: true
     EquipLevelMin: 100
@@ -115230,6 +115226,7 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
+      bonus bMatk,15;
       bonus bMaxHP,100;
   - Id: 24588
     AegisName: S_Booster_Pandent
@@ -117544,7 +117541,6 @@ Body:
     AegisName: S_AutoSpell_Shield
     Name: Auto Spell Shadow Shield
     Type: ShadowGear
-    MagicAttack: 15
     Locations:
       Shadow_Shield: true
     Refineable: true
@@ -128201,6 +128197,22 @@ Body:
          if (readparam(bLuk)>=90)
             bonus bCritAtkRate,5;
       }
+  - Id: 28948
+    AegisName: Doram_Shield
+    Name: Doram Shield
+    Type: Armor
+    Buy: 20
+    Weight: 100
+    Defense: 120
+    Locations:
+      Left_Hand: true
+    ArmorLevel: 1
+    EquipLevelMin: 1
+    Refineable: true
+    View: 1
+    Script: |
+      bonus bMdef,5;
+      bonus2 bSubSize,Size_All,(getrefine() >= 8 ? 25 : 15);
   - Id: 28950
     AegisName: Variant_Shield
     Name: Abyss Shield
@@ -128359,6 +128371,28 @@ Body:
       bonus2 bSubEle,Ele_Wind,20;
       bonus2 bSubEle,Ele_Holy,20+(getskilllv("CR_TRUST")*2);
       bonus2 bSubEle,Ele_Ghost,20;
+  - Id: 28973
+    AegisName: aegis_28973
+    Name: Themis Balance
+    Type: Armor
+    Weight: 300
+    Defense: 90
+    Slots: 1
+    Locations:
+      Left_Hand: true
+    ArmorLevel: 1
+    EquipLevelMin: 100
+    Refineable: true
+    View: 1
+    Script: |
+      .@r = getrefine();
+      bonus bMdef,10;
+      bonus bVariableCastrate,-5;
+      bonus2 bSkillAtk,"LG_RAYOFGENESIS",BaseLevel/5;
+      if (.@r>=9)
+         bonus2 bMagicAtkEle,Ele_Holy,3*(getskilllv("AL_HEAL")/2);
+      if (.@r>=11)
+         bonus2 bSkillCooldown,"LG_RAYOFGENESIS",-1000;
   - Id: 31027
     AegisName: C_Pretty_Bear
     Name: Costume Pretty Bear
@@ -139263,6 +139297,51 @@ Body:
       NoGuildStorage: true
       NoMail: true
       NoAuction: true
+  - Id: 400077
+    AegisName: Cat_Shampoo_Hat
+    Name: Splish-splash Nyanpoo Hat
+    Type: Armor
+    View: 507
+    Weight: 1000
+    Buy: 20
+    Defense: 18
+    Locations:
+      Head_Top: true
+    ArmorLevel: 1
+    EquipLevelMin: 100
+    Refineable: true
+    Script: |
+      bonus bUnbreakableHelm;
+      .@r = getrefine();
+      bonus bMdef,15;
+      bonus bMaxHPrate,20;
+      bonus bMaxSPrate,20;
+      if (getskilllv("SU_SPIRITOFSEA") >= 1)
+         skill "AL_PNEUMA",1;
+      if (getskilllv("SU_SHRIMPARTY") >= 5) {
+         bonus bMaxHPrate,30;
+         bonus bMaxSPrate,30;
+      }
+      if (getskilllv("SU_GROOMING") >= 5) {
+         bonus2 bResEff,Eff_Confusion,10000;
+         bonus2 bResEff,Eff_Silence,10000;
+      }
+      bonus bHealPower2,20*getskilllv("SU_PURRING");
+      bonus bDef,50*.@r;
+      if (.@r >= 7) {
+         bonus bDelayrate,-10;
+         bonus2 bVariableCastrate,"SU_STOOP",-50;
+         bonus2 bVariableCastrate,"SU_LOPE",-50;
+         bonus2 bSubClass,Class_Boss,10;
+      }
+      if (.@r >= 9) {
+         bonus bDelayrate,-10;
+         bonus2 bVariableCastrate,"SU_STOOP",-50;
+         bonus2 bVariableCastrate,"SU_LOPE",-50;
+         bonus2 bSubClass,Class_Boss,10;
+      }
+      if (.@r >= 10)
+         autobonus3 "{ bonus bFlee2,100; }",1000,3000,"SU_TUNAPARTY";
   - Id: 400078
     AegisName: BioWeapon_Helm_RK
     Name: Goral Crown
@@ -139331,6 +139410,49 @@ Body:
          bonus2 bAddSize,Size_All,10;
          bonus2 bMagicAddSize,Size_All,10;
       }
+  - Id: 400080
+    AegisName: C_Kriemhild_Crown_TW
+    Name: Costume Kriemhild Crown    # !todo check english name
+    Type: Armor
+    Locations:
+      Costume_Head_Top: true
+    ArmorLevel: 1
+    View: 1056
+  - Id: 400081
+    AegisName: C_2020RTC_Imp_TW
+    Name: Costume 2020RTC Naughty Ghost    # !todo check english name
+    Type: Armor
+    Locations:
+      Costume_Head_Top: true
+    ArmorLevel: 1
+    View: 2009
+  - Id: 400082
+    AegisName: 2020RTC_Imp_TW
+    Name: 2020RTC Naughty Ghost    # !todo check english name
+    Type: Armor
+    View: 2009
+    Weight: 100
+    Slots: 1
+    Locations:
+      Head_Top: true
+    ArmorLevel: 1
+    EquipLevelMin: 100
+    Refineable: true
+    Script: |
+      .@r = getrefine();
+      bonus2 bSubRace,RC_DemiHuman,10;
+      bonus2 bSubRace,RC_Player_Human,10;
+      bonus2 bSubRace,RC_Player_Doram,10;
+      bonus2 bAddEffWhenHit,Eff_Freeze,100;
+      if (.@r>=9) {
+         bonus bFixedCast,-100*.@r;
+         bonus bAtkRate,2*.@r;
+         bonus bMatkRate,2*.@r;
+         bonus bLongAtkRate,2*.@r;
+         bonus bHealPower2,3*.@r;
+         bonus bCritAtkRate,5*.@r;
+         bonus bCritical,3*.@r;
+      }
   - Id: 400094
     AegisName: BioWeapon_Helm_WL
     Name: Jade Crown
@@ -139863,6 +139985,14 @@ Body:
             bonus bPow,2;
          }
       }
+  - Id: 400136
+    AegisName: C_Ancient_Gold_Deco_TW
+    Name: Costume Ancient Gold Deco    # !todo check english name
+    Type: Armor
+    Locations:
+      Costume_Head_Top: true
+    ArmorLevel: 1
+    View: 739
   - Id: 400137
     AegisName: 1Para_Cap_A
     Name: Paradise Cap
@@ -140388,6 +140518,30 @@ Body:
       }
       autobonus "{ bonus bAtkEle,Ele_Fire; }",1,60000,BF_WEAPON;
       autobonus "{ bonus2 bMagicAtkEle,Ele_Fire,20; }",1,60000,BF_MAGIC;
+  - Id: 400157
+    AegisName: C_Astrologer_T_Hat
+    Name: Costume Astrologer T Hat    # !todo check english name
+    Type: Armor
+    Locations:
+      Costume_Head_Top: true
+    ArmorLevel: 1
+    View: 2125
+  - Id: 400158
+    AegisName: C_Demon_Crown
+    Name: Costume Demon Crown
+    Type: Armor
+    Locations:
+      Costume_Head_Top: true
+    ArmorLevel: 1
+    View: 2135
+  - Id: 400159
+    AegisName: C_Bridal_Heir_Band_TW
+    Name: Costume Bridal Heir Band    # !todo check english name
+    Type: Armor
+    Locations:
+      Costume_Head_Top: true
+    ArmorLevel: 1
+    View: 167
   - Id: 400160
     AegisName: Wave_Noodle
     Name: Costume Wavy Noodles
@@ -140396,6 +140550,22 @@ Body:
       Costume_Head_Top: true
     ArmorLevel: 1
     View: 2138
+  - Id: 400161
+    AegisName: C_Hat_0f_King
+    Name: Costume Hat 0f King    # !todo check english name
+    Type: Armor
+    Locations:
+      Costume_Head_Top: true
+    ArmorLevel: 1
+    View: 374
+  - Id: 400162
+    AegisName: C_Red_Navy_Hat
+    Name: Costume Red Navy Hat    # !todo check english name
+    Type: Armor
+    Locations:
+      Costume_Head_Top: true
+    ArmorLevel: 1
+    View: 651
   - Id: 400163
     AegisName: C_Whale_Cap
     Name: Costume Whale Cap
@@ -140404,6 +140574,28 @@ Body:
       Costume_Head_Top: true
     ArmorLevel: 1
     View: 2140
+  - Id: 400164
+    AegisName: 2021RTC_Headset_TW
+    Name: 2021RTC Headset    # !todo check english name
+    Type: Armor
+    Weight: 100
+    Locations:
+      Head_Mid: true
+    ArmorLevel: 1
+    View: 2134
+    Script: |
+      bonus bFixedCast,-100;
+      bonus bShortAtkRate,1;
+      bonus bLongAtkRate,1;
+      bonus2 bMagicAddEle,Ele_All,1;
+  - Id: 400165
+    AegisName: C_Green_Apple_Hat_J
+    Name: Costume Green Apple Hat    # !todo check english name
+    Type: Armor
+    Locations:
+      Costume_Head_Top: true
+    ArmorLevel: 1
+    View: 821
   - Id: 400166
     AegisName: C_Egir_Helm
     Name: Costume Aegir Helm    # !todo check english name
@@ -140412,6 +140604,62 @@ Body:
       Costume_Head_Top: true
     ArmorLevel: 1
     View: 870
+  - Id: 400167
+    AegisName: C_Mosquito_Coil
+    Name: Costume Mosquito Coil    # !todo check english name
+    Type: Armor
+    Locations:
+      Costume_Head_Top: true
+    ArmorLevel: 1
+    View: 563
+  - Id: 400168
+    AegisName: C_Souvenirs_Of_Izlude
+    Name: Costume Souvenirs Of Izlude    # !todo check english name
+    Type: Armor
+    Locations:
+      Costume_Head_Top: true
+    ArmorLevel: 1
+    View: 1377
+  - Id: 400169
+    AegisName: C_Fish_Pin
+    Name: Costume Fish Pin    # !todo check english name
+    Type: Armor
+    Locations:
+      Costume_Head_Top: true
+    ArmorLevel: 1
+    View: 669
+  - Id: 400170
+    AegisName: C_Jaty_C
+    Name: Costume Jaty    # !todo check english name
+    Type: Armor
+    Locations:
+      Costume_Head_Top: true
+    ArmorLevel: 1
+    View: 686
+  - Id: 400171
+    AegisName: C_Angel_feather
+    Name: Costume Angel feather    # !todo check english name
+    Type: Armor
+    Locations:
+      Costume_Garment: true
+    ArmorLevel: 1
+    View: 18
+  - Id: 400172
+    AegisName: C_Ati_Atihan_Hat_V
+    Name: Costume Atihan Hat
+    Type: Armor
+    Locations:
+      Costume_Head_Top: true
+    ArmorLevel: 1
+    View: 303
+  - Id: 400173
+    AegisName: C_Fancy_Phantom_Mask_V
+    Name: Costume Fancy Phantom Mask (Middle)
+    Type: Armor
+    Locations:
+      Costume_Head_Mid: true
+    ArmorLevel: 1
+    View: 710
   - Id: 400174
     AegisName: C_Weissbier_Hat
     Name: Costume Buyers Hat
@@ -140420,6 +140668,14 @@ Body:
       Costume_Head_Top: true
     ArmorLevel: 1
     View: 1079
+  - Id: 400175
+    AegisName: C_Campfire_Hat
+    Name: Costume Camp Fire Cap
+    Type: Armor
+    Locations:
+      Costume_Head_Top: true
+    ArmorLevel: 1
+    View: 416
   - Id: 400176
     AegisName: C_Fishbowl_Parfait_Hat
     Name: Costume Fishbowl Parfait Hat
@@ -142040,7 +142296,7 @@ Body:
       bonus bCon,2;
       bonus bVariableCastrate,-10;
       bonus2 bMagicAddRace,RC_Undead,10;
-      autobonus "{ .@r = getrefine(); bonus bMatk,35*.@r; if (.@r>=10) { bonus bSmatk,20; }",1,7000,BF_MAGIC;
+      autobonus "{ .@r = getrefine(); bonus bMatk,35*.@r; if (.@r>=10) { bonus bSmatk,20; } }",1,7000,BF_MAGIC;
       if (.@r>=7) {
          bonus2 bMagicAtkEle,Ele_All,15;
          if (.@r>=9) {
@@ -142368,6 +142624,14 @@ Body:
     Locations:
       Costume_Head_Mid: true
     ArmorLevel: 1
+  - Id: 410011
+    AegisName: C_Dark_Blindfold
+    Name: Costume Dark Blinkers
+    Type: Armor
+    View: 187
+    Locations:
+      Costume_Head_Mid: true
+    ArmorLevel: 1
   - Id: 410012
     AegisName: EXP_Processor
     Name: EXP Advisor
@@ -142764,6 +143028,14 @@ Body:
       hateffect HAT_EF_C_Released_Ground,true;
     UnEquipScript: |
       hateffect HAT_EF_C_Released_Ground,false;
+  - Id: 410086
+    AegisName: C_Melon_Headphone_J
+    Name: Costume Melon Headphone    # !todo check english name
+    Type: Armor
+    Locations:
+      Costume_Head_Mid: true
+    ArmorLevel: 1
+    View: 2129
   - Id: 410087
     AegisName: C_Demons_Familiar_K
     Name: Costume Robotic Watcher
@@ -143160,6 +143432,32 @@ Body:
     Script: |
       bonus2 bMagicAtkEle,Ele_All,5;
       bonus5 bAutoSpell,"MG_SOULSTRIKE",10,100,BF_SHORT|BF_WEAPON,1;
+  - Id: 420004
+    AegisName: Nine_Tail_Fox_Hair
+    Name: Nine Tail Fox Hair
+    Type: Armor
+    View: 1884
+    Weight: 300
+    Locations:
+      Head_Low: true
+    ArmorLevel: 1
+    EquipLevelMin: 130
+    Script: |
+      bonus2 bAddRace,RC_Demon,20;
+      bonus2 bMagicAddRace,RC_Demon,20;
+      bonus2 bResEff,Eff_Blind,10000;
+  - Id: 420005
+    AegisName: Love_Feeling_TW
+    Name: Feeling of Love
+    Type: Armor
+    View: 1717
+    Weight: 300
+    Locations:
+      Head_Low: true
+    ArmorLevel: 1
+    EquipLevelMin: 1
+    Script: |
+      autobonus "{ bonus2 bHPRegenRate,400,1000; bonus2 bSPRegenRate,80,1000; }",10,10000,BF_MAGIC;
   - Id: 420006
     AegisName: aegis_420006
     Name: Collar of Slavery
@@ -143274,6 +143572,30 @@ Body:
       Costume_Head_Low: true
     ArmorLevel: 1
     View: 1403
+  - Id: 420027
+    AegisName: C_Fishbone_Hair
+    Name: Costume Fishbone Hair
+    Type: Armor
+    Locations:
+      Costume_Head_Low: true
+    ArmorLevel: 1
+    View: 2139
+  - Id: 420028
+    AegisName: Imperial_Glory
+    Name: Imperial Glory
+    Type: Armor
+    View: 2056
+    Buy: 20
+    Weight: 300
+    Defense: 70
+    Locations:
+      Head_Low: true
+    ArmorLevel: 1
+    EquipLevelMin: 70
+    Script: |
+      .@a = (readparam(bAgi)+readparam(bVit))/50;
+      bonus bMdef,4*.@a;
+      bonus bDelayrate,-3*.@a;
   - Id: 420029
     AegisName: C_Imperial_Glory
     Name: "Costume: Imperial Glory"
@@ -143556,6 +143878,14 @@ Body:
       NoGuildStorage: true
       NoMail: true
       NoAuction: true
+  - Id: 420075
+    AegisName: C_Floating_Gioia_J
+    Name: Costume Floating Gioia    # !todo check english name
+    Type: Armor
+    Locations:
+      Costume_Head_Low: true
+    ArmorLevel: 1
+    View: 1730
   - Id: 420076
     AegisName: Vassalage_Necklace
     Name: Bondage Necklace
@@ -147881,7 +148211,6 @@ Body:
     Name: Automatic Armor Type B
     Type: Armor
     Weight: 1000
-    MagicAttack: 125
     Defense: 135
     Slots: 1
     Locations:
@@ -147891,7 +148220,7 @@ Body:
     Refineable: true
     Script: |
       .@r = getrefine();
-      bonus bMatk,10*(.@r/2);
+      bonus bMatk,125+(10*(.@r/2));
       if (.@r>=7) {
          bonus bVariableCastrate,-15;
       }
@@ -147921,6 +148250,46 @@ Body:
          bonus bMaxHPrate,5;
       if (.@r>=11)
          bonus bVariableCastrate,-8;
+  - Id: 450132
+    AegisName: Magical_Cloth
+    Name: Magical Cloth
+    Type: Armor
+    Buy: 200000
+    Weight: 100
+    Defense: 45
+    Slots: 1
+    Locations:
+      Armor: true
+    ArmorLevel: 1
+    EquipLevelMin: 100
+    Refineable: true
+    Script: |
+      .@r = getrefine();
+      bonus2 bMagicAtkEle,Ele_Earth,5;
+      bonus2 bMagicAtkEle,Ele_Water,5;
+      bonus2 bMagicAtkEle,Ele_Wind,5;
+      bonus2 bMagicAtkEle,Ele_Fire,5;
+      if (.@r>=7) {
+         bonus bAspdRate,10;
+         bonus2 bMagicAtkEle,Ele_Earth,2;
+         bonus2 bMagicAtkEle,Ele_Water,2;
+         bonus2 bMagicAtkEle,Ele_Wind,2;
+         bonus2 bMagicAtkEle,Ele_Fire,2;
+      }
+      if (.@r>=8) {
+         bonus bUnbreakableArmor;
+         bonus2 bMagicAtkEle,Ele_Earth,3;
+         bonus2 bMagicAtkEle,Ele_Water,3;
+         bonus2 bMagicAtkEle,Ele_Wind,3;
+         bonus2 bMagicAtkEle,Ele_Fire,3;
+      }
+      if (.@r>=9) {
+         bonus2 bMagicAtkEle,Ele_Earth,5;
+         bonus2 bMagicAtkEle,Ele_Water,5;
+         bonus2 bMagicAtkEle,Ele_Wind,5;
+         bonus2 bMagicAtkEle,Ele_Fire,5;
+         autobonus "{ bonus2 bSkillAtk,\"MG_FIREBOLT\",100; bonus2 bSkillAtk,\"MG_COLDBOLT\",100; bonus2 bSkillAtk,\"MG_LIGHTNINGBOLT\",100; bonus2 bSkillAtk,\"WZ_EARTHSPIKE\",100; }",2000,10000;
+      }
   - Id: 450142
     AegisName: Orc_Load_Mail
     Name: Orc Lord Armor
@@ -148234,7 +148603,6 @@ Body:
     Name: Faint Star's Robe
     Type: Armor
     Weight: 500
-    MagicAttack: 125
     Defense: 105
     Slots: 1
     Locations:
@@ -148244,7 +148612,7 @@ Body:
     Refineable: true
     Script: |
       .@r = getrefine();
-      bonus bMatk,15*(.@r/2);
+      bonus bMatk,125+(15*(.@r/2));
       if (.@r>=9) {
          bonus bVariableCastrate,-10;
          if (.@r>=11) {
@@ -148502,7 +148870,6 @@ Body:
     Name: Nebula Robe of Spell
     Type: Armor
     Weight: 500
-    MagicAttack: 125
     Defense: 105
     Slots: 1
     Locations:
@@ -148522,7 +148889,7 @@ Body:
       .@g = getenchantgrade();
       .@r = getrefine();
       bonus bSpl,1;
-      bonus bMatk,15*(.@r/2);
+      bonus bMatk,125+(15*(.@r/2));
       if (.@r>=9) {
          bonus bMatkRate,5;
          if (.@r>=11) {
@@ -148554,7 +148921,6 @@ Body:
     Name: Nebula Robe of Wisdom
     Type: Armor
     Weight: 500
-    MagicAttack: 125
     Defense: 105
     Slots: 1
     Locations:
@@ -148573,6 +148939,7 @@ Body:
     Script: |
       .@g = getenchantgrade();
       .@r = getrefine();
+      bonus bMatk,125;
       bonus bWis,1;
       bonus bMaxSPrate,2*(.@r/2);
       bonus bHealPower,(.@r/2);
@@ -148602,6 +148969,48 @@ Body:
             }
          }
       }
+  - Id: 450176
+    AegisName: Supplement_Part_Wing
+    Name: Powered Wing
+    Type: Armor
+    Buy: 20
+    Weight: 100
+    Defense: 12
+    Locations:
+      Garment: true
+    ArmorLevel: 1
+    EquipLevelMin: 100
+    Refineable: true
+    Script: |
+      .@r = getrefine();
+      .@a = getskilllv("NC_PILEBUNKER");
+      bonus bMaxHPrate,3;
+      bonus2 bSubEle,Ele_Fire,10;
+      bonus2 bSubEle,Ele_Wind,10;
+      bonus2 bSkillAtk,"NC_ARMSCANNON",25*.@a;
+      bonus2 bSkillAtk,"NC_FLAMELAUNCHER",25*.@a;
+      bonus2 bSkillAtk,"NC_COLDSLOWER",25*.@a;
+      if (getskilllv("NC_ARMSCANNON") == 5)
+         bonus bDelayrate,-20;
+      if (getskilllv("NC_NEUTRALBARRIER") == 3) {
+         bonus2 bSubClass,Class_Boss,5;
+         bonus bHPGainValue,100;
+         bonus bSPGainValue,10;
+      }
+      if (getskilllv("NC_RESEARCHFE") == 5)
+         bonus bNoKnockback;
+      if (.@r>=7) {
+         bonus bMaxHPrate,5;
+         bonus2 bSubEle,Ele_Fire,20;
+         bonus2 bSubEle,Ele_Wind,20;
+         bonus2 bAddClass,Class_Boss,10;
+      }
+      if (.@r>=9) {
+         bonus bMaxHPrate,7;
+         bonus2 bSubEle,Ele_Fire,20;
+         bonus2 bSubEle,Ele_Wind,20;
+         bonus2 bAddClass,Class_Boss,10;
+      }
   - Id: 450177
     AegisName: Gray_W_Suits
     Name: Gray Wolf Suit
@@ -148625,7 +149034,6 @@ Body:
     Name: Gray Wolf Robe
     Type: Armor
     Weight: 1000
-    MagicAttack: 130
     Defense: 160
     Slots: 1
     Locations:
@@ -148635,7 +149043,7 @@ Body:
     Refineable: true
     Script: |
       .@r = getrefine();
-      bonus bMatk,15*(.@r/2);
+      bonus bMatk,130+(15*(.@r/2));
       if (.@r>=7) {
          bonus bVariableCastrate,-15;
       }
@@ -148644,7 +149052,6 @@ Body:
     Name: Celine's Dress
     Type: Armor
     Weight: 500
-    MagicAttack: 50
     Defense: 40
     Slots: 1
     Locations:
@@ -148654,6 +149061,7 @@ Body:
     Refineable: true
     Script: |
       .@r = getrefine();
+      bonus bMatk,50;
       if (.@r>=7) {
          bonus bVariableCastrate,-10;
          if (.@r>=9) {
@@ -157055,6 +157463,28 @@ Body:
       }
       bonus bAtkRate,.@a;
       bonus bCritAtkRate,.@b;
+  - Id: 490279
+    AegisName: aegis_490279
+    Name: Raphin P. Necklace
+    Type: Armor
+    Weight: 100
+    Slots: 1
+    Locations:
+      Both_Accessory: true
+    ArmorLevel: 1
+    EquipLevelMin: 100
+    Script: |
+      .@a = readparam(bInt);
+      .@p = getitempos();
+      bonus bLongAtkRate,5;
+      bonus2 bSkillAtk,"RA_AIMEDBOLT",3*getskilllv("RA_WUGSTRIKE");
+      bonus bDelayrate,-.@a/12;
+      if (.@a >= 125) {
+         if (.@p == EQP_ACC_R)
+            bonus bFixedCast,-500;
+         if (.@p == EQP_ACC_L)
+            bonus bBaseAtk,80;
+      }
   - Id: 500000
     AegisName: IDTest_weapon
     Name: IDTest weapon

+ 13 - 0
db/re/item_db_etc.yml

@@ -46581,6 +46581,19 @@ Body:
       bonus bDelayrate,-5;
       bonus bPAtk,1;
       bonus bSmatk,1;
+  - Id: 300207
+    AegisName: SLD_Shining_T_Bear_Card
+    Name: Sealed Shiny Teddy Bear Card
+    Type: Card
+    Weight: 10
+    Locations:
+      Shoes: true
+    Script: |
+      .@r = getequiprefinerycnt(EQI_SHOES);
+      bonus bUseSPrate,15;
+      bonus2 bMagicAtkEle,Ele_Holy,2*.@r;
+      if (.@r>=15)
+         bonus2 bMagicAtkEle,Ele_Holy,7;
   - Id: 300209
     AegisName: aegis_300209
     Name: Sealed Nightmare Amon Ra Card

+ 158 - 69
db/re/item_db_usable.yml

@@ -2276,7 +2276,7 @@ Body:
       specialeffect2 EF_MAGICALATTHIT;
       sc_start SC_INCCRI,300000,30;
   - Id: 9896
-    AegisName: aegis_9896
+    AegisName: DF_Power_Booster
     Name: "[Scroll] Power Booster"
     Type: Usable
     Buy: 2
@@ -2292,7 +2292,8 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      bonus_script "{ bonus bBaseAtk,30; bonus bMatk,30; bonus2 bAddClass,Class_All,1; bonus bMatkRate,1; bonus bHit,30; bonus bFlee,30; bonus bAspd,1; bonus bUseSPrate,-5; bonus bFixedCastrate,-30; }",1800,1,1;
+      specialeffect2 EF_POTION_BERSERK;
+      sc_start SC_LIMIT_POWER_BOOSTER,1800000,30;
   - Id: 9909
     AegisName: aegis_9909
     Name: "[Scroll] Ex Def Potion"
@@ -8408,7 +8409,7 @@ Body:
     Weight: 80
     Script: |
       specialeffect2 EF_STEAL;
-      bonus_script "{ bonus bHit,5; bonus bAspdRate,10; }",1200,0,0,EFST_ACARAJE;
+      sc_start SC_ACARAJE,1200000,0;
   - Id: 12376
     AegisName: Mysterious_Can2
     Name: Mysterious Can2
@@ -8453,7 +8454,7 @@ Body:
       BuyingStore: true
     Script: |
       specialeffect2 EF_STEAL;
-      bonus_script "{ bonus2 bAddClass,Class_All,3; bonus2 bMagicAddClass,Class_All,3; bonus bMatkRate,3; bonus2 bSubEle,Ele_Neutral,3; bonus2 bSubEle,Ele_Fire,3; bonus2 bSubEle,Ele_Water,3; bonus2 bSubEle,Ele_Wind,3; bonus2 bSubEle,Ele_Earth,3; bonus2 bSubEle,Ele_Dark,3; bonus2 bSubEle,Ele_Holy,3; bonus2 bSubEle,Ele_Ghost,3; }",1200;
+      sc_start SC_POPECOOKIE,1200000,3;
   - Id: 12380
     AegisName: Desert_Wolf_Babe_Scroll
     Name: Job Change Flute
@@ -8819,7 +8820,7 @@ Body:
       NoAuction: true
     Script: |
       specialeffect2 EF_STEAL;
-      bonus_script "{ bonus2 bAddClass,Class_All,3; bonus bMatkRate,3; bonus2 bSubEle,Ele_All,3; }",120,0,0,EFST_POPECOOKIE;
+      sc_start SC_VITALIZE_POTION,120000,3;
   - Id: 12405
     AegisName: Underripe_Yggseed
     Name: Underripe Yggseed
@@ -8974,6 +8975,7 @@ Body:
     Flags:
       BuyingStore: true
     Script: |
+      specialeffect2 EF_BASH3D;
       sc_start SC_FULL_SWING_K,500000,50;
   - Id: 12419
     AegisName: Mana_Plus
@@ -8984,6 +8986,7 @@ Body:
     Flags:
       BuyingStore: true
     Script: |
+      specialeffect2 EF_BASH3D;
       sc_start SC_MANA_PLUS,500000,50;
   - Id: 12420
     AegisName: Stamina_Up_M
@@ -10001,6 +10004,9 @@ Body:
     Name: E Regeneration Potion
     Type: Usable
     Weight: 10
+    Script: |
+      specialeffect2 EF_LIGHTSPHERE;
+      sc_start SC_INCHEALRATE,1800000,20;
   - Id: 12518
     AegisName: E_B_Mdef_Potion
     Name: E B Mdef Potion
@@ -10891,7 +10897,7 @@ Body:
       NoAuction: true
     Script: |
       specialeffect2 EF_HASTEUP;
-      bonus_script "{ bonus bMatk,30; bonus bFixedCastrate,-70; bonus bNoCastCancel; bonus2 bSPLossRate,90,10000; }",60,0,0,EFST_MAGIC_CANDY;
+      sc_start SC_MAGICCANDY,60000,0;
   - Id: 12597
     AegisName: Opor_Ayam
     Name: Opor Ayam
@@ -11710,7 +11716,7 @@ Body:
     Weight: 10
     Script: |
       specialeffect2 EF_MAGICALATTHIT;
-      bonus_script "{ bonus bMatk,24; }",600,0,0,EFST_SKF_MATK;
+      sc_start SC_SKF_MATK,600000,24;
   - Id: 12667
     AegisName: Thai_Perfume_ATK
     Name: Thai Perfume ATK
@@ -11719,7 +11725,7 @@ Body:
     Weight: 10
     Script: |
       specialeffect2 EF_MAGICALATTHIT;
-      bonus_script "{ bonus bBaseAtk,24; }",600,0,0,EFST_SKF_ATK;
+      sc_start SC_SKF_ATK,600000,24;
   - Id: 12668
     AegisName: Thai_Perfume_ASPD
     Name: Thai Perfume ASPD
@@ -11728,7 +11734,7 @@ Body:
     Weight: 10
     Script: |
       specialeffect2 EF_MAGICALATTHIT;
-      bonus_script "{ bonus bAspdRate,3; }",600,0,0,EFST_SKF_ASPD;
+      sc_start SC_SKF_ASPD,600000,3;
   - Id: 12669
     AegisName: Thai_Perfume_CAST
     Name: Thai Perfume CAST
@@ -11737,7 +11743,7 @@ Body:
     Weight: 10
     Script: |
       specialeffect2 EF_MAGICALATTHIT;
-      bonus_script "{ bonus bVariableCastrate,-5; }",600,0,0,EFST_SKF_CAST;
+      sc_start SC_SKF_CAST,600000,-5;
   - Id: 12670
     AegisName: Beast_Powder
     Name: Beast Powder
@@ -12939,8 +12945,7 @@ Body:
     Weight: 150
     Script: |
       specialeffect2 EF_POTION_BERSERK;
-      bonus_script "{ bonus2 bAddClass,Class_All,5; bonus bMatkRate,5; bonus bMaxHPrate,-3; bonus bMaxSPrate,-3; }",600,0,0,EFST_GM_BATTLE;
-      /* showscript */
+      sc_start SC_COMBAT_PILL,600000,5;
   - Id: 12792
     AegisName: P_Combat_Pill
     Name: P Combat Pill
@@ -12949,7 +12954,7 @@ Body:
     Weight: 150
     Script: |
       specialeffect2 EF_POTION_BERSERK;
-      bonus_script "{ bonus2 bAddClass,Class_All,10; bonus bMatkRate,10; bonus bMaxHPrate,-5; bonus bMaxSPrate,-5; }",600,0,0,EFST_GM_BATTLE;
+      sc_start SC_COMBAT_PILL2,600000,10;
   - Id: 12793
     AegisName: Combat_Pill_Box10
     Name: Combat Pill Box10
@@ -12981,7 +12986,7 @@ Body:
   - Id: 12796
     AegisName: Red_Booster
     Name: Red Booster
-    Type: Delayconsume
+    Type: Usable
     Buy: 20
     Weight: 10
     Trade:
@@ -12993,10 +12998,8 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      itemskill "AC_CONCENTRATION",max(getskilllv("AC_CONCENTRATION"),3);
-      /*bonus_script "{ bonus bBaseAtk,30; bonus bMatk,30; bonus bAspdRate,5; bonus bVariableCastrate,-5; bonus bMaxHPrate,-10;  bonus bMaxSPrate,-10; bonus5 bAutoSpell,\"AC_CONCENTRATION\",max(getskilllv(\"AC_CONCENTRATION\"),3),10,BF_WEAPON|BF_MAGIC,0; }",600,1,1,EFST_2011RWC_SCROLL; TODO implement new staus*/
       specialeffect2 EF_POTION_BERSERK;
-      showscript "Oh My GOODNESS!!! I FEEL AWESOMELY STRONG!!! WOWOW";
+      sc_start SC_2011RWC_SCROLL,600000,0;
   - Id: 12797
     AegisName: Wish_Maiden_Scroll
     Name: Wish Maiden Scroll
@@ -13097,6 +13100,9 @@ Body:
       NoGuildStorage: true
       NoMail: true
       NoAuction: true
+    Script: |
+      specialeffect2 EF_WIND;
+      sc_start SC_MYSTICPOWDER,300000,0;
   - Id: 12806
     AegisName: Scaraba_Scroll
     Name: Scaraba Scroll
@@ -13685,7 +13691,7 @@ Body:
       NoAuction: true
     Script: |
       specialeffect2 EF_BASH3D;
-      sc_start SC_2011RWC_SCROLL,1800000,10;
+      sc_start SC_ALMIGHTY,1800000,10;
   - Id: 12884
     AegisName: Infinite_Concentration_Potion
     Name: Infinite Concentration Potion
@@ -32727,7 +32733,7 @@ Body:
       NoAuction: true
     Script: |
       specialeffect2 EF_HASTEUP;
-      bonus_script "{ bonus2 bHPLossRate,100,10000; bonus bBaseAtk,20; bonus bAspdRate,25; bonus bNoWalkDelay; }",60,0,0,EFST_STEAMPACK;
+      sc_start SC_SPARKCANDY,60000,0;
   - Id: 14587
     AegisName: Repair_Scroll_
     Name: Equipment Repair Spell Book
@@ -32952,7 +32958,7 @@ Body:
       NoAuction: true
     Script: |
       specialeffect2 EF_SPELLBREAKER;
-      bonus_script "{ bonus bUseSPrate,-10; bonus bMaxSPrate,10; }",1800,1,1,EFST_TARGET_ASPD;
+      sc_start SC_MENTAL_POTION,1800000,10;
   - Id: 14601
     AegisName: Tyr's_Blessing
     Name: Tyr's Blessing
@@ -32967,7 +32973,10 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      bonus_script "{ bonus bBaseAtk,20; bonus bMatk,20; bonus bHit,30; bonus bFlee,30; }",300,3,1;
+      sc_start SC_FLEEFOOD,300000,30;
+      sc_start SC_HITFOOD,300000,30;
+      sc_start SC_ATKPOTION,300000,20;
+      sc_start SC_MATKPOTION,300000,20;
   - Id: 14602
     AegisName: TaogunkaS
     Name: Tao Gunka Scroll
@@ -33420,8 +33429,8 @@ Body:
     Buy: 20
     Weight: 10
     Script: |
-      bonus_script "{ bonus bVit,10; bonus2 bSubEle,Ele_Fire,5; }",120;
-      /*EFST_CUP_OF_BOZA 120000*/
+      sc_start SC_Cup_Of_Boza,120000,0;
+      /*aegis data 2 Minutes*/
   - Id: 14675
     AegisName: Shadow_Box_II
     Name: Shadow Box II
@@ -33928,7 +33937,7 @@ Body:
   - Id: 14766
     AegisName: Limited_Power_Booster
     Name: Limited Power Booster
-    Type: Cash
+    Type: Usable
     Buy: 10
     Weight: 10
     Trade:
@@ -33941,7 +33950,7 @@ Body:
       NoAuction: true
     Script: |
       specialeffect2 EF_POTION_BERSERK;
-      bonus_script "{ bonus bBaseAtk,30; bonus bMatk,30; bonus2 bAddClass,Class_All,1; bonus bMatkRate,1; bonus bHit,30; bonus bFlee,30; bonus bAspd,1; bonus bUseSPrate,-5; bonus bFixedCastrate,-30; }",1800,1,1,EFST_LIMIT_POWER_BOOSTER;
+      sc_start SC_LIMIT_POWER_BOOSTER,1800000,30;
   - Id: 14805
     AegisName: July_Lucky_Scroll
     Name: Almighty Lucky Egg
@@ -34247,7 +34256,7 @@ Body:
   - Id: 14869
     AegisName: DF_Red_Booster
     Name: "[Scroll] Red Booster"
-    Type: Delayconsume
+    Type: Usable
     Buy: 2
     Weight: 10
     NoUse:
@@ -34261,8 +34270,8 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      bonus_script "{ bonus bBaseAtk,30; bonus bMatk,30; bonus bAspdRate,5; bonus bVariableCastrate,-5; bonus bMaxHPrate,-10;  bonus bMaxSPrate,-10; bonus5 bAutoSpell,\"AC_CONCENTRATION\",max(getskilllv(\"AC_CONCENTRATION\"),3),10,BF_WEAPON|BF_MAGIC,0; }",600,1,1,EFST_2011RWC_SCROLL;
       specialeffect2 EF_POTION_BERSERK;
+      sc_start SC_2011RWC_SCROLL,600000,0;
       showscript "Oh My GOODNESS!!! I FEEL AWESOMELY STRONG!!! WOWOW";
   - Id: 14875
     AegisName: DF_Med_Life_Potion
@@ -34296,7 +34305,8 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      sc_start SC_2011RWC_SCROLL,1800000,10;
+      specialeffect2 EF_BASH3D;
+      sc_start SC_ULTIMATECOOK,1800000,10;
   - Id: 14887
     AegisName: EF_UltimateCook
     Name: "[Not For Sale] Ultimate Cook"
@@ -34313,7 +34323,8 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      sc_start SC_2011RWC_SCROLL,1800000,10;
+      specialeffect2 EF_BASH3D;
+      sc_start SC_ULTIMATECOOK,1800000,10;
   - Id: 16131
     AegisName: Lady_Tanee_Doll_Box
     Name: Lady Tanee Doll Box
@@ -43048,8 +43059,8 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
+      getitem 23899,10;
       getitem 22902,1;
-      bonus_script "{ bonus bAllStats,10; bonus bBaseAtk,30; bonus bMatk,30; }",1800;
   - Id: 17568
     AegisName: Event_Almighty_Box_100_
     Name: Event Almighty Box(100)
@@ -43065,8 +43076,8 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
+      getitem 23899,100;
       getitem 22902,11;
-      bonus_script "{ bonus bAllStats,10; bonus bBaseAtk,30; bonus bMatk,30; }",1800;
   - Id: 17569
     AegisName: Dun_Voucher_Box1
     Name: Sky Fortress Ticket 1 Hour Box
@@ -44510,21 +44521,25 @@ Body:
     Script: |
       percentheal 20,0;
   - Id: 22658
-    AegisName: Cow_Steamed_Ribs
+    AegisName: BraisedShortRibs
     Name: Cow Steamed Ribs
     Type: Healing
     Buy: 20
     Weight: 100
     Script: |
-      bonus_script "{ bonus bVariableCastrate,5; bonus bUseSPrate,-3; }",180;
+      specialeffect2 EF_ENHANCE;
+      sc_start SC_BEEF_RIB_STEW,180000,0;
+      /*aegis data 3 Minutes*/
   - Id: 22659
-    AegisName: Pig_Steamed_Ribs
+    AegisName: BraisedSpareribs
     Name: Pig Steamed Ribs
     Type: Healing
     Buy: 20
     Weight: 100
     Script: |
-      bonus_script "{ bonus bAspdRate,5; bonus bUseSPrate,-2; }",180;
+      specialeffect2 EF_ENHANCE;
+      sc_start SC_PORK_RIB_STEW,180000,0;
+      /*aegis data 3 Minutes*/
   - Id: 22660
     AegisName: Sealed_Letter
     Name: Sealed Envelope
@@ -45463,7 +45478,8 @@ Body:
       NoGuildStorage: true
       NoAuction: true
     Script: |
-      bonus_script "{ bonus bAllStats,10; bonus bBaseAtk,30; bonus bMatk,30; }",3600;
+      specialeffect2 EF_BASH3D;
+      sc_start SC_ALMIGHTY,3600000,10;
       sc_start SC_SPEEDUP0,600000,25;
   - Id: 22820
     AegisName: G_ASPD_Potion
@@ -45503,7 +45519,7 @@ Body:
       NoAuction: true
     Script: |
       specialeffect2 EF_POTION_BERSERK;
-      bonus_script "{ bonus bBaseAtk,30; bonus bMatk,30; bonus bAspdRate,5; bonus bVariableCastrate,-5; bonus bMaxHPrate,-10;  bonus bMaxSPrate,-10; bonus5 bAutoSpell,\"AC_CONCENTRATION\",max(getskilllv(\"AC_CONCENTRATION\"),3),10,BF_WEAPON|BF_MAGIC,0; }",3600,1,1,EFST_2011RWC_SCROLL;
+      sc_start SC_2011RWC_SCROLL,3600000,0;
       sc_start SC_SPEEDUP0,600000,25;
   - Id: 22822
     AegisName: Summer_Vacation_Costumes
@@ -46348,7 +46364,7 @@ Body:
     Script: |
       getgroupitem(IG_Enchant_Stone_Box8);
   - Id: 23012
-    AegisName: S_Small_Mana_Potion
+    AegisName: Comp_Small_Mana_Potion
     Name: "[Sale] Small Mana Potion"
     Type: Usable
     Weight: 10
@@ -46361,8 +46377,8 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      bonus_script "{ bonus2 bRegenPercentSP,5,5000; }",600,9;
-      /* fix me: unknown flag and specialeffect ;  disabled when LK_BERSERK */
+      specialeffect2 EF_HEAL3;
+      sc_start2 SC_S_MANAPOTION,600000,-5,5;
   - Id: 23016
     AegisName: Pieces_Of_Grudge
     Name: Cursed Fragment
@@ -46464,9 +46480,10 @@ Body:
       sc_end SC_ORCISH;
       sc_end SC_CHANGEUNDEAD;
   - Id: 23046
-    AegisName: S_Mystic_Powder
+    AegisName: Comp_Mystic_Powder
     Name: "[Sale] Mystic Powder"
     Type: Usable
+    Weight: 10
     Trade:
       NoDrop: true
       NoTrade: true
@@ -46476,8 +46493,8 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      bonus_script "{ bonus bFlee,20; bonus bLuk,10; }",300,9;
-      /* fix me: unknown flag and specialeffect */
+      specialeffect2 EF_WIND;
+      sc_start SC_MYSTICPOWDER,300000,0;
   - Id: 23047
     AegisName: S_Blessing_Tyr
     Name: "[Sale] Blessing of Tyr"
@@ -46497,7 +46514,7 @@ Body:
       sc_start SC_ATKPOTION,300000,20;
       sc_start SC_MATKPOTION,300000,20;
   - Id: 23048
-    AegisName: S_Resilience_Potion
+    AegisName: Comp_Regenerate_Potion
     Name: "[Sale] Resilience Enhancement Potion"
     Type: Usable
     Weight: 10
@@ -46510,8 +46527,8 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      bonus_script "bonus bAddItemHealRate,20;",1800,9;
-      /* fix me: unknown flag and specialeffect */
+      specialeffect2 EF_LIGHTSPHERE;
+      sc_start SC_INCHEALRATE,1800000,20;
   - Id: 23049
     AegisName: Comp_Spark_Candy
     Name: "[Not For Sale] Sparkling Candy"
@@ -46530,7 +46547,7 @@ Body:
       NoAuction: true
     Script: |
       specialeffect2 EF_HASTEUP;
-      bonus_script "{ bonus2 bHPLossRate,100,10000; bonus bBaseAtk,20; bonus bAspdRate,25; bonus bNoWalkDelay; }",60,0,0,EFST_STEAMPACK;
+      sc_start SC_SPARKCANDY,60000,0;
   - Id: 23050
     AegisName: Comp_Magic_Candy
     Name: "[Not For Sale] Magic Candy"
@@ -46549,7 +46566,7 @@ Body:
       NoAuction: true
     Script: |
       specialeffect2 EF_HASTEUP;
-      bonus_script "{ bonus bMatk,30; bonus bFixedCastrate,-70; bonus bNoCastCancel; bonus2 bSPLossRate,90,10000; }",60,0,0,EFST_MAGIC_CANDY;
+      sc_start SC_MAGICCANDY,60000,0;
   - Id: 23058
     AegisName: Enchant_Stone_Box9
     Name: Costume Enchant Stone Box 9
@@ -47346,7 +47363,7 @@ Body:
     Script: |
       getgroupitem(IG_Enchant_Stone_Box12);
   - Id: 23307
-    AegisName: S_Shining_Def_Scroll
+    AegisName: Comp_M_DEFScroll
     Name: "[Sale] Shining Defense Scroll"
     Type: Usable
     Weight: 10
@@ -47359,8 +47376,8 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      bonus_script "{ bonus bDef,500; bonus bMdef,200; }",600;
-      /* fix me: unknown flag and specialeffect */
+      specialeffect2 EF_HEAL3;
+      sc_start SC_M_DEFSCROLL,600000,0;
   - Id: 23308
     AegisName: Booster_Amplifier
     Name: Booster Amplifier
@@ -47535,7 +47552,7 @@ Body:
       NoAuction: true
     Script: |
       specialeffect2 EF_POTION_BERSERK;
-      bonus_script "{ bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bCritAtkRate,5; bonus bLongAtkRate,5; bonus bMatkRate,5; bonus bNoCastCancel; }",1800,1,1,EFST_INFINITY_DRINK;
+      sc_start SC_INFINITY_DRINK,1800000,0;
   - Id: 23505
     AegisName: Yellow_Potion_B_20
     Name: "[Event] Crate of 20 Yellow Potions"
@@ -47781,7 +47798,8 @@ Body:
     Flags:
       BuyingStore: true
     Script: |
-      bonus_script "{ bonus bAllStats,10; bonus bBaseAtk,30; bonus bMatk,30; }",1800;
+      specialeffect2 EF_BASH3D;
+      sc_start SC_ALMIGHTY,1800000,10;
   - Id: 23605
     AegisName: Challenge_Drink
     Name: Challenger Drink
@@ -47790,7 +47808,8 @@ Body:
     Flags:
       BuyingStore: true
     Script: |
-      bonus_script "{ bonus bBaseAtk,30; bonus bMatk,30; bonus bMatkRate,1; bonus bHit,30; bonus bFlee,30; bonus bAspd,1; bonus bUseSPrate,-5; bonus bFixedCastrate,-30; }",1800,1,1;
+      specialeffect2 EF_POTION_BERSERK;
+      sc_start SC_LIMIT_POWER_BOOSTER,1800000,30;
   - Id: 23606
     AegisName: Power_Drink
     Name: Power Drink
@@ -47799,8 +47818,18 @@ Body:
     Flags:
       BuyingStore: true
     Script: |
-      /* Confirm probability */
-      bonus_script "{ bonus bMaxHP,-10; bonus bMaxSP,-10; bonus bBaseAtk,30; bonus bMatk,30; bonus bVariableCastrate,-5; bonus3 bAutoSpell,\"AC_CONCENTRATION\",max(getskilllv(\"AC_CONCENTRATION\"),3),10; }",300;
+      specialeffect2 EF_POTION_BERSERK;
+      sc_start SC_2011RWC_SCROLL,1800000,0;
+  - Id: 23607
+    AegisName: Unlimited_Drink
+    Name: Unlimited Drink
+    Type: Usable
+    Weight: 10
+    Flags:
+      BuyingStore: true
+    Script: |
+      specialeffect2 EF_POTION_BERSERK;
+      sc_start SC_INFINITY_DRINK,1800000,0;
   - Id: 23611
     AegisName: Mimir_Spring_Water
     Name: Mimir's Spring Water
@@ -47967,7 +47996,8 @@ Body:
       NoGuildStorage: true
       NoAuction: true
     Script: |
-      bonus_script "{ bonus bAllStats,10; bonus bBaseAtk,30; bonus bMatk,30; }",1800;
+      specialeffect2 EF_BASH3D;
+      sc_start SC_ALMIGHTY,1800000,10;
   - Id: 23726
     AegisName: E_Challenge_Drink
     Name: "[Event] Challenger Drink"
@@ -47980,7 +48010,22 @@ Body:
       NoGuildStorage: true
       NoAuction: true
     Script: |
-      bonus_script "{ bonus bBaseAtk,30; bonus bMatk,30; bonus bMatkRate,1; bonus bHit,30; bonus bFlee,30; bonus bAspd,1; bonus bUseSPrate,-5; bonus bFixedCastrate,-30; }",1800,1,1;
+      specialeffect2 EF_POTION_BERSERK;
+      sc_start SC_LIMIT_POWER_BOOSTER,1800000,30;
+  - Id: 23727
+    AegisName: E_Unlimited_Drink
+    Name: "[Event] Unlimited Drink"
+    Type: Usable
+    Weight: 10
+    Trade:
+      NoDrop: true
+      NoTrade: true
+      NoCart: true
+      NoGuildStorage: true
+      NoAuction: true
+    Script: |
+      specialeffect2 EF_POTION_BERSERK;
+      sc_start SC_INFINITY_DRINK,1800000,0;
   - Id: 23728
     AegisName: E_Power_Drink
     Name: "[Event] Power Drink"
@@ -47993,8 +48038,8 @@ Body:
       NoGuildStorage: true
       NoAuction: true
     Script: |
-      /* Confirm probability */
-      bonus_script "{ bonus bMaxHP,-10; bonus bMaxSP,-10; bonus bBaseAtk,30; bonus bMatk,30; bonus bVariableCastrate,-5; bonus3 bAutoSpell,\"AC_CONCENTRATION\",max(getskilllv(\"AC_CONCENTRATION\"),3),10; }",300;
+      specialeffect2 EF_POTION_BERSERK;
+      sc_start SC_2011RWC_SCROLL,1800000,0;
   - Id: 23732
     AegisName: E_Mimir_Spring_W
     Name: "[Event] Mimir's Spring Water"
@@ -48728,6 +48773,22 @@ Body:
     Weight: 10
     Script: |
       laphine_synthesis();
+  - Id: 23898
+    AegisName: Comp_Power_Booster
+    Name: "[Not For Sale] Power Booster"
+    Type: Usable
+    Weight: 10
+    Trade:
+      NoDrop: true
+      NoTrade: true
+      NoSell: true
+      NoCart: true
+      NoGuildStorage: true
+      NoMail: true
+      NoAuction: true
+    Script: |
+      specialeffect2 EF_POTION_BERSERK;
+      sc_start SC_LIMIT_POWER_BOOSTER,1800000,30;
   - Id: 23899
     AegisName: Comp_Almighty
     Name: "[Not For Sale] Almighty"
@@ -48742,8 +48803,8 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      bonus_script "{ bonus bAllStats,10; bonus bBaseAtk,30; bonus bMatk,30; }",3600;
-      sc_start SC_SPEEDUP0,600000,25;
+      specialeffect2 EF_BASH3D;
+      sc_start SC_ALMIGHTY,1800000,10;
   - Id: 23919
     AegisName: K_Secret_Key
     Name: Kachua's Secret Key
@@ -48827,7 +48888,7 @@ Body:
       Sitting: true
     Script: |
       specialeffect2 EF_HEAL3;
-      bonus_script "{ bonus bDef,500; bonus bMdef,200; }",3600,0,1,EFST_M_DEFSCROLL;
+      sc_start SC_M_DEFSCROLL,3600000,0;
       sc_start SC_SPEEDUP0,600000,25;
   - Id: 100007
     AegisName: G_Limit_Power_Booster
@@ -48838,7 +48899,7 @@ Body:
       Sitting: true
     Script: |
       specialeffect2 EF_POTION_BERSERK;
-      bonus_script "{ bonus bBaseAtk,30; bonus bMatk,30; bonus2 bAddClass,Class_All,1; bonus bMatkRate,1; bonus bHit,30; bonus bFlee,30; bonus bAspd,1; bonus bUseSPrate,-5; bonus bFixedCastrate,-30; }",3600,1,1,EFST_LIMIT_POWER_BOOSTER;
+      sc_start SC_LIMIT_POWER_BOOSTER,3600000,30;
       sc_start SC_SPEEDUP0,600000,25;
   - Id: 100008
     AegisName: G_Infinity_Drink
@@ -48849,7 +48910,7 @@ Body:
       Sitting: true
     Script: |
       specialeffect2 EF_POTION_BERSERK;
-      bonus_script "{ bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bCritAtkRate,5; bonus bLongAtkRate,5; bonus bMatkRate,5; bonus bNoCastCancel; }",3600,1,1,EFST_INFINITY_DRINK;
+      sc_start SC_INFINITY_DRINK,3600000,0;
       sc_start SC_SPEEDUP0,600000,25;
   - Id: 100009
     AegisName: Joy_Of_Victory
@@ -49867,7 +49928,10 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      bonus_script "{ bonus bBaseAtk,20; bonus bMatk,20; bonus bHit,30; bonus bFlee,30; }",3600,3,1;
+      sc_start SC_FLEEFOOD,3600000,30;
+      sc_start SC_HITFOOD,3600000,30;
+      sc_start SC_ATKPOTION,3600000,20;
+      sc_start SC_MATKPOTION,3600000,20;
       sc_start SC_SPEEDUP0,600000,25;
   - Id: 100317
     AegisName: G_Mental_Potion
@@ -49878,7 +49942,7 @@ Body:
       Sitting: true
     Script: |
       specialeffect2 EF_SPELLBREAKER;
-      bonus_script "{ bonus bUseSPrate,-10; bonus bMaxSPrate,10; }",3600,1,1,EFST_TARGET_ASPD;
+      sc_start SC_MENTAL_POTION,3600000,10;
       sc_start SC_SPEEDUP0,600000,25;
   - Id: 100321
     AegisName: OS_Weapon_Refine_Cube
@@ -49933,6 +49997,21 @@ Body:
     Weight: 10
     Script: |
       laphine_synthesis();
+  - Id: 100333
+    AegisName: E_Infinity_Drink
+    Name: "[Not For Sale] Infinity Drink"
+    Type: Usable
+    Weight: 10
+    Trade:
+      NoDrop: true
+      NoTrade: true
+      NoCart: true
+      NoGuildStorage: true
+      NoMail: true
+      NoAuction: true
+    Script: |
+      specialeffect2 EF_POTION_BERSERK;
+      sc_start SC_INFINITY_DRINK,1800000,0;
   - Id: 100338
     AegisName: Booster_W_Up_1
     Name: Booster Weapon Phase 1 Upgrade Package
@@ -51284,12 +51363,13 @@ Body:
     Script: |
       item_reform();
   - Id: 101097
-    AegisName: aegis_101097
+    AegisName: DF_Infinity_Drink
     Name: "[Scroll] Unlimited Drink"
     Type: Usable
     Weight: 10
     Script: |
-      bonus_script "{ bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bCritAtkRate,5; bonus bLongAtkRate,5; bonus2 bMagicAddEle,Ele_All,5; bonus bNoCastCancel;}",1800;
+      specialeffect2 EF_POTION_BERSERK;
+      sc_start SC_INFINITY_DRINK,1800000,0;
   - Id: 101103
     AegisName: Enchant_Stone_Box25
     Name: Costume Enchant Stone Box 25
@@ -52126,6 +52206,15 @@ Body:
       BuyingStore: true
     Script: |
       laphine_synthesis();
+  - Id: 101675
+    AegisName: aegis_101675
+    Name: Costume Enchant Stone Box 28
+    Type: Usable
+    Weight: 10
+    Flags:
+      Container: true
+    Script: |
+      getgroupitem(IG_Enchant_Stone_Box28);
   - Id: 200055
     AegisName: C_Acid_B_50Box
     Name: Acid Bomb 50 Box

+ 122 - 4
db/re/item_group_db.yml

@@ -31125,25 +31125,143 @@ Body:
         List:
           - Item: Blacksmith_Blessing
             Amount: 2
-  - Group: Bs_Item_M_S_53
+  - Group: BS_ITEM_M_S_53
     SubGroups:
       - SubGroup: 0
         List:
           - Item: Shadow_Refine_Hammer
             Amount: 2
-  - Group: Bs_Item_M_S_54
+  - Group: BS_ITEM_M_S_54
     SubGroups:
       - SubGroup: 0
         List:
           - Item: Mightysoul_Essence
-  - Group: Bs_Item_M_S_55
+  - Group: BS_ITEM_M_S_55
     SubGroups:
       - SubGroup: 0
         List:
           - Item: M_Dimension_Essence
-  - Group: Bs_Item_M_S_56
+  - Group: BS_ITEM_M_S_56
     SubGroups:
       - SubGroup: 0
         List:
           - Item: Enchant_Ticket
             Amount: 2
+  - Group: ENCHANT_STONE_BOX28
+    SubGroups:
+      - SubGroup: 1
+        List:
+          - Item: M_PATKStone_Robe
+            Rate: 10
+          - Item: R_PATKStone_Robe
+            Rate: 10
+          - Item: POWStone_Robe_D
+            Rate: 10
+          - Item: ConStone_Robe_D
+            Rate: 10
+          - Item: Critical_Stone_Robe
+            Rate: 20
+          - Item: SPdrainStone_Robe_D
+            Rate: 40
+          - Item: SPdrainStone_Top
+            Rate: 80
+          - Item: CastStone_Robe
+            Rate: 80
+          - Item: ASPDStone_Top
+            Rate: 150
+          - Item: ASPDStone_Robe_D
+            Rate: 80
+          - Item: HPdrainStone_Robe_D
+            Rate: 80
+          - Item: GreenFloor_Bottom
+            Rate: 160
+          - Item: ExplodingEffect_Middle
+            Rate: 160
+          - Item: StarEmperorStone_Garment
+            Rate: 80
+          - Item: GunslingerStone_Robe
+            Rate: 80
+          - Item: SoulReaperStone_Robe
+            Rate: 80
+          - Item: StarStone_Top3
+            Rate: 80
+          - Item: StarStone_Middle3
+            Rate: 80
+          - Item: StarStone_Bottom3
+            Rate: 80
+          - Item: RebelStone_Top3
+            Rate: 80
+          - Item: RebelStone_Middle3
+            Rate: 80
+          - Item: RebelStone_Bottom3
+            Rate: 80
+          - Item: ReaperStone_Top3
+            Rate: 80
+          - Item: ReaperStone_Middle3
+            Rate: 80
+          - Item: ReaperStone_Bottom3
+            Rate: 80
+          - Item: aegis_100465
+            Rate: 160
+          - Item: aegis_100495
+            Rate: 160
+          - Item: Magic_Stone_Top
+            Rate: 240
+          - Item: Magic_Stone_Middle
+            Rate: 240
+          - Item: Magic_Stone_Bottom
+            Rate: 240
+          - Item: StarGladiatorStone_Top
+            Rate: 150
+          - Item: StarGladiatorStone_Middle
+            Rate: 150
+          - Item: StarGladiatorStone_Bottom
+            Rate: 150
+          - Item: GunslingerStone_Top
+            Rate: 150
+          - Item: GunslingerStone_Middle
+            Rate: 150
+          - Item: GunslingerStone_Bottom
+            Rate: 150
+          - Item: SoulLinkerStone_Top
+            Rate: 150
+          - Item: SoulLinkerStone_Middle
+            Rate: 150
+          - Item: SoulLinkerStone_Bottom
+            Rate: 150
+          - Item: Melee_Stone_Top
+            Rate: 240
+          - Item: Melee_Stone_Middle
+            Rate: 240
+          - Item: Melee_Stone_Bottom
+            Rate: 240
+          - Item: Range_Stone_Top
+            Rate: 240
+          - Item: Range_Stone
+            Rate: 240
+          - Item: Range_Stone_Bottom
+            Rate: 240
+          - Item: aegis_100496
+            Rate: 360
+          - Item: aegis_100497
+            Rate: 360
+          - Item: aegis_100498
+            Rate: 360
+          - Item: aegis_100499
+            Rate: 360
+          - Item: aegis_100500
+            Rate: 360
+          - Item: aegis_100501
+            Rate: 360
+          - Item: CastingStone_Top
+            Rate: 360
+          - Item: CastingStone_Middle
+            Rate: 360
+          - Item: CastingStone_Bottom
+            Rate: 360
+          - Item: Critical_Stone
+            Rate: 360
+          - Item: Critical_Stone_Top
+            Rate: 360
+          - Item: Critical_Stone_Bottom
+            Rate: 360

+ 239 - 15
db/re/status.yml

@@ -2660,7 +2660,6 @@ Body:
   - Status: Inchealrate
     Icon: EFST_HEALPLUS
     Flags:
-      NoRemoveOnDead: true
       NoClearbuff: true
       NoDispell: true
       NoBanishingBuster: true
@@ -6060,27 +6059,16 @@ Body:
   - Status: 2011rwc_Scroll
     Icon: EFST_2011RWC_SCROLL
     CalcFlags:
-      Str: true
-      Agi: true
-      Vit: true
-      Int: true
-      Dex: true
-      Luk: true
       Batk: true
       Matk: true
+      Aspd: true
+      MaxHp: true
+      MaxSp: true
     Flags:
-      NoRemoveOnDead: true
       NoClearbuff: true
       NoDispell: true
       NoBanishingBuster: true
       NoClearance: true
-    End:
-      Food_Str_Cash: true
-      Food_Agi_Cash: true
-      Food_Vit_Cash: true
-      Food_Int_Cash: true
-      Food_Dex_Cash: true
-      Food_Luk_Cash: true
   - Status: Jp_Event04
     Icon: EFST_JP_EVENT04
     Flags:
@@ -8176,3 +8164,239 @@ Body:
       NoClearbuff: true
     End:
       Sub_Weaponproperty: true
+  - Status: Almighty
+    Icon: EFST_ALMIGHTY
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+      Batk: true
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Food_Str_Cash: true
+      Food_Agi_Cash: true
+      Food_Vit_Cash: true
+      Food_Int_Cash: true
+      Food_Dex_Cash: true
+      Food_Luk_Cash: true
+      UltimateCook: true
+  - Status: UltimateCook
+    Icon: EFST_ULTIMATECOOK
+    CalcFlags:
+      Str: true
+      Agi: true
+      Vit: true
+      Int: true
+      Dex: true
+      Luk: true
+      Batk: true
+      Matk: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+    End:
+      Food_Str_Cash: true
+      Food_Agi_Cash: true
+      Food_Vit_Cash: true
+      Food_Int_Cash: true
+      Food_Dex_Cash: true
+      Food_Luk_Cash: true
+      Almighty: true
+  - Status: M_DefScroll
+    Icon: EFST_M_DEFSCROLL
+    CalcFlags:
+      Def: true
+      Mdef: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Infinity_Drink
+    Icon: EFST_INFINITY_DRINK
+    CalcFlags:
+      All: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Mental_Potion
+    Icon: EFST_TARGET_ASPD
+    CalcFlags:
+      All: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Limit_Power_Booster
+    Icon: EFST_LIMIT_POWER_BOOSTER
+    CalcFlags:
+      All: true
+    Flags:
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Combat_Pill
+    Icon: EFST_GM_BATTLE
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Combat_Pill2
+    Icon: EFST_GM_BATTLE2
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: MysticPowder
+    Icon: EFST_MYSTICPOWDER
+    CalcFlags:
+      Luk: true
+      Flee: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: SparkCandy
+    Icon: EFST_STEAMPACK
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: MagicCandy
+    Icon: EFST_MAGIC_CANDY
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Acaraje
+    Icon: EFST_ACARAJE
+    CalcFlags:
+      Hit: true
+      Aspd: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: PopeCookie
+    Icon: EFST_POPECOOKIE
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Vitalize_Potion
+    Icon: EFST_VITALIZE_POTION
+    CalcFlags:
+      All: true
+    Flags:
+      NoClearbuff: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Cup_Of_Boza
+    Icon: EFST_CUP_OF_BOZA
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: SKF_MATK
+    Icon: EFST_SKF_MATK
+    CalcFlags:
+      Matk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: SKF_ATK
+    Icon: EFST_SKF_ATK
+    CalcFlags:
+      Batk: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: SKF_ASPD
+    Icon: EFST_SKF_ASPD
+    CalcFlags:
+      Aspd: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: SKF_CAST
+    Icon: EFST_SKF_CAST
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Beef_Rib_Stew
+    Icon: EFST_BEEF_RIB_STEW
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true
+  - Status: Pork_Rib_Stew
+    Icon: EFST_PORK_RIB_STEW
+    CalcFlags:
+      All: true
+    Flags:
+      NoRemoveOnDead: true
+      NoClearbuff: true
+      NoDispell: true
+      NoBanishingBuster: true
+      NoClearance: true

+ 3 - 3
npc/re/merchants/malangdo_costume.txt

@@ -1401,11 +1401,11 @@ mal_in01,20,107,3	script	Lace La Zard#cos_ect	4_FROG,{
 		25797, 29427, "Increases damage of Knuckle Arrow by 15%.",	// SuraStone_Robe2	SuraStone_Robe2_
 		25801, 29614, "Increases damage of Diamond Dust by 15%.",	// SorcererStone_Robe2	SorcererStone_Robe2_
 		25805, 29618, "Increases damage of Fatal Menace by 15%.",	// ShadowchaserStone_Robe2	ShadowchaserStone_Robe2_
-		25842, 29654, "Increases damage of Eswhoo by 20%.",	// SoulReaperStone_Robe	SoulReaperStone_Robe_
-		25849, 29658, "Increases damage of Falling Star, Solar Burst and Full Moon Kick by 20%.",	// StarEmperorStone_Garment	StarEmperorStone_Garment_
+		25842, 29654, "Increases damage of Eswhoo by 20%.",	// SoulReaperStone_Robe	Soulreaper_Robe
+		25849, 29658, "Increases damage of Falling Star, Solar Burst and Full Moon Kick by 20%.",	// StarEmperorStone_Garment	Staremperor_Robe
 		25853, 29662, "Increases damage of Swirling Petal by 25%.",	// KagerouStone_Robe	KagerouStone_Robe_
 		25854, 29663, "Increases damage of Flaming Petals by 20%.",	// OboroStone_Robe	OboroStone_Robe_
-		25858, 29667, "Increases damage of Hammer of God and Round Trip by 20%.",	// GunslingerStone_Robe	GunslingerStone_Robe_
+		25858, 29667, "Increases damage of Hammer of God and Round Trip by 20%.",	// GunslingerStone_Robe	Rebellion_Robe
 		25862, 29671, "Increases damage of Picky Peck and Catnip Meteor by 20%.",	// DoramStone_Robe	DoramStone_Robe_
 		1000011, 310003, "Increases damage of Aimed Bolt by 15%.",	// RangerStone_II_Garment	Ranger_Robe2
 		1000015, 310007, "Increases damage of Arms Cannon by 15%.",	// MechanicStone_II_Garment	Mechanic_Robe2

+ 5 - 4
src/map/itemdb.hpp

@@ -990,10 +990,11 @@ enum e_random_item_group {
 	IG_4LV_10REFINE_WEAPON_9GU,
 	IG_4LV_11REFINE_WEAPON_10G,
 	IG_BS_ITEM_M_S_52,
-	IG_Bs_Item_M_S_53,
-	IG_Bs_Item_M_S_54,
-	IG_Bs_Item_M_S_55,
-	IG_Bs_Item_M_S_56,
+	IG_BS_ITEM_M_S_53,
+	IG_BS_ITEM_M_S_54,
+	IG_BS_ITEM_M_S_55,
+	IG_BS_ITEM_M_S_56,
+	IG_ENCHANT_STONE_BOX28,
 
 	IG_MAX,
 };

+ 2 - 0
src/map/pc.cpp

@@ -10120,6 +10120,8 @@ int pc_itemheal(struct map_session_data *sd, t_itemid itemid, int hp, int sp)
 			else if (itemid == ITEMID_COOKIE_BAT)
 				bonus += sd->sc.data[SC_MTF_PUMPKIN]->val2;
 		}
+		if (sd->sc.data[SC_VITALIZE_POTION])
+			bonus += bonus * 10 / 100;
 
 		tmp = hp * bonus / 100; // Overflow check
 		if (bonus != 100 && tmp > hp)

+ 27 - 5
src/map/script_constants.hpp

@@ -1841,9 +1841,30 @@
 	export_constant(SC_DEEP_POISONING_OPTION);
 	export_constant(SC_POISON_SHIELD);
 	export_constant(SC_POISON_SHIELD_OPTION);
+	export_constant(SC_SUB_WEAPONPROPERTY);
 	export_constant(SC_M_LIFEPOTION);
 	export_constant(SC_S_MANAPOTION);
-	export_constant(SC_SUB_WEAPONPROPERTY);
+	export_constant(SC_ALMIGHTY);
+	export_constant(SC_ULTIMATECOOK);
+	export_constant(SC_M_DEFSCROLL);
+	export_constant(SC_INFINITY_DRINK);
+	export_constant(SC_MENTAL_POTION);
+	export_constant(SC_LIMIT_POWER_BOOSTER);
+	export_constant(SC_COMBAT_PILL);
+	export_constant(SC_COMBAT_PILL2);
+	export_constant(SC_MYSTICPOWDER);
+	export_constant(SC_SPARKCANDY);
+	export_constant(SC_MAGICCANDY);
+	export_constant(SC_ACARAJE);
+	export_constant(SC_POPECOOKIE);
+	export_constant(SC_VITALIZE_POTION);
+	export_constant(SC_CUP_OF_BOZA);
+	export_constant(SC_SKF_MATK);
+	export_constant(SC_SKF_ATK);
+	export_constant(SC_SKF_ASPD);
+	export_constant(SC_SKF_CAST);
+	export_constant(SC_BEEF_RIB_STEW);
+	export_constant(SC_PORK_RIB_STEW);
 
 #ifdef RENEWAL
 	export_constant(SC_EXTREMITYFIST2);
@@ -5756,10 +5777,11 @@
 	export_constant(IG_4LV_10REFINE_WEAPON_9GU);
 	export_constant(IG_4LV_11REFINE_WEAPON_10G);
 	export_constant(IG_BS_ITEM_M_S_52);
-	export_constant(IG_Bs_Item_M_S_53);
-	export_constant(IG_Bs_Item_M_S_54);
-	export_constant(IG_Bs_Item_M_S_55);
-	export_constant(IG_Bs_Item_M_S_56);
+	export_constant(IG_BS_ITEM_M_S_53);
+	export_constant(IG_BS_ITEM_M_S_54);
+	export_constant(IG_BS_ITEM_M_S_55);
+	export_constant(IG_BS_ITEM_M_S_56);
+	export_constant(IG_ENCHANT_STONE_BOX28);
 
 	/* unit stop walking */
 	export_constant(USW_NONE);

+ 16 - 0
src/map/skill.cpp

@@ -693,6 +693,12 @@ int skill_calc_heal(struct block_list *src, struct block_list *target, uint16 sk
 #ifdef RENEWAL
 			if (tsc->data[SC_ASSUMPTIO])
 				hp_bonus += tsc->data[SC_ASSUMPTIO]->val1 * 2;
+#endif
+			if (tsc->data[SC_VITALIZE_POTION])
+#ifdef RENEWAL
+				hp_bonus += 10;
+#else
+				hp += hp * 10 / 100;
 #endif
 		}
 	}
@@ -2382,6 +2388,12 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
 			mob_class_change(dstmd,class_);
 	}
 
+	if (sd && sc) {
+		struct status_change_entry *sce;
+		if ((sce = sc->data[SC_2011RWC_SCROLL]) && rnd() % 1000 <= 10)
+			skill_castend_nodamage_id(src, src, AC_CONCENTRATION, max(3, pc_checkskill(sd,AC_CONCENTRATION)), tick, 0);
+	}
+
 	return 0;
 }
 
@@ -18535,6 +18547,8 @@ int skill_castfix_sc(struct block_list *bl, double time, uint8 flag)
 				time += sc->data[SC_PARALYSIS]->val3;
 			if (sc->data[SC_IZAYOI])
 				time -= time * 50 / 100;
+			if (sc->data[SC_2011RWC_SCROLL])
+				time -= time * 5 / 100;
 		}
 		if (sc->data[SC_SUFFRAGIUM]) {
 			if(!(flag&2))
@@ -18678,6 +18692,8 @@ int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, uint16
 			fixed = 0;
 		if (sc->data[SC_GLOOMYDAY])
 			fixed += skill_lv * 500;
+		if (sc->data[SC_2011RWC_SCROLL])
+			VARCAST_REDUCTION(5);
 	}
 	if (sc && sc->data[SC_SECRAMENT] && skill_id == HW_MAGICPOWER && (flag&2)) // Sacrament lowers Mystical Amplification cast time
 		fixcast_r = max(fixcast_r, sc->data[SC_SECRAMENT]->val2);

+ 161 - 17
src/map/status.cpp

@@ -3038,6 +3038,14 @@ static int status_get_hpbonus(struct block_list *bl, enum e_status_bonus type) {
 				bonus -= sc->data[SC_EQC]->val3;
 			if(sc->data[SC_PACKING_ENVELOPE3])
 				bonus += sc->data[SC_PACKING_ENVELOPE3]->val1;
+			if(sc->data[SC_2011RWC_SCROLL])
+				bonus -= 10;
+			if(sc->data[SC_INFINITY_DRINK])
+				bonus += 5;
+			if(sc->data[SC_COMBAT_PILL])
+				bonus -= 3;
+			if(sc->data[SC_COMBAT_PILL2])
+				bonus -= 5;
 		}
 		// Max rate reduce is -100%
 		bonus = cap_value(bonus,-100,INT_MAX);
@@ -3176,6 +3184,16 @@ static int status_get_spbonus(struct block_list *bl, enum e_status_bonus type) {
 			//Decreasing
 			if (sc->data[SC_MELODYOFSINK])
 				bonus -= sc->data[SC_MELODYOFSINK]->val3;
+			if (sc->data[SC_2011RWC_SCROLL])
+				bonus -= 10;
+			if (sc->data[SC_INFINITY_DRINK])
+				bonus += 5;
+			if (sc->data[SC_MENTAL_POTION])
+				bonus += sc->data[SC_MENTAL_POTION]->val1;
+			if(sc->data[SC_COMBAT_PILL])
+				bonus -= 3;
+			if(sc->data[SC_COMBAT_PILL2])
+				bonus -= 5;
 		}
 		// Max rate reduce is -100%
 		bonus = cap_value(bonus,-100,INT_MAX);
@@ -4653,6 +4671,54 @@ int status_calc_pc_sub(struct map_session_data* sd, uint8 opt)
 			sd->indexed_bonus.subele[ELE_POISON] += 100;
 			sd->indexed_bonus.subele[ELE_HOLY] -= 30;
 		}
+		if (sc->data[SC_INFINITY_DRINK]) {
+			sd->bonus.crit_atk_rate += 5;
+			sd->bonus.long_attack_atk_rate += 5;
+			sd->indexed_bonus.magic_atk_ele[ELE_ALL] += 5;
+			sd->special_state.no_castcancel = 1;
+		}
+		if(sc->data[SC_MENTAL_POTION])
+			sd->dsprate -= sc->data[SC_MENTAL_POTION]->val1;
+		if (sc->data[SC_LIMIT_POWER_BOOSTER]) {
+			pc_bonus(sd, SP_ATK_RATE, 1);
+			pc_bonus(sd, SP_MATK_RATE, 1);
+			sd->dsprate -= 5;
+			sd->bonus.fixcastrate -= sc->data[SC_LIMIT_POWER_BOOSTER]->val1;
+		}
+		if (sc->data[SC_COMBAT_PILL]) {
+			pc_bonus(sd, SP_ATK_RATE, sc->data[SC_COMBAT_PILL]->val1);
+			pc_bonus(sd, SP_MATK_RATE, sc->data[SC_COMBAT_PILL]->val1);
+		}
+		if (sc->data[SC_COMBAT_PILL2]) {
+			pc_bonus(sd, SP_ATK_RATE, sc->data[SC_COMBAT_PILL2]->val1);
+			pc_bonus(sd, SP_MATK_RATE, sc->data[SC_COMBAT_PILL2]->val1);
+		}
+		if (sc->data[SC_SPARKCANDY])
+			pc_bonus2(sd, SP_HP_LOSS_RATE, 100, 10000);
+		if (sc->data[SC_MAGICCANDY]) {
+			sd->bonus.fixcastrate -= 70;
+			sd->special_state.no_castcancel = 1;
+			pc_bonus2(sd, SP_SP_LOSS_RATE, 90, 10000);
+		}
+		if (sc->data[SC_POPECOOKIE]) {
+			pc_bonus(sd, SP_ATK_RATE, sc->data[SC_POPECOOKIE]->val1);
+			pc_bonus(sd, SP_MATK_RATE, sc->data[SC_POPECOOKIE]->val1);
+			sd->indexed_bonus.subele[ELE_ALL] -= sc->data[SC_POPECOOKIE]->val1;
+		}
+		if (sc->data[SC_VITALIZE_POTION]) {
+			pc_bonus(sd, SP_ATK_RATE, sc->data[SC_VITALIZE_POTION]->val1);
+			pc_bonus(sd, SP_MATK_RATE, sc->data[SC_VITALIZE_POTION]->val1);
+		}
+		if (sc->data[SC_CUP_OF_BOZA])
+			sd->indexed_bonus.subele[ELE_FIRE] -= 5;
+		if (sc->data[SC_SKF_CAST])
+			sd->bonus.varcastrate -= sc->data[SC_SKF_CAST]->val1;
+		if (sc->data[SC_BEEF_RIB_STEW]) {
+			sd->bonus.varcastrate -= 5;
+			sd->dsprate -= 3;
+		}
+		if (sc->data[SC_PORK_RIB_STEW])
+			sd->dsprate -= 2;
 	}
 	status_cpy(&sd->battle_status, base_status);
 
@@ -6196,8 +6262,6 @@ static unsigned short status_calc_str(struct block_list *bl, struct status_chang
 		str += sc->data[SC_SAVAGE_STEAK]->val1;
 	if(sc->data[SC_INSPIRATION])
 		str += sc->data[SC_INSPIRATION]->val3;
-	if(sc->data[SC_2011RWC_SCROLL])
-		str += sc->data[SC_2011RWC_SCROLL]->val1;
 	if(sc->data[SC_STOMACHACHE])
 		str -= sc->data[SC_STOMACHACHE]->val1;
 	if(sc->data[SC_KYOUGAKU])
@@ -6218,6 +6282,10 @@ static unsigned short status_calc_str(struct block_list *bl, struct status_chang
 #endif
 	if (sc->data[SC_UNIVERSESTANCE])
 		str += sc->data[SC_UNIVERSESTANCE]->val2;
+	if (sc->data[SC_ALMIGHTY])
+		str += sc->data[SC_ALMIGHTY]->val1;
+	if (sc->data[SC_ULTIMATECOOK])
+		str += sc->data[SC_ULTIMATECOOK]->val1;
 
 	return (unsigned short)cap_value(str,0,USHRT_MAX);
 }
@@ -6256,8 +6324,6 @@ static unsigned short status_calc_agi(struct block_list *bl, struct status_chang
 		agi += sc->data[SC_INCREASEAGI]->val2;
 	if(sc->data[SC_INCREASING])
 		agi += 4; // Added based on skill updates [Reddozen]
-	if(sc->data[SC_2011RWC_SCROLL])
-		agi += sc->data[SC_2011RWC_SCROLL]->val1;
 	if(sc->data[SC_DECREASEAGI])
 		agi -= sc->data[SC_DECREASEAGI]->val2;
 	if(sc->data[SC_QUAGMIRE])
@@ -6300,6 +6366,10 @@ static unsigned short status_calc_agi(struct block_list *bl, struct status_chang
 #endif
 	if (sc->data[SC_UNIVERSESTANCE])
 		agi += sc->data[SC_UNIVERSESTANCE]->val2;
+	if (sc->data[SC_ALMIGHTY])
+		agi += sc->data[SC_ALMIGHTY]->val1;
+	if (sc->data[SC_ULTIMATECOOK])
+		agi += sc->data[SC_ULTIMATECOOK]->val1;
 
 	return (unsigned short)cap_value(agi,0,USHRT_MAX);
 }
@@ -6344,8 +6414,6 @@ static unsigned short status_calc_vit(struct block_list *bl, struct status_chang
 		vit += sc->data[SC_MINOR_BBQ]->val1;
 	if(sc->data[SC_INSPIRATION])
 		vit += sc->data[SC_INSPIRATION]->val3;
-	if(sc->data[SC_2011RWC_SCROLL])
-		vit += sc->data[SC_2011RWC_SCROLL]->val1;
 	if(sc->data[SC_STOMACHACHE])
 		vit -= sc->data[SC_STOMACHACHE]->val1;
 	if(sc->data[SC_KYOUGAKU])
@@ -6372,6 +6440,12 @@ static unsigned short status_calc_vit(struct block_list *bl, struct status_chang
 #endif
 	if (sc->data[SC_UNIVERSESTANCE])
 		vit += sc->data[SC_UNIVERSESTANCE]->val2;
+	if (sc->data[SC_ALMIGHTY])
+		vit += sc->data[SC_ALMIGHTY]->val1;
+	if (sc->data[SC_ULTIMATECOOK])
+		vit += sc->data[SC_ULTIMATECOOK]->val1;
+	if (sc->data[SC_CUP_OF_BOZA])
+		vit += 10;
 
 	return (unsigned short)cap_value(vit,0,USHRT_MAX);
 }
@@ -6416,8 +6490,6 @@ static unsigned short status_calc_int(struct block_list *bl, struct status_chang
 		int_ += sc->data[SC_NEN]->val1;
 	if(sc->data[SC_MARIONETTE])
 		int_ -= ((sc->data[SC_MARIONETTE]->val4)>>16)&0xFF;
-	if(sc->data[SC_2011RWC_SCROLL])
-		int_ += sc->data[SC_2011RWC_SCROLL]->val1;
 	if(sc->data[SC_MARIONETTE2])
 		int_ += ((sc->data[SC_MARIONETTE2]->val4)>>16)&0xFF;
 	if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_HIGH)
@@ -6459,6 +6531,10 @@ static unsigned short status_calc_int(struct block_list *bl, struct status_chang
 	if (sc->data[SC_NIBELUNGEN] && sc->data[SC_NIBELUNGEN]->val2 == RINGNBL_ALLSTAT)
 		int_ += 15;
 #endif
+	if (sc->data[SC_ALMIGHTY])
+		int_ += sc->data[SC_ALMIGHTY]->val1;
+	if (sc->data[SC_ULTIMATECOOK])
+		int_ += sc->data[SC_ULTIMATECOOK]->val1;
 
 	return (unsigned short)cap_value(int_,0,USHRT_MAX);
 }
@@ -6507,8 +6583,6 @@ static unsigned short status_calc_dex(struct block_list *bl, struct status_chang
 		dex += 4; // Added based on skill updates [Reddozen]
 	if(sc->data[SC_MARIONETTE])
 		dex -= ((sc->data[SC_MARIONETTE]->val4)>>8)&0xFF;
-	if(sc->data[SC_2011RWC_SCROLL])
-		dex += sc->data[SC_2011RWC_SCROLL]->val1;
 	if(sc->data[SC_MARIONETTE2])
 		dex += ((sc->data[SC_MARIONETTE2]->val4)>>8)&0xFF;
 	if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_HIGH)
@@ -6543,6 +6617,10 @@ static unsigned short status_calc_dex(struct block_list *bl, struct status_chang
 #endif
 	if (sc->data[SC_UNIVERSESTANCE])
 		dex += sc->data[SC_UNIVERSESTANCE]->val2;
+	if (sc->data[SC_ALMIGHTY])
+		dex += sc->data[SC_ALMIGHTY]->val1;
+	if (sc->data[SC_ULTIMATECOOK])
+		dex += sc->data[SC_ULTIMATECOOK]->val1;
 
 	return (unsigned short)cap_value(dex,0,USHRT_MAX);
 }
@@ -6591,8 +6669,6 @@ static unsigned short status_calc_luk(struct block_list *bl, struct status_chang
 		luk -= sc->data[SC_STOMACHACHE]->val1;
 	if(sc->data[SC_KYOUGAKU])
 		luk -= sc->data[SC_KYOUGAKU]->val2;
-	if(sc->data[SC_2011RWC_SCROLL])
-		luk += sc->data[SC_2011RWC_SCROLL]->val1;
 	if(sc->data[SC__STRIPACCESSORY] && bl->type != BL_PC)
 		luk -= luk * sc->data[SC__STRIPACCESSORY]->val2 / 100;
 	if(sc->data[SC_BANANA_BOMB])
@@ -6613,6 +6689,12 @@ static unsigned short status_calc_luk(struct block_list *bl, struct status_chang
 #endif
 	if (sc->data[SC_UNIVERSESTANCE])
 		luk += sc->data[SC_UNIVERSESTANCE]->val2;
+	if (sc->data[SC_ALMIGHTY])
+		luk += sc->data[SC_ALMIGHTY]->val1;
+	if (sc->data[SC_ULTIMATECOOK])
+		luk += sc->data[SC_ULTIMATECOOK]->val1;
+	if (sc->data[SC_MYSTICPOWDER])
+		luk += 10;
 
 	return (unsigned short)cap_value(luk,0,USHRT_MAX);
 }
@@ -6798,6 +6880,16 @@ static unsigned short status_calc_batk(struct block_list *bl, struct status_chan
 #endif
 	if (sc->data[SC_SUNSTANCE])
 		batk += batk * sc->data[SC_SUNSTANCE]->val2 / 100;
+	if (sc->data[SC_ALMIGHTY])
+		batk += 30;
+	if (sc->data[SC_ULTIMATECOOK])
+		batk += 30;
+	if(sc->data[SC_LIMIT_POWER_BOOSTER])
+		batk += sc->data[SC_LIMIT_POWER_BOOSTER]->val1;
+	if(sc->data[SC_SPARKCANDY])
+		batk += 20;
+	if(sc->data[SC_SKF_ATK])
+		batk += sc->data[SC_SKF_ATK]->val1;
 
 	return (unsigned short)cap_value(batk,0,USHRT_MAX);
 }
@@ -6973,6 +7065,16 @@ static unsigned short status_calc_ematk(struct block_list *bl, struct status_cha
 		matk += sc->data[SC_INSPIRATION]->val2;
 	if (sc->data[SC_PACKING_ENVELOPE2])
 		matk += sc->data[SC_PACKING_ENVELOPE2]->val1;
+	if(sc->data[SC_ALMIGHTY])
+		matk += 30;
+	if(sc->data[SC_ULTIMATECOOK])
+		matk += 30;
+	if (sc->data[SC_LIMIT_POWER_BOOSTER])
+		matk += sc->data[SC_LIMIT_POWER_BOOSTER]->val1;
+	if (sc->data[SC_MAGICCANDY])
+		matk += 30;
+	if (sc->data[SC_SKF_MATK])
+		matk += sc->data[SC_SKF_MATK]->val1;
 
 	return (unsigned short)cap_value(matk,0,USHRT_MAX);
 }
@@ -7013,6 +7115,16 @@ static unsigned short status_calc_matk(struct block_list *bl, struct status_chan
 		matk += sc->data[SC_MTF_MATK2]->val1;
 	if (sc->data[SC_2011RWC_SCROLL])
 		matk += 30;
+	if (sc->data[SC_ALMIGHTY])
+		matk += 30;
+	if (sc->data[SC_ULTIMATECOOK])
+		matk += 30;
+	if (sc->data[SC_LIMIT_POWER_BOOSTER])
+		matk += sc->data[SC_LIMIT_POWER_BOOSTER]->val1;
+	if (sc->data[SC_MAGICCANDY])
+		matk += 30;
+	if (sc->data[SC_SKF_MATK])
+		matk += sc->data[SC_SKF_MATK]->val1;
 #endif
 	if (sc->data[SC_ZANGETSU])
 		matk += sc->data[SC_ZANGETSU]->val3;
@@ -7036,8 +7148,6 @@ static unsigned short status_calc_matk(struct block_list *bl, struct status_chan
 		matk += sc->data[SC_MOONLITSERENADE]->val3/100;
 	if (sc->data[SC_MTF_MATK])
 		matk += matk * sc->data[SC_MTF_MATK]->val1 / 100;
-	if(sc->data[SC_2011RWC_SCROLL])
-		matk += 30;
 	if (sc->data[SC_SHRIMP])
 		matk += matk * sc->data[SC_SHRIMP]->val2 / 100;
 	if (sc->data[SC_VOLCANO])
@@ -7170,6 +7280,10 @@ static signed short status_calc_hit(struct block_list *bl, struct status_change
 		hit += sc->data[SC_PACKING_ENVELOPE10]->val1;
 	if (sc->data[SC_ABYSS_SLAYER])
 		hit += sc->data[SC_ABYSS_SLAYER]->val3;
+	if (sc->data[SC_LIMIT_POWER_BOOSTER])
+		hit += sc->data[SC_LIMIT_POWER_BOOSTER]->val1;
+	if (sc->data[SC_ACARAJE])
+		hit += 5;
 
 	return (short)cap_value(hit,1,SHRT_MAX);
 }
@@ -7284,6 +7398,10 @@ static signed short status_calc_flee(struct block_list *bl, struct status_change
 		flee += sc->data[SC_GROOMING]->val2;
 	if (sc->data[SC_PACKING_ENVELOPE5])
 		flee += sc->data[SC_PACKING_ENVELOPE5]->val1;
+	if (sc->data[SC_LIMIT_POWER_BOOSTER])
+		flee += sc->data[SC_LIMIT_POWER_BOOSTER]->val1;
+	if (sc->data[SC_MYSTICPOWDER])
+		flee += 20;
 
 	return (short)cap_value(flee,1,SHRT_MAX);
 }
@@ -7420,6 +7538,8 @@ static defType status_calc_def(struct block_list *bl, struct status_change *sc,
 		def += sc->data[SC_GUARD_STANCE]->val2;
 	if (sc->data[SC_ATTACK_STANCE])
 		def -= sc->data[SC_ATTACK_STANCE]->val2;
+	if (sc->data[SC_M_DEFSCROLL])
+		def += 500;
 
 	return (defType)cap_value(def,DEFTYPE_MIN,DEFTYPE_MAX);
 }
@@ -7552,6 +7672,8 @@ static defType status_calc_mdef(struct block_list *bl, struct status_change *sc,
 		mdef += sc->data[SC_PACKING_ENVELOPE8]->val1;
 	if (sc->data[SC_CLIMAX_CRYIMP])
 		mdef += 100;
+	if (sc->data[SC_M_DEFSCROLL])
+		mdef += 200;
 
 	return (defType)cap_value(mdef,DEFTYPE_MIN,DEFTYPE_MAX);
 }
@@ -7934,6 +8056,16 @@ static short status_calc_aspd(struct block_list *bl, struct status_change *sc, b
 			bonus += 20;
 		if (sc->data[SC_STARSTANCE])
 			bonus += sc->data[SC_STARSTANCE]->val2;
+		if( sc->data[SC_2011RWC_SCROLL] )
+			bonus += 5;
+		if( sc->data[SC_SPARKCANDY] )
+			bonus += 25;
+		if( sc->data[SC_ACARAJE] )
+			bonus += 10;
+		if( sc->data[SC_SKF_ASPD] )
+			bonus += sc->data[SC_SKF_ASPD]->val1;
+		if( sc->data[SC_PORK_RIB_STEW] )
+			bonus += 5;
 
 		struct map_session_data* sd = BL_CAST(BL_PC, bl);
 		uint8 skill_lv;
@@ -7980,6 +8112,8 @@ static short status_calc_fix_aspd(struct block_list *bl, struct status_change *s
 		aspd -= sc->data[SC_PACKING_ENVELOPE6]->val1 * 10;
 	if (sc->data[SC_SINCERE_FAITH])
 		aspd -= 10 * sc->data[SC_SINCERE_FAITH]->val2;
+	if( sc->data[SC_LIMIT_POWER_BOOSTER] )
+		aspd -= 10;
 
 	return cap_value(aspd, 0, 2000); // Will be recap for proper bl anyway
 }
@@ -8131,6 +8265,16 @@ static short status_calc_aspd_rate(struct block_list *bl, struct status_change *
 		aspd_rate -= 100;
 	if (sc->data[SC_STARSTANCE])
 		aspd_rate -= 10 * sc->data[SC_STARSTANCE]->val2;
+	if( sc->data[SC_2011RWC_SCROLL] )
+		aspd_rate -= 50;
+	if( sc->data[SC_SPARKCANDY] )
+		aspd_rate -= 250;
+	if( sc->data[SC_ACARAJE] )
+		aspd_rate -= 100;
+	if( sc->data[SC_SKF_ASPD] )
+		aspd_rate -= sc->data[SC_SKF_ASPD]->val1 * 10;
+	if( sc->data[SC_PORK_RIB_STEW] )
+		aspd_rate -= 50;
 
 	return (short)cap_value(aspd_rate,0,SHRT_MAX);
 }
@@ -8157,7 +8301,7 @@ static unsigned short status_calc_dmotion(struct block_list *bl, struct status_c
 			return 0;
 	}
 
-	if (sc && sc->count > 0 && (sc->data[SC_ENDURE] || sc->data[SC_RUN] || sc->data[SC_WUGDASH]))
+	if (sc && sc->count > 0 && (sc->data[SC_ENDURE] || sc->data[SC_RUN] || sc->data[SC_WUGDASH] || sc->data[SC_SPARKCANDY]))
 		return 0;
 
 	return (unsigned short)cap_value(dmotion,0,USHRT_MAX);
@@ -13691,7 +13835,7 @@ TIMER_FUNC(status_change_timer){
 		if( --(sce->val4) >= 0 ) {
 			// val1 < 0 = per max% | val1 > 0 = exact amount
 			int hp = 0;
-			if( status->hp < status->max_hp )
+			if( status->hp < status->max_hp && !sc->data[SC_BERSERK] )
 				hp = (sce->val1 < 0) ? (int)(status->max_hp * -1 * sce->val1 / 100.) : sce->val1;
 			status_heal(bl, hp, 0, 2);
 			sc_timer_next((sce->val2 * 1000) + tick);
@@ -13703,7 +13847,7 @@ TIMER_FUNC(status_change_timer){
 		if( --(sce->val4) >= 0 ) {
 			// val1 < 0 = per max% | val1 > 0 = exact amount
 			int sp = 0;
-			if( status->sp < status->max_sp )
+			if( status->sp < status->max_sp && !sc->data[SC_BERSERK] )
 				sp = (sce->val1 < 0) ? (int)(status->max_sp * -1 * sce->val1 / 100.) : sce->val1;
 			status_heal(bl, 0, sp, 2);
 			sc_timer_next((sce->val2 * 1000) + tick);

+ 24 - 2
src/map/status.hpp

@@ -1226,11 +1226,33 @@ enum sc_type : int16 {
 	SC_DEEP_POISONING_OPTION,
 	SC_POISON_SHIELD,
 	SC_POISON_SHIELD_OPTION,
-	SC_M_LIFEPOTION,
-	SC_S_MANAPOTION,
 
 	SC_SUB_WEAPONPROPERTY,
 
+	SC_M_LIFEPOTION,
+	SC_S_MANAPOTION,
+	SC_ALMIGHTY,
+	SC_ULTIMATECOOK,
+	SC_M_DEFSCROLL,
+	SC_INFINITY_DRINK,
+	SC_MENTAL_POTION,
+	SC_LIMIT_POWER_BOOSTER,
+	SC_COMBAT_PILL,
+	SC_COMBAT_PILL2,
+	SC_MYSTICPOWDER,
+	SC_SPARKCANDY,
+	SC_MAGICCANDY,
+	SC_ACARAJE,
+	SC_POPECOOKIE,
+	SC_VITALIZE_POTION,
+	SC_CUP_OF_BOZA,
+	SC_SKF_MATK,
+	SC_SKF_ATK,
+	SC_SKF_ASPD,
+	SC_SKF_CAST,
+	SC_BEEF_RIB_STEW,
+	SC_PORK_RIB_STEW,
+
 #ifdef RENEWAL
 	SC_EXTREMITYFIST2, //! NOTE: This SC should be right before SC_MAX, so it doesn't disturb if RENEWAL is disabled
 #endif