From d191c2cf2ab914b609bf87a08f527eb0b18763b0 Mon Sep 17 00:00:00 2001 From: eppc0330 <47050704+eppc0330@users.noreply.github.com> Date: Tue, 18 Jun 2024 22:08:54 +0900 Subject: [PATCH] Item DB corrections / implemented ALL_RAY_OF_PROTECTION (#8394) --- db/re/item_combos.yml | 12 ++++---- db/re/item_db_equip.yml | 6 ++-- db/re/item_db_etc.yml | 6 ++-- db/re/item_db_usable.yml | 56 +++++++++++++++++------------------- db/re/item_group_db.yml | 2 +- db/re/pet_db.yml | 1 + db/re/skill_db.yml | 13 +++++++++ db/re/status.yml | 28 ++++++++++++++++++ src/map/script_constants.hpp | 1 + src/map/skill.cpp | 1 + src/map/status.hpp | 1 + 11 files changed, 83 insertions(+), 44 deletions(-) diff --git a/db/re/item_combos.yml b/db/re/item_combos.yml index 724251e268..ee0243443d 100644 --- a/db/re/item_combos.yml +++ b/db/re/item_combos.yml @@ -21746,7 +21746,7 @@ Body: if (.@sum >= 27) { bonus3 bAutoSpell,"HW_NAPALMVULCAN",5,80; } - else if (.@sum >= 27) { + else if (.@sum >= 21) { bonus3 bAutoSpell,"HW_NAPALMVULCAN",3,40; } - Combos: @@ -21760,7 +21760,7 @@ Body: if (.@sum >= 27) { bonus3 bAutoSpell,"AS_SONICBLOW",10,80; } - else if (.@sum >= 27) { + else if (.@sum >= 21) { bonus3 bAutoSpell,"AS_SONICBLOW",7,40; } - Combos: @@ -21770,10 +21770,10 @@ Body: Script: | .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHOES); bonus bMatkRate,2; - if (.@sum >= 27) { + if (.@sum >= 20) { bonus3 bAutoSpell,"WL_JACKFROST",max(getskilllv("WL_JACKFROST"),4),80; } - else if (.@sum >= 27) { + else if (.@sum >= 18) { bonus3 bAutoSpell,"WL_JACKFROST",max(getskilllv("WL_JACKFROST"),2),40; } - Combos: @@ -28403,7 +28403,7 @@ Body: bonus bVariableCastrate,-10; - Combos: - Combo: - - aegis_490220 # 490220 + - Hero_Token_HN # 490220 - Blessed_Knife_LT # 510072 Script: | bonus2 bAddSize,Size_All,15; @@ -28418,7 +28418,7 @@ Body: } - Combos: - Combo: - - aegis_490220 # 490220 + - Hero_Token_HN # 490220 - Freedom_Stick_LT # 550082 Script: | bonus2 bMagicAddSize,Size_All,15; diff --git a/db/re/item_db_equip.yml b/db/re/item_db_equip.yml index 9da40130fc..2abd4460b1 100644 --- a/db/re/item_db_equip.yml +++ b/db/re/item_db_equip.yml @@ -24550,8 +24550,7 @@ Body: bonus bVit,20; bonus2 bSubRace,RC_All,30; bonus bUnbreakableShield; - /*todo instead of autobonus2 bonus4 bAutoSpellWhenHit,"ALL_RAY_OF_PROTECTION",1,50,0;*/ - autobonus2 "{ sc_end SC_STUN; sc_end SC_SLEEP; sc_end SC_CURSE; sc_end SC_STONE; sc_end SC_POISON; sc_end SC_BLIND; sc_end SC_SILENCE; sc_end SC_BLEEDING; sc_end SC_CONFUSION; sc_end SC_FREEZE; bonus2 bResEff,Eff_Stun,10000; bonus2 bResEff,Eff_Sleep,10000; bonus2 bResEff,Eff_Curse,10000; bonus2 bResEff,Eff_Stone,10000; bonus2 bResEff,Eff_Poison,10000; bonus2 bResEff,Eff_Blind,10000; bonus2 bResEff,Eff_Silence,10000; bonus2 bResEff,Eff_Bleeding,10000; bonus2 bResEff,Eff_Confusion,10000; bonus2 bResEff,Eff_Freeze,10000; }",50,60000,BF_SHORT; + bonus4 bAutoSpellWhenHit,"ALL_RAY_OF_PROTECTION",1,50,0; - Id: 2183 AegisName: Impr_Angel's_Safeguard Name: Advanced Angelic Guard @@ -178372,7 +178371,6 @@ Body: Locations: Costume_Head_Mid: true ArmorLevel: 1 - View: 2420 Script: | hateffect HAT_EF_C_FLUTTERING_HAZE,true; UnEquipScript: | @@ -205557,7 +205555,7 @@ Body: bonus bLongAtkRate,5; bonus bMaxHPrate,3*getskilllv("RK_DRAGONHOWLING"); - Id: 490220 - AegisName: aegis_490220 + AegisName: Hero_Token_HN Name: Heroic Token (Hyper Novice) Type: Armor Weight: 200 diff --git a/db/re/item_db_etc.yml b/db/re/item_db_etc.yml index 73ff9879c7..57b17c7d6f 100644 --- a/db/re/item_db_etc.yml +++ b/db/re/item_db_etc.yml @@ -14232,7 +14232,7 @@ Body: Type: Card SubType: Enchant Script: | - autobonus2 "{ bonus bStr,200; bonus2 bHPLossRate,500,1000; }",20,5000,BF_WEAPON,"{ active_transform 1060,5000; specialeffect2 EF_POTION_BERSERK; showscript \"Bigfoot Power !\"; }"; + autobonus2 "{ bonus bStr,200; bonus2 bHPLossRate,500,1000; }",20,5000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; UnEquipScript: | heal 0,-300; - Id: 4876 @@ -50596,8 +50596,8 @@ Body: Script: | bonus2 bAddRace,RC_Demon,40; bonus2 bAddRace,RC_DemiHuman,40; - bonus3 bSubRace,RC_Demon,-30,BF_NORMAL; - bonus3 bSubRace,RC_DemiHuman,-30,BF_NORMAL; + bonus3 bSubRace,RC_Demon,-30,BF_WEAPON; + bonus3 bSubRace,RC_DemiHuman,-30,BF_WEAPON; - Id: 300281 AegisName: R001_Bestia_Card Name: R001-Bestia Card diff --git a/db/re/item_db_usable.yml b/db/re/item_db_usable.yml index 5a505894c7..1a81143f4e 100644 --- a/db/re/item_db_usable.yml +++ b/db/re/item_db_usable.yml @@ -5700,7 +5700,6 @@ Body: AegisName: Tropical_Sograt Name: Tropical Sograt Type: Usable - Buy: 1000 Weight: 100 Flags: BuyingStore: true @@ -5710,7 +5709,6 @@ Body: AegisName: Vermilion_The_Beach Name: Vermilion on the Beach Type: Usable - Buy: 1000 Weight: 100 Flags: BuyingStore: true @@ -51130,8 +51128,8 @@ Body: NoGuildStorage: true NoMail: true NoAuction: true -# Script: | -# /* TODO */ + Script: | + getitem 5464,1; - Id: 17203 AegisName: Free_Pass_Box Name: Free Pass Box @@ -63090,7 +63088,6 @@ Body: AegisName: Vend_Arbeit1_1Lv Name: "[1 Day] Consignment Merchant Envelope Lv1" Type: Usable - Weight: 10 Flags: Container: true Script: | @@ -63099,7 +63096,6 @@ Body: AegisName: Vend_Arbeit1_2Lv Name: "[1 Day] Consignment Merchant Envelope Lv2" Type: Usable - Weight: 10 Flags: Container: true Script: | @@ -63108,7 +63104,6 @@ Body: AegisName: Vend_Arbeit1_3Lv Name: "[1 Day] Consignment Merchant Envelope Lv3" Type: Usable - Weight: 10 Flags: Container: true Script: | @@ -63117,7 +63112,6 @@ Body: AegisName: Buy_Arbeit1_1Lv Name: "[1 Day] Personal Shopper Envelope Lv1" Type: Usable - Weight: 10 Flags: Container: true Script: | @@ -63126,7 +63120,6 @@ Body: AegisName: Buy_Arbeit1_2Lv Name: "[1 Day] Personal Shopper Envelope Lv2" Type: Usable - Weight: 10 Flags: Container: true Script: | @@ -63135,7 +63128,6 @@ Body: AegisName: Buy_Arbeit1_3Lv Name: "[1 Day] Personal Shopper Envelope Lv3" Type: Usable - Weight: 10 Flags: Container: true Script: | @@ -63234,7 +63226,6 @@ Body: AegisName: Vend_Arbeit3_1Lv Name: "[3 Day] Consignment Merchant Envelope Lv1" Type: Usable - Weight: 10 Flags: Container: true Script: | @@ -63243,7 +63234,6 @@ Body: AegisName: Vend_Arbeit3_2Lv Name: Consignment Merchant Envelope Type: Usable - Weight: 10 Flags: Container: true Script: | @@ -63252,7 +63242,6 @@ Body: AegisName: Vend_Arbeit3_3Lv Name: "[3 Day] Consignment Merchant Envelope Lv3" Type: Usable - Weight: 10 Flags: Container: true Script: | @@ -63261,7 +63250,6 @@ Body: AegisName: Buy_Arbeit3_1Lv Name: "[3 Day] Personal Shopper Envelope Lv1" Type: Usable - Weight: 10 Flags: Container: true Script: | @@ -63270,7 +63258,6 @@ Body: AegisName: Buy_Arbeit3_2Lv Name: Personal Shopper Envelope Type: Usable - Weight: 10 Flags: Container: true Script: | @@ -63279,7 +63266,6 @@ Body: AegisName: Buy_Arbeit3_3Lv Name: "[3 Day] Personal Shopper Envelope Lv3" Type: Usable - Weight: 10 Flags: Container: true Script: | @@ -68476,8 +68462,8 @@ Body: Weight: 10 Flags: BuyingStore: true -# Script: | -# /* TODO */ + Script: | + sc_start SC_EXPBOOST,900000,100; - Id: 100352 AegisName: Real_Battle_Manual Name: Real Combat Manual @@ -68485,8 +68471,9 @@ Body: Weight: 10 Flags: BuyingStore: true -# Script: | -# /* TODO */ + Script: | + sc_start SC_EXPBOOST,3600000,100; + sc_start SC_SPEEDUP0,600000,25; - Id: 100354 AegisName: Auto_Armor_Refine_Cube Name: Automatic Armor +11 Refinement Cube @@ -70339,8 +70326,8 @@ Body: Weight: 50 Flags: BuyingStore: true -# Script: | -# /* TODO */ + Script: | + pet 1198; - Id: 100810 AegisName: BroadcastBox_ Name: Broadcast Box @@ -72635,8 +72622,8 @@ Body: Name: Spring Regulator Type: Usable Weight: 10 -# Script: | -# /* TODO */ + Script: | + item_enchant(24); - Id: 101100 AegisName: Poenetentia_Box3 Name: Poenitentia Two Swords Set Box @@ -73601,6 +73588,7 @@ Body: Flags: BuyingStore: true Script: | + /* TODO : pet 21632; */ pet 1005; - Id: 101336 AegisName: aegis_101336 @@ -76680,23 +76668,31 @@ Body: Script: | item_reform(); - Id: 102128 - AegisName: aegis_102128 + AegisName: All_In_One_buff Name: All-in-One Buff Potion # !todo check english name Type: Usable Weight: 10 Flags: BuyingStore: true -# Script: | -# /* TODO */ + Script: | + specialeffect2 EF_POTION_BERSERK; + sc_start SC_M_DEFSCROLL,3600000,0; + sc_start SC_LIMIT_POWER_BOOSTER,3600000,30; + sc_start SC_INFINITY_DRINK,3600000,0; + sc_start SC_SPEEDUP0,600000,25; - Id: 102129 - AegisName: aegis_102129 + AegisName: All_In_One_Healing Name: All-in-one Healing Potion # !todo check english name Type: Usable Weight: 10 Flags: BuyingStore: true -# Script: | -# /* TODO */ + Script: | + specialeffect2 EF_HEAL3; + sc_start2 SC_S_LIFEPOTION,3600000,-5,5; + sc_start2 SC_L_LIFEPOTION,3600000,-7,4; + sc_start2 SC_M_LIFEPOTION,3600000,-4,3; + sc_start SC_SPEEDUP0,600000,25; - Id: 102193 AegisName: aegis_102193 Name: Costume Enchant Stone Box 30 diff --git a/db/re/item_group_db.yml b/db/re/item_group_db.yml index a904594c12..ffdd2f4b7c 100644 --- a/db/re/item_group_db.yml +++ b/db/re/item_group_db.yml @@ -92258,7 +92258,7 @@ Body: Item: Hero_Token_SH Rate: 10 - Index: 17 - Item: aegis_490220 + Item: Hero_Token_HN Rate: 10 - Group: JANUARYGIFTBOX_ SubGroups: diff --git a/db/re/pet_db.yml b/db/re/pet_db.yml index e9cfd1067a..37dbd01bc3 100644 --- a/db/re/pet_db.yml +++ b/db/re/pet_db.yml @@ -2788,6 +2788,7 @@ Body: # bonus bFlee,20; # } # +# - Mob: FARMILIAR2 #TODO : Implement mob FARMILIAR2 - Mob: FARMILIAR TameItem: Fruits_Set_Trap EggItem: Farmiliar_Egg diff --git a/db/re/skill_db.yml b/db/re/skill_db.yml index 4e37fb410b..a7447d1bcf 100644 --- a/db/re/skill_db.yml +++ b/db/re/skill_db.yml @@ -29693,6 +29693,19 @@ Body: - Level: 2 Amount: 100 Status: Odins_Power + - Id: 2543 + Name: ALL_RAY_OF_PROTECTION + Description: Ray of Protection + MaxLevel: 1 + Type: Magic + TargetType: Support + DamageFlags: + NoDamage: true + Range: 1 + Hit: Single + HitCount: 1 + Duration1: 60000 + Status: Protection - Id: 2544 Name: MC_CARTDECORATE Description: Decorate Cart diff --git a/db/re/status.yml b/db/re/status.yml index 920bf620ca..5ced62cccd 100644 --- a/db/re/status.yml +++ b/db/re/status.yml @@ -72,6 +72,7 @@ Body: Stun: true Sleep: true Burning: true + Protection: true EndOnStart: Aeterna: true EndReturn: @@ -125,6 +126,7 @@ Body: Stun: true Sleep: true Burning: true + Protection: true EndOnStart: Aeterna: true - Status: Stun @@ -144,6 +146,7 @@ Body: Inspiration: true Gvg_Stun: true Stun: true + Protection: true - Status: Sleep DurationLookup: NPC_SLEEPATTACK States: @@ -162,6 +165,7 @@ Body: Inspiration: true Gvg_Sleep: true Sleep: true + Protection: true - Status: Poison DurationLookup: NPC_POISON CalcFlags: @@ -180,6 +184,7 @@ Body: Inspiration: true Poison: true Dpoison: true + Protection: true - Status: Curse DurationLookup: NPC_WIDECURSE CalcFlags: @@ -198,6 +203,7 @@ Body: Inspiration: true Gvg_Curse: true Curse: true + Protection: true - Status: Silence DurationLookup: NPC_SILENCEATTACK States: @@ -214,6 +220,7 @@ Body: Inspiration: true Gvg_Silence: true Silence: true + Protection: true - Status: Confusion DurationLookup: NPC_WIDECONFUSE Flags: @@ -223,6 +230,7 @@ Body: Fail: Refresh: true Inspiration: true + Protection: true EndReturn: Confusion: true - Status: Blind @@ -242,6 +250,7 @@ Body: Fear: true Gvg_Blind: true Blind: true + Protection: true - Status: Bleeding Icon: EFST_BLOODING DurationLookup: NPC_BLEEDING @@ -259,6 +268,7 @@ Body: Fail: Refresh: true Inspiration: true + Protection: true - Status: Dpoison DurationLookup: NPC_POISON CalcFlags: @@ -8923,3 +8933,21 @@ Body: NoClearance: true EndOnStart: Decreaseagi: true + - Status: Protection + Icon: EFST_RAY_OF_PROTECTION + Flags: + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + EndOnStart: + Stun: true + Sleep: true + Curse: true + Stone: true + Poison: true + Blind: true + Silence: true + Bleeding: true + Confusion: true + Freeze: true diff --git a/src/map/script_constants.hpp b/src/map/script_constants.hpp index 08fdcfb522..cdd18995a9 100644 --- a/src/map/script_constants.hpp +++ b/src/map/script_constants.hpp @@ -1915,6 +1915,7 @@ export_constant(SC_EXTREMITYFIST2); export_constant(SC_POWERUP); export_constant(SC_AGIUP); + export_constant(SC_PROTECTION); /* status icons */ export_deprecated_constant2("SI_BLANK",-1); diff --git a/src/map/skill.cpp b/src/map/skill.cpp index de49a7084f..ba9bf0dbaa 100755 --- a/src/map/skill.cpp +++ b/src/map/skill.cpp @@ -7841,6 +7841,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case SU_TUNAPARTY: case SU_GROOMING: case SU_CHATTERING: + case ALL_RAY_OF_PROTECTION: clif_skill_nodamage(bl,bl,skill_id,skill_lv, sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); break; diff --git a/src/map/status.hpp b/src/map/status.hpp index 3b77ae7648..794d469111 100644 --- a/src/map/status.hpp +++ b/src/map/status.hpp @@ -1310,6 +1310,7 @@ enum sc_type : int16 { SC_EXTREMITYFIST2, SC_POWERUP, SC_AGIUP, + SC_PROTECTION, SC_MAX, //Automatically updated max, used in for's to check we are within bounds. };