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;
            }
        }
Esempio n. 4
0
        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);
 }
Esempio n. 16
0
 public ZaapiDialog(Character character, MapInteractiveElementSkill skill)
     : base(character, skill)
 {
 }