static void timerWaitingCastedSkill_Elapsed(object sender, EventArgs e) { //Views.BindingFrom.WriteLine("[timerWaitingCastedSkill_Elapsed] call [Character.GetNextSkillTrain] => request cast skill"); timerWaitingCastedSkill.Stop(); timerWaitingCastedSkill.Enabled = false; Packet packet = new Packet(0x7074); uint objectId = _mobId; var nextSkill = Globals.Character.GetNextSkillTrain(); if (nextSkill != null && nextSkill.ID > 0) { if (nextSkill.UsingType != 2) { Views.BindingFrom.WriteLine("[timerWaitingCastedSkill_Elapsed] Request BuffSkill :" + nextSkill.Name + "|" + nextSkill.ID + "|" + nextSkill.TemporaryID); packet = GeneratePacket.BuffSkill(nextSkill.ID); } else { Views.BindingFrom.WriteLine("[timerWaitingCastedSkill_Elapsed] Request AttackSkill :" + nextSkill.Name + "|" + nextSkill.ID + "|" + nextSkill.TemporaryID); packet = GeneratePacket.AttackSkill(nextSkill.ID, objectId); } } else { Views.BindingFrom.WriteLine("[timerWaitingCastedSkill_Elapsed] Request AttackNormal "); packet = GeneratePacket.AttackNormal(objectId); } ThreadProxy.Proxy.SendPacketToAgentRemote(packet); }