public static void Collect(Character character, MapInteractiveElementSkill skill) { if (skill.Element is MapStatedElement) { ((MapStatedElement)skill.Element).UseStated(character); } }
public static void Handle(Character character, MapInteractiveElementSkill skill) { var handler = Handlers.FirstOrDefault(x => x.Key.Identifier.ToLower() == skill.ActionType.ToLower()); if (handler.Value != null) { character.SendMap(new InteractiveUsedMessage((ulong)character.Id, (uint)skill.Element.Id, skill.Id, skill.Template.Duration, skill.Template.CanMove)); handler.Value.Invoke(null, new object[] { character, skill }); } else { character.ReplyError("No Skill Handler linked to this actionType (" + skill.ActionType + ")"); } }
public TeleporterDialog(Character character, MapInteractiveElementSkill skill) : base(character) { var zaapElements = InteractiveElementRecord.GetByElementType(skill.Element.Record.ElementType).ToArray(); zaapElements = zaapElements.Where(x => x.GetSkillByActionType(skill.ActionType).Value1 == skill.Record.Value1).ToArray(); this.Maps = new int[zaapElements.Length]; this.SubAreaIds = new ushort[zaapElements.Length]; this.Costs = new ushort[zaapElements.Length]; this.DestTeleporterType = new TeleporterTypeEnum[zaapElements.Length]; for (int i = 0; i < zaapElements.Length; i++) { var element = zaapElements[i]; this.Maps[i] = element.MapId; this.SubAreaIds[i] = MapRecord.GetSubAreaId(element.MapId); this.Costs[i] = GetCost(skill.Element.Record.MapId, element.MapId); this.DestTeleporterType[i] = TeleporterType; } }
public void UseInteractive(Character character, uint elementId, uint skillUId) { MapInteractiveElement element = GetElement(elementId); if (element != null && element.CanUse(character) && !character.Busy) { MapInteractiveElementSkill skill = element.GetSkill(skillUId); if (skill != null) { skill.Use(character); } else { character.Client.Send(new InteractiveUseErrorMessage(elementId, skillUId)); } } else { character.Client.Send(new InteractiveUseErrorMessage(elementId, skillUId)); } }
public static void RawData(Character character, MapInteractiveElementSkill skill) { byte[] rawData = RawDataManager.GetRawData(skill.Record.Value1); character.Client.SendRaw(rawData); }
public static void Ornamenet(Character character, MapInteractiveElementSkill skill) { character.LearnOrnament(ushort.Parse(skill.Record.Value1), true); }
public static void Title(Character character, MapInteractiveElementSkill skill) { character.LearnTitle(ushort.Parse(skill.Record.Value1)); }
public static void Emote(Character character, MapInteractiveElementSkill skill) { character.LearnEmote(byte.Parse(skill.Record.Value1)); }
public static void Chest(Character character, MapInteractiveElementSkill skill) { }
public static void Book(Character character, MapInteractiveElementSkill skill) { character.ReadDocument(ushort.Parse(skill.Record.Value1)); }
public static void Paddock(Character character, MapInteractiveElementSkill skill) { character.OpenPaddock(); }
public static void Zaapi(Character character, MapInteractiveElementSkill skill) { character.OpenZaapi(skill); }
public static void Teleport(Character character, MapInteractiveElementSkill skill) { character.Teleport(int.Parse(skill.Record.Value1), ushort.Parse(skill.Record.Value2)); }
public static void SmithMagic(Character character, MapInteractiveElementSkill skill) { character.OpenSmithMagicPanel(skill.Id, skill.Template.ParentJobIdEnum); }
public static void Craft(Character character, MapInteractiveElementSkill skill) { character.OpenCraftPanel(skill.Record.SkillId, skill.Template.ParentJobIdEnum); }
public ZaapiDialog(Character character, MapInteractiveElementSkill skill) : base(character, skill) { }