private void SkillCastTask(object sender, System.Timers.ElapsedEventArgs e) { _skillCast.Enabled = false; if ((_target == null) || (_caster == null)) { return; } if (!_cast.ConditionOk(_caster)) { return; } if (_cast.ReuseDelay > 0) { if (_caster.Reuse.ContainsKey(_cast.SkillId)) { TimeSpan ts = _caster.Reuse[_cast.SkillId].StopTime - DateTime.Now; if (ts.TotalMilliseconds > 0) { if (ts.TotalHours > 0) { SystemMessage sm = new SystemMessage(SystemMessage.SystemMessageId.S2HoursS3MinutesS4SecondsRemainingInS1ReuseTime); sm.AddSkillName(_cast.SkillId, _cast.Level); sm.AddNumber(ts.Hours); sm.AddNumber(ts.Minutes); sm.AddNumber(ts.Seconds); _caster.SendPacket(sm); } else { if (ts.TotalMinutes > 0) { SystemMessage sm = new SystemMessage(SystemMessage.SystemMessageId.S2MinutesS3SecondsRemainingInS1ReuseTime); sm.AddSkillName(_cast.SkillId, _cast.Level); sm.AddNumber(ts.Minutes); sm.AddNumber(ts.Seconds); _caster.SendPacket(sm); } else { SystemMessage sm = new SystemMessage(SystemMessage.SystemMessageId.S2SecondsRemainingInS1ReuseTime); sm.AddSkillName(_cast.SkillId, _cast.Level); sm.AddNumber(ts.Seconds); _caster.SendPacket(sm); } } return; } } } //do if (_cast.ReuseDelay > 0) { L2SkillCoolTime reuse = new L2SkillCoolTime { Id = _cast.SkillId, Lvl = _cast.Level, Total = (int)_cast.ReuseDelay, Owner = _caster }; reuse.Delay = reuse.Total; reuse.Timer(); _caster.Reuse.Add(reuse.Id, reuse); } _target.AddAbnormal(_cast, _caster, false, 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); }