public override void OnResponse(NetState sender, RelayInfo info) { Mobile from = sender.Mobile; if (from.Deleted || !from.Alive) { return; } switch (info.ButtonID) { case 0: return; case 1: from.SendGump(new CompetenceSmallGump(m_From, m_Comp, m_ShowCaps)); break; case 2: from.SendGump(new CompetenceSmallGump(m_From, m_Comp, m_ShowCaps)); break; case 3: if (m_ShowCaps) { from.SendGump(new CompetenceGump(m_From, m_Comp, false)); break; } else { from.SendGump(new CompetenceGump(m_From, m_Comp, true)); break; } default: try { int oldValue = 0; SkillName comp; if (info.ButtonID >= 300) { int i = info.ButtonID - 300; comp = (SkillName)i; if (i >= SkillInfo.Table.Length) { from.SendGump(new CompetenceGump(m_From, m_Comp, m_ShowCaps)); return; } if (from.NextSkillTime < Core.TickCount) { TimeSpan span = SkillInfo.Table[i].Callback(from); from.NextSkillTime = Core.TickCount + Core.GetTicks(span); } else { from.SendMessage("Il est trop tot pour utiliser une competence a nouveau."); } } if (info.ButtonID >= 200) { comp = (SkillName)(info.ButtonID - 200); if ((int)comp >= SkillInfo.Table.Length) { from.SendGump(new CompetenceGump(m_From, m_Comp, m_ShowCaps)); return; } oldValue = Competences.GetValue(m_From, comp); if (Competences.CanLower(m_From, comp)) { Competences.Lower(m_From, comp, oldValue - 1); if (comp == SkillName.Langues) { m_From.Langues.FixLangues(); } //m_From.Skills.(comp, oldValue - 1); } from.SendGump(new CompetenceGump(m_From, m_Comp, m_ShowCaps)); } else if (info.ButtonID >= 100) { comp = (SkillName)(info.ButtonID - 100); oldValue = Competences.GetValue(m_From, comp); if (Competences.CanRaise(m_From, comp)) { //m_From.CompetencesLibres -= 1; Competences.Raise(m_From, comp, oldValue + 1); } from.SendGump(new CompetenceGump(m_From, m_Comp, m_ShowCaps)); } else { if (m_Comp != SkillCategory.Aucun) { from.SendGump(new CompetenceGump(m_From, SkillCategory.Aucun, m_ShowCaps)); } else { from.SendGump(new CompetenceGump(m_From, (SkillCategory)(info.ButtonID - 3), m_ShowCaps)); } } } catch (Exception ex) { Misc.ExceptionLogging.WriteLine(ex, "buttonID : {0}, from : {1}", info.ButtonID, from.NetState); } break; } }