private void affect(L2Character target) { Random rn = new Random(); if (Template._skills != null) { foreach (TSkill sk in Template._skills) { if (rn.Next(0, 100) > Template._skill_prob) { continue; } target.addAbnormal(sk, null, true, false); } } if (Template._skill != null) { if (rn.Next(0, 100) > Template._skill_prob) { return; } target.addAbnormal(Template._skill, null, true, false); } }
private void calcEffect(L2Character character) { if (EffectID != -1) { TSkill skill = TSkillTable.getInstance().get(EffectID, EffectLv); if (skill == null) { CLogger.error("ItemHandler: item " + id + " with null effect " + EffectID + "/" + EffectLv); return; } character.addAbnormal(skill, character, true, false); character.broadcastPacket(new MagicSkillUse(character, character, skill, 100)); } }
private void affect(L2Character target) { Random rn = new Random(); if (Template._skills != null) { foreach (TSkill sk in Template._skills) { if (rn.Next(0, 100) > Template._skill_prob) { continue; } target.addAbnormal(sk, target, true, false); } } if (Template._skill != null) { if (rn.Next(0, 100) > Template._skill_prob) { return; } target.addAbnormal(Template._skill, target, true, false); } //надо бы как то найти и вынести эту фичу. она недокументирована if (Template.Name.StartsWith("[spa_") && Template.Name.EndsWith("1]")) { if (rn.Next(0, 100) > Template._skill_prob) { return; } int a = 4551, b = 4552, c = 4553, d = 4554, x1 = 0, x2 = 0; int id = int.Parse(Template.Name.Substring(5).Replace("]", "")); switch (id) { case 11: x1 = a; x2 = c; break; //bd case 21: x1 = c; x2 = b; break; //ad case 31: x1 = a; x2 = b; break; //cd case 41: x1 = c; x2 = b; break; //ad case 51: x1 = a; x2 = b; break; //cd case 61: x1 = a; x2 = c; break; //bd case 71: x1 = b; x2 = c; break; //ad case 81: x1 = a; x2 = b; break; //cd case 91: x1 = a; x2 = c; break; //bd } if (rn.Next(0, 100) <= Template._skill_prob) { target.addAbnormalSPA(x1, false); } if (rn.Next(0, 100) <= Template._skill_prob) { target.addAbnormalSPA(x2, false); } if (rn.Next(0, 100) <= Template._skill_prob) { target.addAbnormalSPA(d, false); } } }
private void SkillCastTask(object sender, System.Timers.ElapsedEventArgs e) { SkillCast.Enabled = false; if (target == null || caster == null) { return; } if (caster.InstanceID != target.InstanceID) { return; } if (!cast.ConditionOk(caster)) { return; } if (cast.reuse_delay > 0) { if (caster._reuse.ContainsKey(cast.skill_id)) { TimeSpan ts = caster._reuse[cast.skill_id].stopTime - DateTime.Now; if (ts.TotalMilliseconds > 0) { if (ts.TotalHours > 0) { //There are $s2 hour(s), $s3 minute(s), and $s4 second(s) remaining in $s1's re-use time. SystemMessage sm = new SystemMessage(2305); sm.addSkillName(cast.skill_id, cast.level); sm.addNumber((int)ts.Hours); sm.addNumber((int)ts.Minutes); sm.addNumber((int)ts.Seconds); caster.sendPacket(sm); } else if (ts.TotalMinutes > 0) { //There are $s2 minute(s), $s3 second(s) remaining in $s1's re-use time. SystemMessage sm = new SystemMessage(2304); sm.addSkillName(cast.skill_id, cast.level); sm.addNumber((int)ts.Minutes); sm.addNumber((int)ts.Seconds); caster.sendPacket(sm); } else { //There are $s2 second(s) remaining in $s1's re-use time. SystemMessage sm = new SystemMessage(2303); sm.addSkillName(cast.skill_id, cast.level); sm.addNumber((int)ts.Seconds); caster.sendPacket(sm); } return; } } } //do if (cast.reuse_delay > 0) { L2SkillCoolTime reuse = new L2SkillCoolTime(); reuse.id = cast.skill_id; reuse.lvl = cast.level; reuse.total = (int)cast.reuse_delay; reuse.delay = reuse.total; reuse._owner = caster; reuse.timer(); caster._reuse.Add(reuse.id, reuse); } target.addAbnormal(cast, caster, false, false); }