public bool DoSkill(Network.WorldClient client, IO.InteractiveObject io) { if (!this.IsCraftSkill) { if (io.State == IO.InteractiveObjectState.FULL) { client.Action.RefreshDirection(3);//TODO: From player direction var packet = "GA" + this.ID + ";501;" + client.Character.ID + ";" + io.CellID + "," + this.GetJobTime(); client.Character.Map.Engine.Send(packet); return(true); } else { return(false); } } else { if (client.Action.CurrentJobCraftSkill == null) { client.Action.CurrentJobCraftSkill = new JobCraftSkill(this, client); var packet = "ECK3|" + this.GetJobCraftMax() + ";" + this.ID; client.Send(packet); return(false); } else { return(false); } } }
public void SkillFinished(Network.WorldClient client, IO.InteractiveObject io) { try { if (JobHelper.GetItemBySkill(this.ID) != -1) { var quantity = Utilities.Basic.Rand(this.Min, this.GetDesByLevel()); Database.Records.WorldItemRecord item = Helper.ItemHelper.GenerateItem(client, JobHelper.GetItemBySkill(this.ID)); client.Character.AddItem(item, quantity); client.Send("IQ" + client.Character.ID + "|" + quantity); client.Action.RefreshPods(); this.BaseJob.AddExp(this.Exp, client); } } catch (Exception e) { Utilities.ConsoleStyle.Error("Can't finish job skill : " + e.ToString()); } io.SetEmpty(); io.StartRespawnTimer(); }