i can't say if this work with the dol source, but i spend a little protection off errors and resulting laags for dol, if an proc spells is on an item but no spell is exist and to find items with his wrong proc spells in your Logs.
after this line in GameLiving;
- Code: Select all
// Proc chance is 2.5% per SPD, i.e. 10% for a 3.5 SPD weapon. - Tolakram, changed average speed to 3.5 int procChance = (int)Math.Ceiling(((weapon.ProcChance > 0 ? weapon.ProcChance : 10) * (weapon.SPD_ABS / 35.0)));
- Code: Select all
//Error protection and log for Item Proc's Spell procSpell = null; Spell procSpell1 = null; if (this is GamePlayer) { SpellLine line = SkillBase.GetSpellLine(GlobalSpellsLines.Item_Effects); if (line != null) { procSpell = SkillBase.FindSpell(weapon.ProcSpellID, line); procSpell1 = SkillBase.FindSpell(weapon.ProcSpellID1, line); if (procSpell == null && weapon.ProcSpellID != 0) { log.Error("- Proc Not Found: " + weapon.ProcSpellID + " " + weapon.Name); } if (procSpell1 == null && weapon.ProcSpellID1 != 0) { log.Error("- Proc1 Not Found: " + weapon.ProcSpellID1 + " " + weapon.Name); } } } // Proc #1 if (procSpell != null && Util.Chance(procChance)) StartWeaponMagicalEffect(weapon, ad, SkillBase.GetSpellLine(GlobalSpellsLines.Item_Effects), procSpell.ID, false); // Proc #2 if (procSpell1 != null && Util.Chance(procChance)) StartWeaponMagicalEffect(weapon, ad, SkillBase.GetSpellLine(GlobalSpellsLines.Item_Effects), procSpell1.ID, false);