I have been creating some custom Sets, and have been attempting to make them work without core edits. I have the sets added/configured etc.etc.etc.etc. and as soon as I equip all pieces it does give me "The magic of your armor combines to assist you!", but it is not getting any of the SetAttributes, SetHue from the file. There are absolutely 0 Compiling Warnings or Errors. Here's my CustomItemSet relevant info

namespace Server
{
public enum DailyQuestSetItem
{
None,
Wisdom,
Archmage,
Berserker,
Warrior
}

public interface IDailyQuestSetItem
{
DailyQuestSetItem DailyQuestSetID { get; }
int Pieces { get; }
int SetHue { get; set; }
bool IsDailyQuestSetItem { get; }
bool SetEquipped { get; set; }
bool LastEquipped { get; set; }
AosAttributes SetAttributes { get; }
AosSkillBonuses SetSkillBonuses { get; }

int SetPhysicalBonus { get; }
int SetFireBonus { get; }
int SetColdBonus { get; }
int SetPoisonBonus { get; }
int SetEnergyBonus { get; }

int SetResistBonus(ResistanceType type);
}

public static class DailyQuestSetHelper



public static void AddSetBonus(Mobile to, DailyQuestSetItem setID)
{
for (int i = 0; i < to.Items.Count; i++)
{
if (to.Items is IDailyQuestSetItem)
{
IDailyQuestSetItem setItem = (IDailyQuestSetItem)to.Items;

if (setItem.IsDailyQuestSetItem && setItem.DailyQuestSetID == setID)
{
if (setItem.LastEquipped)
{
AddStatBonuses(to, to.Items, setItem.SetAttributes.BonusStr, setItem.SetAttributes.BonusDex, setItem.SetAttributes.BonusInt);

setItem.SetSkillBonuses.AddTo(to);
}

setItem.SetEquipped = true;
Timer.DelayCall(item => item.InvalidateProperties(), to.Items);
}
}
}

to.UpdateResistances();

Effects.PlaySound(to.Location, to.Map, 0x1F7);
to.FixedParticles(0x376A, 9, 32, 5030, EffectLayer.Waist);
to.SendLocalizedMessage(1072391); // The magic of your armor combines to assist you!
}

public override bool IsArtifact => true;
[Constructable]
public ArmsoftheArchmage()
: base(0x13CD)
{
Name = "Arms of the Archmage";
Weight = 2.0;
SetHue = 0x04aa;
Attributes.LowerRegCost = 17;
Attributes.LowerManaCost = 7;
SetAttributes.SpellDamage = 100;
SetAttributes.BonusDex = 10;
SetAttributes.BonusStr = 10;
SetAttributes.BonusInt = 10;
SetAttributes.NightSight = 1;
SetAttributes.CastRecovery = 6;
SetAttributes.CastSpeed = 2;
}

public ArmsoftheArchmage(Serial serial)
: base(serial)
{
}
public override DailyQuestSetItem DailyQuestSetID => DailyQuestSetItem.Archmage;
public override int Pieces => 6;
 
Did you add it into the setitem.cs? Kinda like....

using Server.Items;
using System;
using System.Linq;

namespace Server
{
public enum SetItem
{
None,
Acolyte,
Assassin,
Darkwood,
Grizzle,
Hunter,
Juggernaut,
Mage,
Marksman,
Myrmidon,
Necromancer,
Paladin,
Virtue,
Luck,
Knights,
Scout,
Sorcerer,
Initiation,
Fisherman,
Luck2,
Bestial,
Virtuoso,
Aloron,
Darden,
(your set here)
}
 
I'm trying to do it without doing a core edit like that. I have had the sets working when done that way tho, and if I can't figure out how to not do core edits soon I'm just going to go back and leave the core edit in.
 
Back