diff --git a/db/re/item_db_equip.yml b/db/re/item_db_equip.yml index 6f15e24c08b..2dedde49cbf 100644 --- a/db/re/item_db_equip.yml +++ b/db/re/item_db_equip.yml @@ -160173,6 +160173,9 @@ Body: Locations: Costume_Head_Mid: true ArmorLevel: 1 + Trade: + NoMail: true + NoAuction: true - Id: 31852 AegisName: C_WitchManteau Name: Costume Witch's Cloak @@ -180295,6 +180298,30 @@ Body: NoAuction: true ArmorLevel: 1 View: 2805 + - Id: 401246 + AegisName: aegis_401246 + Name: Costume Fafnir Helm + Type: Armor + Locations: + Costume_Head_Top: true + ArmorLevel: 1 + View: 2149 + - Id: 401247 + AegisName: aegis_401247 + Name: Costume Wolf Rayet + Type: Armor + Locations: + Costume_Head_Top: true + ArmorLevel: 1 + View: 2487 + - Id: 401248 + AegisName: C_Apprentice_Witch_Hat + Name: Costume Apprentice Witch Hat # !todo check english name + Type: Armor + Locations: + Costume_Head_Top: true + ArmorLevel: 1 + View: 2814 - Id: 410000 AegisName: Resonate_Taego_J Name: Ancient Resonance @@ -182663,6 +182690,11 @@ Body: Type: Armor Locations: Costume_Head_Mid: true + Trade: + NoSell: true + NoMail: true + NoAuction: true + NoGuildStorage: true ArmorLevel: 1 View: 2363 - Id: 410202 @@ -184815,6 +184847,14 @@ Body: Costume_Head_Mid: true ArmorLevel: 1 View: 2795 + - Id: 410582 + AegisName: C_Nursing_Poring + Name: Costume Nursing Poring # !todo check english name + Type: Armor + Locations: + Costume_Head_Mid: true + ArmorLevel: 1 + View: 2817 - Id: 420000 AegisName: Isabella_Carrot Name: Isabella Carrot @@ -187828,6 +187868,9 @@ Body: Type: Armor Locations: Costume_Head_Low: true + Trade: + NoDrop: true + NoSell: true ArmorLevel: 1 Script: | hateffect HAT_EF_C_ANCIENT_RUNE,true; @@ -188927,6 +188970,22 @@ Body: hateffect HAT_EF_C_CLB_GAT_DOC,true; UnEquipScript: | hateffect HAT_EF_C_CLB_GAT_DOC,false; + - Id: 420750 + AegisName: C_Seyren_Hair + Name: Costume Seyren Hair # !todo check english name + Type: Armor + Locations: + Costume_Head_Low: true + ArmorLevel: 1 + View: 2815 + - Id: 420751 + AegisName: C_Magaleta_Hair + Name: Costume Magaleta Hair # !todo check english name + Type: Armor + Locations: + Costume_Head_Low: true + ArmorLevel: 1 + View: 2816 - Id: 430001 AegisName: C_Helm_Of_Ra Name: Costume Hat of the Sun God @@ -218620,6 +218679,22 @@ Body: Costume_Garment: true ArmorLevel: 1 View: 298 + - Id: 480747 + AegisName: C_Knights_Sword_Shield + Name: Costume Knights Sword Shield # !todo check english name + Type: Armor + Locations: + Costume_Garment: true + ArmorLevel: 1 + View: 300 + - Id: 480748 + AegisName: C_Doram_Paw_Hammer + Name: Costume Doram Paw Hammer # !todo check english name + Type: Armor + Locations: + Costume_Garment: true + ArmorLevel: 1 + View: 301 - Id: 490004 AegisName: Atker_Ring Name: Attacker Booster Ring diff --git a/src/map/skills/merchant/advanceprotection.cpp b/src/map/skills/merchant/advanceprotection.cpp index 875d58dc7cb..7918f38e9d0 100644 --- a/src/map/skills/merchant/advanceprotection.cpp +++ b/src/map/skills/merchant/advanceprotection.cpp @@ -9,13 +9,15 @@ SkillAdvanceProtection::SkillAdvanceProtection() : StatusSkillImpl(BO_ADVANCE_PROTECTION) { } -void SkillAdvanceProtection::castendNoDamageId(block_list *src, block_list *target, uint16 skill_lv, t_tick tick, int32& flag) const { - map_session_data* sd = BL_CAST(BL_PC, src); +void SkillAdvanceProtection::castendNoDamageId(block_list* src, block_list* target, uint16 skill_lv, t_tick tick, int32& flag) const { map_session_data* dstsd = BL_CAST(BL_PC, target); - // TODO : Logical error if casted by non-pc - if( sd && ( !dstsd || pc_checkequip( dstsd, EQP_SHADOW_GEAR ) < 0 ) ){ - clif_skill_fail( *sd, getSkillId() ); + if (dstsd == nullptr || pc_checkequip(dstsd, EQP_SHADOW_GEAR) < 0) { + if (map_session_data* sd = BL_CAST(BL_PC, src); sd != nullptr) { + clif_skill_fail(*sd, getSkillId()); + + } + // Don't consume item requirements flag |= SKILL_NOCONSUME_REQ; return; diff --git a/src/map/skills/merchant/advanceprotection.hpp b/src/map/skills/merchant/advanceprotection.hpp index c67742e6194..d87f92dee76 100644 --- a/src/map/skills/merchant/advanceprotection.hpp +++ b/src/map/skills/merchant/advanceprotection.hpp @@ -9,5 +9,5 @@ class SkillAdvanceProtection : public StatusSkillImpl { public: SkillAdvanceProtection(); - void castendNoDamageId(block_list *src, block_list *target, uint16 skill_lv, t_tick tick, int32& flag) const override; + void castendNoDamageId(block_list* src, block_list* target, uint16 skill_lv, t_tick tick, int32& flag) const override; }; diff --git a/src/map/skills/npc/npcvenomimpress.cpp b/src/map/skills/npc/npcvenomimpress.cpp index 36f1d8888d4..5ce4a10c360 100644 --- a/src/map/skills/npc/npcvenomimpress.cpp +++ b/src/map/skills/npc/npcvenomimpress.cpp @@ -5,11 +5,9 @@ #include "map/status.hpp" -SkillNpcVenomImpress::SkillNpcVenomImpress() : SkillImpl(NPC_VENOMIMPRESS) { +SkillNpcVenomImpress::SkillNpcVenomImpress() : WeaponSkillImpl(NPC_VENOMIMPRESS) { } -void SkillNpcVenomImpress::castendDamageId(block_list *src, block_list *target, uint16 skill_lv, t_tick tick, int32& flag) const { - // TODO: refactor to applyAdditionalEffects - if (skill_attack(BF_WEAPON, src, src, target, getSkillId(), skill_lv, tick, flag)) - sc_start(src, target, SC_VENOMIMPRESS, 100, skill_lv, skill_get_time(getSkillId(),skill_lv)); +void SkillNpcVenomImpress::applyAdditionalEffects(block_list* src, block_list* target, uint16 skill_lv, t_tick tick, int32 attack_type, enum damage_lv dmg_lv) const { + sc_start(src, target, SC_VENOMIMPRESS, 100, skill_lv, skill_get_time(getSkillId(), skill_lv)); } diff --git a/src/map/skills/npc/npcvenomimpress.hpp b/src/map/skills/npc/npcvenomimpress.hpp index 98056989eab..66d953ad662 100644 --- a/src/map/skills/npc/npcvenomimpress.hpp +++ b/src/map/skills/npc/npcvenomimpress.hpp @@ -5,9 +5,9 @@ #include "../skill_impl.hpp" -class SkillNpcVenomImpress : public SkillImpl { +class SkillNpcVenomImpress : public WeaponSkillImpl { public: SkillNpcVenomImpress(); - void castendDamageId(block_list *src, block_list *target, uint16 skill_lv, t_tick tick, int32& flag) const override; + void applyAdditionalEffects(block_list* src, block_list* target, uint16 skill_lv, t_tick tick, int32 attack_type, enum damage_lv dmg_lv) const override; };